This is an update of my old 6 note poly midi to CV converter, the one I made is installed and doing its job, but I always wanted to generate CVs like manufacturers do with all the CV, pitchbend, modulation etc all on the same wire per voice.
So I updated this oolder version on a test bed of sorts, I have 8 voice cards with AS3340 VCOs on board and the plan is to test the CV functions, add the Pitchbend and modulation into the CVs and also try to add an autotune to keep everything stable. I have a 16 channel mux connected to each VCO output to select each one to tune.
All built around a Teensy 4.1 and some octal 16 bit DACs. I’m not publishing the code until it’s closer to completion as I’m going to collaborate with a FB colleague for some of functions. So far I’ve been tidying up my old code as this was written about 3 years ago when I had not been programming long. I’ve updated the code from 6 to 8 voices, fixed timing routines which were effectively just blocking delays, rewritten the DAC output routines and added live pitchbend to the CV outputs. Surprisingly some of the methods are taken from the PolyKit DCO code.
Dac8568 16 bit octal DAC with spi, around $5 for 8 channels is quite reasonable. All the parts are shown in the schematics from the original 6 note build if you follow the GitHub link.
looks cool, i have had a teansy on the shelf for a couple of years… Once I have done the current builds I am going to go voice card style for a next adventure .
Sunday afternoon update to the polyphonic midi to CV converter, realized a few days ago that adding pitch bend and modulation to the VCO CVs is fine, but you cannot then use these CVs to control the filters as they would be affected by the same modulation and PB. So added another DAC to provide filter CVs which can be modulated independently of the VCOs. Also running out of pins on the Teensy 4.1, so two changes, first the menu buttons were moved onto some 74hc165 shiftregisters to give us 16 button inputs available, the menus are easier to navigate now and less jumpy. I used the RoxMux library to control them and callbacks on button presses. Then to reduce the amount of digital output lines I moved the gates and triggers onto 3* 74hc595 shiftregisters for 24 outputs, only using 16, bit I’m sure some will be used for button LEDs at a later date. I need to start working out how to control modulation depths from pots to control the LFO to the VCOs and filter CVs.
I’ve made some progress on the autotune function of the board. I’ve been testing various libraries for counting pulses accurately to two decimal places and I’ve settled on FreqMeasuremulti.h for the T4.1. I can accurately read pulses upto about 1.5khz (midi note 96) approx and adjust and store the corrected VCO CVs. First run takes a while and with 16 oscillators to tune it’s slow especially at the lower notes like 4hz. But speeds up as you get higher up the scale. All note tweeks are stored in eeprom so next tune will be much quicker as you are approximately at the right frequency depending on temperature. I’m going to see if I can switch to freqcountmany.h for the higher frequencies as I understand this works well above 1khz.
Hi craig, could you elaborate on how your code deals with the tuning of notes to the dac, im interested in how you have implemented this and how accurate you can get it ! thanks for your work
This project was never public on GitHub as it was a collaboration that was never completed, but it was based on the previous 6 note version that I made. Have a look at the GitHub page. In practice it was extremely accurate when measuring the output voltages, could it be better, yes probably, I’m no expert in any fields and I don’t understand a lot of the technical details of what I’m doing. But as long as it does what I want I do not really care. The aim on this was a stable polyphonic MIDI to CV with 0-5v range, gates, triggers, velocity and separate modulation and pitchbend outputs.
Finally this weekend I managed to get this auto tune to work and store the corrections to the notes. 6 dual oscillators currently in the prototype, but it all sounds in tune to me and I tested it from cold this morning and it’s pretty accurate so once it warms up it should be as this video.
I had some earlier versions of my voice boards spare, so I modded them up to work in the auto tune breadboard and after a little tweaking, but very little in the way of tuning, the auto tune managed to pull them into tune. They are louder than the other 6 cards, but they are in tune.
I powered the board up this morning after about 14 hours of idle in my workshop and everything was still in tune.