Saturday 3 August 2013

Lell UDS MIDI to trigger interface

  

The Lell UDS is another 80's soviet analog drum machine - mine was made in 1989.  All those knobs and only 2 channels - this is quite a deep drum module.  Again mine was in a bad state when I got it, significant noise, loose crackly pots and no trigger pads.  A lot of knob wiggling, deoxit and some resoldering fixed the pots.  Other people trigger these from external audio but I found the trigger audio was bleeding through - I think the click part of the signal would originally have been the transient from the piezo pickups in the pads.  So I wanted to give it a proper trigger signal.

I have built a 2 channel MIDI to trigger circuit using an Arduino.   When it receives a MIDI note on command C1 or D1 (note numbers 36 or 38) and velocity is more than 0, outputs 1 and 2 (Arduino pins 9 and 12) go high for a predetermined time - note length is ignored.  As before, the board is a barebones arduino board with an opto-isolated midi input.  The code is essentially the same as the Elsita trigger interface, but there is more to the circuit.  The  5v out of the Arduino wasn't consistently triggering so I connected the Lell UDS 12v positive supply to the trigger inputs using a transistor.  The Arduino outputs are connected to the base of the transistor to gate the trigger signal.  This buffering is good practice with Arduino outputs anyway.

This is an internal modification to a device that hooks up to mains electricity, so please be really careful and never work on it while plugged in.  There are some pretty big capacitors that are likely to hold a charge for a while too.  I took the arduino board's positive supply from pin 8 and ground from pin 3 on the PSU board.  I replaced the DIN audio out with a 1/4" jack and mounted a new DIN jack for the MIDI in.  I replaced the original 2 pin mains cable with a UK 3 pin cable and hooked up the metal chassis to ground via the power supply rather than via audio.  Now the background noise is a lot lower than it was.

PLEASE BE CAREFUL.  AS WITH ALL MY MODS I ACCEPT NO PERSONAL RESPONSIBILITY FOR DAMAGE TO YOURSELF OR YOUR GEAR.  ELECTRICITY IS DANGEROUS, IF YOU DON'T KNOW WHAT YOU ARE DOING DON'T ATTEMPT ANY OF MY MODS 

LellUDS-trig - eagle files and arduino .ino file





/*
2 channel midi to gate trigger for analog drum machines.
 midi notes C1 and D1 (midi numbers 36 and 38) cause digital
 pins 9 and 12 (15 and 18 on the atmega168/328 ic) to be high.
 velocity is ignored, the digital outputs being high for all velocities except 
 zero (note off).  Note length is ignored.  You may need to change trigtime
 to a value more suitable to your device.  Add further channels if required.
 code by analog monster analogmonster@live.com
 http://analog-monster.blogspot.co.uk/
 uses arduino midi library by Francois BEST
 */

#include <MIDI.h>  // Add Midi Library
#define CH1 9 //define pins per channel
#define CH2 12
int trigtime=100;


void setup() {
  pinMode (CH1, OUTPUT); // Set Arduino board pin 9 to output
  pinMode (CH2, OUTPUT); // Set Arduino board pin 12 to output
  digitalWrite(CH1,LOW);
  digitalWrite(CH2,LOW);
  MIDI.begin(MIDI_CHANNEL_OMNI); // Initialize the Midi Library, all channels
  MIDI.setHandleNoteOn(trig); // call trig when note on recieved
  
}

void trig(byte channel, byte pitch, byte velocity) {
  if (pitch == 36 && velocity > 0){
for(int i=0; i<trigtime; i++){
  digitalWrite(CH1,HIGH);}
  digitalWrite(CH1,LOW);}
  
  if (pitch == 38 && velocity > 0){
for(int j=0; j<trigtime; j++){
  digitalWrite(CH2,HIGH);}
  digitalWrite(CH2,LOW);}  
}
void loop() { // Main loop
  MIDI.read(); // read Midi Commands 
}

4 comments:

  1. Hi, great blog! some really nice projects.
    I was wondering if this circuit could be used to produce gate sync for an analogue sequencer from the midi clock? I have been looking around the internet for a simple solution to this but seem to only find over complicated versions with cv which I don't need. I'm not that great at aduino coding or understanding midi messages. Do you have any idea where I could find this information?

    ReplyDelete
    Replies
    1. Oh and what kind of mill are you using? was it very expensive?

      Delete
  2. the mill is expensive, about £1000 with the upgrades I have done to it. Plus it has running costs - mill bits, drill bits, electricity and materials. Although I still use it for other things, I use it for PCBs less and less. Provided you are willing to wait a few weeks you can do very small runs of high quality PCBs cheaply. Oshpark is great, they charge by the dimension and you get multiples of 3 boards per order.

    Yes this board could be used to do what you want to do with only software modifications. At the moment this circuit generates a trigger at note on - the note length is ignored. What you could do is keep one of the channels as this, so you can manually step the sequencer with midi notes, while the second has midi clock out. It would be easy to add more outputs for other things, such as 1/2, 1/4, 1/8 etc. divided outputs, you could even add a knob to be able to sweep through different divisions on a particular output.

    I could customize it further for you if you wish for a very small fee, it would take very little work for me to recode and modify the board for more channels - its basically all copying and pasting from other things I've built. Drop me an email if you want to talk about it, analogmonster at live dot com

    ReplyDelete
  3. Hi
    what kind of crystal you use ?
    Thanks a lot

    ReplyDelete