MidiVox CV sketch update

The MidiVox CV sketch has been updated to work with Arduino 1.0 - grab it here

Also be sure to use the new version of the Midi Library as well!

Also, also: Some previous comments on earlier posts seem to have been lost in a recent Disqus migration - apologies to previous commenters.
View Comments

Updated Midi Library & site changes

Perhaps you noticed narbotic.com looks different? It is different!

A big thanks to everyone who picked up a MidiVox kit - you are now the proud owner of a rare piece of electronics.
Though the kit is no longer in production, there is now a new version of the Midi Libray which has been updated to work with the Arduino 1.0 IDE.

In addition to an aesthetic reboot, this site will now serve as your premiere destination for all things Collin Cunningham on the web. (and I vow that will be the one & only time I refer to myself in the third-person)

New things are in the works - more to come
View Comments



The industrious & talented Mr. Peter Teichman has ventured away from the MidiVox’s convoluted example code and posted the steps/code he used to create a new voice for the kit! Check it out his process here - NEW NOISES FROM MIDIVOX & code for the roto on GitHub

(Big thanks to Peter for sharing his code & cluing me in on this a while back via twitter)
View Comments



CV-lovers out there - Have a looksee @ the new version of the 1VpOct sketch for Arduino/MidiVox, aptly named - MidiVox_1VpO_v2.zip (details @ top of .pde file)

Hrrm … fairly certain some higher MIDI notes are somehow gating the CV signal which would effect a notes release in resulting synth output. Will squash this asap.

Otherwise, connections are same as previous, V-trig & S-Trig type Gate signals available from Arduino pins 5 & 4 respectively. Control Voltage signal available from pin 8 of the MCP4921 DAC chip (additionally, remember to disconnect nearby resistor from that pin) - and don’t forget to connect grounds between your synth and MidiVox/Arduino.

To put that in a more “step-by-step” context:

How To: Use a MidiVox shield as a MIDI->CV converter.

  1. Disconnect the 909Ω resistor from pin 8 of the MCP4921 DAC chip.
  2. Solder a wire to to pin 8 of the MCP4921
  3. Determine if your synthesizer uses V-trigger or S-trigger type Gate standard. Solder a wire to pin 5 if you're using V-trigger, or pin 4 if you're using S-trigger.
  4. Solder a wire to one of the "GND" ground pads on the MIDIVOX shield
  5. Connect the CV, Gate, and Ground wires to the appropriate jacks or solder points on your synth. Connect a MIDI device to the DIN-5 jack on the MIDIVOX shield
  6. Upload the 1-Volt-per-Octave CV sketch to your Arduino.
  7. Synth it up, Synthia!
View Comments



Before heading out to Maker Faire Bay Area, I managed to polish off a new version of the Healer synth code for use with MidiVox - woohoo!

Version 2 of the firmware saves customized parameters (filter, waveform, etc) to the Arduino’s built in EEPROM. Whenever the MidiVox’s RESET button is pushed, two quick flashes of the DATA LED confirm that a save+reset has occurred.

I’ve also disabled the velocity response and its relevant control parameter after figuring out they were to blame for some notes becoming ‘stuck’ on. Personally, I’m not a big fan of note velocity and never thought it felt quite right on a monophonic synth like this. That being said, if anyone’s sad to see velocity go (is that a pun?), please let me know in the comments and I’ll consider reimplementing it as an option in the next revision.

Healer v2 can be downloaded here.
View Comments



A second round of hacking has turned up a much better method for controlling the SX-150 via MidiVox+Arduino. (is it still “hacking” if it’s your own design?)

After running a wire directly from the DAC’s output to the SX’s stylus (bypassing the shield’s low-pass filter) octaves 0-5 are now usable. During my initial testing, the SX has stayed acceptably in tune over a 4-octave range - which I can hardly believe myself! A simple one-line conversion did the trick -
noteOut = (noteOut+1) * 20.45;
Download the MidiVox->SX-150 code here. (updated, see below)

To use the sketch, you’ll need to remove the 909Ω resistor running off the DAC chip’s output (pin 8, shown above), run a wire from the DAC’s output to the SX-150 stylus, and connect one of the available GND pads to the SX-150’s ground (outer ring from either “EXT. SOURCE” or “OUTPUT” jacks will work)

Update: In my gleeful haste to post the above info, I overlooked the very likely possibility that not all SX-150s will respond to a certain control voltage level in the same way. In fact, because these little analog synths use such inexpensive parts, it’s pretty much guaranteed no two will respond exactly the same way. I acquired a second SX for testing, and it seems to be ‘tuned’ a little less than 3 whole notes higher than the one I originally used.

Here’s a new version of the sketch that uses the variable “tuningVal” to achieve an acceptably in-tune output from the SX. Use a guitar tuner or tuner app to measure the output of the SX while controlling it via MidiVox + MIDI keyboard controller. Choose a reference note (ie - middle C ), and adjust the value of tuningVal (in the file named MIDISetup.pde) until the SX’s output matches that reference note. Example: Updating the code to “ tuningVal = 8.5; “ got my SX to play pretty nicely in tune.
View Comments



After a request in the forums, I took a stab @ generating control voltage for the ever-lovable Gakken SX-150 mini analog synth. This initial sketch will convert MIDI note values 47-84 into varying pitches w/ envelope triggers on the SX. Those interested can grab the code here -


Hardware Setup:
  • Switch the MidiVox AUD/CV jumper over to CV side (connecting the center and inner-most pin)
  • Connect the shield’s signal output (left or right channel from the onboard 1/8” output jack) to the metal contact on the SX-150 stylus.
  • Also, make a connection between GND on the shield to any ground point on the SX-150 (the exposed metal barrels on either of the SX 1/8” jacks will work)

The notes played won’t be in tune (that’s a tall order for the lil’ SX), but I’ve found that using a keyboard to control the Gakken is a lot big improvement compared to the standard stylus/ribbon interface.
View Comments



Damian wrote in wondering how the MidiVox can be used as a MIDI to control voltage converter. I figure my response might shed some light on the topic for others as well -

I hope to have an example MIDI->CV sketch up soon, but suffice it to say -
a DAC (such as the MCP4921 chip) outputs a specific voltage level set by according to data sent out by the Arduino (or other microcontroller).  The example synth sketch I have up now continuously sets the DAC's output to varying levels to create a waveform, (the speed or frequency at which it does this determines the pitch of the note).  To use the DAC as a control voltage generator we only need to set the DAC to one specific voltage level for every MIDI note - no need to be concerned with any specific frequencies.

if (incomingNote = C4) outgoingVoltage = 3.250;
if (incomingNote = D4) outgoingVoltage = 3.417;

… and when no note is being played, we turn the outgoing voltage to zero.

Anyway, that's the basic idea.  In order to be used with analog synthesizers and the like, we’ll probably need to solder a wire/connection to one of the digital output pads on the shield and set that pin high whenever a note is being played (aka - Gate)There’s also a jumper on the board labelled "AUD/CV", which disables the 10uF DC-blocking capacitor - which needs to be set to (yup, you guessed it) “CV” to enable control voltage out ;)
View Comments



The first batch of MidiVox kits are now available for purchase - big thanks to the crew over @ Maker Shed for making this happen!

The relevant parts list & build instructions are now up as well (my apologies for excessive puns used therein)
Schematic + PCB files will be posted ASAP.

Update: almost forgot this little demo vid of the kit in action -

View Comments



can i please have some more, sir?
View Comments
Previous posts