Orac : module developers guide

@thetechnobear - quick question:

In your module.json thing for setting up the parameters - is there any support for text based parameters? ie choose from a list of short text strings?

I’m guessing not - but just checking

also I presume that the module.json you use in the likes of rngs is similar to the one in orac (I’m making my grid thing standalone to start with so I don’t need to worry about multiple midi channels :slight_smile: - one step at a time)

No support for text yet (well there is but not exposed ;))
The reason is this needs to be enumerated types , to allow for remote control.

you will see I ‘get around’ this currently in some patches, by sending text to the aux line, which shows what the number means - but this is just a workaround.

Module.json is same format, and the interaction is very similar.

to use outside of Orac you (currently) have two choices:

  • copy orac, and use its structure, and delete the extra module slots, and put in fixed routing.
  • copy one of the Kontrol Series patches (including Kontrol externals etc)

this is because in Orac 1.0, Kontrol requires module slots, as it sends data to paramid-$1 (in 1.1 theres an option to turn this off)

id go for option 1, as its more compatible for when you want to move to a module

what do you mean by this?
are you saying, you need to send multiple midi channels?

what I personally would do is make the grid a module (or possibly just a router module) , and send to the active module… you can see how you can do that in one of the router modules , look for actmodule.pd ? basically this is where the organelles ‘r notes’ gets converted to s notes-$1.
its actually very simple, in fact, I suspect this will take you less time (once you figure it out) than writing a pd patch.

also, what nice in orac, is you (in the future :wink: ) move to full control orac from your ‘grid’ which special key combos (e.g. switch active module) … and of course, this will really help you if you want to run this on another platform e.g. rPI/Onda

ah cool

I’m kind of porting the patch from the standalone 1/2 written version I made - and now I need some infrastructure using the organelle stuff rather than writing it myself

I’d kind of started on moving it to a thing based on rings but it sounds like I’d be better doing a bit more figuring out and going the whole hog in to orac (which is where it was intended to go anyway).

More tomorrow though - I’ve spent the whole day in a baking hot field at a tap dance competition my daughter was in - a long, painful and excruciatingly boring day and now my brain is goo - good job I love her so much…

1 Like

Hi all! Since Orac’s been released, I’ve been mainly using my Organelle for fun and in projects. It’s basically the best thing that happened to mobile music making for me. Thanks again @thetechnobear!

To thank Mark and also contribute, I’ve made my own chord making module as well as ported two popular Organelle patches: bpach’s RE-150 Tape Echo patch and callmesam’s Space Kittens…


You can find my patches here. Still haven’t gotten around to making a .zop. Is there a quick way to do this on my mac @thetechnobear?

I hope you guys can use this in your music making, let me know/send me videos!

All the best!


Hey that chorder module is so good! Thanks for sharing.
The conversions are really great too.

1 Like

It seems good, but I wondered if you could explain it a little bit. Is there a way to sequence it in order to alter the rhythm?

1 Like

or if i chose a different module set-up (like, 3x3+1) could it then be used in addition to the polybeats sequencer, for example?

Right now, there’s no way to sequence it in order to alter the rhythm. It’s clock is synched to the master-bpm, so yes, you can use it together with Polybeats. I want it to be able to use different rhythms though. Will look into it later, or fork it and do your own alterations! :slight_smile:
It’s also lots of fun if you put an arpeggiator after it!

i see. actually, i’m guessing it wouldn’t sync with polybeats. they would just run separately.

i’d love it if there was a way to change the rhythm, or just if it could accept input from a sequencer!

Aha, I thought you meant running at the same BPM…

Anyway, I’ll see when I get to it. Otherwise, you’re free to make any change you want!

F-buffershufflr.zip (1.9 KB)
can anyone tell me how i screwed up this adaptation of an old shreeswifty upload?
Displaying fine… just ‘no sound’ :weary:
think it may be an issue with the contents of the subpatches? they are the objects bufferfx1s and pd lfo1
it’s an effects module for mangling input sound n it’s rate good.

Not able to test atm, but what happened to me when I was porting over patches is that there was a lot of send/receive-combinations in abstractions that used a “$0-” in the name. As far as I understand this does not work with Orac (better check with @thetechnobear…).

I took them out and gave them normal names (using a text editor and some regexp actually, as it was in there quite deep).

I think this is actually NOT the right way as now they’re global variables, so one is only able to use one RE-501 module at a time. I hope Mark can shine some light on this!

1 Like

Nope $0 can be left as-is , $0 means they get a unique name per subpatch which actually is what we want.

Sorry, I’ve been busy with other things , once I get time I will take a look , as it’s possible I’ve missed a ‘gotcha’ that your hitting.

Unfortunately with pd is pretty bad at ‘namespaces’ , and sometimes fixing is rather dependent on what the patch is doing.
But honestly without looking at the patch, then working out what it’s doing - it’s impossible to say.

1 Like

Cheers, I’ll continue experimenting and hopefully i discover the solution and share. If anyone does get a chance to have a look in the meantime - i’d be very pleased.
I’ll have a go at a different conversion too i think, maybe the new c&g one!

I had an idea today - a sidechaining function for dipping one chain/module signal for anothers. Obviously though, beyond my ability!

1 Like

Can you imagine the sonic goodness for vocals by combining CA Filter and DUST?!?

1 Like

well… I couldn’t get the Tape Echo to work when keeping the $0’s… Will look into it later.

… The problem is that the $1 (also for the parameter knobs) does not work in abstraction patches (so in a sample-voice.pd for example). So I have to use global send/receives…!

$1 does work in abstractions, you have to send it in, i usually find it easier to add to the end, so it might not be $1, but $5…
(we need to be careful here, this is ‘standard pd’, so everything thats possible in pd is still possible)

i suggest you look at the 50 odd modules i already did, i think you’ll find i had to cover most situations :wink:


OK. I’ll have to go over the global send/receives I made later then.

For now, I added the tape synth (originally by @Fuurthur, made it polyphonic! sounds great!), lo-fi piano (by @seanearl which uses @Henrik’s samples) and warbly ukelele (by @seanearl).

The Chorder module now also accepts note input to advance to the next chord.



Amazing contributions! Do know if it’d be possible to re-mono the tape synth module for another version? I love the voice stealing/glide sound on this track and immediately thought of tape synth when i heard it - but i couldn’t ever figure out how to make it the ‘right’ kind of mono to get the sound.

1 Like

I have a question, where does the note input come from? External midi?