UsingMidi - TheTechnobear/SSP GitHub Wiki
Overview
How to use midi on the SSP using both factory and TheTechnobear's modules.
Hardware / OS
You can connect midi hardware using either of the two USB HOST ports (USB-A). The OS also supports USB hubs.
the midi hardware must be USB class compliant !
Keep in mind current draw on some usb devices, and use a powered hub if you have issues.
Patching
There are two alternatives for using midi, which serve different purposes. using the factory MIDI module, or TheTechnobear's midi support in his modules.
Using factory MIDI module
Overview
By using ( multiple ) MIDI module we can get access to note, cc and clock date etc. see modules details for message support.
This is the primary method most will use (outside midi learn) It's very simple to use as ALL the MIDI modules will use the same ( FIRST ) midi device they 'see'. (the SSP displays which it is connecting too)
This is also its main limitation! you cannot use multiple midi device, and you cannot specify which one to use, so its great if you only have a single controller...
The other limitation is there is NO midi output, only input !
note: all patching is monophonic, so muliple voices are implemented with different modules. ( beyond scope of this topic ! )
Single midi device workaround
the only way around this is to use TheTechnobear's support OR to use a midi router. ( e.g. mioXM ) you can use a midi router as the single device connected to the SSP, then it can route different midi channels to different devices.
MIDI module overview
as above, all MIDI modules are automatically connected to the ( same ) first device, which is displayed on the SSP.
each module can filter the messages by MIDI channel ( selected via buttons ), by default it listens to all channels. note: this only applies to channel messages e.g. transport/clock are unaffected.
we then see midi messages output on the various modules outputs ( see MIDI module for details).
the one 'exception' is CC messages.... there cannot be 127 outputs on a module , instead we have outputs A-H. these are mapped to specific CC numbers via the encoders.
let's look at some common use-cases
Polyphonic voicing
if multiple MIDI modules are using the SAME midi channel (e.g. say 3x MIDI use ch 1 ), then voice are round robin allocated across available modules e.g first note will go to MIDI 1 then MIDI 2 then MIDI 3. ( unless a note is alread allocated)
note: there is no voice stealing!
so for simple usage, just set all modules to (e.g.) channel 1 (i.e. deselect all other channels)
Multi-timbral voicing
By setting a channel filter we can have different MIDI modules patched into different parts of our patch aka voices. This even works polyphonically !
e.g. 3 x MIDI ch 1 -> FM voices 3 x MIDI ch 2 -> SAM based voices
MPE ( Midi Polyphonic Expression )
Handling MPE is much the same as the multi-timbral setup as described above.
if we review 'basic MPE'
MPE is split into voice channeles , and a global channel
the GLOBAL channel on channel 1. often, 'optional' , usually used for things like sustain/breath.
each voice is articulated on a different channel , aka voice channels ( which are Ch 2-16 ). the primary messages we are interested in are: Note -> v/oct & gate Pitchbend Channel pressure Timbre - CC74
notes:
others CC can be used, and the SSP will support , but CC74 is the main one. there are splits on some controllers, but thats beyond this topic ... but can be done in the way we are describing here
to set this up on the SSP is simple create a MIDI module for as many MPE voice channels as you have. lets say we have 4 MPE voices, so we use 4x MIDI with ch 2 - 5 respectively.
lets do an example.. . now we create 4 voices , lets say a simple subtractive voice
MIDI Pitch -> Osc / v/oct MIDI Bend -> Osc / v/oct ... ( you will need to scale this ! ) MIDI CC A -> VCA / gain ( assume A=CC 74) MIDI Gate -> ENV (gate) ( optional ) MIDI ATouch -> Filter / Cutoff ( scale as needed)
then we could optionally add a MIDI module for Ch 1 to handle 'global messages' and map this to all of our voices.
TheTechnobear's midi support
Overview
all TheTechnobear's modules have midi support. primiarly this is for MIDI Learn. but some modules may support direct note/voicing,or other features.
there are also some midi modules, MTMI, MTMO, MTTR
the main advantage of using TheTechnobear's implementation are:
- no extra wiring :)
- multipe midi device support !
Accessing MIDI setup
to select which midi device to use for input/output, use the 'midi setup page', which is access by pressing LS+RS together to exit press LS+RS again.
this process is used for ALL midi support, not just LEARN.
Using MIDI learn
Here we can map modules parameters directly to midi CC (currently).
first select the input (and optionally output device ) on the midi setup page (see above) press the LEARN button. return to module page
first alter a parameter, then turn knob on your controller. you can repeat this process for multiple parameter/CC combinations.
then to stop learning, enter setup page again, and de-select LEARN.
the setup page also allows you to delete these learnt parameters.