If computers are compact and $25, we’re talking a very different world of music hardware.

Armed with the popular Raspberry Pi, Servando Barreiro has made an incredibly-affordable, ultimately-customizable rig with free software and the open source community. Oh, and he’s made the KORG monotron polyphonic – after a fashion. See video at top for some beautiful chords.

And that’s just the beginning. We’ll let Servando share how he’s working.

Brains of the beast: the Raspberry Pi, best known of a new generation of computer boards that are cheap, low-power, and small - meaning a computer onstage could look less like a laptop, and more like a stompbox.

Brains of the beast: the Raspberry Pi, best known of a new generation of computer boards that are cheap, low-power, and small – meaning a computer onstage could look less like a laptop, and more like a stompbox.

I just got my hands recently on Pi. It was in a workshop at Linux Audio Conference in Graz, Austria, where I got mine.

Before, the fact that you needed an external monitor and keyboard and so on was a bit of a deal breaker, so I didn’t run for it when it came out. Also, I knew that the speed [of the hardware] was going to increase, so my waiting period was worth it.

The distro I’m using here is called . It’s basically a fork of the classic Raspbian distribution, but it comes with Pd extended / Vanilla included and also other stuff like Arduino software, Audacity , SuperCollider [synthesis language], and many more.

The cool thing about this distro is that it’s made to design an audio instrument with physical control (using Arduino) and make it autonomous. So, once you’ve finished programming your instrument in Pure Data, the result will be a screen-less audio computer/instrument in which you will not miss having a keyboard or screen. In case I need to update or change something, I still don’t need keyboard/ screen. I just plug my laptop to the Raspi via Ethernet and I log in via ssh [secure terminal]. This is super-sweet and currently very well-supported and documented in most of the Raspi distros.

