This picture embodies something I've wanted to do for awhile now. I've been daydreaming about this for at least the last eight years in various incarnations. One of my Patreon creator milestones, though intentionally ambiguous, has been "design a new instrument". Now all of this is slowly coming to fruition thanks to my friend and housemate Charles Lohr, who is the embedded systems guy behind projects like ColorChord and Voxeltastic.
I am building a synthesizer from scratch.
Upon providing some specifications to Charles, we've come up with a board that is my "dream" sound controller. It has a DIP48 socket in the middle to accommodate almost any sound chip I can get my hands on, which will be driven by an ATmega AVR. It has a socketed (or soldered-in) crystal for oscillation and timing, which can also provide alternate clocks via an ATtiny85. There's a spot for a DE9/DB9 port so I can connect joysticks or paddles. Then there are tons of breakout pins that can connect everything together in almost any way I can imagine. It will be connected via USB to a PC and each board has its own sound output. Here's a closeup of the board:
What's that? People have made boards to control sound chips before? TRUE! Nobody has done it quite like this, though. Everyone is hyperfocused on getting their favorite sound chip accessible via MIDI, which, well, I'm just not interested in. If you don't know already, chiptunes aren't MIDI and don't have anything to do with it. I'm more interested in direct hardware access, so I can do cool tricks with the chips. Plus, with the way we're interfacing with these, I could (in theory) write sound drivers for emulators to push all sound out using real hardware. That would be especially neat!
My "original" dream — if you can call it that — was to have this box with a parallel port that would act as a sort of "breakout box" to three or so retrocomputers. I was going to come up with a simple protocol to talk to code running on each of the computers, which would then in turn bang on registers and memory addresses to play music on each. Then I'd run the audio output from each of the machines and the parallel cable to, say, a 386/486 laptop that would be controlling anything. Technically the idea was sound (ha. ha. ha.) but let's be honest, one thing I've really been trying to nip in the bud is the amount of gear I travel with and have on stage.
In the first picture you can see a nice compact suitcase, it's one of those metal cases that will just barely fit a large laptop, a compact 4-channel stereo mixer (which can operate in mono mode for 8 channels, bonus!), an isolated power brick, a 13-port USB hub, and a few storage compartments. Up top there was a thing so you could store screwdrivers and wrenches. I ripped that out, and with the help of my friend Adam we milled a piece of acrylic to fit in the space above and spaced out some holes for mounts so I can support up to eight of the sound boards on one sheet. Four boards are mounted and three have chips in them, I am definitely looking for old/dead consoles that cannot be repaired to repurpose other chips onto these boards... let me know if you have one!
So where are we at now? Well, I have access to the complete code to the AVR controller code and can add features to / re-flash the firmware. The boards boot and communicate with the PC, so that part is done. We actually lost the oscillator code, but that's a really quick rewrite that will happen soon. The one board that has working oscillator code I can get sound out of, and the other boards are at various stages. Here's a "screenshot" of lsusb in Linux with the boards plugged in. See if you can guess which chips I have in them!
At this point, the todo list is pretty large, but a summary includes getting the chips that don't already work to do so, and then I will probably have to write my own tracker from scratch. One thing that will make that speedier (than usual) is that I won't have to write any sound generation code — one of the bonuses of using hardware — though that will certainly have to undergo testing and bugfixing, which is another item on the list.
Most of all, one of my todo list items is to actually produce music with this thing and give it to you! To that end, some Patreon rewards will be business as usual (that is, things that I have been working on and want to share with you as they release)...but some Patreon rewards will be extra-special: I want to share music produced on the synthesizer as it is produced. Part of me is a perfectionist and that part of me says I should wait to share music with you until it is up to par with my usual standards. Another part of me says this is an exciting journey that I want you all to join me in, and that I should share even the buggy experimental stuff so we can share in all the moments together. I'm now leaning towards that latter bit, because you are all my awesome support team and I want you to see how your support is encouraging me to accomplish things I haven't attempted before.
I'm guessing around half of my synthesizer updates will be Patron-only. Video-worthy stuff will probably be publicly posted on YouTube in hopes that it will garner support for the project. If you know anyone that would be interested in this adventure, please suggest my Patreon by sharing this post with them (or even just to the general public)! If you're reading this and want to join, now's the time! I encourage you to do so!
Last minute addition! Charles also has a Patreon for his electronic gadgets here.
UPDATE: This is a pretty old post, and there's been some progress. If you want to read more about that, I have a post about the tracker you should check out.
As always, please feel free to communicate with me and ask questions. =]