Arduino Electro-Theremin (slide theremin), with MIDI output and a 8-bit sine wave oscillator
As I wrote before, the Tannerino will be a slider MIDI controller for monophonic (or pseudo-polyphonic) tone generation. I plan on making the slider about 60 cm long, and make it produce continuous notes over up to 4 octaves. Initially, I thought of just providing a center note with a pitch-bend cc, as I found out that pitch-bend can provide up to 24 semitones up or down. This was also the reason I decided to go with an external 16 bit ADC, as the pitch-bend cc is also a 16 bit number. But, I found out later that most synthesizers can only do (+) or (-) 2 semitones. So, here's one problem I'm facing. The other problem I have in this design is the integration of a switch in the slider. In some of the versions of the original instrument, there was a switch located on the slider, which turned on the sound output of the oscillator. I thought of having a ribbon cable dangle from the slider, but that doesn't seem like a long-term solution, as it will probably just crack with material fatigue over time. Third problem, which came up while testing my initial firmware with a menu over an LCD, was with the tone generation. Without the LCD, the sound was continuous and (thanks to the nature of a clean sine wave) quite boring. But when I added the LCD, the sound was jittery and the sound was more like a cricket. So, to recap, I have three design problems / goals:
So, solving the first problem will, I suppose, require some interpolation of the current location of the slider, and sending a MIDI note with relative pitch-bend cc.
The next problem is more of a mechanical problem. I thought of maybe having a T-shaped bracket with contacts on both sides, but that still requires some investigation.
The third problem (which is probably far from being last), requires some investigation into what actually happens when the note is played. I got a kit oscilloscope with the boards I designed for my other project, and hopefully I can figure out what's up with that once I get the scope going.
The idea for my other project (Arduino Blocks for MIDI Controllers) stemmed from needing a menu based display UI for the Tannerino. I wanted to be able to set different wave shapes, range and tunings - and thought the RepRapDiscount Smart Controller was just the right tool for the job, since it includes a 2004 LCD character display with an on-board rotary encoder. That seemed like the right, uncluttered UI approach I was looking for. But since I don't have much of a background in either EE or software, it took me on a bit of a journey trying to get everything I wanted to work.
Anyway, as I'm about to receive the PCBs and components I ordered for the AB4MIDICtrlrs, I got going in fitting the right components for getting the job done. The stripboard above acts as an Arduino shield, and contains the main functional blocks for the Tannerino:
Even though it's a bit different in design from working with the AB4MIDICtrlrs UI shield, I've already done this version a few months ago, and I can use it to at least get the libraries I need going.
I hope to get the software side going before PCBs arrive. I will probably feature the libraries in my other project page as they are more general, and reserve this page for more specific details.
Just to get going - a short explanation of the mechanical components I laid out in the project photo:
I really hope to get the UI shield from my other project here by next week, and getting going again with this project by placing the 8-bit synth output components on a prototyping shield.