11.5.20

Principium 3.0: under the hood 1

follow up on previous preview post..

i'd been chewing on this idea for a long time - i even had a software mockup of this very thing at the 2.1 record presentation, so we're talking at least july 2016. i was running the loops in Ableton, and i wrote a PureData patch that took my midi keyboard input and turned it into volume controls for the Ableton channels over midi.


(i knew i had a pic of that setup somewhere.)

but i always knew i wanted this as a standalone instrument.
now, to bring this to life had its problems - i didn't want to compromise on audio quality, and running a dozen 5-to-10-minute loops is not exactly easy with tapes or anything in the analog domain - let alone portable.
so enter digital.
i tried several platforms - i tried an Axoloti, and i tried a Robertsonics WavTrigger, both of which are awesome in terms of audio quality and ease of use. but alas, while the Axoloti shines at DSP and synths (no, really! check it out.), running 12 stereoloops continuously just isn't its forte. i'm sure i'll find a new use for it soon enough - it was just the right platform for the wrong job, or something like that.
and while the WavTrigger will handle that same wrong job no questions asked, fade in and out times (over midi) are restricted to a 2 second maximum - not nearly slow enough for my purposes (i'm running fade times of over 5 seconds at the moment) and at the other end of the spectrum i had some nasty glitches going below a couple hundred ms attack time, which is no fun for a keyboard instrument. in fairness, it only craps out on the fades - if you tell it to jump to a certain volume it will do so instantly.
i did try ditching the midi altogether and running serial control with an Arduino, calculating my own fades and whatnot. and while i learned a lot, my coding skills are still way below par, the fastest times were still glitching in the end and it all became well frustrating.
again, i'll definitely be using the WavTrigger for other things in the future - the things it does well, it does really really well. but what i wanted from it was a bit beyond its limits, i'm afraid.
i was looking at the Robertsonics Tsunami, because it has multiple outputs that i could route to, but then i'd need two of them and come up with 24 external VCA's or something..

and then someone pointed me towards Bela.
an audio-centered open source platform that runs PureData patches! a light at the end of the tunnel!


well.. in all honesty, it was a dim light and a very long tunnel at first.

i don't know the first thing about linux (Bela sits on a BeagleBone Black, basically a mini linux computer), i had never ssh'd into anything before, and Terminal was an application i had so far only opened by accident. but okay. bite the bullet.
after a bit of a bumpy ride - and a lot of forum support - i got Pd up and running with the externals and libraries i needed installed, and Bela willing to read .wavfiles from an external SDcard which will mount when hot swapped. phew!
after that, it was 'just' Pd. took me a long time, but all in all it was still relatively easy - as i will obviously take Pd over C++ any day of the week. maybe i was just happy to be on more familiar ground again.

sidenote: i never got round to trying a Raspberry Pi, because Bela caught my eye sooner.
the Pi will run Pd patches as well, and seems to be the cheaper board, so it could be a contender.
the focus is definitely not on audio though - as i understand it, you would at least need to add a decent DAC. one pretty interesting piHat i spotted was the Blokas Pisound, but then you end up in the exact price range where Bela sits. and apparently the pisound has a bit higher latency, so no regrets.
the only thing i would really like is for the BBB to boot a bit faster, but ok. their claimed 10 seconds is fast, but not while you're onstage having to reboot because some idiot pulled your plug.