Orac : module developers guide

MIDI CC25 is still there :wink: no need to map Ć­tā€¦ donā€™t know if intended this way; could be fun/creative, to be able to map it freely. @thetechnobear what is your opinion?

1 Like

yeah, I think the original CC mapping are still there, though not checkedā€¦

though Im thinking perhaps the CC for the knobs at least should be removed, as cant see their use makes much senseā€¦ as you need to know what page your on, then you might as well use the organelle or even better midi learn

as for external control, yeah, perhaps thinking about other mappings to functions is a useful thing, especially should program change be used for presets?

also, bare in mind Orac also supports an a whole range of (unpublished ;)) OSC messages, which so everything from midi assignment, preset loading, parameter change - in fact everything, as this is how ā€˜remote controlā€™ for things like the Push2 work.

1 Like

Thanks for insights; yeah difficult choicesā€¦

OSC, I think is the way forward for using an Ipad/Lemur, having access to many parameters and yes remote;-)

1 Like

Just tried out making a submodule, its the chord generation logic from muchord.

I also made a couple variations of variations of other modules I found useful:
punchyl is punchy but the period is up to 64 steps, so you can get much slower changing notes (especially useful to control muchord or another punchy running at a faster rate)

arperopt and gennyopt are modified versions of arper and genny
They both maintain a sorted table of notes currently being held,
which was resorted every time a note changes. With muchord when a new 4 note chord is played it would do the sorting 4 times (and there are another four if the last chord is turned off at the same time) which can cause audio dropouts. These versions wait 5ms after the notes are stable so the sorting will only happen once.

I did have some issues using create_install_package.sh though, when I ran it I got the error message:
mv: failed to preserve ownership for ā€˜U-muchord//manifest.txtā€™: Operation not permitted
And the zop wasnt created.
I think because it tries to ā€˜mvā€™ the files between the usb drive and the organelle filesystem.
I just manually zipped it into the zop so there is no integrity checking on these but they are quite small.
If anyone want to try them out you can grab them here:


Just put them into the folder you have orac in and select install.

3 Likes

No it wonā€™t be filesystems, as I do mine from two different mounts too, itā€™s probabky because the usbstick is fat32 , whereas I use ext4 on another sdcard partition.
Iā€™ll have a look, I donā€™t want users getting confused by two different install procedures - and we are seeing lots of failures on usb sticks (esp the white original) , so verification is really important.

Edit: ah I think your saying you still had the files then just zipped it? Did it have the manifest as well? If so , then itā€™s still a zop, just by a different means :slight_smile:

Punchy I thought Iā€™d alreadyextended it to 64 steps, have you changed the time divisions?

How did you find creating the modules, did my videos miss any steps?

1 Like

I found making the module pretty straightforward! I donā€™t think the videos missed anything. This was a pretty simple module though, Iā€™ll see if I hit anything on a more complex one.

Edit: ah I think your saying you still had the files then just zipped it? Did it have the manifest as well? If so , then itā€™s still a zop, just by a different mean

There are no manifests in those, the script did create it but was giving me an error on installation so I took it out. Just tried it again and it worked, could have been because an old manifest wasnā€™t deleted before the manifest was created. I can include manifests when I put them on patchstorage.

It is a fat32 file system. I think if you replace the mv with a cp and rm it gets rid of that error, Iā€™ve tried that locally and it seems to work:

Also it looks like if I install the same module twice the install goes through but the unzipped directory isnā€™t deleted once it deploys.

Punchy I thought Iā€™d alreadyextended it to 64 steps, have you changed the time divisions?

With punchyl I just increased the range of the punchy_beat parameter and changed the name (originally it was 1-9, I increased it to 64). So it does slower sequencers, not longer ones.

Not uninstalling first was an issue I fixed in os 3.1, Iā€™m guessing your still on 3.0

Yes, that was the case, thank you! It appears the organelleā€™s default midi out channel is 1, and thatā€™s the channel the synth was expecting.

So, Iā€™m working to make a module from the Vocoder RL patch. The keys donā€™t seem to be affecting it in any way.

I removed the USB and reloaded the USB drive. Started Orac, and loaded up the Vocoder RL patch. When I went to look at the code again. I noticed many of the receive and send objects reverted back without the -$1. Is that normal? Any ideas on what I may be doing wrong?

note: i kept the reverb and all of the effects just to make sure i didnā€™t delete anything important my first time around.

No :slight_smile:

the module.pd is a separate file, perhaps you saved the wrong file, or forgot to save it before switching modules?

Double checked. I still had the previous main.pd file. Maybe it was loading it?
I followed the directions side by side while watching your video. Added the -$1 signs where needed. But Iā€™m not seeing a display. Iā€™m also not getting any audio out. Could I upload what I have done in a zip and you look it over? Or should I send the dsp script? Iā€™m going back through watching the video while working on it again to see what or if I missed anything.

