Orac 2.0

there are two osc protocols :slight_smile:

the one you see in the PD/Lemur clients I call ‘OSC display protocol’, this is just rendering a display to the patch - if you open up the PD patch you will see its trivial.
this is deliberate, since I wanted it to be write for another platform
e.g. people ask about android , but I dont have a android box to develop on , so the community could easily write this themselves

then there is the underlying protocol between Orac, which is a proper protocol that not only distributes data but also meta data, this is how the Push2 is implemented in MEC - so it can have a completely different look n feel.
this protocol is described basically here:

its out of date, but its basically the same idea - if you use oscdump of similar, the above doc will give enough idea to decode whats going on.

using what modules? how’s the cpu?
how do you have midi setup?
what channel are you using?
have you changed the active module?
do you have the midi on the chain on?
are you sending across multiple channels?

I really need more data…

(also if your not already try using midi channel 1 only)

EDIT: hmm, I think the issue is if you’re not using midi channel 1,
I suspect its treating it as MPE, so each channel ends up having only one voice, so its kind of monophonic. … I need to do some tests to confirm, but seems likely.

sorry - nope, completely different apps.
I’ve not used touchosc, so dont really know whats possible - but you could probably adapt the PD client to it… e.g. just look at the osc messages its getting, and setup the same in touchosc.

Thanks for the reply. I’m trying to figure to what’s up with my midi setup. I’m using the Organelle with a Digitone and the Keystep. They are all interconnected via an OpLab midi bridge. The Digitone’s 4 tracks use midi ch 1-4 and the Organelle midi system setup is using ch. 5, but its doesn’t seem to be relevant for how orac receives midi.
In orac I’m testing a simple setup with Rodey on A1, AnalogStyle on A2 and a bit of r.reverb on P2.

Chain 1 midi is “In Midi” off, “In Midi Ch” 1 and “Out Midi Ch” 0.
(Doesn’t seem to matter what I do here)

Main Ctrl. 1 is “Dest” 1, “Main Midi Ch” 1, “Note” on, “Ctrl” on.
(Setting Main Midi to fx 5 and orac goes monophonic)

Main Ctrl. 2 is “Prog” on, “Aux CC” 64, “FS CC” 0, “Exp CC” 0

When I set the Keystep and Orac to Ch 1 everything seems to work, but I can’t figure out how to set a Ch for individual modules. I’ll go back and watch your youtube intro again too see if I can figure this out.

You can download the Lemur Editor for free, and use that to reverse engineer the Lemur template without actually purchasing the Lemur app.

(I’m thinking about building an HTML interface to run on a web server, or perhaps on the pi itself, so I’ve already taken that step.)

At a glance, I think a TouchOSC template should be doable, but the protocol might have to change, to put text in the labels. Not sure - it’s been a while since I’ve used that.

1 Like

First off, major thanks for this! :)))
I’ll update and bug fix my modules soon!

Then, a bug report @thetechnobear:
I encountered a strange situation when trying to run Orac 2.0 & TigerVNC!
TigerVNC works flawlessly, but I can’t start Orac2 anymore when TigerVNC is running!
It just won’t come up. Haven’t tested any other Organelle patches yet.
I am seeing the Organelle Desktop over VNC.

Thanks so so much for all these great tools!!

1 Like

see this thread PureData 0.49 update

Q. when did you install the PD49 update? it should have been fixed yesterday. (afternoon?)
if you installed prior to that, either reinstall it, or follow my fix in the above thread.
(probably best to reinstall - so I know the fix is working :wink: )

personally, Id used the PD app as an example - its much clear to see that then Lemur template :wink:

you cannot set individual channels for modules - only for chains (see the original orac 1.0 video for that)

yes, the System->midi setting - only the midi device is used … channel , in / out settings are no longer used in Orac (as its has its own, more comprehensive midi options)

ch 5 = monophonic - yes, this is a bug!
ch 1 , currently is the only polyphonic channel :frowning: 2-16 are all monophonic !
MPE users might guess why :wink:

anyway, the bug is fixed in development … I just have to push it out.

what Im currently doing, is trying to wait for a few more people to install and try it, and report any other issues, and then I will release an updated beta.

