EP 041 Arduino Synthesizer
A transcript to our conversation about Arduino synthesizers:
Links:
Scott’s YouTube Channel (must watch – it’s beyond great!)
Get a Soundgin synthesizer on Scott’s eBay store.
Mike:
Welcome, everybody. Thank you so much for tuning in this week. I’m excited to have Scott Savage on the show today. He is into a bunch of different stuff. We’re going to be talking about the sound gen, and if you don’t know what that is, that’s fine. I’m just starting to learn about it and it’s pretty cool. It’s like a sound synthesizer that you can control using an Arduino or Raspberry Pi. And we’re also going to talk about Scott’s YouTube channel, which is all about vintage repair. And I got to tell you, immediately after you finish watching this or listening to this or wherever you are, you got to check out Scott’s YouTube channel. And we’ll link to some really cool videos on the channel. But anyway, Scott, thank you so much for your time. I appreciate you coming to talk.
Scott Savage:
Glad to be here.
Mike:
So I think the first thing I’d like to talk about is the sound gen. I don’t know if you can give us like a one over on the sound gen and kind of what it does and where it comes from, and I don’t know, how you got into it.
Scott Savage:
So 18 years ago I was basically looking at reproducing the sound chips that were out on the market in the ’80s that had disappeared, they weren’t being sold anymore. And I had collected all these books and just everything you could imagine. I even have AT&T’s original voice print manuals from the 1950s.
Mike:
Nice.
Scott Savage:
And I just stockpiled all this like, how do voices work and stuff like this. And it was always a back burner project. But then happened to get a job at NASA and there’s a guy who worked across the hall from me, had a conversation with him one day at lunch about this and he basically said, me too, I have been doing the same thing.
Mike:
Yes.
Scott Savage:
And I was like, really? Well, why don’t we-
Mike:
Soulmates.
Scott Savage:
Yeah. Why don’t we pull our resources together and figure this thing out? So we did that. And we had just meeting after meeting over, how do we do the filters? How do we do this? Obviously you need a digital signal processing chip to have the horsepower to do that kind of work. And Microchip at that time had just come up with their DSP chip and they were wanting to release it, and they kept delaying it and delaying it and delaying it. And about a year into this process I suggest to Jeff, Jeff Richardson is the guy I’m talking about, I suggest to him that maybe we don’t need a DSP, maybe we can do this in a different way.
And I made a proposal of how the voice might work and we kind of hashed it out and went home and did some coding. And a couple of days later I came back with a voice rolling out this thing that you could adjust the pitch and the volume and everything you needed to adjust out of a voice, no filters, no digital signal processing, just straight eight bit pick code. So we’re like, okay, well let’s reproduce the Votrax. And the Votrax chip, basically the phoniums would like shift from one to the other. Whereas the SPO256 we go, here’s one sound, here’s the next. And so it’s like really choppy in between.
Mike:
And we’re talking about like 1980s type noises, right? We’re talking like noises from video games in the 1980s, or are we talking actual voice reproduction too, making it actually talk, that kind of thing, having a computer voice type thing?
Scott Savage:
Yeah. Yeah. So if you think of the voice of Q*bert when he curses when he falls off the little pyramid thing, that voice is the Votrax. Other games like Wizard of War and Goff and stuff had the Votrax chip in it. Of course this is the 1980s robot sound, so it’s very mechanical sounding and very hard to understand in the first place. And I saw a documentary on Q*bert where they were saying that the reason that Q*bert curses in the video game is because they couldn’t get the Votrax to sound good enough for people to understand in a video arcade. So they’re like, we’re just going to make it make gibberish. And there’s Q*bert with his voice. And the guy in the documentary says it’s a random, just throwing random phonings at Q*bert. And so he’s like, there’s no curse words programmed in, but based on the nature of it, you might actually hear it curse once in a while.
Mike:
That’s awesome. And just for me, a phoneme, I’m not exactly sure what that means. That’s like a unit of voice noise or something. I’m not sure what that-
Scott Savage:
Think of it as a unit of voice noise. Basically the letter A, the sound it makes a, is a phoneme. E, a, s for S, those are phonemes. And so you string those together and you get, I am a robot sound.
Mike:
Got you. Okay.
Scott Savage:
You had to tell the Votrax which phonemes to actually string together. You couldn’t just send it English text.
Mike:
Okay. I got you.
Scott Savage:
And then to go on that point, when I said that it transitions from one phoning to another, if you think about the way your mouth moves, when you go, a, i, you didn’t jump to the next location, you slowly moved to the next location, right. And so to get the voice coming out to sound correct we had to put in something that would take the currently played phoneme and transition all the sounds it makes into the next one so it has this like naturally moving sound. Especially when you say something very slowly, you can hear the transitions.
So anyway, we put this out and we originally called it the SpeakJet, and the SpeakJet was just a phoneme voice synthesizer chip. And it got really popular. It started being used in products like the AtariVox and a couple of other things. I actually hid my involvement in that chip because there was a company called Parallax making basic stamps. And I did not want them to know that this was my product because I was making the UPIC, which was a competing product to the basic stamp. There was a bit of a war going on at that time. So I don’t want this associated. So we hid my involvement in it for a long time.
And I’ve even read online somewhere, it’s like Jeff and I must have had a big falling out. It’s like, no, we were just trying to hide it from Parallax. Well, anyway, so I did the next version of the chip and I called it the sound gen because I opened up all of the registers that allow you to control the oscillators in the chip. So basically the sound gen was the SpeakJet with the capability of going in and controlling it. So you can even take the voice and say, I want the letter A, and then you can move all the dials for the letter A and get some really bizarre sounding voices out of it. And that’s where the sound gen came from. It’s kind of like a long process, but-
Mike:
Wow, that is so cool.
Scott Savage:
Now the sound gen actually kind of got buried because I came out with it nine months before the housing bubble burst. And so it was on the market for just less than a year. And once the housing bubble burst happened, like most companies doing small volume sales, I just basically shut down. So I’ve had these sound gens now on the shelf for 16 years, doing nothing with it. And now I’m looking around and 1980s retro sounds are getting quite popular. And so I’m like, you know what, I’m going to bring it back. I did my video on it and we’re working on a newer chip release that uses more modern chips. And so we’ll have a lot more capabilities in it.
Mike:
Okay. Wow. Well, it already looks pretty feature packed. You’ve made a great video on using the sound gen, or kind of like showing off some of its features on your YouTube channel. And I was pretty impressed with it. Can you describe what it looks like, because people might not realize the form factor. If you can kind of describe it a little bit.
Scott Savage:
All right. So if you look on this board, there is a sound gen sitting right there.
Mike:
Okay. So what is that, like a… And so for people who might be listening that’s like a what, a 16 pin. What, is that 16 pins?
Scott Savage:
18 pin.
Mike:
Oh, okay.
Scott Savage:
Yeah. It’s 18 pins.
Mike:
So it’s just a tiny little integrated circuit, kind of something you could pop on a breadboard if you wanted to.
Scott Savage:
You can put it on a breadboard and whatnot. This is a surface mountain version of the same chip.
Mike:
Oh wow, that’s a lot smaller then.
Scott Savage:
It is a little tiny. It’s a little tiny thing. This is one of the newer ones we’re working on. And so you can still get it in this form factor so that you can breadboard with it. But if you want to put it into a product or whatnot, this is the more economical way to go. And everything is surface-mount. This is what’s called a surface-mount because instead of the pins, I don’t know if you can see the pins on that, those go through a circuit board. These pins, they just solder straight down onto the board. There’s no holes. This version of the chip, the original one from 16 years ago, is currently being bottlenecked by the supply problem. And I have 10 of these left and then the next volume I can get is sometime next year.
Mike:
Wow. That’s crazy.
Scott Savage:
The new chip I can buy right now because it’s so new people haven’t used it in designs yet, and so it’s readily available. So when I run out of this, then really the next sound gen is going to be it.
Mike:
Got you. Okay. Well, that’s really cool. What’s it take to use them? Is it hard to program them, to make them make noises? Could you kind of walk us through what that looks like?
Scott Savage:
So there’s a serial port, and you send commands through the serial port. Every command starts with an escape character, 27, if you know what ASCII is. And then after that there’s a command number and then a series of some data after that. So for instance, one of the commands might be set frequency. So you could say like, I want to set the frequency of oscillator one to 300.0001 hertz. And it’ll do a thousandth of a hertz accuracy. You send that and that frequency starts being generated out of the oscillator. You have another command to set the volume of the sound coming out of the oscillator and then another command, because there’s a mixer behind all of it that takes all the oscillator outputs, mixes them together, and then there’s a final output volume that comes out the pin that has the audio signal to it.
So it’s all command based like that. But I am putting together an Arduino library so you don’t have to worry about the commands. You just say set volume, and then you put in like oscillator one volume. Set frequency, there’s another way to set the frequency. There’s actually a lot of ways to set the frequency. But I prefer the set note command because it’ll take the notes that you would have on a piano, looks up the frequencies for those and plugs it into the oscillator. And if you use the set note command, then everything you do winds up having sounds that sounds in tune with each other, if you know what I mean.
Mike:
Okay. Right.
Scott Savage:
Like on a piano, everything sounds in tune with each other, right. But if you just start throwing random frequencies at it, it’s harder to get two sounds back-to-back that don’t make you cringe,
Mike:
Right.
Scott Savage:
Like an out of tune piano.
Mike:
Right. Yeah. Well, again, I was listening to, or watching that YouTube video you’d made on the sound gen, and you were really making some amazing, really neat noises out of it. Some really familiar stuff too from the ’80s, that was just a blast to kind of go back and hear some of those. Is it hard to… Well, I guess so like, you had that robotic voice. Is it difficult to get a phoneme out of it and kind of like make some type of talk? Or is there an easy way to do that?
Scott Savage:
The phonemes are a set of sounds that are outside the escape sequence that I just told you about. Anything above character 128 translates straight to a phoneme. So if you send it like 192, 205, it will make those two phonemes back-
Mike:
Right. And you’re talking to ASCII, right. You’re saying like-
Scott Savage:
ASCII. ASCII. Yeah.
Mike:
Okay. Got you. Right. So 192 is like, or what is it, A or something. I’m not sure what letter it is, but…
Scott Savage:
I have to look it up myself.
Mike:
Yep. Got you. All right.
Scott Savage:
It’s been a while since I actually looked at the phoneme table.
Mike:
Right. That’s really neat though. Okay. So it’s that simple. You’re just sending it letters, or the letters, and it will reproduce that noise.
Scott Savage:
There’s a set of sound effects in there. There’s 32 predefined sound effects, because we have something called modulation going on between the oscillators, which I’ll get to in a second. But for at least really complex sounds, you can just dial it up and say, give me sound number 31, which sounds like a train, right. And then you can increase the frequency of it as your train speeds up and feed information to the sound gen to like give it this speed that you’re going. Another one sounds like a space laser. There’s just all sorts of. And I have a lot of those predefined sounds in my tutorial video that you’re talking about, but you can take any one of those sounds and then modify the numbers in them and get your own different sounds to them. This new chip, I’m going to have it set up so that you can like play around with oscillators, get a unique sound and then save it. And then you could say, okay, pull up my saved sound number 29.
Mike:
So you can save it on chip. Like it will save it in the chip itself?
Scott Savage:
On the new one.
Mike:
Oh, okay. Wow. All right. Now, on the current one you have, do you just have a predefined set of parameters you send via serial to make the noise, or are those noises actually programmed on that sound gen chip itself?
Scott Savage:
The 32 predefined sound effects are in the sound gen.
Mike:
Got you.
Scott Savage:
So you just-
Mike:
Got you. Okay.
Scott Savage:
… tell it which sound number. It goes and yangs all the parameters out of RAM, well actually ROM, plugs it into the oscillators and starts making that sound. So it’s very quick to make some nice complex noises. One of them sounds like a gong. It’s all in the video.
Mike:
Right. Yeah. No. I think what’s important to stress though is how really creative you can get with these noises. It’s not some PAs or buzzer, this is like a, I don’t know, to me it just feels like a full-fledged synthesizer where you can really kind of play around with just a ton of cool noises. And I like the idea of modulating those noises based on, somebody might have a project where something is moving or any number of things, but you can modulate that noise based on the type of motion. Maybe you’re moving faster, you get a faster noise, as it slows down. All those inputs can just feed right into that serial command into that sound gen and adjust the noise just based on some other sensor, which I think is just, I don’t know, it just looked like a lot of fun to play with.
Scott Savage:
I actually calculated up based on the number of bits that are in the control registers for each complex sound generator, and in my video I point out there’s two. But for each one of those, if you count up the number of bits, there are more possible sounds than there are atoms in the universe. It’s kind of a crazy thing to think of it that way. But I’m counting like every sound with a one bit difference to get that number. But I would say that audibly ones that you could distinguish from one to another, there’s probably over a trillion, easy.
Mike:
Wow.
Scott Savage:
Maybe a trillion trillion, different sound in this thing.
Mike:
Lots of space to explore then.
Scott Savage:
It’s crazy. The 32 sound effects that I have built in, I just basically set up a thing where I could like dial knobs, literally knobs on the screen where I could like dial in these sounds. And I just played with them, I’m like, oh wow, that sounds really cool. Save the parameters for that, dial them, oh, that sounds cool. And it was maybe a couple of hours worth of work of just randomly playing with the sounds to get what I have in there. And like I said, there’s a trillion others.
Mike:
That is so cool. Well, and if somebody wants to get the sound gen, they can check out your YouTube channel, I think you’ve got links to eBay and you’ve got an eBay store where you’re selling them right now. I’m sure at some point you’ll have a website where you got them up. But we’ll make sure to point to those things in the show notes. So if somebody wants to get their hands on a sound gen just go to check out the show notes and we’ll have a link to the appropriate place. I want to shift gears real quick here and talk about your YouTube channel. You do something pretty fun where you do vintage repairs. How did you get into that?
Scott Savage:
All right. So my girlfriend works at a hairdresser on the weekend. And she’s there on Saturday and one day a police officer walks in to get his hair done. And he was complaining that his grandchildren had gotten down a toy that was part of like some gift from the police department actually gave him this, right. And his grandkids were over and they’re like, oh, a toy. And they played with it and broke it, right.
Mike:
Very typical for grandkids.
Scott Savage:
So he was complaining that back in his day you could take it to a repair shop, and today everything is throw away. And says, well, I don’t want to throw this away, I’d like to have it repaired. And so my girlfriend is like, I know somebody who can fix it. And next thing I know this is on my desk and it’s like, can you fix it? So I fiddled with it and I repair it and everything and take it back to them with the instructions of no charge. Just let them have it, no charge. And that kind of led to the idea of, that would make for a good YouTube video, is to get things that have sentimental value to people and fix them. And so I’ve got a Victrola record player that was supposed to be the first one for the video.
And I had a friend of mine that I was talking to him about this and he is like, can you fix a boombox? And I’m like, probably, yeah, depending on what’s wrong with it. And he’s like, well, I found it in a dumpster. And I’m like, ooh, that sounds bad. But yeah, bring it over, bring it over. And I’m looking at this thing and it was a disaster, it really was a disaster, right. So I did the first episode of the free repair shop and one solved problem led into the next problem. And of course it’s scripted, of course. I’m not just recording, running into these problems accidentally. It was very long process of figuring out how this was going to play out, especially since it was my first one. But kind of an obscure thing in the end is that after I fix this boombox and I ship it back to the original owner, if you listen to the lyrics of the song playing while I’m shipping to him, it’s a breakup song.
Mike:
Yeah, that must have been a process in the works. Oh my gosh. Must have fallen, had some heartbreak there. That would’ve been tough.
Scott Savage:
It was kind of fortunate that it was in such bad shape. Because otherwise it would’ve been, oh, replace a knob and we’re done.
Mike:
Yeah. Well, I love in the end where you, quick spoiler alert here, where you actually use the dishwasher to clean up some parts. I was like, what? No, that can’t work. And then I was like, whoa. And then just the fact that you had to get another one to kind of like salvage pieces and kind of bring them together, it was a really interesting process. Are you still doing those vintage repairs?
Scott Savage:
Yes. Yes. Slowly, but yes. It’s been a year since the first one, I really need to do the second I wanted to do. When I thought of this I was like, yeah, I’ll do one like every month. And then the amount of time and work it took to do the first one I’m like, eh, maybe they’ll be like a yearly thing.
Mike:
Nice.
Scott Savage:
I do want to talk about the dishwasher thing, because that was one thing that wasn’t just entirely scripted. I stuck them in the dishwasher literally on the idea that it was going to destroy them. And I’m like, well, now what? I’ll have to get a third one somehow some way. And they came out of the dishwasher and I’m just like, wow, I did not expect it to… Okay. Well, let’s plug it in and see if it actually works. And it works. I’m like, holy cow, this is… So it surprised me that it actually worked.
Mike:
I’m going to have to try that with my old electronic. So I’ll throw it in the dishwasher and see if they… No, I saw this on YouTube. Let me give this a shot.
Scott Savage:
Well you notice I say, do not do this to your boombox.
Mike:
I know, you got a huge warning across. That was great.
Scott Savage:
I don’t want anybody else to do that. Because it was literally a, what could it hurt? These things are destroyed anyway, right?
Mike:
Right. Oh no, that was fantastic. Oh man, this is so cool. Well, Scott, thank you so much for your time and talking about this. And again, if people want to check out what you’re up to, we’ll send them to your YouTube channel. What’s the name of your channel?
Scott Savage:
Scott Savage Techno Scavenger. And one last note, for those people wanting to fix a vintage pinball machine, I will be coming out with a Votrax replacement chip.
Mike:
Nice. All right, cool. So I take it those are pretty popular and they’re in a lot of old stuff. And so your chip could be something that kind of replaces that.
Scott Savage:
Yeah, this could be a labor of love. So the Votrax has a very specific place for repairing these old pinball machines and arcade machines and stuff like that. Nobody is going to make a new product with the Votrax. It’s going to be very specific to fixing those items. So I don’t expect to sell a huge amount of them, but the old ones are now 40 years old and they’re dropping like flies. So somebody’s got to do it.
Mike:
Got you. Nice. Awesome. Well, thank you so much, Scott. I appreciate it.
Scott Savage:
All right. Thank you.