The original audio settings in Satellite CCRMA were quite modest (22.05 k audio / 100 msec) because they assume that you will use integrated audio, which is quite bad. But Googling a bit about audio in Raspi, I discovered that using an external USB soundcard — even a super-cheap one — makes a huge diference. (44.100 kHz audio and as little as 10-msec audio latency. This uses a strange trick, reducing the speed of USB to USB 1.1 (This is all well-documented in the Pure Data / Raspberry forums.

What it’s running in this videos is a four-instance delay line looper , an audio mixer with delay and reverb sends (Pd’s rev4~ reverb). I can also apply ring mod, bit crush, or lowpass filtering to the audio input. At some point, I had an FM synth in one of the channels that could be recorded in any of the loopers, but occasionally, it produced a harsh noise as a “gentle” (it’s actually f***ing harsh) reminder that I was running out of computing power.

Overclocking:
Yes, please. I’m running the raspi-config overclock at 800 mhz tagged as “high.” I ran it at some point at 1Ghz without issues, but reading about SD card corruption, I decided to back of a bit. Does it make a difference? Yes, esspecially in boot time, which must be like 30 seconds, since I plugged the power of the Raspi until I see the lights in the MIDI controller indicating that everything is ready to rock.

Mapping the Korg nanoKONTROL:
The faders are volume controls: the first four are looper volumes, then reverb, delay, FX input and dry input.

The buttons record or delete the loops in each track. The upper buttons light depending on which is the last channel. I touch the buttons in channel 7, allowing me momentary or continuous alteration of the sound via the selected effects. (It can be the 3 at the same time! O-o)

The buttons on the left of the controller determine the function assigned to the pots, so I can modify per-channel things like rev send, delay send, loop length, panorama, gain, reverb length, etc.

This is basically what I did as a “screenless” audio experiment, which I think is quite finished.

The first patch I opened in Raspi that convinced me of its power is the “serquencer,” which runs okay with 6 channels of sampler, mixer, recorder, and 4 FX. I didn’t expect it to open, but it did! And it made sound, too. I was expecting to port it to iOS/Android, but I know already many of the things I use rely on Pd extended and oh, surprise, it runs on raspi with all its glory, and even with GEM visuals. [Ed.: Pd extended is a distribution of Pd that includes various externals, including GEM, a set of visual objects for working in Pd with output to screens and not only sound. It's roughly - though not exactly - equivalent to the relationship of Jitter to Max/MSP. Pd Vanilla is the generic, default distribution as maintained by Miller Puckette, which is also the basis of the library libpd. You might use Vanilla in order to maintain compatibility with projects built with libpd in Unity game engine, OpenFrameworks, iOS, Android, and so on, but otherwise either Pd "flavor" will work just fine on the Raspberry Pi. -PK]

More videos, more beautiful sounds:

  • Nathanaël

    Another nice trick if you want to avoid sharing your network connection is to buy a USB to TTL cable: http://www.adafruit.com/products/954

    The thing I really like about this cable is that it also powers the pi, so you only need to use a single cable to power the pi and get a terminal prompt.

  • AutoStatic

    Why this focus on Pd and SuperCollider? JACK runs quite well on the RPi so you can use it in a much broader context.

    • servand

      what would you suggest?

    • AutoStatic

      Virtual guitar amp: http://www.youtube.com/watch?v=zzemdS4s8kk
      Synthesizer: http://www.youtube.com/watch?v=Pycl9Oi1tv8
      Drum machine: http://www.youtube.com/watch?v=xkFlG8R0mWc

      So guitarix, amSynth and drumkv1 respectively. Guess these examples can be achieved with Pd/SuperCollider too but creating a virtual amp will be quite a challenge, especially the amp modeling part.

    • raja

      If something is a challenge, all the more reason to try it.

      “Why this focus on PD and SuperCollider?”
      Because they are amazing. (The smartest and most polite thing to do would be to just mention Jack and not attempt some smarmy detraction from PD and SuperCollider. ;D)

    • murray

      No, let’s detract! PD and SuperCollider, in their quest to be nice and safe little sandbox-playgrounds add a bit of overhead between you and JACK. If the native JACK (or ALSA) C/C++ API interface was used, could squeeze a bit more power out of the RasPi. It was mentioned that 6 channels working “okay” with PD+JACK, but I’d be curious to see the same performance comparison with only JACK. I’d try it, but I don’t have access to RaspberryPi.

    • http://pkirn.com/ Peter Kirn

      @ba0ecf951fa5796960d49c77b24ca26c:disqus Uh, they do? I don’t believe they do anything of the sort. Pd, for instance, is constrained only by the engine’s block size. Safe little sandbox-playgrounds? Really have no idea what you’re talking about.

    • murray

      It’s overall system load that I’m talking about. Pd’s engine block size has no relevance here. The fewer cpu cycles and kilobytes your overall system is consuming will leave your system more resources for other tasks. You seem to not like my sandbox-playground term for programming environments, please disregard it.

    • murray

      https://github.com/murr/ficus

      This is an in-development JACK client interface for sampling realtime audio implemented in C. It works well on my machines, but a quad-core desktop and i7 laptop don’t provide very good baselines.

      I’d be interested in anyone’s accounts of using this to directly talk to JACK on the Raspberry Pi and how many concurrent audio steams are possible on a any specific Pi hardware config.

    • http://pkirn.com/ Peter Kirn

      Yeah, very cool stuff. I think people are focusing on Pd or SuperCollider because they’re convenient tools those users already use in their work. But yes, these tools will work, too.

  • alonemusic

    Oh man, I have a Raspberry Pi siting around doing nothing.. sadly its the 256mb ram version.. I’d love to put together a compact, ease to use midi synced looper with it.. My EHX 2880 is getting to be quite tempramental..

  • Nathanaël

    @alonemusic:disqus the 256mb version is still quite capable, especially if you don’t boot into the gui…

    • alonemusic

      definitely going to at least give Pure Data a try.. I bought a Pi at launch.. then never really did anything with it. Had no idea Pd was working on it!

  • mat

    you could aggregate several nano controllers and use the pi for midi harware?

    • servandisc

      yep!. and then send through wireless or cable or midi again.. ; )

  • Basso

    This looks awesome! An exactly in line with ideas I have been developing to create a “stomp box” that would either host AU/VST plugins or to build the plugin in PD (like an auto filter with envelope) an port it to a physical external box. Or even even an easy way to build the wavetable synthesizer I’ve been dreaming about! Can anyone post some links for someone to get started in a project like this? I know PD but not PI?

    • serv

      HI!. I’m quite sure the basic implementation of wavetable from the pd help will run in pi. There’s no much to worry about the pi except for the soundcard and the trick..
      It’s like hardware done for pd

  • Servando Barreiro

    code to grab (a bit in pieces..) http://servando.hotglue.me/puredata

    • SG

      Servando – I’ve never heard of Raspberry Pi until a friend shared the link to this page, but I do like making noises in Pro Tools, and I think this look like great fun. I know nothing about programming – how can I go about making this for myself? A lot of the above article is outside my technical knowlege, so a step by step guide would be helpful, does one exist? Or where can I learn some context for this?

    • JS

      Second that! Servando, it would be nice if you could share us how you did it. Thank you very much!

  • magnum

    check out my 80s remixes @ http://magnum1971mixes.blogspot.co.uk/

  • Ulysse

    beautiful! It must be really nice with all the controls from the korg.
    the satellite CCRMA image is a real blessing, i use it with a simple Logitech stereo usb headset audio interface, and sometimes with an ART dual usb pre.
    Here is a crank/microphone looper i made with it:
    http://www.youtube.com/watch?v=HvbZBeEnDLE

  • trotz

    cool project! unfortunately, for somebody unfamiliar with pd it is not possible to understand how any part of the setup is done besides loading the raspian image. it would be nice to have an overview of a) what hardware did you wire up how and b) what did you do on the raspi to make it work. i’m especially interested in the looper/loopz part.

    • trotz

      Nevermind, some reading on the CCRMA website explained the basics. Still have to find out how to do MIDI-Controller mapping.

  • Jonathan

    Nice! What soundcard did you use with it?

    • ser

      imic griffin