1 Like

Thanks, I’ll wait for the next release. :slight_smile:

In regards to all this Midi-stuff. What is the actual functionality of the Chain Midi page? As I understand I can make more chains and give them individual channels, yes? But why does my current chain 1 receive midi from my Keystep even with “In Midi” set to off?
What I want to do is to have one or more chains in orac and trigger them individually from the midi tracks on my Digitone, preferably with the use of the Digitones parameter locking different CC values. :slight_smile:

That worked beautifully! One thing: I had to reinstall PD094 AND Orac2 for the TigerVNC to work!
But it works great.

I LOVE how the plops & tics from Orac1 are almost gone: it makes a very reliable instrument!

odd that you should have to reinstall orac… cannot think why that would be :confused:
oh, well main thing is its working!

and thank you for noticing :slight_smile:
(theres quite a lot of subtle changes, that won’t even make an change list)

you can do all this already…

what your missing is there are two ways to get midi in!
chain input and ‘active input’ (also called Main Ctrl!)

active input, you usually associate with the organelle keys, but now Orac runs on other platform we need this possibility for midi as well.
(and as you’ve seen on my Orac 2.0 for Organelle video - I often use a ‘proper’ keyboard with the Organelle :wink: )

BUT as with many things in Orac, this is configurable!
if you don’t want to use midi for the active input, just go to the routers parameters
a) put main midi channel to something you dont want to use (e.g. 16)
b) set note to OFF

now you will get no midi thru the main/active input

