Ablickton is a Arduino based MIDI controller for Ableton Live (or any other tracker working with MIDI)
Characteristics:
Hardware:
To build this controller you need:
Firstly, you need to download and install the Arduino software (if it is not already;) )
Then download the RAR file "Ablickton v1.0" and unzip it to your desktop. It contains all the files needed to program your Arduino. Once unzipped, open the folder "Ablickton v1.0", you come to the program with a folder called "libraries". Copy everything in the folder "libraries" in X :/ .../arduino-1.0.x/libraries /. You must then copy the file "wiring_shift.c" located in the SRIO library folder and replace the old file in your Arduino environment in : X :/ .../arduino-1.0.x / hardware / arduino / cores / arduino /. This file has been modified to optimize the speed of communication between Arduino and Dilicktal. Then open the file "Arduino.h" located in X :/ .../arduino-1.0.x/hardware/arduino/cores/arduino / Go to line 111 and replace lines 111 by "void shiftOut (uint8_t val); "And the line 112 by" uint8_t shiftIn (); "
For mounting you need to connect Dilicktal and Lickogic in this order. Do not forget to set the jumper on Lickogic on positions 0 to the first board and 1 to the second one.
Number of controllers and button functions:
Each button sends a MIDI Control Change set in the code that goes from 0 to 63. Number button to corresponds to the controller number. There are two possible options for type of buttons: Toggle (press once => ON, sending a CC value of 127, the second pressure => OFF, sending a CC value of 0) or Momentary (pressed => sending a CC value of 127, released => sending a CC value of 0). In the variable "button_toggle_Pin []" you can change the number of buttons that operate in toggle mode. As well as the variable "button_momentary [] []" you can change the value of the buttons will be Momentary Mode. Note that this variable is a double array to match buttons with Ableton clips.
//Pin number of the toggle button byte button_toggle_Pin[]={ 52,53,54,55,60,61,62,63 }; //Array of the momentary button pin organize to match with Ableton clip configuration uint8_t button_momentary[8][7]={ { 0,4,16,20,32,36,48 } , { 1,5,17,21,33,37,49 } , { 2,6,18,22,34,38,50 } , { 3,7,19,23,35,39,51 } , { 8,12,24,28,40,44,56 } , { 9,13,25,29,41,45,57 } , { 10,14,26,30,42,46,58 } , { 11,15,27,31,43,47,59 } }; |
Potentiometers also send a Control Change message with a value of 7bit (0 to 127). The controller number is the number of the potentiometer plus 64 to not interfere with the buttons.
for (byte i=0; i<NUMPOT; i++){ pot_Value[i] = Pot.Read(i)>>3;//convert 10bits to 7bits if (abs (pot_Value[i] - old_Pot_Value[i])>1){//value pot changed? int data = map(pot_Value[i],3,123,0,127);// map to right midi value 0,127 data=max(data,0); data = constrain(data,0,127); Send_CC (i+64,data); old_Pot_Value[i] = pot_Value[i]; } } |
Code configuration:
You can change the following settings in the code. If you add more Lickogic to your project do not forget to set the jumper on each board.
//Number of connected potentiometers #define NUMPOT 16 //communication mode 0=serial 1=MIDI 2=USB #define COMMUNICATION_MODE 2 //Midi channel #define MIDI_CHANNEL 1 |
Follow us