A wise grizzled old engineer once told me that the most important rule of embedded engineering is, “Always use quality tools.” Without quality tools that you can 100% trust, you’ll never be certain of the source of a problem. You’ll constantly be asking yourself, “Is it me or is it the tools?” I’ve validated this engineer’s axiom multiple times, staring for glacial epochs staring at code which should work but doesn’t. I once spent a solid month tweaking and tweaking simple code only to find in the end that a manufacturer’s compiler was incapable of executing logical shifts correctly. I’ve vowed in the past never to suffer again and I reinforced my opinion during this microcontroller selection process. That’s a later part of this story. First, let’s look at how I started this selection process.
The Rockit case is finally finished. I got the third and final prototype of the Rockit case in, put it together, and did the happy dance. I’m going to make some small adjustments for the production order, but nothing that will require another round of prototypes. I’m going to put up the case for pre-sale today. I need to hit a threshold of about 50 orders in order to buy it. The lead time from the laser cutter is three weeks, so these should ship in February. The cost will be $50. Click through for more pictures. Continue reading
Check out this Rockit assembly time-lapse video! Big thanks to its maker, Siempre La Luna.
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.
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.
I’m making progress on testing the latest board and I got it making some noise. But, it’s not all the noise that I was looking for. It’s more! Specifically, I made some layout choices that turn out to be quite poor. Let me save you from making the same mistake. Click through for the details.
Take a guess and click through to see if you’re right!
I was hoping to be writing that I had finished the design and had started the final layout, but I’ve got one more thing to get sorted. I’ve found that digital scaling in the 8 bit world has serious audio problems and I’m implementing some more analog circuitry to resolve it. As usual, I’m hacking my way through a well beaten path but I’ve never done it before so it takes some thought and experimentation. My usual limitation is to try to find the cheapest, lowest part count, and most consistent solution. I’ll post about the final solution, hopefully soon.
Otherwise, I’ve made huge progress. I’ve ditched the R2R DAC because it has linearity problems. I’ve wrapped up the filter after a bunch of experimentation and a couple misleading wrong turns. The final filter is going to sound pretty cool. I’m adding a bunch more waveshapes for synthesis and for the LFO which works very well. MIDI in and out are fully functional and implemented. I also got patch storage and recall working. So, it’s almost all there. One more thing to figure out and then it’ll be the final layout. In the end, I’ll be posting this project initially on Kickstarter as a way to generate the money to get started. I’ve got another investor, but I’m hoping to be able to do it alone. Anyways, send me an email or post a comment if you want to know more.
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.