(this is mentioned in the Orac 2.0 overview video … around 14:54 (https://www.youtube.com/watch?v=mywEOeth40Y&t=894s) … thanks to Antonio, there are timings in the YT description :wink: )

I should point out this idea of an active input, is pretty common,
electron have it (auto channel) and so do squarp … its often the default.
the reason is simple, not everyone has controllers that can send on different channels (or do it quickly),
so active/auto means the input is taken to a track that is ‘selected’ on the device.
(this is exactly what Orac is doing)

but for sure, if your driving with a sequencer its not that useful, so just turn if off, or move to a different channel :wink:

then simply change the chain midi parameters on
Chain 1 Midi In = ON, In midi ch = 1,
Chain 2 Midi In = ON, In midi ch = 2,
Chain 3 Midi In = ON, In midi ch = 3,

its be really useful if you tried this…
the idea behind the beta, is that I get to hear whats working , whats not, what can be improved…

if everyone just ‘waits for it to be finished’ , then nothing will get improved, since the only inputs is mine… and excluding bugs, I’m fairly happy with it as it is :wink:

1 Like

Really incredible work! Enjoying it a lot so far.
The new routing structure is really intuitive and navigating the module menu and router makes the workflow much faster.
Looking forward to incorporating modulation and the sample management into my modules. It will also be great to be able to include example presets with modules.

I am finding modulation mapping a bit tricky, maybe I’m missing something though.
I’m finding it a bit error prone as there’s no easy way to tell what’s currently sending or the value, and I seem to keep ending up with unexpected mappings, or modulation sources modulating their own parameters etc.

I think this especially an issue with macros. It seems like since the learning happens when modulation is produced, and they only send when they are being tweaked, there is no way to map macros to other parameters of other modules because they end up being mapped to themselves or other parameters of the macro module (though you could use an LFO source on the same bus to do the mapping).

I think I’d prefer if you could explicitly pick which bus was being mapped when turning on mod learn. An ‘unlearn’ option so you could just tweak the param you want to clear all mappings if you don’t remember what it’s being modulated by would also be great!

A couple possible issues with specific modules:

  • It seems like on brds/brds mono the transpose behaviour is reversed
  • I can’t get any sound out of lmnts when playing with the keys (might be the settings, but I tried changing a bunch, and I can get sound with the default parameters in 1.0)

Anyway amazing work, hopefully I have time to try this with the RPI as well this weekend! :grinning:

1 Like

Brilliant work!
I’ll echo @WyrdAl, the modulation mapping isn’t very straightforward, and his suggestions for improvement seems good. I can’t wrap my head around how to unmap parameters, and manage to map modulators to themselves all the time.

Btw small bug: one of the voices in chordroll is stuck on one note. going into the pd sequencer subpatch and changing r croll-root-$1 to r croll-$1-root (same as the other voices) fixed it.

1 Like

Thanks you for all your work, I need to try this soon!
Love that you have give it room to more graphic modules! I think it was the thing keeping me off from the first Orac :slight_smile:

1 Like

thanks guys…

fixed both brds transpose ( I kept noticing this one, and promptly forgetting to fix it :wink: ) and chord roll
lmnts - works for me with the default settings?! (on both my organelles, and mac !?)

modulation learn - definitely more fiddly than id hoped…
as you have kind of spotted, the main thing is, unlike midi learn, you really have to turn off mod learn between new mod assignments.

mod learn on
macro 1 to 100% , go change one or more parameters,
mod learn off
sel macro 1 to 0%
mod learn on
macro 2 to 100% , go change one or more parameters,
mod learn off

actually with macros you don’t need to change amount to 100% but you do for lfo.

i’ll admit , I usually use LFOs to learn , with an amount of 10%, and offset of 50%
(so its in the middle)

I could easily stop the ‘self modulation’ as frankly that is not that useful, though its nigh impossible with storing much more info, for me to stop you doing this via feedback looks e.g. m1 -> m2 -> m1 … but thats not as likely…

so yeah, its fiddly as you have to mess with turning off other modulation, and just like midi learn, its easy to forget to turn of learn.
(unfortunately turning it off automatically, stops you quickly assigning to many things, hence why it behaves as it does)

(its a bit easier on a modular with cv, as there you have a knob to twist like midi learn, so its pretty similar to midi learn!)

I dunno, Im loathed to change to mod assignment
its not really the selection of the bus thats the issue - its the selection of the parameter.
(I dont want the user to have to start scrolling thru a list of parameters in every module, thats horrible)

i could do it off the last parameter still,
e.g. you twist a parameter to select, then go to the menu, into ‘mod assign’, then select with the encoder the mod bus (I do not re-use pots in the menus, they are strictly for param values!)
but thats still pretty fiddly

also the similarity with midi learn, means one less thing to confuse users.
(I get alot of questions already, so I dont want to keep adding new ‘concepts’)

a couple of things to note:

  • if you remove/replace a module - its mod assignments are removed
  • if you remove a mod source , its assigned are NOT removed.
    (so you can switch from a macro to an lfo or vice versa)
  • if you put a mod value to zero when assigning to a parameter it will remove that mapping (like midi learn)

so yeah, I’ve been thinking about how to improve both midi learn and mod learn for a while, but I just dont really like the alternatives much… and its pretty tricky with such a limited UI gestures available.

yeah graphics modules I want to be careful with, I need to do a couple more to show developers how I want them to work. (the current ones just show the mechanics, not how to interact with parameters)

its REALLY important that developers use the graphics to render what the parameters are doing, and that they change the underlying parameters to follow any changes they are making . (this is like the VST model for those that know such things) - and also make the underlying parameters available to the user.
(for this reason, its now possible for module code to set a parameters value, and also do an adhoc query for it current value)

if they don’t do this it will become a complete mess…because end-users will then start finding that they load presets and they don’t sound the same, and things like modulation won’t work, and also users on platforms wont be able to use the modules.

this would upset me, as Ive worked hard to make sure that the architecture, ensures that modules act pretty consistently to the user.

but Im sure with some good examples, this should all become clear, and developers will understand the benefits of the ‘right way’ :slight_smile:

2.0 is proving to be such a joy for me go use. It’s remarkable how intuitive of a modular system you’ve created using only a keyboard, 4 knobs and a tiny screen. My partner(who has no interest in music making or synths) remarked last night “wow, all that sound is coming from that one little thing?”

Bravo and thank you!


That’s probably subjective.

I had some luck reverse engineering the PD app by wiring [r oscIn] and [r oscOut] into [print] objects, but couldn’t otherwise identify the “P1”-“P8” prefixes. (I think they’re fed into the ctrl.pd subpatches through abstraction arguments, but right-clicking for properties doesn’t reveal those, and Google isn’t terribly helpful on that front, either)

So, at my current skill level with pd (I’m really more of a max guy), the Lemur template was far more intuitive for me to reverse engineer than the pd one.

…but that probably won’t be true for other members on this particular forum.

so my pd client issues were indeed firewall related. so thats fixed and its a handy thing, although I do echo a lot said here and in the blokas forum about the usability of the client as the standalone interface.

I definitely think there is potential to lay things out differently for the client, but I understand totally what you did here.

here is something I am having trouble with. say I want to have my organelle midi connected with my mpc so I can make midi loops. what is the proper way to do this if I just want to use the organelle keyboard? first of all with one chain, and second of all with three pointing to different tracks on the mpc? is the midiout module necessary?

If I have just a synth on module one, and I try setting, say, Chain 1: Midi Out to channel 1 (the mpc is picking up all midi channels either way), as well as Midi In ON, set channel 2. but I can never seem to get midi out signal this way if I am just playing the synth on the organelle keyboard (this is like the opposite problem than above). I also make sure and set the Main Ctl to channel one and Note is ON.

I guess the main thing for me right now is the “active input” doesnt seem to be working (this is like the opposite problem than above). playing mpc pads does feed midi in like its supposed to.

I can play the orgnelle keys within the ‘midiout’ module and get midi out!

As far as I know, there is no issue with active input - just some can’t get their head around it!

The only midi bug, which I’ve fixed but not released, is that channels 2-16 are monophonic - this is not specific to active input.

Sorry the rest i don’t understand what your trying to achieve.

Please re-read my various explanations of chain midi vs active input - I really cannot think of a way to make it clearer than I’ve already stated multiple times.

( once you’ve read them, hopefully you’ll understand why have midi ch 1 for both a
Chain channel and active input makes no sense )

btw: @miker2049 if your not getting midi outputs, make sure you are using ‘note-thru’ on modules if you are using midi output module (which you probably dont need) , or chain midi output (which is probably what you want) - modules no longer pass notes thru - this is now a function of the router and is off by default. (as its not what most users need/want, and consumes resources)

changes for next beta (b2)

speak now, if you disagree - and have a very good reason :wink:

so Im going to be changing the init (and demo) presets for the next beta
(if you have created presets you may want to consider similar changes)

(where applicable, the following will also default in the appropriate module)

a) Im going to switch to the parallel router as the default for Init
as 3/4 modules in a chain + post process is probably enough for most,
(so generally more useful that serial)

b) midi chain input is going to be ON,
for chain A it will be midi ch 1
for chain B it will be midi ch 2
for chain C it will be midi ch 3

