Guitar amp and effects pedal built on the Waveshare ESP32-S3-Touch-AMOLED-2.06
github.com159 points by arbayi 3 days ago
159 points by arbayi 3 days ago
I'm totally loving amp modelling and convolution reverb using PiPedal https://rerdavies.github.io/pipedal/
Here is my i5 NUC touchscreen audio cyberdeck running DietPi + PiPedal.
https://bsky.app/profile/spduchamp.bsky.social/post/3mvdt5p7...
This thing is awesome and I'm never wasting money another guitar pedal again.
What is the DAC resolution and sample rate? Delay/jitter? Noise?
What's the cost of something like this? It's just the NUC and the USB Audio Interface? When I play through my Komplete Audio interface and my laptop I (think?) I notice a delay. How would that compare to an off-the-shelf multi-effect modeller? In cost and features/performance.
These have always interested me but not enough to actually do something ;)
The NUC was used and just cost me a replacement fan. USB audio interface was cheap from online classified. The touchscreen was just over a $100 on AliExpress, plus a bunch of cables of various sizes and angles to connect it all.
I've done the bare minimum to get this all going and haven't done any optimizations. Sampling at 48kHz. Load is about 5-6% even with a complex effects chain. I don't notice any latency, but I haven't measured it. Latency isn't an issue for the experimental instrument I play. The electroduochord.
DAC resolution is irrelevant if your analog electronics produce noise in the lowest N bits. This is why I advice against using this as a primary comparison metric between audio interfaces.
Any audio interface with 24 bits has a digital dynamic range of 144 dB. Bad interfaces will have a noise floor of -80 dBm, the theoretical best value you can reach (at room temperature, for an audio band of 20kHz¹) is -131 dBm, interfaces for more than a 1000 Euros can reach around -127.
And this all assumes ideally set gain levels. Since this is rarely always the case in the real world 32 bit interfaces can still make sense, IF you have analog electronics that can deal with the signals to give you some extra headroom on top. But I'd still rather get a 24 bit interface with stellar noise figures, than a mediocre one with 32.
Aside from the proper input Impedance (High Z), the noise figures are probably the single most important thing when selecting a audio interface for guitar applications, especially if you plan to add a ton of gain in software. Of course drivers, latency etc. also need to work, but I have found that even cheap interfaces do a decent job at that nowadays.
¹: note that with bigger bandwidth that number gets worse, so if you record at 192kHz and you don't have analog filters before that cut the frequency band down to audible range you pay for that (proven many times to be inaudible) bandwidth with worse noise figures
> I'm never wasting money another guitar pedal again
I've heard that one before. This one is the last pedal, I swear :-)
Interesting, also sounds great. Any chances it could run on other embedded boards than the Rpi, or it uses some low level hardware stuff not found elsewhere? Also would be nice to be able to operate it from real knobs and buttons.
This is interesting sloproject but in spite of all verbosity I still didn’t parse how do you interface with it when it’s running on intended hw rather than in browser.
It needs a USB audio interface. Looks like USB Audio Class 2 interface is the go. There are a couple specific models listed.
https://github.com/dashersw/coyopedal/blob/main/docs/USB_AUD...
I was wondering how they got any usable latency with esp32. External adc/dac card- okay
Has one been built ? Not clear from the docs
ESP32-S3 is a great USB host. I have a custom version where I use a Daisy Seed 3 as the ADC/DAC (it uses I2S for audio, not USB) that I built with around 4ms total latency. If you turn off the amp model (which is pointless, but) it's around 2.6ms. I also patched the iRig HD X firmware so its analog latency is around 1.2ms, practically achieving the same performance as the custom Daisy Seed 3 interface.
I saw a similar perhaps cooler project before - which tbh I don't fully understand but I saved for when/if I buy an electric guitar.
https://github.com/GuitarML/NeuralPi
I guess it's a neural network that you can play any guitar tone to and it'll emulate the settings and processing stack?
When it comes to neural amp modelling, they pretty much all do the same thing: estimate the amp's input/output behaviour by sending a known test signal through the input and recording the response at the output. The model is then trained to reproduce that relationship. Depending on the system, the test signal may contain sweeps, noise-like signals, impulses, etc.
Back in the olden days, you'd emulate guitar cabinets using multiband EQs and filters, either analog or digital, sculpting the frequency response until it sounded close enough to the real deal. Then people started measuring the cabinet's actual response directly: send a known signal through it, record the result, and derive an impulse response. That IR could then be used with convolution to reproduce the cabinet's filtering accurately. Neural networks came later, mainly to model the nonlinear behaviour of amps and pedals.
That's basically the 15+ year progress we've had in the guitar world.
I’d like this as an open source audio interface that I can flash firmware on. For example the Apollo Twin just keeps charging for plugin upgrades after you buy the hardware.
I'm building one right now :) How much would you be comfortable paying for such a device, given it has a stereo jack input, a stereo jack output, a headphone jack, and a USB-C connection?
I can go up to 500$ assuming it lets me plug in an xlr microphone with 48v phantom power.
700$ would be a stretch, but doable. I need the software ready day 1.
Edit: Do you have an established company? I’d love to work with you on this if possible!
I had assumed that the current rash of these app-configurable devices on e.g. Amazon (Sonicake Pocket Master, Soran Tiny Stomp, Lekato ME-05, M-VAVE Pocket Amp, Strich Pipe Tones etc.), with the Sonicake the progenitor as I understand it, were all based on some sort of hardware platform at least somewhat quite close to this sort of profile, and they all appear to be running one OEM vendor’s software, but this is interesting indeed because of NAM 2.0.
I am in the market for one of these, perhaps I should build this for fun.
They all use underpowered DSP chips from yesteryear. ESP32 is a great platform, and P4 is doing even better. I have a prototype running 2 A2-full profiles, along with 10 other effect blocks, on a P4.
I believe we are starting the age of personalized hardware, and Waveshare & co are doing a great job at bringing affordable, multi-purpose devices our way.
Would love to hear your experiences if you try out this build.
Hi! Great project.
OK so I have a little J&D USB-C guitar cable thing:
https://www.amazon.co.uk/dp/B0CRR6G355
Any idea if this will work? (Notably working on my Mac but not my second generation iPad Pro, which sees it but is confused)
From what I read you need an external interface if you want to use the board. The cable is just passing the audio signal through USB if I'm not mistaken (i.e. no Analog-to-digital conversion happening there--mac doing it for you I guess)
Not clear to me at all, but I just did a bit of a google to follow up on a thought — do you mean your hypothesis is that it's using the USB-C-specific Audio Accessory mode?
I was not aware that the Mac supported Audio Accessory mode. And the blurb for these cables talks about a sampling rate, which suggests there's a DAC in the USB-C connector end.
(Works well on the Mac, anyway — it is too much fun simply plugging my lap steel into my Mac in a way that would have been complete fantasy when I first started playing electric guitars.)
ETA: OK so it's always time to play guitar, and I plugged it into the Mac, which reports:
Product ID: 0x126e
Vendor ID: 0x3302
Version: 0.01
Serial Number: 3302126E250214
Speed: Up to 12 Mb/s
Manufacturer: TTGK Technology
Location ID: 0x14400000 / 1
Current Available (mA): 500
Current Required (mA): 100
Extra Operating Current (mA): 0
Which suggests it's one of these DAC-in-connector boards:https://www.szttgk.com/en/product/conversionaudiomodule.html
It appears as an ordinary USB Audio device in the Sound panel. My likely ignorant surmise as to why it doesn't work on the iPad is that it also presents a (disconnected) output device and this is confusing the iPad. So perhaps it kind of is working but I can never hear it…
The README[1] states that you should connect a usb audio interface to the board, as it runs in host mode
This cable presents as a USB audio interface, is the point I'm getting at.
Thank you! I am surprised it doesn't work with iPad Pro. They don't ship to Germany, otherwise I'd buy one and try. If you have an ESP32-S3 device, I can help you with it if it doesn't work.
Oh I found one on Amazon.de and ordered. Will let you know :)
Sorry — I should have added that there is a variation of this device that (allegedly) does work with the iPad Pro, so if you have time to amend your order…
https://www.amazon.de/6-35mm-Microphone-Recording-Electronic...
I don't know why this one would work and the other not, but my guess will be that this one has a chip that doesn't offer up a disconnected output device as well (which would be my totally uneducated guess as to why my iPad hates the other cable and the Mac, which has switchable output devices, doesn't)
There was an ESP32 board I wanted to try (below) but it looks like it's a 1.8" sibling of the one you are using so maybe I'll just track down the one you're using.
https://thepihut.com/products/esp32-s3-development-board-wit...
Added some info on the chip here:
Of course, what we are missing here is audio output :))) how are we going to listen to it? This S3 board has a tiny speaker, and I think for a demo it will work just fine, but :))
Yes. I just started a comment asking the same. Are there S3 boards with better audio breakouts?
There's an S3 audio board but there's no need, a real guitar interface is a much better option.