How to : Advanced Midi Setup (3.1)

Mine works with an unpowered hub,
It’s probably just down to chipset used in the hub - so worth trying others you have to hand.
(Mine is an old manhatten mtt usb hub, not sure if it’s still made ;))

Lifesaver, thank you very much!

1 Like

Does anyone know if it’s possible, in orac, to have an external keyboard “stick” to one module, even when you navigate to different ones on the organelle? I’d like to be able to play a poly synth while adding/subtracting drum sounds in another chain with polybeats and sampler24.
(note: I already directed this at technobear in the orac 1.0 thread - if anyone else knows, tyvm!!)

Depends on midi Channel you’re using, it’s possible !

1 Like

HI All,

Fantastic stuff and I think I’m following most of it :astonished:

Wondered if someone could point me in the right direction with this.

I have the ESI Midimate Ex midi cable, usb to midi din 32 in/out midi channels.

Can I go from a midi thru into the organelle and via an internal organelle sequencer will play whatever sound / preset in time??

And can I then use another internal organelle sequencer to go out to my minitaur playing different notes but still in time??

The minitaur is the last bit of DAW free kit that isn’t in sync.

Is it as simple as just select a specific midi out channel on the organelle and in on the minitaur?
Or is it a little deeper than that?
Or am I miles off?

Thanks Lee

you can do this with orac, you put each sequencer into a different ‘chain’

see the orac threads for more details - the original post on the Orac 1.0 has a couple of videos which illustrate this

2 Likes

Thanks Mark, I thought I was kinda going in the right direction, I’ll check those and once I’ve got it I’ll post some video of it working as it may help others too :+1:

1 Like

Hi there

I’m afraid I’m having trouble with this.

Placed this in the patch folder:

> nb # MIDI PARAMETERS:START
> # midiIn,2
> # midiOut,1
> # midiInGate,0
> # midiOutGate,0
> # midiDevice,E-MU XMidi1X1 Tab:0
> # MIDI PARAMETERS:END
> oscsend localhost 4000 /midiInCh i 2
> oscsend localhost 4000 /midiOutCh i 1
> oscsend localhost 4000 /midiInGate i 0
> oscsend localhost 4000 /midiOutGate i 0
> aconnect "E-MU XMidi1X1 Tab:0" "Pure Data:0"
> aconnect "Pure Data:1" "E-MU XMidi1X1 Tab:0"
> aconnect "LPK25 MIDI:0" "Pure Data:0"
> aconnect "Pure Data:1" "LPK25 MIDI:0"
> aconnect "VT-4:0" "Pure Data:0"
> aconnect "Pure Data:1" "VT-4 MIDI:0"

Output on the EMU is working, but input from the LPK25 is not.

(Tested the LPK via OSS and it is working)

I’m receiving from the LPK25 via [notein 2] - is that the right way to receive the data from ASLA?

Could anyone advise? Thanks

ok, so lets me understand this correctly,

first : have you watched my video, and read my first post
… theres some details in their that I need to assume you already understand.
(and I dont have time to repeat :wink: )

second: as per the video, did you test the LPK25 on its own with the Organelle, and did it work? when you used it with the just using settings->midi-> device (i.e.without messing with patch_loaded.sh)

** if it works with this** then you know it works with alsa, so you can forget oss midi, and we can look at the multi device setup. (step 2)

if it doesn’t work on its own then we need to get this working first.
and you need to run DiagnosticLog (find on forum) so that I can see if your LPK25 is being detected correctly , by alsa.

about your problem,
so you want output via E-MU and input from LPK25
you’ve tested the E-MU output presumably via the organelle keyboard, and thats working,
but its LPK is not working

ok, I first assume you are sending on midi channel 2, id be tempted to try midiIn = 0 initially, so works on any channel, and try this with a C&G patch , to see if this is working … this tells you if you are getting midi data thru, without having to worry about midi channel.

if that is not working, then my suspicion is the LPK25 has multiple midi ports… this would also cause issue in single device setup, hence why we checked that first :wink:
to fix that you can get the port number by using settings->midi->device, and twisting encoder, see if there are other ports (it might not be evident from display, if they are very similarly named!)
apart from that you would need to run DiagnosticsLog and post the results (as described elsewhere on the forum)

btw: sorry, I really don’t want to start talking about ossmidi, beyond the details Ive already put in the top post here (which does cover quite a bit of info) - ossmidi is unlikely to be necessary, as its actually not as comprehensive/stable as alsa , and I don’t have time to mess with 2 different setups miid apis, and it’ll also just cause confusion on the forum…

Hey! Thanks a lot for the fast response

Just recorded this video to show you what I’ve done: https://youtu.be/Tc5ID2VJ9VY

Tom

ok, so to be clear you got the aconnect lines from the root directory patch_loaded.sh where you had selected the LPK and then later the E-MU… and then just put these in your patch_loaded.sh in the patch directory?
correct?

ok, so debug this, we could do the following…
a) just select the LPK25 in settings->midi (so not patch_loaded.sh)
then on the organelle in a terminal window (little black square down in bottom left of display)
type

aconnect -l 

then show us what it says here