c) active MIDI input , is still be active, but will be moved to midi channel 16

the idea is simply, that a new user can chuck a synth in a1, b1, c1, and just play with midi ch 1, 2, 3
and it will always play regardless of which module they are have selected.
this I think is simplest for most to understand, and then ‘active input’ is more of an ‘advanced’ feature.

Im NOT going to change the Organelle keys active input, it will still follow the selected modules by default, as this IS usually what you want, for a whole range or reasons - and is not generally confusing since its fairly obvious to associate the display with the keys underneath them.

Ive fixed, any (reproducible) bugs that have been reported so far (not many as it happens),
changed a few things from feedback (thank you)
added a few improvements,
and Ive got a couple more little things I want to do (like demo presets),
then I plan to make another beta release.

so IF you have any bugs, that you can reliably reproduce, please speak now!
(its a lot of effort for me to release on all platforms so Im not going to be releasing that frequently!)


Still trying to figure this out: Open an empty init patch. Set to parallel, put BasicPoly (or whatever) in A1. Set chain 1 midi out to channel 1, set all A modules with note-thru, and Main Ctl has main midi channel 1 and note and control ON.

Expected behavior is that when playing organelle keys on A1, I will hear sounds as well as getting midiout.

I hear sounds but my Mio2 will not light up that it is receiving midi messages like this (while working fine in regular Organelle patches as well as within a Midiout module). But even if I put a midiout module on A2 in this same setup, and then play organelle keys on A1 basic poly, I get no midi out even with midi-thru activated everywhere.

In general, it does totally make sense to me to be more focused on Midi-in for external control than midi-out with organelle keys (considering that we are now cross platform).