Skip to content
Veikko Sariola edited this page Feb 14, 2026 · 3 revisions

MIDI support

Sointu supports receiving MIDI events either from the VST host, or by opening one of the operating system's MIDI input ports, with the help of gomidi. You can open the MIDI input port from the MIDI menu:

image

Notice that gomidi requires cgo to compile i.e. in order to have gomidi support compiled in, you need cgo enabled. If you didn't have cgo when compiling, you will not see any MIDI ports in the MIDI menu.

Mapping MIDI channels and velocities to instruments

By default, each MIDI channel is mapped consecutively to the instruments, so that if you reorder the instruments, their MIDI channels also change. The MIDI channel of the instrument is the small number shown above the instrument name:

image

However, you can fine tune this behavior under the instrument properties tab:

image
  • Channel 0 means the automatically assigned as in the default behavior, but you can hard code the instrument to respond to a particular MIDI channel
  • Note range allows you to split the keyboard i.e. multiple instrument sharing a single MIDI channel. For example, you could use MIDI note numbers 0-63 for one instrument, and note numbers 64-127 for another instrument.
  • If "Velocity" is enabled, it means this instrument does not receive the MIDI note number, but rather its velocity. Typically, such a "velocity" instrument is just loadnote; send modulating the main instruments gain. But you could also use this more creatively, e.g., modulating filter frequency.
  • If "No retrigger" is enabled, it means that if an incoming note/velocity has the exact same value as the previous one, the instrument is not retriggered. Useful for loadnote; send style instruments where there is no point retriggering with same value, and the useless retriggerings can be omitted to save a few bytes.
  • If "Ignore note off" is enabled, the instrument ignores note off events, to save a few bytes from the final data. Useful for instruments that have no envelope units or the sustain parameters of all envelope units are all 0s and thus note offs (releasing sustains) have no effect on the actual output.

Controller binding

You can bind MIDI controllers to specific parameters. With a unit parameter selected, choose menu option Bind to controller (or hit Ctrl+B); the parameter is bound to the controller in the next MIDI CC (control change) event.

Inputting notes

If the "Input notes" option is enabled in the MIDI menu, incoming MIDI events are used to input notes at the position of the cursor in the tracker. In this case, the MIDI channel and velocity information are ignored.

Clone this wiki locally