edit README.md
This commit is contained in:
parent
9b279ff671
commit
54c5454306
1 changed files with 67 additions and 67 deletions
|
|
@ -26,11 +26,11 @@ OUTPUT:
|
||||||
- `sysex` - Sends MIDI System Exclusive messages (id: number 0-127 or array of bytes 0-127, data: array of bytes 0-127)
|
- `sysex` - Sends MIDI System Exclusive messages (id: number 0-127 or array of bytes 0-127, data: array of bytes 0-127)
|
||||||
- `sysexid` - Sets MIDI System Exclusive ID (number 0-127 or array of bytes 0-127)
|
- `sysexid` - Sets MIDI System Exclusive ID (number 0-127 or array of bytes 0-127)
|
||||||
- `sysexdata` - Sets MIDI System Exclusive data (array of bytes 0-127)
|
- `sysexdata` - Sets MIDI System Exclusive data (array of bytes 0-127)
|
||||||
- `nrpnn` - Sets MIDI NRPN non-registered parameter number (array of bytes 0-127)
|
|
||||||
- `nrpv` - Sets MIDI NRPN non-registered parameter value (0-127)
|
|
||||||
- `midicmd` - Sends MIDI system real-time messages to control timing and transport on MIDI devices.
|
|
||||||
- `midibend` - Sets MIDI pitch bend (-1 - 1)
|
- `midibend` - Sets MIDI pitch bend (-1 - 1)
|
||||||
- `miditouch` - Sets MIDI key after touch (0-1)
|
- `miditouch` - Sets MIDI key after touch (0-1)
|
||||||
|
- `midicmd` - Sends MIDI system real-time messages to control timing and transport on MIDI devices.
|
||||||
|
- `nrpnn` - Sets MIDI NRPN non-registered parameter number (array of bytes 0-127)
|
||||||
|
- `nrpv` - Sets MIDI NRPN non-registered parameter value (0-127)
|
||||||
|
|
||||||
|
|
||||||
INPUT:
|
INPUT:
|
||||||
|
|
@ -56,6 +56,70 @@ In the console, you will see a log of the available MIDI devices as soon as you
|
||||||
|
|
||||||
Selects the MIDI channel to use. If not used, `.midi` will use channel 1 by default.
|
Selects the MIDI channel to use. If not used, `.midi` will use channel 1 by default.
|
||||||
|
|
||||||
|
### control, ccn && ccv
|
||||||
|
|
||||||
|
`control` sends MIDI control change messages to your MIDI device.
|
||||||
|
|
||||||
|
- `ccn` sets the cc number. Depends on your synths midi mapping
|
||||||
|
- `ccv` sets the cc value. normalized from 0 to 1.
|
||||||
|
|
||||||
|
```javascript
|
||||||
|
$: note("c a f e").control([74, sine.slow(4)]).midi()
|
||||||
|
$: note("c a f e").ccn(74).ccv(sine.slow(4)).midi()
|
||||||
|
```
|
||||||
|
|
||||||
|
In the above snippet, `ccn` is set to 74, which is the filter cutoff for many synths. `ccv` is controlled by a saw pattern.
|
||||||
|
Having everything in one pattern, the `ccv` pattern will be aligned to the note pattern, because the structure comes from the left by default.
|
||||||
|
But you can also control cc messages separately like this:
|
||||||
|
|
||||||
|
```javascript
|
||||||
|
$: note("c a f e").midi()
|
||||||
|
$: ccv(sine.segment(16).slow(4)).ccn(74).midi()
|
||||||
|
```
|
||||||
|
|
||||||
|
### progNum (Program Change)
|
||||||
|
|
||||||
|
`progNum` control sends MIDI program change messages to switch between different presets/patches on your MIDI device.
|
||||||
|
Program change values should be numbers between 0 and 127.
|
||||||
|
|
||||||
|
```javascript
|
||||||
|
// Play notes while changing programs
|
||||||
|
note("c3 e3 g3").progNum("<0 1 2>").midi()
|
||||||
|
```
|
||||||
|
|
||||||
|
Program change messages are useful for switching between different instrument sounds or presets during a performance.
|
||||||
|
The exact sound that each program number maps to depends on your MIDI device's configuration.
|
||||||
|
|
||||||
|
## sysex, sysexid && sysexdata (System Exclusive Message)
|
||||||
|
|
||||||
|
`sysex`, `sysexid` and `sysexdata` control sends MIDI System Exclusive (SysEx) messages to your MIDI device.
|
||||||
|
sysEx messages are device-specific commands that allow deeper control over synthesizer parameters.
|
||||||
|
The value should be an array of numbers between 0-255 representing the SysEx data bytes.
|
||||||
|
|
||||||
|
```javascript
|
||||||
|
// Send a simple SysEx message
|
||||||
|
let id = 0x43; //Yamaha
|
||||||
|
//let id = "0x00:0x20:0x32"; //Behringer ID can be an array of numbers
|
||||||
|
let data = "0x79:0x09:0x11:0x0A:0x00:0x00"; // Set NSX-39 voice to say "Aa"
|
||||||
|
$: note("c d e f e d c").sysex(id, data).midi();
|
||||||
|
$: note("c d e f e d c").sysexid(id).sysexdata(data).midi();
|
||||||
|
```
|
||||||
|
|
||||||
|
The exact format of SysEx messages depends on your MIDI device's specification.
|
||||||
|
Consult your device's MIDI implementation guide for details on supported SysEx messages.
|
||||||
|
|
||||||
|
### midibend && miditouch
|
||||||
|
|
||||||
|
`midibend` sets MIDI pitch bend (-1 - 1)
|
||||||
|
`miditouch` sets MIDI key after touch (0-1)
|
||||||
|
|
||||||
|
```javascript
|
||||||
|
|
||||||
|
$: note("c d e f e d c").midibend(sine.slow(4).range(-0.4,0.4)).midi();
|
||||||
|
$: note("c d e f e d c").miditouch(sine.slow(4).range(0,1)).midi();
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
### midicmd
|
### midicmd
|
||||||
|
|
||||||
`midicmd` sends MIDI system real-time messages to control timing and transport on MIDI devices.
|
`midicmd` sends MIDI system real-time messages to control timing and transport on MIDI devices.
|
||||||
|
|
@ -90,68 +154,4 @@ stack(
|
||||||
// "sysex:[sysexid]:[sysexdata]"
|
// "sysex:[sysexid]:[sysexdata]"
|
||||||
midicmd("sysex:[0x43]:[0x79:0x09:0x11:0x0A:0x00:0x00]").midi('IAC Driver')
|
midicmd("sysex:[0x43]:[0x79:0x09:0x11:0x0A:0x00:0x00]").midi('IAC Driver')
|
||||||
)
|
)
|
||||||
```
|
|
||||||
|
|
||||||
### control, ccn && ccv
|
|
||||||
|
|
||||||
`control` sends MIDI control change messages to your MIDI device.
|
|
||||||
|
|
||||||
- `ccn` sets the cc number. Depends on your synths midi mapping
|
|
||||||
- `ccv` sets the cc value. normalized from 0 to 1.
|
|
||||||
|
|
||||||
```javascript
|
|
||||||
$: note("c a f e").control([74, sine.slow(4)]).midi()
|
|
||||||
$: note("c a f e").ccn(74).ccv(sine.slow(4)).midi()
|
|
||||||
```
|
|
||||||
|
|
||||||
In the above snippet, `ccn` is set to 74, which is the filter cutoff for many synths. `ccv` is controlled by a saw pattern.
|
|
||||||
Having everything in one pattern, the `ccv` pattern will be aligned to the note pattern, because the structure comes from the left by default.
|
|
||||||
But you can also control cc messages separately like this:
|
|
||||||
|
|
||||||
```javascript
|
|
||||||
$: note("c a f e").midi()
|
|
||||||
$: ccv(sine.segment(16).slow(4)).ccn(74).midi()
|
|
||||||
```
|
|
||||||
|
|
||||||
### progNum (Program Change)
|
|
||||||
|
|
||||||
`progNum` control sends MIDI program change messages to switch between different presets/patches on your MIDI device.
|
|
||||||
Program change values should be numbers between 0 and 127.
|
|
||||||
|
|
||||||
```javascript
|
|
||||||
// Play notes while changing programs
|
|
||||||
note("c3 e3 g3").pc("<0 1 2>").midi()
|
|
||||||
```
|
|
||||||
|
|
||||||
Program change messages are useful for switching between different instrument sounds or presets during a performance.
|
|
||||||
The exact sound that each program number maps to depends on your MIDI device's configuration.
|
|
||||||
|
|
||||||
## sysex, sysexid && sysexdata (System Exclusive Message)
|
|
||||||
|
|
||||||
`sysex`, `sysexid` and `sysexdata` control sends MIDI System Exclusive (SysEx) messages to your MIDI device.
|
|
||||||
sysEx messages are device-specific commands that allow deeper control over synthesizer parameters.
|
|
||||||
The value should be an array of numbers between 0-255 representing the SysEx data bytes.
|
|
||||||
|
|
||||||
```javascript
|
|
||||||
// Send a simple SysEx message
|
|
||||||
let id = 0x43; //Yamaha
|
|
||||||
//let id = "0x00:0x20:0x32"; //Behringer ID can be an array of numbers
|
|
||||||
let data = "0x79:0x09:0x11:0x0A:0x00:0x00"; // Set NSX-39 voice to say "Aa"
|
|
||||||
$: note("c d e f e d c").sysex(id, data).midi();
|
|
||||||
$: note("c d e f e d c").sysexid(id).sysexdata(data).midi();
|
|
||||||
```
|
|
||||||
|
|
||||||
The exact format of SysEx messages depends on your MIDI device's specification.
|
|
||||||
Consult your device's MIDI implementation guide for details on supported SysEx messages.
|
|
||||||
|
|
||||||
### midibend && miditouch
|
|
||||||
|
|
||||||
`midibend` sets MIDI pitch bend (-1 - 1)
|
|
||||||
`miditouch` sets MIDI key after touch (0-1)
|
|
||||||
|
|
||||||
```javascript
|
|
||||||
|
|
||||||
$: note("c d e f e d c").midibend(sine.slow(4).range(-0.4,0.4)).midi();
|
|
||||||
$: note("c d e f e d c").miditouch(sine.slow(4).range(0,1)).midi();
|
|
||||||
|
|
||||||
```
|
```
|
||||||
Loading…
Add table
Add a link
Reference in a new issue