
I built a amp+cab+effects simulator for guitar on a Raspberry Pi 4B - fivedogit
https://thingamagig.com/story.html
======
irscott
I want to say this looks like a great product. I was very surprised at how
"complete" it seems. I manage one of the most iconic guitar stores in the
world and have been selling gear and generally been a gear head for 15+ years.
Needless to say I was extremely skeptical when I read the title of this
article.

If you can market this and produce it at scale I guarantee you'll sell
millions of these things to the middle of the road guitar center learning to
play guy. That demographic is fucking huge and probably represents 80% of the
guitar based economy.

I would market it that way. I would market this as an easy fuss free interface
for conjuring classic tones to learn and play with your favorite artists. If
possible a Rocksmith style learn along feature would be amazing.

Really impressed with the simple interface, the apparent ease with which you
dial up reasonably good jcm 800 and acoustic type sounds, and how the Alexa
script seems to automatically dial in a tone to match the backing track.

Really well done. If you get it to market hit me up I guarantee I can sell
these things.

~~~
fivedogit
(I asked him to email me, he did, now I've removed the address for spam
reasons.)

~~~
irscott
Nice to meet you. I sent you an email. Let me know how I can help.

~~~
jdshaffer
This just makes me happy. I always love seeing people help others. :-)

------
zwp
Great article, I wish I'd seen the mid-project posting to HN. I was skeptical
about the Alexa integration but that seems to work well.

> ludicrously difficult to set up. Laptop + low-latency Linux + Ardour +
> QLC+...

This resonates [sorry] with me. Linux sound today seems painfully reminiscent
of Linux X-Windows 20 years ago. There's a lot of painful voodoo, competing
control systems and legions of mostly out-dated forum threads of dead-ends,
anecdotal advice, misinformation. I'm hoping that the next Ubuntu Studio will
Just Work on the laptop that I have put aside for it and that I won't have to
waste more time in the Pulse/Alsa/Jack soup.

I was aware of Guitarix but have not yet played with it. My youngest is
learning electric and we've got to the point where we can play together, with
me pounding out the bass line on an old classical we had lying around(!). That
is a blast but I wasn't really intending to become a bassist. If I were to
pick up an electric guitar to fool around on, can Guitarix drop me down an
octave and make me a pretend bass player? (I had a quick poke around the
Guitarix wiki, couldn't see anything). There must be DAW processing plugins to
do this, but I'd really like to be live. Are there other solutions? (apart
from buying more instruments I mean...).

Oh, and I love this:

> So I bought a 3D printer and became a CAD guy, I guess

"I had a hard problem to solve... so I... casually nuked it" :)

~~~
grawprog
>There's a lot of painful voodoo, competing control systems and legions of
mostly out-dated forum threads of dead-ends, anecdotal advice, misinformation.
I'm hoping that the next Ubuntu Studio will Just Work on the laptop that I
have put aside for it and that I won't have to waste more time in the
Pulse/Alsa/Jack soup.

I've had a lot of success using kxstudio

[https://kx.studio/](https://kx.studio/)

Along with cadence to manage Jack and alsa and Catia/Claudia for managing
studios and ladish sessions.

It can be installed on top of an existing Ubuntu based system without much
trouble and after setting it up it works flawlessly for me. I've been using
this setup for a few years now.

>legions of mostly out-dated forum threads of dead-ends, anecdotal advice,
misinformation

I completely agree with this. Any guide that still recommends qjackctl or
manually fucking around with alsa and midi bridges should be completely
disregarded. There's zero reason to need to do this any more and there hasn't
been for at least half a decade now.

It's really too bad, honestly the flexibility offered by Jack and the huge
range of audio software on linux allows for workflows I'd never been able to
do on windows. It's pretty much the entire modular linux philosophy applied to
making music and it's closest i've come to the same kind of workflow you get
with hardware equipment.

Just fiddling around with different plugin routings can give you some pretty
cool sounds that can be patched into any Jack aware software you have.

~~~
aidos
Does anyone have a good guide to understanding the Linux audio ecosystem?

I know Linux fairly well from a server standpoint, but I tried to do some
audio stuff recently and couldn’t make head nor tail of it.

~~~
redis_mlc
FYI: Yamaha's advanced synths (Motif and Montage) are based on real-time
linux.

I bought an MX49 and they include the GPL and a download link.

But if you're expecting a random linux flavor to just work with audio, I don't
know if that's reasonable, since nobody packaged or tested it with that in
mind.

------
utopcell
I have played with guitarix in the past, and having looked at some of its tube
amp simulation code, I have great respect for the amount and quality of work
that has gone into it. That said, in my opinion, its modeling capabilities are
not on par with the main software sims out there.

My portable solution is an Intel Compute Stick coupled with a Vox AmPlug I/O
for 24-bit/48KHz input, powered by a 10Ah powerbank. I use Bias FX 2, but one
could use Amplitube or Helix Native just as easily. I attach these to my strap
and it is completely out of the way when I'm playing. The whole setup on the
hardware side cost me <$130, and in return I get the best modeling software
can provide. It is however a pain to control.

Probably the "cleanest" portable solution would be the Boss Waza Air
headphones. There are no wires at all!, and all modeling is done on the
headphones themselves. At $400, they are on the expensive side though.

If one wanted a small amp, it is probably hard to beat Positive Grid's Spark,
which can now be had for ~$200 and is also voice-controlled (a gimmick if you
ask me). An even cheaper solution would one of Laney's Mini or MiniStack amps,
which hook up to an Android or an iPhone that runs ToneBridge. That's a lot of
effects and modeling for ~$60.

~~~
ChrisAntaki
Thanks for sharing your setup, that sounds awesome! I'm curious, how is the
latency? Also, how are you getting sound out of the compute stick?

~~~
utopcell
At 48KHz the setup can sustain 128-entries buffers, or <3ms. Sound travels at
about 1ft per sec, so this is the equivalent of hearing an amp that is <3 feet
afar. I cannot perceive the latency. The AmPlug I/O has a 3.5mm headphones
port.

~~~
ChrisAntaki
That sounds very cool! Which compute stick do you have, the Intel Atom Z8350?
Also, have you experimented with ways to change effects on the fly?

~~~
utopcell
I used an STK2M364CC. CPU usage never seems to go above 50%. Control is still
a pain, but one way to change effects on the fly is to use rtpMIDI and
TouchDAW on a phone.

~~~
ChrisAntaki
Right on, thanks for sharing your knowledge on this!

------
jkincaid
This is really interesting — thank you for building it. It seems some of the
comments here are living up to HN's reputation. May that prove to be a good
omen, as it has been in the past.

The main thing I'm wondering is whether there's a way to record with this (so
here's my wishlist). Often I'll be practicing along to another song, or just
noodling around, and I'll really wish I had recorded what I just played. Would
be amazing if I could say, "Alexa, record that", or "Alexa, record the last 90
seconds".

Similarly: "Alexa, record this." (and then after X minutes if I forget to stop
the recording / no input is detected Alexa asks if I still want to be
recording).

"Alexa play a metronome at 80 bpm and record this". "Alexa, play the last
track and record a new track" (gotta make this very clear so as not to confuse
overwriting the original vs recording additional layers). Sync the recording
folder w/ Dropbox so it's ready for my DAW. Save two streams: one clean of the
raw guitar (so I can tweak to my heart's delight later), one with the applied
effects.

I'm curious to dig into the tones more; a lot of apps are goodish but don't
quite get it right. S-Gear is the best plugin I've found. Also, I'm a huge fan
of the amPlug 2 line from Vox. $40 for really impressive tones via a battery
powered gadget as big as a few matchboxes. Sounds great hooked up to speakers
and good enough to use in recording. But they don't give you a lot of options
in terms of effects.

Great project! Hope the above is useful — I'll be following along!

------
m0zg
For comparison, here's what the current very best in this field looks like:
[https://www.fractalaudio.com/iii/](https://www.fractalaudio.com/iii/)

$2K (and an absolute steal at this price), high end DSPs, high end
multichannel ADCs/DACs. Thankfully, lots of knobs and buttons, and no Alexa of
any kind. Sounds amazing. I have one.

------
kbr2000
Cool project, well done!

Reminded me also of the Jesusonic [0] FX processor, by Justin Frankel [1] of
Winamp, SHOUTcast, REAPER, ...

[0] [https://www.cockos.com/jsfx/](https://www.cockos.com/jsfx/)

[1] [https://1014.org/](https://1014.org/)

------
sbr464
Check out Bela also for low latency audio.

[https://bela.io/](https://bela.io/)

------
zachrose
I wonder if it would be possible to build a six-item menu selector that worked
by picking up when you tap a string. This would get in the way of alternating
between selecting an amp and trying that amp, but maybe there's some way to
detect when a string has been tapped from behind the bridge?

~~~
fivedogit
I thought about this too. Multiple choice A, B, C, etc... just play the chord.
:)

But that's pretty challenging from an engineering standpoint and Alexa skills
can't be controlled externally yet. I briefly added a footswitch and could get
Thingamagig to cycle through the tones of a particular song with it, but the
Alexa screen won't update on that "outside" information.

Amazon has said they'll consider it but my gut says that's way down the list
of things they're trying to do.

------
Gravityloss
Guitarists like to control their things with their feet so their hands and
mouth stay free. There is a wide array of midi controllers available in pedal
form. Tap with your foot, double tap, hold, scroll with multiple taps etc.
Many artists use them to do the control plane of their effects routing, so
they are rugged and battle tested. Here are some:
[https://customboards.fi/collections/midi-
switching](https://customboards.fi/collections/midi-switching)

------
weej
Thanks for sharing. This is great. I appreciate the additional insight in the
comments on the software behind it for the guitar effects & tones. Kudos on
the experimentation and iterations to meet your needs. Wish I would have seen
this for a potential DIY project before I went in on purchasing the SPARK amp
for at home practices and FXs.

~~~
fivedogit
I became aware of Spark a couple of weeks ago. On the one hand, I was
irritated that someone else was on the same "voice-controlled guitar playing"
thread as me, but then (a) it's validating and (b) they're not really going
the same place I am.

Thingamagig understands the underlying composition which means it can automate
tones, loopers, lights, cameras, etc. That need was the genesis of this
project and that's where its going. Everybody else (including Spark, Fender
Play) seems to think the playalong is the end goal, which is why they short
circuit the hard work of building the composition library by integrating
Spotify or whatever.

Maybe they're right. Maybe I'm right. Maybe we're both right. We'll see, I
guess.

------
pm
I've seen the Spark ads popping up in social media for the last couple of
weeks, and while it's not really my thing in terms of guitar playing (I prefer
restricting my pedalboard), I can appreciate the effort going into a product
like this, especially as a software engineer.

How much work have you put into this so far?

~~~
fivedogit
July 21st was when I had the "ok I have to pursue this for real" moment and
it's been 24/7 coding and tinkering since then. I really need to go for a walk
or something.

~~~
pm
That's a fair amount of tinkering time. Go for a walk, and enjoy the
milestone. I'll check this out sometime soon.

------
yummypaint
People interested in trying out this kind of thing should also check out
vcvrack. Its a free fully featured modular synthesizer system, also very easy
to set up. It should be possible to run it on a pi, though i havent tried that
personally. It also has excelent midi integration, so one could try to
reproduce some of the hands free control with a program that does voice
recognition and supports a virtual midi interface.

------
thdrdt
For those who like this: it also reminds me of a small company that makes
Hooks amps.

The Wizard also include those simulators but the nice thing is it uses analog
knobs. But you can program presets and the knobs will move back to the preset
settings.

[http://www.hookamps.com/phone/wizard.html](http://www.hookamps.com/phone/wizard.html)

------
ricardobeat
Awesome project! I was really hoping to read about the amp/cab simulator and
effects running on the Rasperry Pi as the title mentions, but the software
side is entirely missing from the story.

Note that from a cursory look at the links, there hasn't been updates since
2018, and the KS project never launched.

~~~
donquichotte
Looks like he used Ardour [1] and Guitarix [2].

I am curious about the latency of this setup, having used jack and Ardour in
the past for recording. I would be very surprised if this rig yields a latency
below a couple dozen milliseconds, which, at least for me, is absolutely
unbearable when playing guitar.

Even with a dedicated DSP, effects processors in the early 2000's (like the
otherwise excellent Vox TonelabSE) greatly struggled with latency issues.

[1] [https://ardour.org/](https://ardour.org/)

[2] [https://guitarix.org/](https://guitarix.org/)

~~~
willis936
Thanks for this. DSPs that accurately simulate hardware are not as trivial as
one might initially think. I've done some thinking on this front, and the DSP
based approaches that simulate hardware are likely making many shortcuts. Take
a zener limiter circuit for example. You could just rail samples with an
amplitude comparison, but that's a bad sound. So what I think most limiter
DSPs do is apply a shaping filter to that. It's an approximation, but not
really capturing the characterization of the circuit. The simplest way to get
an accurate response is with SPICE simulation. I'd love to see a DSP that
specialized in realtime SPICE simulation. Failing that, you have to sit down
and do the math for each circuit yourself to establish the relationships
between component values and signals, then code that into your DSP. It's not
an unreasonably large amount of work, but judging from the people I think are
selling audio software, I would be shocked if anyone is actually doing that.

------
ChrisAntaki
Thanks for building this! Also, great performance of Still Remains. I'm
looking forward to checking out the Kickstarter. Any chance you could add
support for Google Assistant?

------
StavrosK
This looks impressive, but I'm most curious about the Alexa integration. How
do you do that without having to say "ask <app name> to <x>" every time?

~~~
ricardobeat
In the video at the end of the page that is exactly how it works: 'Alexa, ask
Nexus to open Back in Black by AC/DC'.

~~~
fivedogit
He's making a subtle point here. There's

"do x"

vs

"Alexa, do x"

vs

"Alexa, ask AppName to do x"

The first is when the skill does a thing and then immediately starts listening
again. The blue bar is already there and you don't need to say "Alexa".

The second is when the skill is still open but not currently listening. Takes
a bit of hackery to keep the skill from constantly closing, namely, long-
running APL commands.

The third is when the skill is closed and you're trying to get it to do
something. I call this "deep launching" but it almost never works. Amazon has
built an amazing system here, but the Alexa system needs work on recognizing
skill names for deep launching.

