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:

91 responses to “Roll Your Own Looper, Cheap: Raspberry Pi + Pd + KORG monotron Hands-on”

  1. Nathanaël says:

    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.

  2. Nathanaël says:

    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.

    Edit: you also get to see the full boot sequence using this cable which can be handy for debugging.

  3. Nathanaël says:

    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.

    Edit: you also get to see the full boot sequence using this cable which can be handy for debugging.

  4. AutoStatic says:

    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 says:

      what would you suggest?

      • AutoStatic says:

        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 says:

          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 says:

            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.

          • Peter Kirn says:

            @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 says:

            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 says:

            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.

        • Peter Kirn says:

          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.

  5. Guest says:

    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 says:

      what would you suggest?

      • Guest says:

        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 says:

          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 says:

            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.

          • Peter Kirn says:

            @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 says:

            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 says:

            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.

        • Peter Kirn says:

          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.

  6. Guest says:

    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 says:

      what would you suggest?

      • Guest says:

        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 says:

          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 says:

            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.

          • Peter Kirn says:

            @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 says:

            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 says:

            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.

        • Peter Kirn says:

          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.

  7. alonemusic says:

    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..

  8. alonemusic says:

    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..

  9. alonemusic says:

    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..

  10. Nathanaël says:

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

    • alonemusic says:

      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!

  11. Nathanaël says:

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

    • alonemusic says:

      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!

  12. Nathanaël says:

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

    • alonemusic says:

      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!

  13. mat says:

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

  14. mat says:

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

  15. mat says:

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

  16. Basso says:

    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 says:

      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

  17. Basso says:

    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 says:

      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

  18. Basso says:

    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 says:

      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

  19. Servando Barreiro says:

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

    • SG says:

      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?

  20. Servando Barreiro says:

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

    • SG says:

      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?

  21. Servando Barreiro says:

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

    • SG says:

      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?

  22. magnum says:

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

  23. magnum says:

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

  24. Ulysse says:

    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

    • Partyghost says:

      Very nicely done man! I kept waiting for a jack in the box to bust out. Lol. In all seriousness though very cool project.

  25. Ulysse says:

    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

    • Partyghost says:

      Very nicely done man! I kept waiting for a jack in the box to bust out. Lol. In all seriousness though very cool project.

  26. Ulysse says:

    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

    • Partyghost says:

      Very nicely done man! I kept waiting for a jack in the box to bust out. Lol. In all seriousness though very cool project.

  27. trotz says:

    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 says:

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

  28. trotz says:

    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 says:

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

  29. trotz says:

    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 says:

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

  30. Jonathan says:

    Nice! What soundcard did you use with it?

  31. Jonathan says:

    Nice! What soundcard did you use with it?

  32. Jonathan says:

    Nice! What soundcard did you use with it?

  33. Achim Buchweisel says:

    That’s an awesome project! Congratulations!

  34. Achim Buchweisel says:

    That’s an awesome project! Congratulations!

  35. Achim Buchweisel says:

    That’s an awesome project! Congratulations!

  36. Brayden Sorell says:

    Servando – I’ve never observed of Strawberry Pi until a buddy distributed the weblink to this web page, but I do like creating sounds in Pro Resources, and I think this look like excellent fun. I know nothing about development – how can I go about creating this for myself? A lot of the above content is outside my technological knowlege, so a detailed information would be beneficial, does one exist? Or where can I understand some perspective for this?

    iPhone spy without jailbreak

  37. da typo yo says:

    Here’s a juicy typo: “The distro I’m using here is called . It’s basically a fork of the classic Raspbian distribution,”

  38. da typo yo says:

    Here’s a juicy typo: “The distro I’m using here is called . It’s basically a fork of the classic Raspbian distribution,”

  39. da typo yo says:

    Here’s a juicy typo: “The distro I’m using here is called . It’s basically a fork of the classic Raspbian distribution,”

  40. geojay says:

    I’d like to make a hardware sampler with a Pi that loads sample banks from an SD card. Any up-to-date suggestions on hardware to buy and which Pi software I should start with?

  41. geojay says:

    I’d like to make a hardware sampler with a Pi that loads sample banks from an SD card. Any up-to-date suggestions on hardware to buy and which Pi software I should start with?

  42. geojay says:

    I’d like to make a hardware sampler with a Pi that loads sample banks from an SD card. Any up-to-date suggestions on hardware to buy and which Pi software I should start with?

Leave a Reply to da typo yo Cancel reply

Your email address will not be published. Required fields are marked *