One of the more interesting use cases for the Raspberry Pi is exploiting its DSP capabilities in interesting ways. There’s a lot of horsepower inside the Raspberry Pi, more than enough to do some very interesting things with audio, all while being powered by a small wall wart adapter. [Pierre] over on the Pure Data mailing list has a proof-of-concept working that uses the Raspi as a guitar effects processor. The results are very encouraging – [Pierre] is able to use his Raspi as a delay, pitch shifter, and of course a classic flanger, phaser, and chorus with a latency of about 16 ms.
There are a few steps necessary to get low latency with the Raspi’s audio interface. [Pierre] is running his Pi headless, and allocated more RAM to the CPU.
If you’d like to try this out for yourself, [Pierre] has a tutorial for setting up Pure Data with the Raspberry Pi. He’ll be updating his blog soon with more tutorials and verified USB audio interfaces later.
Check out the processor in action after the break.
[youtube=http://www.youtube.com/watch?v=NwJNeouLqgQ&w=580]
I didn’t think the pi could sample the signal at a high enough rate to be used as an effects processor. Color me impressed.
You are impressed by 1GHz microcomputer being able to sample audio? just wow ….
I see where you’re coming from but Zee also added: “to be used as an effects processor”.
Big difference ;)
Ugh. Get over yourself.
Way to show your ignorance.
I don’t think you showed ignorance at all. If the creator of this project was as much of a defeatist as Zee, then he wouldn’t have done the project.
I know you’re not trying to show off, but just point out what you think is obvious but apparently isn’t to some others on here. Just remember that some of those on here are children and this site has a lot of anti-trolls, which are just as bad as ordinary trolls. If you say anything that isn’t nice, they’ll dogpile you and circle-jerk each other about how politically correct they are and spooge right into your face whether you’re technically right or wrong about anything.
It absolutely was ignorant. People spend ridiculous amounts of money and time on computers that can handle quality reverbs and other such effects in real time. It’s absolutely a complete shock to those of us who are into recording that a CPU equivalent to one of a cell phone can handle such a task at such low latency. I’m 100% excited and impressed by this!
Well said, sir!
After countless “use a Linux box to blink two leds” (or an Arduino to blink one) overkill projects, finally a RasPI project where the hardware is actually used to full potential. Bravo! 16 ms is not bad at all! All the effects he implemented are based on delay(+modulation), if the RasPI would allow the implementation of more complex effects (digital equalizer, cab simulation, distortion ecc.) that would make the RasPI a killer entry level multieffect brain.
Still disliking the RasPI for being mostly closed source though, I hope projects like that one will encourage the demand for comparable alternatives.
This is really cool technically but in my experience 16ms latency is painfully noticeable. Hopefully there’s a way to get the number down even lower, either by optimizing the way the process is handled or by optimizing the algorithms.
16ms is like having your amp 5 meters away from you.
Yes but it’s like when you clap your hands and hear the echo from that wall 5 meters away from you, it’s noticeable.
I disagree that it’s painful though, in my experience anything below 20ms is fine, although the optimal is below 10ms – that’s when it stops being noticeable. <5ms is when it gets totally awesome.
Having your amp 5 meters away is really annoying if you’re the only one in the room and completely awful if you’re trying to play live. And it’s not really like that – the 16ms is before you ever start talking about distance between you and the amp – it’s built into the system. 16ms isn’t impossible to play with, but I find it really obnoxious. In recording sessions it’s been more than enough to cause great players poor performances when mic’d amps worked fine.
As anon says, < 5ms really is the sweet spot.
That said, let's get back to the fact that the hack is sweet and there's potential to do even more with it.
you shoul give a try at cubieboard, they are producing it now http://cubieboard.org/
It does allow for those effects. Equalizer is a very lightweight operation, cab simulation is a short impulse response so also not very intensive and distortion, well, it depends. Native digital distortion should be doable up to a pretty decent degree, but accurate analog modeling is probably going to be a no-go. Quality reverb is most likely also a no-go, although simpler reverbs should work.
Now if the RasPI can simultaneously act as a dubbing looper/sampler, I’d go try and rebuild my big clunky pedal board immediately with these concepts.
I imagine that dirt effects would not take that much cycles.
if wifi is added to the pi, perhaps a nice webinterface for touch could be presented where you could configure the pedalboard and set parameters with a sort of kaospad type of deal.
The idea of rebuilding the guts of a multi-pedal or multi-button effects box using something like this is intriguing considering that just about every music store that has been around for any amount of time should have a few of these laying round that need to be repaired or are just plain old and sucky.
Old crappy multi-FX boxes would at least yield a nice expression pedal although the rest of those plastic boxes are rather fugly most of the time. I like this guys solution which looks like a sturdy console housing. I bet there is room in there for the RasPi itself when he’s done.
Everybody who has even bought Behringer probably has a dead box lying around somewhere!
Oh man recycling a small industrial box or panel with the appropriate switch hardware would also be pretty cool.
Possibilities abound!
This is what I’m working towards. Maybe connected to a Nexus 7 screen off ebay via a HDMI -> LVDS adapter and a bunch of foot switches. I’m trying to work out if the Pi has enough horse power to time stretch 4 tracks of audio to match the beat of the input(s).
I also am thinking of interfacing the Pi with some high end DAC/ADC chips instead of using the consumer quality ones it comes with. 24bit / 48khz etc.
My previous project was an AVR based MIDI controller (Memecode MC1) for the Axefx which was quite successfully but wasn’t really a “product” that would sell, because it’s too niche. I’ve been using aluminum amp chassis as the basis of the pedal board with stomp box momentary switches. Also I’ve got some really nice RGB led rings in production that would work great with a looper (for track volumes etc).
That’s a great use of it. I don’t know yet how much potential the PD approach has; it looks like a lot of overhead to me compared to some minimalistic rt-os (or no os) plus custom software. Anyway, I like this new movement.
rtos would be a step in the right direction, but what would be really sweet is to have an FPGA do the heavy lifting. You want to optimize DSP? Ditch the software ASAP!
This sort of thing?
http://www.astro-designs.com/page14.php
What is he using as the audio input? I couldn’t find details on that in his blog.
He mentions in response to a comment he’s using an Emu 0404 USB interface.
Bravo. Nice job and nice demo.
Pretty cool, i have a similar idea
Another great use for your pi! – I doubt Boss et ell are sh!tting themselves just yet but give it time, give it time…….
Nice!
I have no audio input on my Raspberry ?
How does he feeds the audio in the raspberry, usb sound card ?
USB guitar cable maybe? They are plentiful these days.
Emu 0404 USB interface
Pierre will come this next Pure-Data Patching Circle in Brussels 16th feb. to show and explain this… and we have other experiments to continue with the RasPi…
If you need any DAW like functions (recording, fx processing), there is Nama. It requires Ecasound and Perl. GUI is optional, can be controlled at terminal or via OSC. http://freeshell.de/~bolangi/cgi1/nama.cgi/00home.html
I’m curious as to how hard it would be to turn the pi into a modeling amplifier like the axe fx or kemper. You could connect a guitar with a simple 3.5mm to 1/4 and 3D print a case