Hacker News new | past | comments | ask | show | jobs | submit login
I built a amp+cab+effects simulator for guitar on a Raspberry Pi 4B (thingamagig.com)
233 points by fivedogit on April 19, 2020 | hide | past | favorite | 66 comments



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.


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


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


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


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" :)


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

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.


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.


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.


What's the problem with qjackctl? What do you recommend instead?


Cadence is used for setting up and managing the audio environment and jack session.

https://kx.studio/Applications:Cadence#Interface

Catia is a much more intuitive and straightforward graphical patchbay.

https://kx.studio/Applications:Catia

Claudia is similar to catia but includes built in LADISH session management.

https://kx.studio/Applications:Claudia


I've tried kxstudio and still struggled. Is it easier to buy a separate audio interface for studio audio, to avoid having to route Pulse/ALSA and JACK into each other?


Guitarix is really, really impressive and I'm eternally grateful, but it is raw. It takes a lot of work to get it to sound the way you want and is inconsistent from sim to sim. However, by having control over the hardware and the sessions (i.e. presets, basically) and totally bypassing the Guitarix GUI, I was able to make it work for this project.

BTW, I'm not using any of guitarix's cab sims. Instead I purchased a commercial license to professionally-shot proprietary cab simulation IRs which make all the difference in terms of tone quality. That metal portion of the demo is all about the cab sims.


What you want to do is possible, but the sound won't be anywhere close and what's more important, you will probably still play as a guitarist, due to smaller scale length and lighter strings.

I know you specifically asked for other options, but everyone reading this: grab a used bass from craigslist or a pawnshop! Something like an older Peavey will do just fine. A decent instrument can be found for a hundred bucks (or less!) and you can always flip it again later.

Any guitarist should fiddle with a bass from time to time. It will make you see the known tunes from the other POV and appreciate some nuances you've never paid attention to.


Or grab a little short scale bass like an Ibanez Mikro Bass. Cheap and a dream to play.

The scale length on the Mikro bass is only about 28-29 inches so coming from a “real” bass guitar it feels barely any bigger than a Stratocaster. I carry mine in an old Strat gig bag and it fits fine.


Oh my. Barely the price of two drop pedals, has great reviews, and I can even pretend it's for the kid! Maybe I will become a bass player after all.


It’s a hardware solution, but digitech make a drop tuning pedal.


That would definitely work (and we could also use it in "Cobain emulation mode"!). Thanks for the tip.


