1.3.1 • Published 3 years ago

sysex v1.3.1

Weekly downloads
20
License
MIT
Repository
github
Last release
3 years ago

MIDI Sysex Message Transcoder

Sysex implements a two-way mapper from parameters to MIDI sysex message bytes.

Installation

npm i sysex --save

Usage

Configure simple messages with a string of space-delimited hexadecimal bytes and parameter names.

import Sentence from 'sysex'

const simple = '43 deviceId 00 7a' // message format specification
const sysex = new Sentence(simple)

sysex.encode({ deviceId: 1 }) // [0x43, 0x01, 0x00, 0x7a]

To provide default parameter values, use an object to construct the Sentence.

const sysex = new Sentence({
  sentence: ['12 paramValue 34'],
  defaults: {
    paramValue: [0x55]
  }
})

sysex.encode() // [0x12, 0x55, 0x34]

Repeated bytes can be described with a shorthand square-bracket notation.

const sysex = new Sentence('42 00[4] 76')

sysex.encode() // [0x42, 0x00, 0x00, 0x00, 0x00, 0x76]

Terms with custom Transcoders map raw values to bytes in the Sentence.

import Sentence, { Ascii } from 'sysex'

const sysex = new Sentence({
  sentence: [ '33 name[6] 66' ],
  transcoders: {
    name: Ascii,
  },
})

sysex.encode({ name: 'bass' }) // [0x33, 0x62, 0x61, 0x73, 0x73, 0x00, 0x00, 0x66 ]

These transcoders can be described by adding a symbol to the term string:

Most significant to least significant 7-bit chunks: \

  • Example: freq[3]\

Least to most significant 7-bit chunks: /

  • Example: resonance[2]/

Ascii bytes: *

  • Example: patchName[8]*
1.3.1

3 years ago

1.3.0

3 years ago

1.2.0

3 years ago

1.1.4

3 years ago

1.1.3

3 years ago

1.1.2

3 years ago

1.1.1

3 years ago

1.0.5

3 years ago

1.0.4

3 years ago

1.0.3

3 years ago

1.0.2

3 years ago

1.0.1

3 years ago

1.0.0

3 years ago