This thread is for discussion about developing modules for Orac.
When I created my first patches for the Organelle, I found I spent a frustrating amount of time patching the UI,
and then still lacked featurs I thought end users would ‘expect’ , such as midi control, preset loading/saving.
This really was the starting point for Orac…
I wanted something I could create modules for quickly, without having to worry about the UI, just concentrate on the module functionality,
and get things midi, presets all for free, and I wanted this ‘support’ almost invisible to the module, so you dont have to worry about complex apis etc.
Having now written/converted over 50 modules for Orac, I personally feel Ive achived this, I hope you will too.
Here is a video, which walks you through how to create a module,
p.s. as an example, a few of the C&G patches I converted in about 10 minutes
and a video on how to convert existing organelle patches (in this case Nori Sampler)
Why write a module rather than a standalone patch?
- its quicker
- is musicians get to use your patch in interesting ways, by combining it with other patches
- you can focus on the core functionality, get midi learn, presets, remote control (via osc), cross platform - for free
What is a module?
well it can be anything, including a complete patch.
but the best module (imo) are ones which are focused, e.g. a synth module doesnt need to include a reverb, since the user can include a reverb of their choosing. so if you have a unique sequencer, fx, synth release as separate modules.
not a cpu hog, ok reality is some modules are going to be hungry for CPU, and thats ok… but just be aware if you use 90% cpu, the user is not going to be able to add many other modules. (another reason to split things up)
Distribution of modules
so basically to use a new module, all you need to do is drop it in the Modules directory … so you can release on Patch Storage
in v1.0 be aware re-installing/upgrading Orac will remove custom modueles… Im going to change this in v1.1
Another possibility, will be to include in the ‘factory’ modules for future release,
though they will need to meet a few criteria (e.g. open source, maintainable), we can discuss this later.
ok, so to install nicely the best option is to use the organelle installer package
(this is particularly important for modules with large/more files, since it correctly checks that files are not corrupted)
to do this, we first need a deploy script in the module directory, this is very simple
its called deploy.sh, and can contain as little as:
oscsend localhost 4001 /oled/aux/line/2 s "installing" oscsend localhost 4001 /oled/aux/line/3 s "orac module" cd .. mv $1 orac/modules exit 1
then on the organelle we need to create the zop file, we so this in the modules directory (so above your module directory, so for S-norisample we use
it will report something like
[root@organelle2 modules]# ~/scripts/create_install_package.sh S-norisampler create install package for S-norisampler move existing manifest away adding: S-norisampler/LICENSE.txt (deflated 49%) adding: S-norisampler/deploy.sh (deflated 38%) adding: S-norisampler/manifest.txt (deflated 40%) adding: S-norisampler/module.json (deflated 53%) adding: S-norisampler/module.pd (deflated 68%) adding: S-norisampler/samplervoice.pd (deflated 66%) adding: S-norisampler/sound.wav (deflated 24%)
this will create the file S-norisampler.zop which is what we ‘ship’
for user they then just put this in the same directory as orac (not in the modules directory!), so for most this will be /usbdrive/Patches.
(the reason for this is placing in the orac or modules directory would mean you cannot see it in the Organelle menu to be able to see it)
you can find the S-norisampler example on PatchStorage here