rtaudio (https://www.music.mcgill.ca/~gary/rtaudio/index.html) works pretty well in linux. I built a small shim with it for a pi zero that allows me to embed a vcv module on the pi which acts as a USB Audio device (in gadget mode). makes for an interesting eurorack environment.


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.


Give thingamagig a shot. I think you'll find that voice-control is faaaaaar from a gimmick. I have kicked my feet up and lost hours jamming along from track to track. The frictionlessness of it is really something.

Also, you seem to know quite a bit about the market. Would you be willing to talk? Email me at cyrus@ my product's domain name.


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?


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.


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?


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.


Right on, thanks for sharing your knowledge on this!


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!


For comparison, here's what the current very best in this field looks like: 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.


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/

[1] https://1014.org/


Check out Bela also for low latency audio.

https://bela.io/


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?


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.


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


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.


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.


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?


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.


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


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.


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


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.


Sorry if it was short on software details.

It's realtime raspbian. Headless ardour (lua implementation). A mix of guitarix and other amp sims. Proprietary cab sim IRs. Various other effects packages like rkr, ardour-native plugins.

Person speaks to alexa, alexa calls a series of lambdas (basically the not-yet-public API), and sends MQTT messages to the device which is tied to the user's Thingamagig account which is linked to their Alexa account.

https://github.com/raspberrypi/linux/tree/rpi-4.19.y-rt

Let me know if you have any other questions.


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/

[2] https://guitarix.org/


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.


I was able to get 48000/256/3 working.


i get 48000Khz sample rage, 256 sample buffer size. what is the the '3'?


"please visit our kickstarter campaign launching Tuesday April 21st, 2020"


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?


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?


Yeah good question. Alexa skills don't want to be long-lived so you have to force them to stay open so you're not constantly saying "Alexa ask <app name> to <x>" which, by the way, hardly ever works.

With a video skill like this, I can submit APL documents and then long-running commands to make it keep "doing something" throughout the playback. There is a limit to how long you can command it to "delay" but I think it's more than 5 minutes or something.

I haven't tried it, but for non-video skills I've read that you can play silent audio for a period of time to keep the skill open.

Janky, for sure.


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


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.


He does say "Alexa, give me some metal EQ" and similar things multiple times.


[flagged]


Hey, can you please not be a jerk on HN, and especially not by putting down someone else's work? Things don't have to be perfect to be interesting. Actually it can be better for discussion if they're not perfect—then there is more opportunity for others to contribute. Nothing's perfect anyhow

It's clear that you know a lot about this topic. That's great! and impressive. But in that case please contribute by sharing some of what you know so we all can learn.

There was a similar case the other day: https://news.ycombinator.com/item?id=22903486.

https://news.ycombinator.com/newsguidelines.html


Yikes.

There's no need to try to convince other people that this shouldn't impress them. That's usually a sign that you should just put the keyboard down and continue scrolling.


Is this a discussion site anymore? Or just a circle of mindless yes men?


Convincing someone else that a Show HN doesn't deserve the word "impressive" is not a discussion. It's just boring dismissal, something we have enough in this world and on HN.

"Circle of madness" to me describes what HN would be without all of the effort to keep this place from devolving into a bunch of assholes crapping on every project.

> It isn't impressive at all. It's a toy [...] he completely fails to understand the market. It's a top class r/shittykickstarters.

I mean, for fuck's sake. Is this guy your arch nemesis? Just keep it cool.


It is clearly for practice / home use and not for live performance. The main value seems to be the automation for switching tones based on song presets.

This is also the focus in one of the mainstream modelling apps, ToneBridge, except it doesn't play along with tabs, so there is clearly a market for it.


All of the existing modelers support toggling based on midi commands


Those modellers are expensive as hell and super complex. With this you don't need to dig into sub menus or even need to know how a tone stack works. You just tell Alexa what you're trying to do and it does it.

This definitely is very useful to a huge chunk of the guitar player market.



It's about knowing your market. Is this a Kemper profiler? No. Does it claim to be? No.

This is absolutely perfect for anyone total beginner to high intermediate. It sits in the same space as any mid range amp modeller except it's voice controlled and can cue up a backing track and a tone to match it with just voice. It solves all of the things that intimidate new to mid range players and cause some to quit.


Why the hate?

Do you know of any modeling solution where you can pick up your guitar and play without your hands ever leaving the guitar?

Do you know of any modeling solution that will automatically change your guitar tones during playback?

And automate your loopers?

And scroll lyrics and chords in perfect time?

And (eventually) automate your vocal effects, lights, fog machines, drone cameras and dancing baby Groot?

For < $150?

Thingamagig understands the underlying composition which is a critical component of advanced automation. No other solution on the market does this. If it did, I would have bought it and been done with it.


Launching products is super hard I wish you luck. Getting detractors means you are doing something that at least garners a reaction from people. If there are negative reactions, there will also be positive ones.


You can all that with a helix or axed if you’re going to mindlessly slave everything to a master track. All straightforward midi.

Except those all have pedalboards so you can do it all with your feet while playing if you are actually creating anything.

I’m still confused why you think all this total automation is a good thing. It’s like selling a sewing machine that only works with premade patterns.


You didn't read it. He did exactly what you're suggesting in the first iteration: Helix + MIDI controllers. Then he explained why it sucked.

I mean, have your own opinion and all but if you don't read, then it's not as valid.


I read it, and I don't agree that he explained why Helix sucked. Unless I'm reading it wrong, he seems to think a voice-controlled rig would be better for live performance?

I understand that the tone of these user's comments might be rubbing people wrong, but the criticisms were absolutely spot-on (including the one that got flagged/removed). As a DIY project, I think it's awesome...but as a product being brought to (a heavily saturated, well-trod) market it deserves criticism/skepticism.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: