9 MIDI
This chapter lists the MIDI messages Lunar Modulator receives and sends. Today the browser simulator receives MIDI from a keyboard connected to your computer, and the sequencer in the desktop tools writes down the MIDI its tracks would send; the simulator sends none. On the FM-1, MIDI over USB and the 3.5 mm input is planned.
9.1 In the simulator
Status:In the simulator
The simulator receives MIDI on every channel and sends nothing.
9.1.1 To connect a MIDI keyboard
- Connect the keyboard to your computer.
- In the simulator, click Connect MIDI input under the panel and allow the browser to use MIDI devices when it asks.
- The button now reads MIDI: followed by the names of the inputs it listens to, or MIDI: no inputs if it found none.
The simulator listens to every input the browser offers, and picks up a keyboard you connect later without another click. Notes from a keyboard and from the panel’s keys play together.
9.1.2 What the simulator receives
| Message | Received | What it does |
|---|---|---|
| Note on, note off | Yes, any channel | Plays the current sound, with velocity 1 to 127, and goes to the sequencer’s focused track for recording and Capture. A note on with velocity 0 is a note off |
| Pitch bend | Yes | Bends the current sound’s notes, up to 2 semitones up or down |
| Control change 7 | Yes | Sets the volume, as MASTER does |
| Control change 123 | Yes | All notes off |
| Other control changes | No | Ignored, including modulation (CC 1) and sustain (CC 64) |
| Program change | No | Ignored |
| Aftertouch | No | Ignored, channel and polyphonic |
| System exclusive | No | Ignored |
| Clock, Start, Stop | No | Ignored: the simulator’s sequencer runs on its own clock |
Notes the keys cannot reach
A MIDI keyboard can play any note from 0 to 127, beyond the 27 keys’ reach. Sophie and Drums answer only notes 36 to 51 (chapter 5); on the panel their pads are the white keys.
9.2 From the sequencer
Status:On the desktopPlanned for the device
A sequencer track routed to MIDI sends its notes on its own channel, 1 to 16; unless you route it otherwise, track 1 uses channel 1, track 2 channel 2, and so on (chapter 7).
| What the track does | Message sent |
|---|---|
| A note starts | Note on, with the note’s velocity |
| A note ends | Note off |
| A parameter lock changes a value | Control change 102 to 109, one per lock lane: lane 1 is CC 102, lane 8 CC 109, with the value 0 to 127 |
While it plays, the sequencer also sends MIDI clock for the whole set: Start when it starts, 24 clock pulses per quarter note, and Stop when it stops. A restart sends Stop and then Start.
In the desktop tools these messages go to the event log instead of a MIDI port (chapter 7). In the simulator a track routed to MIDI is silent: it sends nothing. On the FM-1 they are planned on USB-MIDI. The controller numbers are Movy’s, which the FM-1 build is planned to keep as the default for MIDI tracks.
9.2.1 Following an external clock
The sequencer can follow MIDI clock from another instrument or a computer:
| Message | What the sequencer does |
|---|---|
| Clock (F8) | Follows the tempo of the pulses, smoothing out small changes. If the pulses arrive while the sequencer plays, it joins at the next bar of the incoming clock, counted from its first pulse |
| Start (FA) | Restarts the sequencer from the beginning, if it is playing. With the set’s link setting on, it also starts a stopped sequencer |
| Stop (FC) | Stops following: the sequencer carries on at the last tempo. With link on, it stops the sequencer |
| Continue (FB) | Resumes following |
| No pulses for half a second | Stops following, as Stop does |
While it follows a clock, the sequencer sends no clock of its own. When it stops following, it plays on at the tempo it last measured and sends Start to its own followers at the next bar.
This is how the sequencer behaves in the desktop tools today. The link
setting is off unless a script turns it on with link 1, or a set was saved
with it on. For the FM-1 the plan adds Song Position and a Continue that
resumes where the music stopped, as part of the MIDI implementation below.
9.3 Implementation chart
Status:In the simulatorOn the desktopPlanned for the device
The chart sums up Lunar Modulator’s MIDI as it is built today. Sent describes the sequencer in the desktop tools, whose messages go to the event log; received describes the browser simulator. The FM-1’s MIDI is planned and follows in the next section.
| Function | Sent | Received | Remarks |
|---|---|---|---|
| Basic channel | 1 to 16 | All | One channel per sequencer track; the simulator listens on every channel |
| Mode | — | Omni, poly | |
| Note number | 0 to 127 | 0 to 127 | Engines may answer fewer notes |
| Velocity, note on | 1 to 127 | 1 to 127 | A note on with velocity 0 counts as a note off |
| Velocity, note off | No | No | |
| Aftertouch, key and channel | No | No | |
| Pitch bend | No | Yes | Received: ±2 semitones |
| Control change | 102 to 109 | 7, 123 | Sent: parameter locks on MIDI tracks. Received: volume, all notes off |
| Program change | No | No | |
| System exclusive | No | No | Planned for saving and loading sequencer sets (chapter 10) |
| System common: song position, song select, tune request | No | No | Song position is planned for following a clock on the FM-1 |
| System real time: clock | Yes | Sequencer only | Sent at 24 pulses per quarter note while playing |
| System real time: Start, Continue, Stop | Start, Stop | Sequencer only | See Following an external clock |
| All notes off | No | Yes | Control change 123 |
| Active sensing, reset, local on/off | No | No |
9.4 On the FM-1
Status:Planned for the device
Lunar Modulator’s MIDI on the FM-1 is planned and not yet designed in every detail. What is settled so far:
- Ports. USB-MIDI, in and out, through the USB-C socket. The 3.5 mm MIDI IN jack receives only: the FM-1 has no MIDI output jack. Whether Bluetooth MIDI, which M-VAVE’s firmware offers, will be supported is still open.
- The adapter for MIDI IN. The 3.5 mm input is wired for one of the two kinds of TRS-to-DIN adapter, type A or type B. Which one has not been measured yet.
- The sequencer sends notes, parameter locks and clock as described above, on USB-MIDI.
- Sets over MIDI. Sequencer sets are planned to be saved to a computer and loaded from one as system exclusive messages, carrying the set as text (chapter 10).
- Still open: the channel the sound engine listens on, a pitch bend range, and how the instrument answers Start, Continue and Stop.
9.4.1 If you know M-VAVE’s MIDI map
M-VAVE’s firmware has a MIDI map of its own. Lunar Modulator’s engines and effects are different, so that map does not carry over:
| In M-VAVE’s firmware | In Lunar Modulator today |
|---|---|
| Program change chooses one of 128 presets | Not received |
| An effects channel, channel 2 by default, with control changes 0 to 23 for its filter, reverb, delay, distortion, chorus and phaser | Not received; Lunar Modulator’s effects are those of chapter 6 |
| Modulation, sustain and other control changes | Not received |
| DX7-style system exclusive for voices and banks | Not received over MIDI. FM6 reads the same dumps from files: in the simulator (Load DX7 patches…) and on the desktop renderer (chapter 5) |
| Channel aftertouch | Not received |