8 Bit Synth: MATLAB Bandlimited Wavetable Simulation and Aliasing

This is what the MATLAB script outputs. No aliasing here!

I’ve spent a lot of time in the development of the Rockit 8 Bit Synth dealing with aliasing.  I made a MATLAB simulation to get to the heart of the issue visually.  The script simulates the wavetable synthesis process by generating a sawtooth wavetable and playing back that wavetable to generate a 50% duty cycle square wave output. This output is plotted along with the Fast Fourier Transform (the frequency) of the signal  By adjusting some parameters, the amount of aliasing in the signal can be increased or decreased, providing a visual tool for understanding the factors that contribute to aliasing in wavetable synthesis.  Click through for a thorough explanation.

Continue reading

Rockit 8 Bit Synth: The Final Stretch

Rockit Silkscreen - Parts and Locations

I am so excited to announce that I am almost done. The hardware has been finalized. The circuit and all the values are a wrap. Everything is working: MIDI, filters, synthesis, LFOs, envelopes, Voltage-Controlled Amplifier, LEDs, buttons, patch save and recall… I’ve got the first pass of the pcb finished as shown in the silkscreen image above. I’ve gotten to the final knob locations and am pretty happy with that.  It’s been a journey but the final design should be on sale within the next couple months.  I’m looking at options for selling it from licensing it to doing it myself.  I might put up a project on Kickstarter. Stay tuned on that front. 

Things I still have to get done are mostly software tasks:  finalize pitch bend implementation, test filter audio in, flush out and finalize synthesis waveshapes, finish lfo waveshapes, and a few other small things.  Sometime soon after I check every connection on the pcb and optimize the layout, I’ll order some sample pcbs and build one up. In the meantime, I’ll be finishing the software. I’ve got some ideas for making more complex waveshapes, morphing sounds and such. At that point it’ll be done.  I’ll have to do some documentation, but I’ve been doing a lot of that through this blog.  So, expect the release soon. I can’t wait.

Bandlimited Wavetable Synthesis

Sin Wavetable
I’ve discussed the phenomenon of aliasing in digital synthesis in several previous posts.  I described the phenomena, it’s source and what it sounds like.  There are many, many solutions to the problem of aliasing in digital synthesis.  A lot of them rely on performing sequences of calculations, multiplications and additions to implement various filtering methods or methods of synthesis which theoretically do not create aliasing, like additive synthesis. In my Rockit 8 Bit Synth, I don’t have the luxury of loads of extra cycles to throw at calculations, so I need something that can reduce the aliasing without requiring boatloads of clock cycles.  I settled on bandlimited wavetable synthesis.  With it, I have reduced the aliasing to a point that I can tolerate and probably further optimize.  Let’s discuss how it works.  Also, click through for source code for generating a wavetable and a sample wavetable from my synthesizer.

Continue reading

DSP: Aliasing and Synthesis

In a previous post, I discussed how in setting up my oscillators, how I made a proper demonstration of aliasing. I have yet to find a clear description of the problem as it relates to digital synthesis.  There are many sites which define aliasing in engineering terms but don’t make it as easy a thing to understand as it can be.  Follow along as I give it a shot.

Continue reading

Atavist, where have you been?

LED crazy China

China, naturally. Given that we build almost everything in the world that needs building in China, it’s a pretty natural place for an electrical engineer to end up. I spent two weeks there and another week after I got back recovering from some intestinal parasite. I’m as inclined to blame the airline as I am the delicious food I had in China for the bug that tried to chew it’s way out of my gut.

Continue reading