b) put the modified patch_loaded.sh in place
and do the same again

basically, ‘aconnect -l’ will display all available devices and how they are connected with alsa

if you dont have access to a keyboard, then you can use the DiagnosticLog patch, which does the same - and sends the output to a file on the usb/sdcard.

Ok, I’ve resolved it.

This was the problem. I had copied the names of the devices from the Organelle screen and typed them in. I didn’t realise that the root patch_loaded.sh would update as I selected each one, and there were some minor differences in how they were called out. I copy pasted each one verbatim and it works. Thank you, that’s really saved my neck.

One thing I don’t understand: what does the channel do when handling MIDI in this way? Is all data on other channels purged?

My input via LPK25 is on Channel 2, but the output via the EMU is using 10 channels. It seems to be all working though so I don’t see what the channel selection does.

Some further thoughts -----------

I feel like the process of getting that working, despite your pretty thorough video, was enough of a pain in the arse that most people won’t bother. It’s really cool to be able to do this on a patch-by-patch basis - that’s definitely important.

I hear you on the tiny screen but I feel like it’s necessary to find a way of implementing it, because flexibility is one of the beautiful things about the Organelle and it should be made available to the less hardcore users.

How about: All connected devices show up in a list. So if there’s one device it’s really short and easy. If there’s more they get added to the bottom.
Enabled/Disabled can be baked in with the channel selector making it 3 lines per device:

Name
Input (Disabled/Omni/1/2/3/4…)
Output (Disabled/Omni/1/2/3/4…)

Then two options at the bottom:

Save-to-patch
Save-to-global

I think that would work? Any thoughts?

1 Like

yeah, unfortunately that can’t work, for 2 reasons…
the screen is too small to display the full name, and also the ‘user description’ is a little different from the string required for alsa connection.

but glad you got it working :slight_smile:

ok, im not quite sure what you mean…
the midi channels referred to in midi settings are the channels used by default for patches.
the input is used to replicate the organelle keyboard, the output for notes/knob movements from organelle.

they are used for quick midi interaction without need to change patches.
I personally done use them much, and I do something pretty different in Orac :wink:

no the data does not get filtered, PD sees all data with things like notein, its just mother.pd does not translate them to ‘note’ messages. (look at mother.pd you’ll see what i mean)


ok, this really leads on from the last point…

midi configuration can get very complex, with multiple devices, channels , how they interact with the patch etc.

so the goal of the midi settings on the Organelle were ‘limited’ , to the following:

  1. try to work ‘out of the box’ with no configuration
  2. work for one midi device
  3. allow for midi device selection where there are multiple devices, or also when some devices have ‘quirks’ like multiple midi ports.
  4. allow manual configuration for more ‘complex’ cases i.e. don’t impose limitations.

Id say its reasonable to say a good percentage of Organelle users, do not attach any midi controllers/synth to the Organelle, and of those that do a big percentage (80%?) use one device, most likely id say a controller (to get a bigger keyboard, with velocity)

so the current ‘goal’ probably hits 90% use case?

one thing I think the midi settings should have had added, was a separate midi input and output device (like channels) … honestly, for some reason it only occurred to me when we were ready to go with the 3.x release, and I then forgot it.
… but I suspect a separate input/output device, would hit another heathy % of use cases.

from there, it gets more complex quickly…

  • per patch control,
    honestly I doubt is that common a requirement, Id have thought most users use the same controllers on all patches? I know from experience can be very confusing. e.g. ive forgotten that a patch wired to a particular controller, so my controller was working on some patches but not one of them!
    this means if you have a ‘save to patch’ you also need to be able to recall from the patch…but thats not to tricky to implement… though you probably also need a ‘revert to global option’ too.

  • multiple controllers,
    you have simplified your use case, where they share midi channels, but as you can see in my video, thats not the only way, you can actually make it so that different controllers come in on different channels e.g.controller #1 = 1-16, controller #2 17-32 … which you want, is really down to how a patch works, capabilities of a controller (e.g. some might only be able to work on channel 1) , if you want you controllers to be ‘equivalent’ or distinct

  • multiple outputs
    similar to multiple controller, but (almost always) you want them to be distinct, and so for multitimbral synths that means splitting 1-16,17-32
    (btw:this also complicates patches, since they can no longer say midi channels are limited to 1-16!)

I agree, unfortunately the one of the other beautiful things about the Organelle is its simplicity, the fact that any one (tech or not) can use it.

I think we have to be really careful as ‘techies’ that by adding flexibility we don’t also add complexity…
it’s truly a balancing act.

I (personally) would prefer the Organelle didn’t end up with a deep hierarchy of menu settings trying to cope with every use-case I can think of.

thats not to say I disagree with your suggestions, nor that the balance is ‘tilted’ the correct way currently, rather just an insight to where we are.

as I said, I definitely think input and output device should be separated,
perhaps per patch save/recall, if it can be intuitive… and there is a need seen for it.
(its actually pretty easy to copy the global file, its the editing which i think is more intimidating)

unfortunately, I still suspect, multiple controllers/outputs is perhaps a step too far in complexity… without redesigning the UI quite a bit.

but never say never,
(and of course this is just my view, owen/chris might have different opinions)

This is really good thinking imo, especially to not overcomplicate things and keep things simple for cases where it’s best kept simple. Maybe there’s a way to keep the “default settings” involved in this no more complex than they currently are, but allow for more complex configurations for those who would want it.

By separate midi in/out, do you mean being able to select “note receive”/“note send” on or off? That would also be a great option for clock send/receive.

This may be a particular (maybe even uncommon) example, but in trying to have my Reface DX control Analog 4 (notes), while also syncing to Organelle clock, it’s been a bit of a mind bender mainly due to the fact that there’s no way to turn off clock send on the DX! I can turn off clock receive on A4, but no tempo presets (which organelle as clock would allow).

Currently I am doing A4 clock -> organelle -> DX, and DX notes -> A4
I could also try organelle clock -> A4(thru) -> DX, and DX notes -> org -> A4

This all not so much to say here’s what I’m doing and hence more in/out on/off midi options would help me, but more so to give some examples to further illustrate what @thetechnobear was saying on how/why midi can get very complicated, even with just a few devices! That said, it’s always useful to be able to turn on or off clock/note send/receive, on a per patch, per orac preset basis - but how to keep it simple while allowing for configurations (but not forcing users to do configuration setup for every patch etc) I can see why this might be a tricky.

1 Like

no :slight_smile:
what i mean is currently in settings->midi, you select A (one) midi device which is used for input and output. its always been this way on the Organelle.
But I think a quite common scenario is having a midi device for input (a controller) and a different midi device for output (a synth)… and this doesn’t make the UI any more complex, as we already have different channels for input/output, so logical to also have device separated.

clock… yeah, that actually not handled by the midi setup, nor even mother.pd this is handled by the ‘metronome’ subpatch, which unfortunately is copied into nearly every patch, so would have to be updated in every patch.

I do quite like that it ‘auto detects’ clock, its one less thing to think about, but perhaps there should be a mode selector - auto/master/slave … it could then be defaulted to auto, but you could override - if i remember, i’ll look at that for Orac (I want to do some changes to clock for the next release anyway)

1 Like

btw… Ive been beta testing Blokas Midihub, which will be crowdfunding in Q1 2019,
this is fantastic for pairing up with the Organelle (and other things) and resolving these kind of midi issues :slight_smile:

my review is linked to on their info page

https://blokas.io/midihub/

you can see the Organelle getting in the action on my setup i was using at the time :wink:

2 Likes

Excited for Midihub and joined the crowdfunding shortly after it was announced. In the meantime I’m trying to get two MIDI controllers working unsuccessfully on my Organelle M with OS 3.2.

I can get both of them working on their own, but once I modify patch_loaded.sh with aconnect commands for both (copied after saving the MIDI settings from patch_loaded.sh while connected to each one individually) then neither one responds. Here’s what I have in patch_loaded.sh:

# MIDI PARAMETERS:START
# midiIn,0
# midiOut,1
# midiInGate,1
# midiOutGate,1
# midiDevice,Bass Station II:0
# MIDI PARAMETERS:END
oscsend localhost 4000 /midiInCh i 0
oscsend localhost 4000 /midiOutCh i 1
oscsend localhost 4000 /midiInGate i 1
oscsend localhost 4000 /midiOutGate i 1
aconnect "Bass Station II:0" "Pure Data:0"
aconnect "Pure Data:1" "Bass Station II:0"
aconnect "nanoKONTROL:0" "Pure Data:0"
aconnect "ttymidi:0" "Pure Data:0"
aconnect "Pure Data:1" "ttymidi:1"

I also tried spelling the device names with MIDI 1 at the end because I saw that in diag_log.txt as so:

ACONNECT 
client 0: 'System' [type=kernel]
    0 'Timer           '
    1 'Announce        '
client 14: 'Midi Through' [type=kernel]
    0 'Midi Through Port-0'
client 20: 'nanoKONTROL' [type=kernel,card=1]
    0 'nanoKONTROL MIDI 1'
client 24: 'Bass Station II' [type=kernel,card=2]
    0 'Bass Station II MIDI 1'
client 128: 'ttymidi' [type=user,pid=410]
    0 'MIDI in         '
    1 'MIDI out        '

I’m sure I’m missing something obvious, but so far it hasn’t jumped out at me. Any help will be greatly appreciated! Thanks!

Was there any other info in diag_log.txt? you could also try moving or renaming the patch_loaded.sh file so that it doesn’t run on startup, and instead type the aconnect commands manually (after you launch a patch) to see if any more useful info or errors get spit out.

Yeah, lots. I don’t see anything in there that looks like an error associated with the aconnect commands, so I’ll try entering them on the command line once I get a monitor and keyboard connected. I also tried them on their own bus versus in the USB hub with the same results.

Another solution would be to use DIN to TRS MIDI for the Bass Station II, but I’m trying to reduce the number of cables / devices I need while travelling and I love that the Organelle can power and host the BS II and nanoKONTROL together.

Thanks!

If you have the Organelle on your network, you can also connect over ssh / WiFi and enter the commands that way. In a terminal connect:

ssh music@organellem.local

The pw is ‘music’.