Orac 2.0 for the Raspberry PI

This might be a bug - no controls for Seq2

the gui glitch appears to be some PD bug - I’ve seen it too occasionally.
I usually, just grab a fresh copy - as Ive only ever changed the hostname.

no idea why, I don’t resize the panel so its not in my code , its almost like PD loses some info when saving - we could change the background colour to white so you dont see it, but I quite like it the way it is.
(note: you only need to save the PD patch when changing hostnames, after that no reason to change it - i think, it only ever happens if you do save … you could probably also make the main.pd read-only, so PD doesnt corrupt it)

second row of sliders, because Orac supports > 4 ,
but because the Organelle only has 4 parameters on the screen Ive left all modules currently with 4.
what I plan to do, is implement sub pages on Organelle - so we can have 8 or more on the clients

seq2 has no parameters - so is correct - you simply record and playback with aux.
there are a few modules other modules which also don’t have parameters, this is ‘normal’.

I guess that would be OK so long as the hostname doesn’t change however I still cannot connect with “patchbox.” - only the IP address - which is likely to change.

Reading further about Patchbox OS - this is likely because i’m using WiFi rather than the hotspot - which could be a more reliable option for when i’m not at home with my WiFi.

Ahah so this is the click button functionality from the Organelle? CC#69 I think was mentioned above.

ok, i have a extremely dumb question, got my RPi yesterday, installed everything as was shown in video, played a bit with what Blokas is including in Patchbox OS, then i tried to run orac, but this is where it gets confusing for me…should i run main.pd, or mother.pd, or something else? Basically what is noob proof way in starting orac(i’m also very new to linux so yesterday i tired to wrap my head around it a bit), i’m using a usb sound card (will be getting Pi Sound next month) and simple midi keyboard. At the moment i don’t want to use any remote controlling app, i just want to run Orac as it is. Thanks :slight_smile:

@mcnys orac is run as a system service, so if you followed the video it’s probably already running. You can check with the command ‘ps aux | grep pd’; this is what I see on my system:

patch      587 16.3 10.2 162696 97392 ?        SLsl 11:02   0:15 /usr/bin/pd -rt -alsamidi -nogui -audiobuf 4 mother.pd main.pd

The remote app (which is a pd patch you can run on a pc, download it here: https://patchstorage.com/orac-remote-control-patches/ ) is needed to instantiate the modules, because by default are empty. This is going to change I think since @thetechnobear said in the next release there will be a non empty default.

From the remote app you can load modules in the slots, midi-learn parameters, save presets and also save a non empty default patch that is loaded at startup.

I didn’t tried it with a different soundcard than pisound so YMMV

HTH

1 Like

ok, that makes sense. Another question tho, can i control orac on the same raspberry pi that orac is installed in, or must i use another pc/device to control orac?

I didn’t try to control it locally but it should absolutely work fine, just put ‘localhost’ or ‘127.0.0.1’ in the “edit hostname here” message box of the remote control patch

1 Like

@mcnys , so if you follow the instructions in the PI video to install
Orac will be started automatically when it boots

but in this beta its an empty rack so you wont hear anything - next beta (very soon) I’ll have 2 demo racks, one of which will start immediately.
of course… you’ll want to eventually be able to edit your racks, to create your own!

users could also share presets here
(they are saved in /home/patch/data/orac/presets)

presets can be switch using program control messages.

you can, as @emillo says just use the ‘remote client pd’ interface and change it to localhost.
of course, you will need to start x (aka desktop mode) todo this.

also remember you need mec running , so click the button :slight_smile: if your not using a pisound then you should get mec to start when it boots, this can be done by entering the following (once)

sudo systemctl enable mec  
sudo systemctl start mec  

(I think this is in the video… at least it was in one of them)

Ive heard of a couple of others getting this to work, though performance may not be what you expect esp. if you also run X.

you might need to alter the parameters that PD runs with e.g. buffer sizes
to do this you will need to edit (as root)

/etc/systemd/system/mec.service - and edit the PD line

then run
sudo systemctl daemon-reload

(this tells systemd you edited the file, and to reload it)

and do
sudo systemctl restart mec
(which will restart mec, so PD is run again with your new options)

sorry, I dont have any recommendations for what to change the buffer size etc, as its pretty dependant on your soundcard - I guess a bit of googlefu might be needed :wink:

ok, thanks to both of you, i think i’ll figure this out :slight_smile:

we have improved this step a bit. update patchbox-cli running patchbox update command in a terminal window and then repeat the module activation process via patchbox module config. now you will be asked if you want to start the mec.service. :wink:

1 Like

ok, i’m getting closer :slight_smile: now the problem is that i can only see two modules in the list, note repeat and midi out, i’m probably doing something wrong :slight_smile:

you should go up in the list and all the sections in which it is divided will appear

i feel stupid hehe, thank you, works now!

Ok so I have orac up and running (PD windows remote client ) but I have no modules! Can anybody suggest a repo with a number of modules suitable for use with orac and pi?

The modules are all installed with it.
( I’d have shown in the video if they weren’t ;))

