Scott Gravenhorst

I'm probably best known around synth people as a "FatMan Guy". Did CE work for DEC, component level troubleshooting, mostly TTL logic. I'd heard about FPGAs many times and with RoHS and the demise of through hole parts, I felt it was time since I'd heard more than one person say synths can be made with them. So I'm a total noob at FPGA as of 07-01-2006 or so, but I find this endeavor rewarding. I'm also a musician and I like to do my own recordings with a variety of instruments, most of it electronic. So for me, the FPGA is a way for me to design a digital synth my way.

You can contact me at this address: music.maker [at]

January 28, 2009:

I'm going to try to bring this current... I am probably no longer a noob, but still have much to learn. I've designed several synths now, many/most of which are presented here on this Wiki. I have had a ton of fun doing this and I will continue far into the forseeable future. I'm working on all kinds of things, physical modeling, FM, LA, you name it. The more "fantastical" things may appear here, but I am becoming much more self-critical of my designs. One thing I struggle with and hope to understand is the use of the Z transform for filter design.

One thing that some visitors might be interested in is some work I've done with preventing alias artifacts when using either naively generated waveforms or completely unknown waveforms that may have radical transients. My work so far has been the use of oversampled generation of naively generated waveforms and sending that data stream through a brickwall FIR filter and finally decimating to output the signal at the desired pitch. The filter I used had 511 taps which I am told is large (although the filter fit quite easily in the FPGA system I designed). I've found articles and had discussions with others that indicate that it is better to use several stages of cascaded filtering with smaller numbers of taps - I'm still not sure what the advantages of that method are, but perhaps they might cure the behavior I observed with my simple single filter experiment (511 taps, 32x oversampling) - this behavior was that the system worked very well with signals up to about 4.5 KHz fundamental. Higher than that, I could hear small variations in amplitude, probably due to ripple in the filter's response. It wasn't an ostentatious effect, but was noticable with a single tone of either sawtooth or square waveshape. Above 5 KHz fundamental, I could hear alias artifacts especially when the NCO frequency was sweeping. I would like to revisit this technique at some time after I've found adequate information on the cascading parameters, such as how many cascades are useful and what the number of taps should be for each of the cascaded FIR filters to get an effective alias artifact reduction scheme. This will hopefully provide a system that can handle signals that ignore the usual rules about transients - such as granular synthesis or other very naively generated waveforms. As such, the system should provide an environment that makes synthesis a bit more designer friendly and the synthesis engine should be more simple because the alias artifacts are handled by the filter/decimator instead of being incorporated into the systhesis paradigm.