13 ms·
A low latency guitar effects processor suitable for running on a Raspberry Pi
- rtatay 4y agoThis is really cool. I may have missed it (am on my phone and just skimmed the readme) but what effects are available and can you build your own?
- tecleandor 4y agoSeems like there are already a couple dozen pedals defined, and you can define your own using the Q framework... https://github.com/Quinny/GuitarEffects/tree/master/pedals https://github.com/Quinny/GuitarEffects/tree/master/pedals
- silveira 4y agoAny samples or videos of this working? I would like to have a feeling of the latency and how the effects sound.
- tecleandor 4y agoThere's a two years old small video on reddit... https://www.reddit.com/r/raspberry_pi/comments/p0jkb3/guitar_pedalboard_powered_by_a_pi4/ https://www.reddit.com/r/raspberry_pi/comments/p0jkb3/guitar...
- dontbesquare 4y agoThis looks very promising. I'm interested in how to make effects and learn more about it. What a cool project!
- woudsma 4y agoVery cool, I've ordered a Raspberry Pi touchscreen this weekend and it should arrive today. I want to make a MIDI sequencer with it, or at least play with the idea. I hope my old Raspberry Pi can work with MIDI (over USB) without too much latency..
- mr_sturd 4y agoI've seen it done with the Pico, where it acts as a midi device when plugged in to a host machine; not so sure about the main boards.
- zamnos 4y agoThe pi zero hardware supports gadget mode and from there it's a bit more work to get it to enumerate as a midi device. The pi 4 supports this via the usb-c port. https://raspberrypi.stackexchange.com/questions/71613/how-to-use-raspberry-pi-3-as-a-usb-gadget https://raspberrypi.stackexchange.com/questions/71613/how-to...
- H1Supreme 4y agoDepends on how you want to utilize it. If you want to connect it to a computer as a MIDI device, you'll have to use an Rpi4 or one of the Pi Zero's. The Pi's < 4 can't go into "gadget mode". I bought a new v4 for this exact reason. The RtMidi library is probably your best bet for getting started. I found the ALSA library to suit my workflow a bit better, but the setup is pretty obtuse. RtMidi is much more user friendly in that regard. Also, look into implementing the Ableton Link library. It runs over your network, and is honestly astounding how well it sync's devices.
- riceart 4y agoCan you readily get an rpi4 anywhere? The Odroid C4 you can actually get is an alternative with 4 USB ports and an OTG that is gadget capable. Unlike older models, mainline Linux support is decent.
- woudsma 4y agoIdeally I'd sync it with Ableton's clock. I'm using Ableton only for tempo and multitrack recording. Maybe this is achievable without the RPi being a MIDI device? Sending messages over the network, like GuitarEffects which uses WebSockets. My RPi 2 doesn't support gadget mode (I should probably start looking for a RPi 4). I'm currently using an Elektron Digitakt to sequence my analog gear - it's great - but unfortunately the DT is limited to 8 MIDI tracks with only 1 LFO per MIDI track to automate MIDI CC data. I'd love a Cirklon Sequentix but the waitlist is just too long (3 years atm, arghh). I wonder if I can hook up something like a Midiface 16x16 (https://miditech.de/en/portfolio/midiface-16x16/ https://miditech.de/en/portfolio/midiface-16x16/) to the RPi. The Midiface is Class Compliant so maybe the RPi can use it natively..(?) I'm a bit worried about performance though. Thanks for your suggestions, I'm going to look into them!
- sklarsa 4y ago> Note that since the server program exposes an HTTP server you can actually navigate to the IP address of your PI from any device connected to the same wifi and control your pedal chain from there. That's a killer feature for me, hiding at the end of the README. I have a Fractal Audio FM3[0] at home, and the only way I edit my patches is using their editing software over a USB connection to the device. Adding the ability to program (and even control) my patches live over any wifi-enabled device is even cooler! [0] - https://www.fractalaudio.com/fm3/ https://www.fractalaudio.com/fm3/
- obituary_latte 4y agoAlways hear about the Fractal Axe FXIII--seems like the gold standard in guitar FX. Didn't realize they had smaller, non-rack-mount form factor devices. Very interested in trying out the FM3 now that you brought it to my attention. Thanks!!
- tecleandor 4y agoThe Mod Dwarf (and its predecessors) also allows web control and it supports standard LV2 plugins :) https://mod.audio/dwarf/ https://mod.audio/dwarf/ https://wiki.mod.audio/wiki/LV2 https://wiki.mod.audio/wiki/LV2
- Blackthorn 4y agoThe first site is remarkably brief about its actual capabilities. Is there somewhere with more information about it?
- tecleandor 4y agoSimplifying a bit: It's a pedalboard with a Linux SBC inside where you can load LV2 plugins and chain and route them as you wish. It has a sleek web interface for management and some short of "pedal store". Like an advanced multieffects pedalboard. Originally the MOD devices where crowdfounded. There's a small introduction video: https://www.youtube.com/watch?v=5USQ7BsZ054 https://www.youtube.com/watch?v=5USQ7BsZ054 And Modep (as @tcrenshaw wrote in another comment) this is a MOD emulator for Raspberry pi, just in case you want to play with it: https://blokas.io/modep/ https://blokas.io/modep/
- DeathArrow 4y agoI thought is hard to have low latency audio in Linux with stuff like PulseAudio.
- tsegratis 4y agoPossible with jackd etc I switched to BSD and got much better latency on the same hardware But I think that was the alsa -> BSD oss driver swap, which is possible on linux too. I had just never tried it, since I assumed linux was best (I'm only sharing this cus i think its interesting, and may help you get good latency)
- tsegratis 4y agoI'm enjoying the downvotes :) Was anything I said wrong? Seriously, I've spent a long time fixing up low latency audio jackd + OSS on whatever OS u like is not bad advice fyi
- Shared404 4y agoI honestly have no idea. Personally I'm very happy to see that info as I do use both Linux and *BSD and wouldn't have ever tried setting up BSD for audio until now.
- giva 4y agoBSD has in-kernel audio mixing, IIRC.
- officeplant 4y agoI've begun tinkering with GhostBSD lately just to learn more about BSD. Pleasantly surprised to find a lot of familiar linux audio tools were ported or can be easily made to work. Also happy that my ancient Presonus AudioboxUSB works fine in BSD. So much so that I get less random audio glitches than I do under windows 10.
- tecleandor 4y agoThe RTAudio tools this is based on allows different backends to be configured. I guess you could use Alsa or Jack if you want... https://github.com/thestk/rtaudio/blob/master/install.txt https://github.com/thestk/rtaudio/blob/master/install.txt
- metmac 4y agoWhile not a guitar effects box another project that does low latency audio things with an RPI at it’s core: https://monome.org/docs/norns/ https://monome.org/docs/norns/ Open source version: https://monome.org/docs/norns/shield/ https://monome.org/docs/norns/shield/
- jnovek 4y agoThis is a neat little box, but pre-soldered ones seem to be only available on the used market. There are bare PCBs out there, but I’m not very confident with SMD parts. This is the thing that bums me out with DIY audio: people come up with extraordinary designs, do a limited run and then never (or rarely) make any more.
- rvense 4y agoNorns is made and supported by Monome, and it is very much supposed to be a Product That You Can Buy... except unfortunately it's based on the Compute Module 3, which has been unavailable for a good while. They have been available in small batches occasionally over the last year, and hopefully will be more available soon.
- dhon_ 4y agoSurface mount soldering is not too hard. I can't view the BoM on mobile, but from the photos the soldering looks achievable for someone with experience soldering through hole. Take a look at the document here https://github.com/monome/norns-shield/tree/main/bom https://github.com/monome/norns-shield/tree/main/bom - if it's mostly 0805 sized components you should be fine. Even a few 0603 would be okay if you have good vision and a steady hand.
- grepfru_it 4y ago> people come up with extraordinary designs, do a limited run and then never (or rarely) make any more I never bought a milkymist. There are no more being produced. The design has never been updated for modern formats, such as hdmi. I have no clue how to design hardware.
- rerdavies 4y ago
- digitallyfree 4y agoI'm still patiently waiting for future digital mixing consoles to do all processing in software on inexpensive x86 or ARM processors. Currently due to latency and reliability requirements all DSP work is done on dedicated chips or FPGA which brings up the BOM and engineering cost. They often have a small ARM/Linux module which is used for the displays and network control. The CPU tech is here today, and modern general purpose processors do a good job of handling low-latency audio. Someone just needs to put all that together in a unified and stable package...
- TylerE 4y agoModern CPUs are great if your watt (and thus thermal) profile is unlimited. Not so great when they aren't.
- strangetortoise 4y agoDoes this form a problem for digital mixing consoles? As far as I know, these already have fairly beefy fans for heat exhaust, so I don't know if they couldn't just add more airflow?
- TylerE 4y agoNot especially. I'm more thinking of things that have a potential of being near a live mic, where a cooling fan is a no go, at least without a defeat switch.
- digitallyfree 4y agoModern consoles are plugged into the wall and are large enough for active cooling. For a 1U rack unit they can be cooled with small server fans; noise is not an issue as the amp fans are just as loud and the music will drown them all out anyways.
- londons_explore 4y agoMost processing of audio isn't CPU performance limited... For most realtime audio mixing, it doesn't matter if you use 1 watt or 10 watts for your CPU - the big speakers will easily be drawing far more, and the performers time will be costing far more than the electric bill anyway.
- m12k 4y agoVery nice! A screenshot or two of the web UI would be a good addition to the readme
- shtoyer 4y ago[dead]
- qqqwwweeerrr 4y agoThis is awesome. I'd be really interested to find out if a Raspberry Pi can run an open source amp modeler like NAM (https://github.com/sdatkinson/neural-amp-modeler https://github.com/sdatkinson/neural-amp-modeler).
- woudsma 4y agoI'm not sure if the GPU is powerful enough on the RPi, maybe something like a Jetson Nano could handle running ML models better.
- snarfy 4y ago> A Low Latency Guitar Effects Processor What's the latency? I can't find numbers anywhere.
- worik 4y agoExactly What is the expected latency of those cheap usb devices? I had one that was unusable live. Noticeable latency. Have they gotten better?
- djbusby 4y agoIME it MUST be under 10ms
- LgWoodenBadger 4y agoIME, if you can't find an important quantity like that front¢er in an advertisement, then its value is going to be terrible. Applies to many things related to an advertised product. Things like price, quantity, material, country of origin, standards met, certifications, scores, etc.
- jamesgill 4y agoAs an amateur musician, three things stand out: 1. I'd have a hard time seeing that small screen onstage, and my big foot would likely mash the wrong effects button. Others might find it easier. 2. There are tons of good, cheap effects boxes out there, and easy to find used. I like Pi boxes, but this seems like a homebrew replication of what's on the market. 3. All good boxes are low-latency, in my experience. It's a fundamental thing I think most players need.
- AlecSchueler 4y agoWhat are they? Am I missing a joke here?
- speed_spread 4y agoRegular guitar pedals are cheap and abundant.
- AlecSchueler 4y agoComment was edited after my comment to include the things that stand out, which were previously missing.
- Min0taur 4y agoI agree with both of these observations.
- tasty_freeze 4y ago> I'd have a hard time seeing that small screen onstage, The project is using a 7" (17.7cm) LCD display. The Line6 HX Stomp is very popular and has a 2.4" (6cm) LCD display.
- thealienthing 4y agoYou’re definitely right. I think the draw of all of this is to make it yourself. The same could be said of people who make their own diy home weather stations or web servers. You could always outsource for the same thing that’s better, more frequently updated and probably cheaper when you factor in the time it takes to make. It’s just neat to make the tools that you ordinarily have to dish out catch to get. :)
- ushakov 4y agoReminds me of NeuralPi, which uses ML models to emulate real AMPs https://github.com/GuitarML/NeuralPi https://github.com/GuitarML/NeuralPi
- Min0taur 4y agoThis is a wonderful project, thank you for sharing your process! I'm excited to try making a cute/custom FX brain with this.
- kbr2000 4y agoWell done! For those interested: a predecessor called the "Jesusonic" was once made by Justin Frankel (of Winamp and REAPER fame): https://www.cockos.com/jsfx/ https://www.cockos.com/jsfx/ https://wiki.cockos.com/wiki/index.php/Jesusonic_Documentation https://wiki.cockos.com/wiki/index.php/Jesusonic_Documentati... :)
- honkycat 4y agoI've had some amazing ( horrible ) adventures in low latency music stuff lately. It has made me think about going back to the hardware side of music production. Previously I was an ableton-only dude. All of the vst plugins are CPU bound and even though i have a top of the line i7 and 32 gigs of ram, my computer slows to a crawl when editing even moderate sized songs. Specifically, there is an nvidia bug that introduces latency to real time audio, making guitar and other live performance unplayable. It really sucks! At least it has finally been ack'd (Increase in DPC latency observed in Latencymon [3952556]): https://us.download.nvidia.com/Windows/531.18/531.18-win11-win10-release-notes.pdf https://us.download.nvidia.com/Windows/531.18/531.18-win11-w... This has been a problem for YEARS. Hopefully they will finally fix it.
- jzombie 4y agoI don't know how this compares to your i7, but I dabble around using Pro Tools w/ about 15 or 20 tracks at a time with several effects running in unison, on an M1 Pro processor w/ only 16 gigs RAM, and I typically stay under 20% usage according to Activity Monitor. I mostly play guitar and don't notice the latency in most effect chains that I use.
- honkycat 4y agoYeah it should perform way better than it does currently. There is a driver bug for Nvidia cards that causes it to run slowly and poorly. It is extremely frustrating.
- worik 4y agoIf you are interested in this see https://blokas.io/modep/ https://blokas.io/modep/ Hosting plug-ins is a very powerful way to go.
- chaosprint 4y agohave to compare with Bela when it comes to latency
- 1024core 4y agoI'm guessing the harder part would be actually finding a Pi for this?
- ElijahLynn 4y agoThere is also Pisound for low-latency guitar effect processor which is a hat for the Raspberry Pi. https://blokas.io/pisound/ https://blokas.io/pisound/ The UI, MODEP, is based on the Mod Devices work on their open source pedal (Originally Mod Duo) > https://mod.audio/ https://mod.audio/.
- bobleeswagger 4y agoI bought a PiSound to tinker with the Midi interface a bit, had no idea it was this powerful.
- WorkerBee28474 4y agoFrom my understanding the Line 6 Helix uses two 450MHz SHARC processors, ADSP-21469. Other effect/amp modelers use more or newer of the same family[0]. Can anyone comment about the relative processing power of a RPi vs the market solutions? Is the RPi theoretically good enough that a pedalboard could be completely modelled? [0] Interestingly, it sounds like SHARC chips were designed to be low cost processors for single use applications in guided artillery shells.
- unwind 4y agoAccording to Analog's product page [1] for the ADSP-21469, it delivers 2.7 GFLOPS at 450 MHz. And Wikipedia's page of all the RPi models says that the latest (4B) manages 8 GFLOPS at around 1.8 GHz. If that means that the answer to your question is "yes" or "no" is unfortunately a lot harder to Google and/or figure out. I would assume that the SHARC-based devices run on the metal, whereas most applications for the Raspberry Pi run under Linux, for instance. [1]: https://www.analog.com/en/products/adsp-21469.html#product-overview https://www.analog.com/en/products/adsp-21469.html#product-o... [2]: https://en.wikipedia.org/wiki/Raspberry_Pi#Simplified_Model_B_changelog https://en.wikipedia.org/wiki/Raspberry_Pi#Simplified_Model_... Edit: grammarish.
- renewedrebecca 4y agoI'd love to see one of these Raspberry Pi guitar FX projects run on bare metal or a RTOS instead of Linux.
- prima-facie 4y agoThere's also a real-time version of the Linux kernel which is meant for exactly this type of application.
- rerdavies 4y agoMost of the real-time Linux kernel has been ported into mainline. Mainline is perfectly capable of producing stable low-latency audio, as long as you're running on threads with real-time priority. The real-time kernel provides additional improvements. But it's incredibly difficult to find up-to-date real-time kernels these days.
- rerdavies 4y agoAlso see: https://rerdavies.github.io/pipedal/ https://rerdavies.github.io/pipedal/ which solves the problem with using a bar's Wi-Fi by using Wi-Fi Direct.
- atoav 4y agoNice project, but nonway on earth I am taking anything with a breadboard and jumperwires onto stage — except maybe if I plan to make it part of the performance
- pengaru 4y agoI've found the RPi4B to be somewhat awful for low-latency audio usage. My particular use case is simply playing MP3s read from mmc through an MBox1 on USB. No matter how much irqbalance, isolcpus, taskset magic, it never gets absolutely perfect. It gets better, but there's always spurious delays exhibited as occasional pops and clicks in the audio output. I'm hopeful that [0] will improve the situation, but haven't had time to really dig into it let alone build a custom bleeding-edge mainline kernel - which I'm not even sure supports all the Pi4B hardware. It's asinine that an otherwise idle 4Cx1.8Ghz machine can't even play MP3s on a USB MBox1 flawlessly with zero special effort... [0] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=e9c9722220057d19d80478c0edda3fbf237a73f7 https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/lin...
- Diapason 4y agohttps://mod.audio/ https://mod.audio/ (I'm not affiliated - just a long time follower)
- PaulDavisThe1st 4y agoThis should really be at the top of the thread, since it is fundamentally a commercial version of (and which also substantively predates) the project in TFA. Note that most of the technology in a mod is FLOSS (if not all of it).
- jojobas 4y agoWhat is he using for actual audio interface? RPi has something awful onboard and none of the pictures show anything external. USB would add 0.25ms latency just for being USB, best case.
- rerdavies 4y agoRound trip latency for Raspbery Pi 4 USB audio measured using a guitar gable from output to input: https://rerdavies.github.io/pipedal/AudioLatency.html https://rerdavies.github.io/pipedal/AudioLatency.html Stable audio at 3.9ms latency (measured using a loopback cable).
- hendry 4y agoSurprised that a (local) Web call can be considered low latency. Isn’t this why people use grpc etc?
- tastysandwich 4y agoI'm assuming that the Web UI is just for changing settings. The low latency would refer to the latency of the audio input (guitar) being processed and producing a sound. Ideally you want no discernible delay between when you hit a string and when a sound is produced. As for how much delay is considered "acceptable", I'm not going to open that can of worms...
- tastysandwich 4y ago> The root of it is the Transform function which takes an input signal, performs any kind of transformation, and returns an output. All input and output values should remain in the range [-1, 1] otherwise you'll produce some really gnarly popping and cracking. So you have to make all your own effects in code? It would be cool if it connected to something like Guitarix (open source) so you could use existing guitar effects. (Disclaimer: I've never used Guitarix, so it might sound shit) Btw, for anyone who doesn't play guitar, but is interested... Gone are the days of those huge pedal boards and having to buy 30 different pedals. Emulation is getting really really good. You can either buy a multi-effects pedal and use that onstage. Or if you're in the studio, NeuralDSP is software which can emulate basically any sound you're after. It's expensive though, but it sounds better than free alternatives like Amplitube.
- razerbeans 4y agoAs others have mentioned, I think the interesting thing here would be understanding the latency for processing the signal. Anything in the single digit milliseconds would be fantastic! I know at one point I was looking into Raspberry Pi and ended up on Pedal Pi[0], though I couldn't get the parts I needed to make it work. I ended up using Teensy[1] and related audio shields[2] to get things working from a sound/acceptable delay perspective. But being able to get things going on a Pi would probably make more of the advanced input controls much simpler to implement simply from a OS support perspective (like in this project with the WebUI). The UI I'm seeing in this project looks great and it would be cool to potentially see something like kits/preinstalled images roll out for this! [0] - https://www.electrosmash.com/pedal-pi https://www.electrosmash.com/pedal-pi [1] - https://www.pjrc.com/teensy/ https://www.pjrc.com/teensy/ [2] - http://blackaddr.com/products/ http://blackaddr.com/products/
- chestervonwinch 4y agoAlso, the teensy audio library is great! https://www.pjrc.com/teensy/td_libs_Audio.html https://www.pjrc.com/teensy/td_libs_Audio.html
- rerdavies 4y agoStable USB audio with 3.9ms latency is possible (measured using a loopback cable). Not sure if this product manages to achieve that or not. https://rerdavies.github.io/pipedal/AudioLatency.html https://rerdavies.github.io/pipedal/AudioLatency.html
- ghostly_s 4y agoSweet, was just looking for something like this the other day. My use-case is not for guitar, but just to offload some fx processing out of a DAW - a friend and I have gotten into jamming recently, and while you can do just about any musical production task these days with a budget laptop and enough patience, where you quickly run into limitations is running multiple realtime effects. I'm not yet serious enough about it to start spending $ on effects pedals (which typically cost hundred of $ each), or even to have a clear enough idea of what pedals I would want, but I know enough about electronics to realize most modern ones are just a glorified arduino with a a 500% markup, so a budget-friendly programmable swiss ay knife pedal would be a dream. For my use-case the touchscreen is entirely unnecessary (programming it via a WebUI sounds more convenient anyway if you don't need to use it sans PC), which is inflating t he BOM by about 500%, and of course RPi4 is a uniquely poor choice of target platform at this particular moment in time, so seeing if it can run on a headless Pi Zero is definitely going on my endless to-do list. ;)
- nick__m 4y agoI use an ESP32-A1S board for that. I use this project https://github.com/pschatzmann/arduino-audio-tools/ https://github.com/pschatzmann/arduino-audio-tools/ and the platformIO vscode plugins. Have a look at this example to see how easy using that library is : https://github.com/pschatzmann/arduino-audio-tools/blob/main/examples/examples-faust/streams-i2s-faust_guitarix-i2s/streams-i2s-faust_guitarix-i2s.ino https://github.com/pschatzmann/arduino-audio-tools/blob/main...
- km3r 4y agoI was thinking about something similar but wondering if you could do it over Ethernet and the VST API with low enough latency to be useful for a DAW. Or if you can figure out a way to make latency less of an issue all together and enable remote VSTs.
- regpertom 4y agoThe 500% markup should also get you reliability and a decent chance that your tech is familiar with it were you ever to be on stage. Look around, everyone uses the same stuff, for the most part.
- 20after4 4y agoLooks a lot like https://mod.audio/dwarf/ https://mod.audio/dwarf/ which I own and love.
- iamsaitam 4y agoA better alternative to the Raspberry Pi which is more suited for musical applications (and currently much cheaper) is the Daisy Seed by Electro-Smith[0]. You can program it in C++ / Pure Data / Arduino and Max/MSP Gen~. The community is very helpful and there are plenty of examples to start with. They also provide a few options to get started with some knobs/buttons. I'm not affiliated with them, just admire the whole ecosystem. [0] - https://www.electro-smith.com/daisy/daisy https://www.electro-smith.com/daisy/daisy
- rerdavies 4y agoBut Pi4 gives you about 400% better CPU performance. And you'll need it for a serious effect chain.
- ciroduran 4y agoNice, I just installed this on a Raspberry Pi 3 with a touch screen I had around. Save for an issue when installing rtaudio (requires libasound2-dev in Debian), it went almost flawlessly. I'm guessing the RPi 3 can't handle realtime audio and graphics, as popping was frequent (although not annoying for the purposes of experimenting). The buttons did nothing, I'm afraid, but the web interface is ace! I'd love to write about this soon. Kudos to the coder