Orac 2.0 for the Raspberry PI

nothing wrong…
this is why i’m going to do a getting started video - as I realised Ive not really explained how to setup a rack :laughing: and by default its completely empty

(ok,not quite empty, if you go thru the modules (top arrows), you’ll see that actually the router module, and clock module are present…)

anyway, super quick
whilst on module a1, in the bottom panel, where its say a1:empty ,
select it (big arrow pointing right) - then the module list will come up…
you’ll want a synth, so go to the top, to get out of the ‘utility’ category, and then go to synth category, and grab a synth.
then if you plug in a midi controller, and press some keys, it should make a noise :slight_smile:

loopop did a good overview video of this for orac 1.0 on the organelle, but the principles of module slots is the same - so perhaps worth checking that out.

(he explains, modules, module slots and chains - and you’ll see the lemur interface looks quite similar to the organelle really)

after that my overview of 2.0 will probably make a bit more sense.


but as I say, probably at the weekend, I’ll film a getting started video, which’ll focus on how to build a rack on the remote interface.

3 Likes

Oh thanks! I’ve figured it out! It works, and it’s awesome :clap:

2 Likes

@Giedrius @thetechnobear
Still not connecting. This is what I get checking the status of MEC. Any further suggestions?

what are you running the PD client on? windows/macos/Linux?

can you ping patchbox. ? (again note the dot after patchbox)
or ip from that client box?
is this all on one network? your not on a different subnet?
whats the ip of the patchbox reported as? and what is your local machines ip address?
could your router be blocking port 6101?

can you confirm on the patchbox that the IP address it has. check its the same as what your router says it is.

(i think much of this is covered in the post @Giedrius pointed too)

it sounds like you have a more general network issue, as all the PD client does it try to connect to port 6100 on patchbox , which mec has opened (you can see that on the mec logs you posted)

Was running on Windows 10 but tried on the MacMini/Sierra machine and it connected to the IP address - not “patchbox.”
Also pinging “patchbox.” gets an Unknown Host error.
I think one issue may be with my PD install on Windows as i’m getting a bunch of errors in the console. I’ve installed Mr Peach.

OK so some initial thoughts and suggestions based on using PD remote client on OSX.

  1. the module selector reverts too quickly - seems it reverts after about 1 second of no movement - this makes it a little stressful having to quickly choose a module.
  2. if I have a synth in a1 and FX in a2 - then go to FX to edit parameters the MIDI notes stop going to the synth. This doesn’t seem like it how it should ideally work.
  3. I wonder if there is an easier way to reset Modulation - I seem to be constantly accidentally modulating the modulation - nice feature but then it is difficult to unmodulate a parameter :slight_smile:
  4. I’m using a KMI K-Mix connected to the rPi. At the moment it is running the audio out the Master - I presume I will need to edit the patch on the rPi to have it run out different channels. Ideally there would be a module that allows you to select which output you are routing to - not sure how this works on the PD interface.

There’s a world of fun here though - I hope you like lots of feedback! :wink:

routeOSC is part of mrpeach, so looks like it’s not installed properly on your windows box.
( that’s all I installed on my Windows 10 box to get it working)

1 Like
  1. Yeah it’s a trade off , as you need it to return if you decide to not select a new module.
    Once you know the modules it’s doesn’t seem so quick any more :slight_smile:
    Btw if your moving it’s timer is being reset :wink:

  2. You can change this in the router options under main control see my 2.0 overview video

  3. Remove the module being modulated and it will reset, but the targets are not.
    Agreed it’s takes a while to get used to remembering to turn mod learn off ;

  4. You mean you just want to target a different pair of outputs?
    I’d so this is easy, just edit mother.pd
    I’d you mean you want > 2 outputs then this is a matter of creating a specific router which is very easy to do - the trick here is you will probably want different chains to go to different outputs.

I think one of the strengths of Orac is because all the modules are PD it’s easy for users to create new modules to extend it , and hopefully share with community to help others.

1 Like
  1. I’m not sure how this works without the Organelle.

  2. So the K-Mix has 4 outputs: Master / Aux1 / Aux2 / Aux3
    As you say ideally chain A would go out Aux1, Chain B out Aux 2 etc…
    Something like [dac~ 3 4 5 6 7 8]
    I’d already have started fiddling with this but I’m not familiar with the Linux filesystem and am not sure where mother.pd or the router modules are located?

look in PD’s Preferences -> Path… if the path library is listed… sometimes, even if you installed the library via deken is possible that you have to add it to list manually

