-
Notifications
You must be signed in to change notification settings - Fork 25
Working with MIDI
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:
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.
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:
However, you can fine tune this behavior under the instrument properties tab:
- 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; sendmodulating 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; sendstyle 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
envelopeunits or the sustain parameters of allenvelopeunits are all 0s and thus note offs (releasing sustains) have no effect on the actual output.
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.
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.