-
-
Notifications
You must be signed in to change notification settings - Fork 8
MIDI CCs & Events
Robert Hargreaves edited this page Aug 29, 2024
·
20 revisions
The following MIDI events are supported:
- Note On/Off
- Pitch Bend (±2st)
- Program Change (selects FM preset or PSG envelope)
- Universal SysEx Messages (see Configuration & Advanced Operations)
- Reset (resets all parameters)
These are supported across FM and PSG channels:
CC | Description | Effect | Values |
---|---|---|---|
5 | Portamento Time | Otherwise known as Glide Rate. Constant rate (wider note distances take longer to complete). Initial value is 64. | 0: Shortest 127: Longest |
7 | Channel Volume | Output Operator Total Level (FM), Attenuation (PSG) |
0 - 127: Logarithmic |
10 | Panning | Stereo | 0 - 31: Left 32 - 95: Centre 96 - 127: Right |
65 | Portamento On/Off | Enables portamento/glide for concurrently played notes (legato style). Only effective for static/monophonic channels. | 0 - 63: Off 64 - 127: On |
85 | Fine Tune | Detunes the channel. When notes are mirrored across channels, this can aid in creating unison/chorus effects. | 0: -64 cents 64: 0 cents 127: +63 cents |
120 | All Sounds Off | Same as CC 123 | Any |
121 | Reset All Controllers | Reset MIDI parameters and dynamic channel mappings (dynamic mode only) | Any |
123 | All Notes Off | Key Off (FM), Max. Attenuation (PSG) |
Any |
Send these to any MIDI channel.
Description | CC | Range* |
---|---|---|
LFO Enable | 74 | 2 |
LFO Frequency | 1 | 8 |
Ch 3 Special Mode | 80 | 2 |
Polyphonic Mode | 84 | 2 |
Range determines how the possible 128 MIDI values are divided to give the respective YM2612 register value, using the formula midiValue / (128 / range) = registerValue
(e.g. MIDI value of 32, with a range of 8 translates into to a YM2612 register value of 2)
Parameter | CC | Range |
---|---|---|
Algorithm (reference) | 14 | 8 |
Feedback | 15 | 8 |
Frequency Modulation Level (FMS) | 75 | 8 |
Amplitude Modulation Level (AMS) | 76 | 4 |
Stereo | 77 | 4 |
Show Parameters on UI | 83 | 2 |
Device Select | 86 | 4 |
Parameter | Op 1 CC |
Op 2 CC |
Op 3 CC |
Op 4 CC |
Range |
---|---|---|---|---|---|
Total Level (TL) | 16 | 17 | 18 | 19 | 128 |
Multiple (MUL) | 20 | 21 | 22 | 23 | 16 |
Detune (DT/DT1) | 24 | 25 | 26 | 27 | 8 |
Rate Scaling (RS) | 39 | 40 | 41 | 42 | 4 |
Attack Rate (AR) | 43 | 44 | 45 | 46 | 32 |
Decay Rate (DR/D1R) | 47 | 48 | 49 | 50 | 32 |
Sustain Rate (SR/D2R) | 51 | 52 | 53 | 54 | 16 |
Sustain Level (SL/D1L) | 55 | 56 | 57 | 58 | 16 |
Release Rate (RR) | 59 | 60 | 61 | 62 | 16 |
Amplitude Modulation (AM) | 70 | 71 | 72 | 73 | 2 |
SSG-EG* | 90 | 91 | 92 | 93 | 16 |
See the Plutiedev site for a description of the SSG-EG register.
Effect | CC Values |
---|---|
Off | 0 - 63 |
Envelope 1 | 64 - 71 |
Envelope 2 | 72 - 79 |
Envelope 3 | 80 - 87 |
Envelope 4 | 88 - 95 |
Envelope 5 | 96 - 103 |
Envelope 6 | 104 - 111 |
Envelope 7 | 112 - 119 |
Envelope 8 | 120 - 127 |
Warning
GenMDM's behaviour differs from the above. It maps the effects across 0 to 63 instead of 0 to 127.