A while ago I got a simple sample pad to go with my acoustic drum set. The pad has a tiny sample library and there’s a possibility to load new samples to a SD-card. However the user interface is a bit unpleasant and it’s really slow to load samples from an SD-card. I had an Axoloti board laying around so I decided to build a MIDI drum synth with the Axoloti for the drum pad.
The first sketches showed that there’s going to be a bunch of different controls and also a display. I wanted eight different instruments and a bunch of parameters for each of them. I also wanted a possibility to save and load different ‘kits’.
Axoloti has very good connections with a bunch of GPIO pins. However, I wasn’t familiar with programming Axoloti other than the graphical audio patching. I thought it would be easier to read all the controls with a Teensy board and send the values to Axoloti via MIDI control change messages.
I started the prototyping by reading encoders with Teensy, displaying values on an LCD-screen and sending control change messages via MIDI. All this is pretty straight forward with Teensy and the Encoder and LiquidCrystal libraries.
After figuring out things on the breadboard it was time to solder things together and put everything in a box. As usual, the box required a few extra runs with the laser cutter. The biggest head ache was the rotary encoders with missing US-sized nuts. I ended up using super glue…
After a lot of work everything was inside a box and I had a basic drum synth patch for Axoloti. I also made this super simple sequencer with a Teensy. It’s receiving a MIDI clock from The drums synth and playing pre-defined house-like patterns that are selected with a few knobs.
There still is quite a few difficulties with the box. First of all, the Teensy that’s reading all the controls is sending information to the Axoloti via MIDI. So the DIM MIDI input of the Axoloti is therefore taken. The communication is only one way, so this makes a bunch of things a bit spaghetti-like and unreliable. The next steps would be to set up the Teensy-Axoloti communications with the serial pins of both boards.
Another frustrating thing is selecting a certain instrument and changing its parameters. Now the user has to carefully rotate an encoder, choose the right instrument and then change the parameters. Choosing the right instrument is difficult as it’s hard to distinguish between some of the instruments, for example between two hi-hats or toms. Next I want to add a TM1638 board to show the incoming MIDI and have buttons to directly change to the respective instrument.
I’ve also had some difficulties with reliability. Some of the connections are not soldered and only connected with jumper wires. For the next version I want to use a PCB and make sure all the connections are secure and robust. I made a simple PCB with Eagle for the upcoming version.
A video documentation and github repo coming up after the new modifications.