Have you gone to the top of the module list , there are then two digits (…) to take you up a level to the categories above utility

I’ve shot a video to walk thru all this, plan to release that along with update beta in next couple of days.

Is there any specific reason that patchbox / orac should not work at all (disregarding performance issues) on a Pi Zero W or is there something seriously wrong with my setup? PD crashes consistently here whenever I try to start either Orac or MEC.

I copied the current patchbox image to an SD card yesterday evening and basically only connected to my access point, added the overlay for my audio HAT (JustBoom Amp Zero) to /boot/config.txt, installed patchbox-cli as per the instructions in the video and finally installed Orac with patchbox-config.

Both Orac and MEC then enter an endless loop where systemd tries to start them every few seconds, but they crash immediately. To find out what happens, I tried to start main.pd and mother.pd manually: pd crashes with an ‘illegal instruction’. To further narrow down the problem, I installed only the Mi4Pd externals and tried to add a single ‘brds~’ object: crash, illegal instruction. As this points to incompatible or corrupted libraries, I cloned Mi4Pd from github, compiled these modules and tried again with my freshly-compiled modules: crash, illegal instruction. Just to have this covered, I also tried updating all packages (apt update, apt upgrade). No change.

Pd itself as well as the audio environment seem to work; I managed to open a few examples and also got sound from the JustBoom amp via Jack.

Unfortunately, all my spare ‘regular size’ Pis are on the site of a current project, so I cannot just test one of these. Ideas that I will try tonight:

  • Reinstall everything from scratch and make sure there’s no memory card corruption going on (maybe also get a new SD card just to be sure)
  • Start with a plain Raspian instead of patchbox, try to compile a current PD myself (that will probably take quite some time on the Zero), compile the Mi4Pd externals (I’m mainly interested in these; patchbox/orac just seemed to be the least-effort way to install them) and test again.

Any further ideas?

Sorry no haven’t… I made the false presumption I had to source modules myself …pre installed modules are great now i don’t have to worrying about externals etc. Thanks again Mark

1 Like

I compile everything optimised for Arm7 (which is optimal for Rpi2/3) - you’d need to recompile for arm6 I believe. (sorry dont have a PI zero to try)

I use cmake, and pretty much the same one for each of my projects, so you just need to change this bit

if (APPLE)
        set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DTEST") 
elseif (UNIX)
    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC") 
    if (${CMAKE_SYSTEM_PROCESSOR} MATCHES "^arm")
        if (BELA)
            message(STATUS "BELA optimized")
            set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -march=armv7-a -mtune=cortex-a8 -mfloat-abi=hard -mfpu=neon -ftree-vectorize --fast-math")
        else ()
            set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -march=armv7-a -mfpu=vfpv3 -mfloat-abi=hard")
        endif (BELA)
    else ()
        set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DTEST") 
    endif ()
elseif(WIN32)
    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DTEST")
    set(PD_CMAKE_PATH C:/Program\ Files\ \(x86\)/Pd/bin)
endif (APPLE)

in particularly the non-bela variant sp

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -march=armv7-a -mfpu=vfpv3 -mfloat-abi=hard")

you could also probably just remove the flags initially to get it to work - then figure out optimisations later.
id recommend a bit of googlefu to find out the optimal flags for the pi zero. [this] seems like a good starting point.
sorry, its not viable for me to do this, as I’ve not got a pizero (or rpi1) to try on, and I’m already compiling for so many platforms already - and its really time consuming.

1 Like

Thanks a lot, I got the Mi4Pd modules working on my Zero! For reference, I used

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mcpu=arm1176jzf-s -mfpu=vfp)

as compiler flags. A single brds~ takes about 20% CPU in top – that’s perfectly fine for my application.

And no worries, I understand that the Pi Zero is an edge case and most people will use something more powerful. The pointer to CMakeList.txt was just what I needed.

4 Likes

Beta 2 will be up today
quite a few improvements :slight_smile:

for those having difficulties with midi this is an important update,

also make sure you watch the new getting started video, esp. if you had midi issues.

use patchbox-cli to update

5 Likes