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
Previous posts