After buying an Akai Mpk49 I wanted to see if there was anyway to use all 16 knobs and faders to control ableton devices. After going down the rabbit hole of ableton python scripts I was successful in creating a control script for the AKAI that allowed 16 parameters to be controlled at once.
This required alteration of the Generic ableton control scripts folder as this defines what parameters are the first 8 to be controlled. I altered this to have 16 parameters and different banks and managed to make it work.
See the video for a demo.
DEVICES.PY TEXT EXAMPLES (SHOWS KNOBS AND FADERS 2X8 = 16 IN TOTAL)
# ANALOG BANK PARAS
ALG_BANK1 = (‘OSC1 Shape’, ‘OSC1 Octave’, ‘OSC1 Semi’, ‘OSC1 Detune’, ‘PEG1 Amount’, ‘O1 Sub/Sync’, ‘OSC1 Balance’, ‘OSC1 Level’, ‘OSC2 Shape’, ‘OSC2 Octave’, ‘OSC2 Semi’, ‘OSC2 Detune’, ‘PEG2 Amount’, ‘PEG2 Time’, ‘OSC2 Balance’, ‘OSC2 On/Off’)
#para 1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 8 1 2 3
ALG_BANK2 = (‘F1 Freq’, ‘F1 Resonance’, ‘F1 Type’, ‘F1 Freq < Env’, ‘F1 Res < Env’,’F1 Freq < LFO’, ‘F1 Res < LFO’, ‘F1 On/Off’, ‘FEG1 Attack’, ‘FEG1 Decay’, ‘FEG1 Sustain’, ‘FEG1 Rel’, ‘F1 To F2’, ‘FEG1 Loop’)
# 1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 8 1 2 3
ALG_BANK3 = (‘F2 Freq’, ‘F2 Resonance’, ‘F2 Type’, ‘F2 Freq < Env’, ‘F2 Res < Env’,’F2 Freq < LFO’, ‘F2 Res < LFO’, ‘F2 On/Off’, ‘FEG2 Attack’, ‘FEG2 Decay’, ‘FEG2 Sustain’, ‘FEG2 Rel’, ‘F2 Slave’, ‘FEG2 Loop’)
ALG_BANK4 = (‘AEG1 Attack’, ‘AEG1 Decay’, ‘AEG1 Sustain’, ‘AEG1 Rel’, ‘AEG2 Attack’, ‘AEG2 Decay’, ‘AEG2 Sustain’, ‘AEG2 Rel’, ‘AMP1 Level’, ‘AMP1 Pan’, ‘AEG1 A < Vel’, ‘AMP1 < LFO’, ‘AMP2 Level’, ‘AMP2 Pan’, ‘AEG2 A < Vel’, ‘AMP2 < LFO’)
# 1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 8 1 2 3
ALG_BANK5 = (‘LFO1 On/Off’, ‘LFO1 Shape’,’LFO1 Retrig’, ‘LFO1 Delay’, ‘LFO1 Fade In’, ‘LFO1 SncRate’, ‘LFO1 Phase’, ‘LFO1 Speed’, ‘LFO2 On/Off’, ‘LFO2 Shape’,’LFO2 Retrig’, ‘LFO2 Delay’, ‘LFO2 Fade In’, ‘LFO2 SncRate’, ‘LFO2 Phase’, ‘LFO2 Speed’)
# 1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 8 1 2 3
ALG_BANK6 = (‘Vib On/Off’, ‘Vib Amount’, ‘Vib Speed’, ‘Vib Delay’, ‘Unison On/Off’, ‘Unison Detune’, ‘Voices’, ‘Volume’, ‘Noise On/Off’, ‘Noise Level’, ‘Noise Color’, ‘Glide On/Off’, ‘Glide Time’, ‘Glide Legato’)
# para 1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 8 1 2 3
# OPERATOR BANK PARAS
OPR_BANK1 = (‘Ae Attack’, ‘Ae Decay’, ‘Ae Sustain’, ‘Ae Release’, ‘A Coarse’, ‘A Fine’, ‘Osc-A Wave’, ‘Osc-A Level’, ‘Osc-A On’, ‘Osc-A Lev < Vel’, ‘Ae Mode’, ‘Ae Retrig’, ‘A Fix On’)
# 1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 8 1 2 3
OPR_BANK2 = (‘Be Attack’, ‘Be Decay’, ‘Be Sustain’, ‘Be Release’, ‘B Coarse’, ‘B Fine’, ‘Osc-B Wave’, ‘Osc-B Level’, ‘Osc-B On’, ‘Osc-B Lev < Vel’, ‘Be Mode’, ‘Be Retrig’, ‘B Fix On’)
OPR_BANK3 = (‘Ce Attack’, ‘Ce Decay’, ‘Ce Sustain’, ‘Ce Release’, ‘C Coarse’, ‘C Fine’, ‘Osc-C Wave’, ‘Osc-C Level’, ‘Osc-C On’, ‘Osc-C Lev < Vel’, ‘Ce Mode’, ‘Ce Retrig’, ‘C Fix On’)
OPR_BANK4 = (‘De Attack’, ‘De Decay’, ‘De Sustain’, ‘De Release’, ‘D Coarse’, ‘D Fine’, ‘Osc-D Wave’, ‘Osc-D Level’, ‘Osc-D On’, ‘Osc-D Lev < Vel’, ‘De Mode’, ‘De Retrig’, ‘D Fix On’)
OPR_BANK5 = (‘Le Attack’, ‘Le Decay’, ‘Le Sustain’, ‘Le Release’, ‘LFO Rate’, ‘LFO Amt’, ‘LFO Type’, ‘LFO R < K’, ‘LFO On’, ‘Osc-A < LFO’, ‘Osc-B < LFO’, ‘Osc-C < LFO’, ‘Osc-D < LFO’, ‘Fil < LFO’)
OPR_BANK6 = (‘Filter Freq’, ‘Filter Res’, ‘Fe R < Vel’, ‘Fe Amount’, ‘Fe Attack’, ‘Fe Decay’, ‘Fe Sustain’, ‘Fe Release’, ‘Filter On’, ‘Filter Type’, ‘Filt < Vel’, ‘Shaper Type’, ‘Shaper Amt’, ‘Shaper Dry/Wet’, )
# filters 1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 8 1 2 3
OPR_BANK7 = (‘Pe Attack’, ‘Pe Decay’, ‘Pe Sustain’, ‘Pe Release’, ‘Pe Init’, ‘Spread’, ‘Transpose’, ‘Pe Amount’, ‘Pe On’, ‘Glide Time’, ‘Glide On’, ‘Pe Amt A’, ‘Pe Dst B’, ‘Pe R < Vel’, )
# Pitch 1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 8 1 2 3zZ
OPR_BANK8 = (‘Time < Key’, ‘Panorama’, ‘Pan < Key’, ‘Pan < Rnd’, ‘Algorithm’, ‘Time’, ‘Tone’, ‘Volume’, ‘PB Range’,)
OPR_BOB = (‘Filter Freq’, ‘Filter Res’, ‘A Coarse’, ‘A Fine’, ‘B Coarse’, ‘B Fine’, ‘Osc-B Level’, ‘Volume’)
OPR_BANKS = (OPR_BANK1,
OPR_BANK2,
OPR_BANK3,
OPR_BANK4,
OPR_BANK5,
OPR_BANK6,
OPR_BANK7,
OPR_BANK8)
OPR_BOBS = (OPR_BOB,)
OPR_BNK_NAMES = (‘Oscillator A’, ‘Oscillator B’, ‘Oscillator C’, ‘Oscillator D’, ‘LFO’, ‘Filter’, ‘Pitch’, ‘Routing’)