Friday, November 13, 2015

Play the Kaossilator Pro with standard MIDI controllers (solder-free tweak)



I very much enjoy the intuitive play on the Korg Kaossilator Pro+. However, while I experience the touch pad to be great for implementing rhythms, drone sounds and simple patterns, I often don't hit the notes accurately enough during more complex loops, and often considerably disturb my harmonies. Consequently, every now and then, I would like to play individual parts with a standard USB MIDI controller or sequencer.

Since the Kaossilator is designed to be played via the touch pad, also the MIDI implementation is tailored around corresponding commands. In practice: my MIDI keyboard sends a note on command when I hit a key, while the Kaossilator expects a control change # 74 (to signal that the touch pad was pressed), and then control changes # 12 and # 13 (to define the X and Y coordinates on the pad) to play a sound. I experience this as quite annoying, but it is easy to fix without extensively trying to reconfigure the MIDI controller's behaviour:

In contrast of most of my other projects, this hack is optimised for easy and solder-free implementation. For this reason, together with its straight forward MIDI implementation, I again designed this project around the Teensy development board. While this could be implemented cheaper with a variety of other boards and some simple circuitry, the Teensy LC (which is available for around 12 USD/EUR) will only need a micro-usb to usb cable and my Kontroller firmware.

Since the hack is designed for stock boards, it is very suitable for the absolute DIY beginner and therefore I also guide through the installation steps of the software required to put the Kontroller (not overly creative, but quite a suitable name for this hack) firmware on the Teensy board.

Assuming you have a Mac (it is the very same on other systems, however, the software installation routines are slightly different and I cannot confirm the exact names of menu points etc.), and that this is your first contact with the Arduino world, download the Arduino software here.

After installing (by moving the Arduino icon into your application folder), download the Teensyduino extension and install it via its installer. During this process, you will have to indicate where you have just put the Arduino IDE (hint: it is in your application folder), as well as point out which Teensy libraries you want to have pre-installed (for this purpose, it is save to not install any. Particularly do not install the MIDI library, it is based on an old version. If you want the MIDI library, like for MIDI DINs etc, get it from here).

Now it is time to get the actual Kontroller firmware from my GitHub section. Download it, and open it in the Arduino IDE. You can change the setting to your liking as described in the beginning of the file. Just add or remove "#" characters at the beginning of each line to inactivate or activate the setting, respectively. Configureable options include:
  • enable/disable modulation of the X-axis (the note's pitch) by your keyboard's pitch wheel
  • enable/disable notes velocity to define the Y-axis (often a filter or delay)
  • enable/disable a control change # (which can be freely chosen) to define the Y-axis
  • enable/disable aftertouch to modify the Y-axis value
  • enable/disable indication of played notes on the built-in LED of the Teensy (Why not?)

Connect your Teensy board and, in the Tools menu, select Board: "Teensy LC" and USB type: "MIDI". Then press Upload in the Sketch menu.

And done! Kind of. The Kaossilator gives us two options to communicate with it via MIDI: USB and DIN. Since implementation of the latter requires construction of a (very basic) circuit, I neglected this route in order to provide an assembly-free solution. However, implementing MIDI DINs is really easy and straight forward, so feel free to contact me if you want instructions for that as well.

Focusing on USB, unfortunately this communication was designed for a USB master to interact with USB slaves. That is also why you typically cannot directly connect your USB MIDI keyboard to your instruments, but have to go through a master, i.e. your computer. Having said that, this means you will have all your devices (Kaossilator, Kontroller, Keyboard/Sequencer) connected to a computer for this to work. And you need to configure your computer to pass the information from your USB MIDI device through the Teensy Kontroller to your Kaossilator. On a mac, a free software to do so is MIDI patchbay



MIDI Patchbay: use the Teensy as a man-in-the-middle usb device

Despite being quite aged, it does the job well. Downlaod it from the provided link, move the app to the applications folder and start it. The first patch will manage the connection between your MIDI device and the Kontroller. MIDI input should reflect the name of your device, while MIDI output should say "Teensy MIDI". Apply your corresponding Channel settings and, under Note, allow all notes. Then click the "Add Patch" button to make the Kontroller to Kaossilator connection. Here, the MIDI input is "Teensy MIDI" while the output should be "KAOSSILATOR PRO+ SOUND", while and the MIDI Channels have to be configured to your Kaossilator's settings. 

And done! This time for real.



A quick note for fruitful experimentation: Kontroller translates notes into coordinates on the touch pad's XY-axis of your Kaossilator Pro (+). This means that the scale, set on the Kaossilator, is respected and therefore does not necessarily reflect the pressed key's pitch. Similarly, the octave range of the Kaossilator will further modulate the notes played. While this can be quite fun as well, a one-to-one mapping can be achieved by setting the octave range of you Kaossilator to full.