Not sure if this helps or not. But this is the prompt the DSP script is giving me.
receive~ outR-m0: no matching send
receive~ outL-m0: no matching send
It says that two more times then
loading definition for m0: modules/F-Vocoder RL/module.json
pack_symbol: wrong type
loaded:Vocoder RL into m0: bang

the videos are not edited, so what I do in them creates working modules, no secret changes made off cam :slight_smile:

Post the zip file with the module.
But make sure itā€™s got the -$1 first, Iā€™ve not got time to make it work, just time to see if something obvious is missing.

1 Like

I appreciate it!

Vocoder RL.zip (30.5 KB)

ok,

  • when mixing InL etc with output from subpatch you want to use +~ , not ~
    (
    ~ will do amplitude modulation :wink: )

  • the hanning window is not quite right, particularly the resize, I think I might have already done this in one of the other modules, perhaps check there? (sorry, id need to fire up the organelle to go check this properly) ā€¦ thatā€™s where you error comes from

  • module ID, donā€™t use spaces. make it F-vocoder-RL, (actually id drop the RL fullstop)

  • similarly, id not put special chars in the paramidā€™s might work, but asking for trouble :wink:

  • KontrolModule, wrong name , its not U-vocoder RL, it should be F-vocoder-RL (see above) , this is why its not displaying anything

  • [pd latch] needs some work

  • n_tune, should probably be just a float, and in the patch you can just do [r n_tune-$1]-> [ / 100 ] ? (currently looks a bit odd) but id have to go check the original patch, to see what you intended hereā€¦ is is suppose to be cents, +/- 1 oct

apart from that, yeah ditch the reverb, this is F-reverb anyway, so user can use if they want, or select another.

but its pretty close, I think the hanning is the bit might have you scratching your head :wink:

3 Likes

This is such immense help for me. I tried me best to follow the steps. From the other patch. Iā€™m still not sure what commands do what. Still learning as I go. I may have several more questions but really does help me. Seriously canā€™t thank you enough!

2 Likes

Would not getting the hanning-window correct still prevent sound from passing through? I made all the other changes minus the latch. Could that be my issue?
Side note. Honestly, Iā€™d just as soon take the whole thing out since I never felt it really served a purpose.

And for some reason, Iā€™m still not getting a display on the screen. Other than the Latch.
I also removed the RL and made the necessary changes every where else. As well as removed the Reverb.

Currently this is what it looks like. (will attach photo in a moment)

ok, had another quick check of you zip

you have removed all the commas from the lines in the module.json
you have also removed a square bracket and } on the last lines
(go look at one of the other modules)

you have

{
    "name" : "F-Vocoder RL",
    "display" : "Vocoder RL",
    "parameters" :  [ 
        ["pct","n_tune","Tune",-1200,1200,0]
        ["pct","n_squelch","Squelch",0,100,0]
        ["pct","n_wet/dry","Wet/Dry",0,100,0]
        ["pct","n_reverb","Reverb",0,100,0]
    ],
    "pages" : [ 
        ["pg_main","Main",["n_tune","n_squelch","n_wet/dry","n_reverb"]]

you need

{
    "name" : "F-Vocoder RL",
    "display" : "Vocoder RL",
    "parameters" :  [ 
        ["pct","n_tune","Tune",-1200,1200,0],
        ["pct","n_squelch","Squelch",0,100,0],
        ["pct","n_wet/dry","Wet/Dry",0,100,0],
        ["pct","n_reverb","Reverb",0,100,0]
    ],
    "pages" : [ 
        ["pg_main","Main",["n_tune","n_squelch","n_wet/dry","n_reverb"]]
    ]
}

having the hanning window will cause no sound as it basically is there to stop clicking by creating an envelope

you can see in the [pd fft-analysis] where it multiplies it by the inlets
you could just connect the inlets to the next part to avoid this temporarily, to see if you can get the rest working
but I would not remove it for release, as you will be able to hear it, and it looks like it might also affect the fft analysis. (i.e. the clicks would get included in the rfft)

1 Like

Question about parameters. Specifically the ā€œtuningā€ on the Vocoder. If itā€™s not a percentile. And I need to add the +/- 100, what is the command I would use in the object box?

Would it just be + 100?

Also, you called it. That hanning-window has me scratching my head raw. Surely Iā€™ll get it at some point though. I keep looking towards the nori sampler for a basic idea.

Sorry to be bombarding you with questions. I just canā€™t find any other resources about making modules.

I knocked up a quick module I wanted - a dead simple probability gate on a midi stream - one setting: percentage chance of note data passing by. Musically this is a good way of adding a quite an organic feel to things I find and I use this technique a lot in my music (and there is a good video of Brian Eno doing the same somewhere ).

I may add parameters - I wondered if having a note range where the probability applies perhapsā€¦

Iā€™m super busy with work but managed to knock this up quickly in gaps between meetings

Once Iā€™ve got a few modules together Iā€™ll put them all in a GitHub repo - presumably with either MIT (my preference) or GPL if necessary

3 Likes

Does anyone know what the $window-size-$1: not enough arguments supplied means?