At this point I have two VCO's providing a nice base tone, but I can't
do much with it if I can't "play" them with a keyboard. I didn't
really want to tackle building the mechanics of a physical keyboard and
had the K2600 which I can use as a midi controller, so I just need a
midi interface that took input from a midi controller and converted it
to analog control signals. First thing I needed was the frequency
control voltage (CV).
I already had an Arduino Nano
micro controller board, so I decided to use this as the basis of my
midi interface. I didn't think the analog PWM outputs would be suitable
so I looked for a DAC that I could interface with the Arduino. The DAC
I selected was the TI DAC8568ICPW. In hind sight it may not be the
best choice, it's a little pricey and the 16 bit resolution is a little
overkill but the serial SPI interface was easy to connect and implement
on the Arduino and I figured the 8 channels would make implementing the 8
voice polyphony easy. If I end up needing more than two of these
(depending on what control voltages I want to generate) or the SPI
interface ends up being too slow to keep up I'll have to find something
else, as well as another micro controller, but for now it's working
quite well.
The circuit for a midi input is quite simple and can be easily found
on the 'net, and Arduino has some easy to use midi library functions.
In a few days I was able to code up something that received midi note on
messages, decoded the note number and output an appropriate value to
the DAC to produce a 1V/OCT CV to control the frequency of the VCO's.
Very rudimentary but it was another key step to further convince me that
my ultimate goal was indeed achievable and encouraged me to continue
on. Now that I had properly scaled CV's going to the VCO's, I was able
to tune them and get them tracking very nicely.
Next, we need to start adding some color to the base tones out of the VCO's.
No comments:
Post a Comment