Good call @SYS2064 - it was a subdirectory of the externals path but adding it as a new path got it going!
Cheers!

2 Likes

the same as organelle, now you have it going, you should see that the organelle screen basically is the same as what your seeing.
(except PD shows both the parameters and menu at the same time)

so as detailed in the overview video
you need to go to Router module (s1)
(just click thru modules at top, or use left/right arrow)
then click thru pages to get to Main Ctrl (or use page up/down)

then you will find Dest, change it to 1 , if you want input to to a1 , rather than active module

as with many things in orac, there are many times when the current behaviour is more desirable,
and also different ways to achieve what you want.
e.g. what I tend to do is:
I use midi channel 16 for the ‘active module’ (also on main ctl page on router)
then I turn on midi input on the particular chains.
e.g. I have midi ch1 = chain 1, ch2 = chain 2

so now, from my midi controller I can target the active module from ch16, and chain 1 and 2 with channel 1 and 2 respectively.

Note: the router settings are saved in the preset, so you can change the behaviour depending upon ‘the patch’.

ok, if thats what you want Id not change mother.pd!

you can create your own specialised router.

everything is located in /usr/local/orac

so what you would do is

mkdir -p ~/media/orac/usermodules/router
cp -R /usr/local/orac/modules/router/parallel ~/media/orac/usermodules/router/kmixrouter

(warning: I did not actually type this on a pi, so might be a typo, but looks ok :wink: )

you now have a new router module called kmixrouter, which is identical to the parallel router.
but you can edit it.

~/media/orac/usermodules/router/kmixrouter now contains a module definition and pd file which does all the routing - open module.pd, you’ll see its pretty straightforward, just a bunch of modules, connected - then sending to a final output. (you’ll want to replace the final output with a [dac~])

using this technique you can not only change where the outputs go, but also change the topology eg. create 3 or 4 chains with different outputs.

I spent quite a bit of time for Orac 2.0 simplifying this process, as its a really powerful way for users to tailor it to their environments… whats the beauty of PD, its easy to modify - so in Orac I try to leverage that as much as possible.

3 Likes

ok, next release this will be user configurable, by changing /usr/local/MEC/osckontrol.json
and adding the ‘menu timeout’ option, as shown below
(default will remain the same)

{
    "mec"  :  {
        "oscdisplay"  :  {
            "listen port" : 6100,
            "menu timeout" : 350
        },

        "kontrol"  :  {
            "listen port" : 6000
        }
    },

    "mec-app"  :  {
        "outputs" : {
            "midi" : {
                "virtual" : 0,
                "voices" : 15,
                "mpe":false,
                "pitchbend range" : 48.0,
                "device" : "Pure Data:0"
            },
            "_console" : {
                "throttle" : 0
            }
        }
    }
}
3 Likes

Awesome! I’ll have a go at it tomorrow. I presume I could feasibly create a selector for multiple inputs as well?

1 Like

Mark, I’m enjoying orac a lot; some observations/questions:

  1. What is the better way to emulate the aux button of the organelle with a normal MIDI controller? I tried with my edirol keyboard by assigning controller 69 to the slider and it sort of works but I feel is not optimal…

  2. Tried your suggestion of enabling a different midi channel per chain and it works beautifully for notes but the aux button is not “forwarded” so to say, I suppose it’s a global setting that works only in the selected module?

  3. Would it be possible to have the remote control on the pisound app? Or alternatively, how can I use android to remote control orac?

  4. Would it make sense to make the remote functions like selecting modules, chains, pages and so on midi controllable? From what I see on the videos on the organelle you have easy navigation with the wooden keyboard and the encoder but on pisound the navigation requires remote control (or I’m missing something?)

I’m looking forward to your getting started video, which I’m sure will be great like the last ones
Thanks for all this and keep up the great work!

4 Likes

yup, everything goes thru the router.

yeah, some controllers allow you to send CC as a toggle/ momentary.
the best solution is a pedal, as its fits quite nicely into how the AUX button actually gets used.
(e.g with my ‘controller’, i can use the sustain pedal to send a CC)

I considered using a ‘note_on’ but that was really clumsy,
if its in normal keyboard range, its gets in the way if you octave shift,
but if it’s not, then is not easily accessible.

so CC was better was it doesn’t interfere with playing …

yeah, thats currently by design…
the issue is , many modules use it, and for different things…

so you might have seq using it for play/recording, but further down the chain overloop which uses it for recording…

its something worth discussing in the community about how we want to handle this going forward,
… Im not a huge fan of the Aux button, but its was in all the patches when I moved them to Orac.

