C & G Midi controller for the Organelle

this post is valid for releases prior to 3.1 (beta) , but it all changes from 3.1

if you have more advanced midi needs, including multiple controller support, Id recommend [upgrading to 3.1]
(http://forum.critterandguitari.com/t/organelle-os-3-1-tb-beta)

and then reading my post on 'how to setup advanced midi", which includes a video on how to go beyond basic midi support.


ok, so had a look at what Id done for OS 3.0…

so really there are two areas here
a) Alsa support
b) Extended PD options, which allows more control over PD midi

alsa support

this was added, to support devices which have multiple input ports (usb) which you are unable to address via OSS-midi (the default for pd) , also because alsa is generally a bit more robust.
you can enable this in midi-config.txt , with

usealsa 1;
alsaconfig 28:1 128:0 128:1 28:1;

where the numbers for alsaconfig are two pairs of input and output ,
in this example 28:1->128:0 , 128:1->28:1
you can use this for either 1 in , 1 out, or 2 in -0 out, 0 in -2 out.

I planned to generalise this to N pairs, but as no one pushed it on the beta (and I didnt need it) , it never got done… :frowning: (good reason for users to get involved in the betas if they need something :wink: )

… I could actually address this in a small update, as it basically only needs a change to a script to make this work.

extended pd options

also in OS 3.0 I allow you to specify Pure data command line options, at either a system or patch level,
to do this you create a pd-opts.txt file, and add the command line options.
now, this allows you to add multiple midi devices (and is what I had in mind, when posting before) , however it has a couple of limitations… (thats PD for you :wink: )

first, it only works for OSS devices, for some reason in PD ‘ultimate wisdom’ they didn’t implement it for ALSA.
second, it puts additional midi devices on different midi channels… ie… device 1 = channel 1-16, device 2 = channel 17-32 … this is a bit of a pain, since organelle does not support omni directly from mother host.
(this can all be worked around, with a bit of patching… but its not ‘seamless’)
to do this you need to use the options -midiindev (etc)
e.g. pd-opts.txt

-ossmidi -midiindev 1,2

this will force pd to use ossmidi, and have the first 2 devices as input (you can list as many as you like)

the future

what I do not like is that PD doesn’t support alsa properly, and also its a bit painful for users to discover what their devices are called… so it would be nice to improve this.

the issue was… that doing this from a shell script, was going to be painful…
however, just before the 3.0 release, Owen added some python support for the display (which he used for the wifi) , and I added support for general python launching for utilties … this means we can now create a much more sophisticated midi configuration tool.

so I need to discuss with Owen, but probably what id want to do is, make a small change to 3.0 that will turn the current ‘alsa and midi config’ into something more generalised, that I can then create a tool to cover more use-cases…

(another alternative, may be to consider using jack midi routing, but I need to investigate what that buys us, particular with PDs rather sketchy implementation ;))

4 Likes