Arduino based Midi Trigger box for analog synths

Nikolaus Gradwohl2018-09-14T07:11:26+00:00

I usually control my volca and the Mother32 via midi and create sequences using Bitwig studio or Sonic Pi but I wanted to use the build in sequencers to create a more hands-on feeling and simplify loop creation while jamming but haven't found a satisfying what to synchronize the sequencers to each other and to my computer

I considered buying a bastl klick - but I would need several of them to control different synths at different clock-rates and I would have to sacrifice several audio outs to control them.

So I build a midi-trigger system using an arduino that allows me to send trigger signals to 4 devices using midi note-on signals. Now I can run the sequencers of my devices at different clock rates allowing me to use longer or shorter sequences or create different rhythms by sending trigger signals with different note lengths to the DFAM. Sort of like a clock-divider on steroids combined with a sequenceable trigger pulse.

trigger-box

I soldered 3.5mm TS Jacks to the Digital out pins of an arduino and replaced the USB-serial firmware with a USB-midi implementation - on each note-on signal a short trigger is sent to the corresponding out pin.

trigger-box schematics

Finally I created a box for the arduino and the Jacks using OpenSCAD and the OpenSCAD arduino library and printed it on my 3D printer unfortunately the walls are a bit thin because I had to fit the screws on the Jacks and they only allow for 1mm walls. So the box is a bit brittle.

The volcas use one trigger signal for 2 beats so its not really possible to change the speed during one pattern or create different rytms by timing the trigger signals like on the DFAM. But it still allows me to create half or double time patterns on all my volcas.

On the DFAM a pattern always has to use 8 notes - there is no possibility to reset the pattern to the first slot - and you have to set it manually to the last slot before starting the sequencer to make sure everything is in sync and starts at beat one.

Since some Synths (like the DFAM) react to the up-phase of the trigger signal and some synths (like the volcas) react to the down phase of the singal, I made the trigger pulses as short as possible to prevent sync issues.

I used the arduino midi library to create the program that reacts to the midi events on the serial port and used the Midi-firmware from the HIDuino projekct to turn my ardunino serial port into a class compliant USB-Midi port - so I don't need to run any midi to serial translation programs on my computer and can use it out of the box with any DAW. Only downside is, that I need to use the ISP-Headers and a programmer to update the arduino code

If you want to build your own trigger box, you can use my sourcecode for the arduino

#include <MIDI.h>

MIDI_CREATE_DEFAULT_INSTANCE();
int on[] = {0,0,0,0};
void HandleNoteOn(byte channel, byte pitch, byte velocity) {
  if ( pitch >= 48 && pitch < 52) {
    if ( velocity > 0 ) {
      on[pitch-48]=1;
    }
  }
}

void setup() {

  MIDI.begin(MIDI_CHANNEL_OMNI);
  MIDI.setHandleNoteOn(HandleNoteOn);
  pinMode( 3, OUTPUT);
  pinMode( 4, OUTPUT);
  pinMode( 5, OUTPUT);
  pinMode( 6, OUTPUT);
}

void loop() {
  MIDI.read();
  for(int i=0;i<4;i++) {
    digitalWrite(3+i, on[i]==1?HIGH:LOW);
    on[i]=0;
  }
}

And here is the OpenSCAD Code I used to generate the enclosure for my trigger-box

include <arduino.scad>
difference() {
    enclosure(UNO, 1.5, 3, 30, 3, TAPHOLE );
    for( i=[0:3]) {
        translate([0,12+i*15,30]) {
            rotate([0,-90,0]) {
                cylinder(h=20, r=3.2); 
            }
        }
    }
}
Tweet This! submit to reddit Digg! Tags: | no comments | no trackbacks

See also:

New Track: The World you don't see
New Track: Seven meets Four
Synth Jam - Mar 27
New Track: Melody in D-Minor
How to modulate Midi-CC values in Bitwig Studio

Trackbacks

Comments

Leave a response

Leave a comment