pisound app, thats really a question for blokas,

for me, … and perhaps going forward, the question is also… can the Orac remote app control the PiSound patches… theoretically yes, because its also mec,

as for android support for the Orac,
absolutely it’d be a great idea. the issue is I don’t have one , so I cannot develop one, and frankly I dont know what apps are available on Android

BUT…
partly the reason I made the pure data patch, was to demonstrate how easy it Orac is to control via OSC. (in this so called ‘osc display’ mode)

really the patch is VERY dumb, as the rendering is all done on the rPI,
so you’ll see in the PD patch, it just sends a few messages like ‘cursor up/down’ and display lines that its told to…

so if there is a OSC UI app for android it should be relatively easy to make it work.
but as I say, i just dont know the android world, so cannot suggest one…

but it’d be great to get it working, and if you (or someone else) does, then I’ll happily chuck it in with the other clients if you wish.

yeah, its not midi control thats the difference, its more fundamental …

the Organelle works like this because it has a screen, pots and a keyboard… so its a complete unit.

I want the PI (and eurorack modules) to also be standalone units, that you control via a midi controller - and not to be reliant on a screen.
so in this sense, the idea is to construct the ‘instruments’ , with your phone/computer, then save as presets (switching via program change) - so you can use on standalone without a screen.

of course, Im sure there will be some users (perhaps most , who knows?), that will alway have the phone/computer connected , but thats kind of not the aim.

(Ive seen some requests for a GUI app for Orac, but again, for the moment that concept is not really that interesting to me… if I want to interact with a computer, I’d use my laptop to run Reaktor or VSTs :wink: )

besides, midi mapping a controller is not going to work really well, unless its something like a launchpad/push where the buttons have some kind of logical order. (up/down/left/right)

all that said…
MEC is extendible, so if there was a good case (with enough users to support) for another UI, it could be done like Ive done the Push2 - where it gets UI.

lets see, its early days… perhaps others will have ideas, and its open source, so anyone can contribute.
Ive had a couple of people in the past approach me about writing a ‘web app’, but as yet nothing has happened - but it might do :slight_smile:

1 Like

ok, so got a chance to test this :slight_smile:

yes, I get the same error - but its still worked… well sometimes :wink:

I noticed a few things:
a) the rPI didn’t seem to connect to push on power up, I had to unplug it, and plug it back it before it was listed (aconnect -l)

b) sometimes it appears like its not getting any midi messages
despite mec saying its connected fine, and alsa saying its connected
but restart mec, and then it’ll work ok.

I wanted to get a midi dump to see what was going on, but found it cannot grab the midi port because its always in use (even if mec is stopped)
which brings me to one thing thats always been a bid odd with patchbox (at least i don’t understand)
everything seems to be connected to 129:0 , what is this? its not listed in aconnect -l

client 0: 'System' [type=kernel]
    0 'Timer           '
    1 'Announce        '
	Connecting To: 129:0
client 14: 'Midi Through' [type=kernel]
    0 'Midi Through Port-0'
	Connecting To: 129:0[real:0]
	Connected From: 129:0
client 20: 'pisound' [type=kernel,card=1]
    0 'pisound MIDI PS-39YDPH2'
	Connecting To: 129:0[real:0], 133:0
	Connected From: 129:0, 133:1
client 24: 'Ableton Push 2' [type=kernel,card=2]
    0 'Ableton Push 2 MIDI 1'
	Connecting To: 129:0[real:0], 130:0
	Connected From: 129:0, 131:0[real:0]
    1 'Ableton Push 2 MIDI 2'
	Connecting To: 129:0[real:0]
	Connected From: 129:0

this is with nothing really running - I even stopped amidiauto so its not that…
its if there is some virtual connection lurking around ,
which Id love to stop to ‘remove it from my enquiries’ :wink: )
(Ive not seen this on other pi distros including raspbian)

so not quite sure… as I said, initially its seemed ok…
but a bit concerned, that I could get into a state where midi messages were going missing.

1 Like

Thanks Mark for your hard work. I have configured everything apparently fine on two occasions, but for whatever reason it doesn´t sound. MEC and Jack are running correctly, and I connect well with the Pd client. Any ideas?

Thanks in advance

the rack is pretty ‘empty’ for its init patch , you will need to select a synth module in a1

see this post

I had done it too. I have even looked the gain in the serial module. Everything seems fine, is strange. I have connected a usb and midi controller I have been able to assign parameters with the midi learn. Thanks and regards