Here’s the scenario: you’ve got a microcontroller-based synthesizer. The synthesizer has a lot to do. It needs to check inputs like potentiometers, sliders, and keys. It needs to indicate its state to the user with LEDs and displays. And most importantly, it needs to generate noise. The standard method of handling all these tasks is to order them in a loop and handle them one at a time ad infinitum. But, not all of these tasks are as important as the other tasks. How can they be sorted and how can the system ensure that the most important tasks are handled before tasks of lesser importance? Let’s dig in. Continue reading
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.
Work continues on the K-DSC-1 synth cube. I’ve settled on a microcontroller. This cube’s going to run an ARM processor, which is going to provide lots of processor overhead for a sweet well-featured sequencer. We’re planning some cool features. There will be a USB port, a standard MIDI jack, and the K-Connect jack for hooking cubes together. What’s really going to make this awesome though will be the interface. We’ve put some good thought into the button operation, but the killer will be the accelerometer tilt action. I’m really excited about how it’s going to turn out.
I’ve been learning quite a bit about working with ARM processors and open source tools for developing with them. Stay tuned for some technical posts about what I’ve found.
I’ve finally settled into my new project and I’m ready to announce it. I was toiling away on a sequencer of my own for a while, a product to which I plan to return, but I’m changing gears to work with other people for a change, building the K-DSC-1 Synth Cube. It’s going to be super awesome and totally unique. I’m working on the electronics hardware and software while the other fellas work on the case design. This will have a proper enclosure made by real mechanical designers, something which I have found difficult to accomplish on my own. The fundamentals of the synth cube are:
- 8×8/16 step sequencer
- Accelerometer interface (tilt and shake)
- General MIDI synth engine
- Really solid polyphony with drum parts and synth lines together
- Delay effect
- USB-MIDI and DIN MIDI
- USB Bootloader
- Computer programming interface
That’s a bit of it. It’s ideally going to be the first in a series of interconnectable cubes. We’ve got plans for a whole bunch and they’ll all work together. It’s going to be great for noodling, writing, and really fun for performing. I’m working with some clever guys and I’m really hopeful that it’s gonna be fun to use and a really innovative design.