PDA

View Full Version : [Music] So I'm building a synthesizer from scratch



InversePhase
03-09-2018, 05:46 PM
Hey folks,

I'm building a synthesizer from scratch, and thought this might be a cool place to talk to people about it.

Just so I can be up-front about it: Some of the links about it might be links to my Patreon. I'm not doing that because I'm begging for money, but rather because those are the people that are supporting me while I do this and therefore I do most of my longer explanations there. If you want to support me while I work on this (and other music) that would be glorious, but I do not expect any support, just sharing progress reports and getting feedback. :)

With that out of the way, what the hell is this project?

Youtube version of the explanation with a demo halfway in, if you prefer (10min):

https://www.youtube.com/watch?v=hodW5E7nPhM

After I finished Pretty Eight Machine, I had a tiny bit of play money that I went and bought a bunch of flash carts and other stuff so I could do music on more retro systems and caught up on a few of my bills. It was then that I realised that as a single man act, it's a real pain in the ass to carry an Atari, Commodore, NES, Sega, etc etc etc to a show. My housemate is an embedded systems engineer and he asked how I could level up (ha. ha. ha.) the whole thing and I mentioned it'd be nice to compact the setup somehow. I came up with the idea to control only sound chips out of the systems from the systems I used, and wondered if I could control them all over USB. After all, everything's 5 volts, so why not? My friend said he could whip up firmware that would listen for commands over USB and fire it across its pins kinda like an arduino.

https://scontent.fphl2-3.fna.fbcdn.net/v/t1.0-9/11024795_10153152472087360_8212697951451289779_n.j pg?oh=6ac752df6199b3c2557431e60a476dc5&oe=5B4459F7

Anyway, with his help we designed a universal 4x4" (10cm) board that I can put any sound chip from any computer or console in. This way I can bring a whole bunch of boards to a show and use multiple systems in the same show; for example if I wanted to play a show where I play the entirety of Pretty Eight Machine on real hardware, I can do it without having to bring all the systems power bricks etc. I can plug in any number of boards at the same time too, so I can control two systems at once, stuff like that. So now I can just lug around a suitcase like this one:

https://c10.patreonusercontent.com/3/e30%3D/patreon-posts/7874254649373191751.jpg?token-time=1521763200&token-hash=kirjtMM5EBuaF9va9zw4E-V8K1DS3f_F6gyqdbob07A%3D

If you write music you're gonna be like COOL HOW DO YOU USE THEM DO THEY USE MIDI and the answer is a hard no. That would add too much latency, in my opinion, but also: I don't read sheet music, I don't play instruments, the only interface I really know is a tracker, which looks like a spreadsheet with a play button. Here's one of my favorite trackers, FastTracker II:

https://i.ytimg.com/vi/2oi9LxCLVFA/maxresdefault.jpg

I really love this interface because it's so well-suited to chiptunes; most of the sound chips only have 3-4 voice polyphony, playing one sound interrupts whatever was already playing, the capabilities are limited, etc. So I've been modelling my software after it. Here's mine so far:

https://pbs.twimg.com/media/DXeaBNIW4AA_jgA.jpg:large

So now comes the fun part, the soundchips don't do anything on their own and the board just sends whatever values I send directly to the chips, so I have to write "sound drivers" for the chips as well as write my own routines to interpret special commands. For example in channel 2 (column 3) up there the pile of A05 is "fade out by 5" so I have to write something to read that command and actually control the volume of the channel. Stuff like that. Right now I do not support anything other than sending note, instrument, and volume to each chip, and I only support SID (Commodore 64), TIA (Atari 2600) and POKEY (Atari 800).

You see those NONE things at the top of each channel? One cool thing is that since there is a framework to assign a channel to a chip, I can also play any song the tracker understands on any chip the tracker has a driver for. Even though it's really far from perfect, you can some NIN amidst all of this nonsense:

https://www.facebook.com/inversephase/videos/10156270043977360/

So anyway, one last video, I imported a song that actually sounds mostly like music, and here it is:
https://www.patreon.com/posts/ctm-0-0-6-better-17424561

One of my hopes for this is to produce all of my new tracks on this. Perhaps most relevant to everyone here is that I started on The Downward Spiral after Pretty Eight Machine, but realised I wanted a new environment to write music on. Anyway, being able to load in all of my old files and play them properly means being able to import all of the work I've done and keep working on it. So here's hoping!

neorev
03-09-2018, 06:36 PM
You ever check out Look Mum No Computer's YouTube and Patreon? He does a lot of crazy builds, like a Gameboy oscillator for modular.

I saw a modular unit with a tracker built in.

InversePhase
03-23-2018, 05:30 AM
ah yeah, I've seen a few things like that. this is definitely focused less on analog/VCA synthesis and more just on learning the ins and outs of the chips and tying things together in ways that have never been done before. I *want* (perhaps even need) a computer in the mix; I just want the software to be entirely mine