Here is the current mls file wich I use. Also a photo of my launchpad mini at work.
All Keys are for starting cartwall (64 carts!)
The right side (Orange keys) stop the entire row cartplayers at once.
The top left button (Red on the photo) Is a switch between Auto and Assist
The top right button (Green on the photo) Here I want a switch to stop all cartplayers at once! (THIS IS STILL IN PROGRESS)
Hope the script helps u out.
I tought it was difficult, But it isn’t when u are familiar with basics of programming…
[code]// Launchpad Script
// written by Thomas “Kloppi” Kloppholz
// You can imagein everything, but no new color 
// under Creative Commone “CC BY-SA” licenze SHARE + COPY But UNDER SAME LIZENZE and with my Name in it… 
//
// Version 0.1 - 15.4.2013
//
const
Launchpad_Device = 1; // <----- Edit hier your Launchpad Device number from Mairlist Log
/////////////////////////////////////////////////////////////////////////////////////////// DON*T Touch unless you know what you are doing !!!
cOff = 12; // LED - OFF
cLowRed = 13; // LED low Red
cHighRed = 15; // LED High Red
cBlinkRed = 11; // LED Blink RED
cLowGreen = 28; // LED low Green
cHighGreen = 60; // LED HIGH Green
cBlinkGreen = 56; // LED BlInK Green
cLowAmber = 29; // LED low Amber
cHighAmber = 63; // LED High Amber
cBlinkAmber = 59; // LED Blink Amber
cBlinkYellow = 58; // LED Blink Yellow
cHighYellow = 62; // LED High Yellow
var
Buttons : array[-1..100] of integer;
StopButtons: array[-1..8] of integer;
SessionButtons: array[-1..8] of integer;
Numbers : array[-1..10] of array[-1..64] of integer;
Area: array[-1..64] of integer;
countdown : integer;
function initLaunchpad(werte:integer):boolean;
var
i:integer;
begin
i:=0;
MidiOutListDevices;
midioutopen(Launchpad_Device);
midiout( Launchpad_Device , 176 , 0 , 0 ); // Reset Launchpad
midiout( Launchpad_Device , 176 , 0 , 40); // Set Internal Timer
//Lets init the button-vars
StopButtons[0] := 8; // 1. Stop Button
StopButtons[1] := 24; // 2. Stop Button
StopButtons[2] := 40; // 3. Stop Button
StopButtons[3] := 56; // 4. Stop Button
StopButtons[4] := 72; // 5. Stop Button
StopButtons[5] := 88; // 6. Stop Button
StopButtons[6] := 104; // 7. Stop Button
StopButtons[7] := 120; // 8. Stop Button
//firstrow
for i := 0 to 7 do
begin
Buttons[i] := i;
end;
// 2nd row
for i:= 8 to 15 do
begin
Buttons[i] := i+8;
end;
//3rd row
for i:= 16 to 23 do
begin
Buttons[i] := i+16;
end;
//4st row
for i:= 24 to 31 do
begin
Buttons[i] := i+24;
end;
//5st row
for i:= 32 to 39 do
begin
Buttons[i] := i+32;
end;
// 6st row
for i:= 40 to 47 do
begin
Buttons[i] := i+40;
end;
// 7st row
for i:= 48 to 55 do
begin
Buttons[i] := i+48;
end;
// 8st row
for i:= 56 to 63 do
begin
Buttons[i] := i+56;
end;
// Turn the StopButtons on
for i:=0 to 7 do
begin
midiout( Launchpad_Device , 144 , StopButtons[i] , cLowAmber);
end;
// Session Buttons
for i:=0 to 7 do
begin
SessionButtons[i] :=104 + i;
end;
// turning "Mixer" button to green
midiout( Launchpad_Device , 176 , SessionButtons[7] , cHighgreen );
//Turning "session" Button to green (cause -> assist)
midiout(Launchpad_Device,176, SessionButtons[0],cHighGreen);
// ZEICHNUNGS-Vorbereitungen…
//Zeichnungsareal
Area[0] := 53;
Area[1] := 54;
Area[2] := 55;
Area[3] := 69;
Area[4] := 70;
Area[5] := 71;
Area[6] := 85;
Area[7] := 86;
Area[8] := 87;
Area[9] := 101;
Area[10] := 102;
Area[11] := 103;
Area[12] := 117;
Area[13] := 118;
Area[14] := 119;
// Nummern
Numbers[1][-1] := cHighRed;
Numbers[1][0] := 118;
Numbers[1][2] := 54;
Numbers[1][3] := 70
Numbers[1][4] := 86;
Numbers[1][5] := 102
Numbers[1][6] := 118;
Numbers[2][-1] := cHighamber;
Numbers[2][0] := 117;
Numbers[2][1] := 53;
Numbers[2][2] := 54;
Numbers[2][3] := 55;
Numbers[2][4] := 71;
Numbers[2][5] := 85;
Numbers[2][6] := 86;
Numbers[2][7] := 87;
Numbers[2][8] := 101;
Numbers[2][9] := 119;
Numbers[2][10] := 118;
Numbers[3][-1] := cHighamber;
Numbers[3][0] := 117;
Numbers[3][1] := 53;
Numbers[3][2] := 54;
Numbers[3][3] := 55;
Numbers[3][4] := 71;
Numbers[3][5] := 85;
Numbers[3][6] := 86;
Numbers[3][7] := 87;
Numbers[3][8] := 103;
Numbers[3][9] := 119;
Numbers[3][10] := 118;
Numbers[4][-1] := cHighYellow;
Numbers[4][1] := 53;
Numbers[4][2] := 55;
Numbers[4][3] := 69;
Numbers[4][4] := 85;
Numbers[4][5] := 86;
Numbers[4][6] := 87;
Numbers[4][7] := 103;
Numbers[4][8] := 119;
Numbers[4][9] := 71;
Numbers[5][-1] := cHighGreen;
Numbers[5][0] := 117;
Numbers[5][1] := 53;
Numbers[5][2] := 54;
Numbers[5][3] := 55;
Numbers[5][4] := 69;
Numbers[5][5] := 85;
Numbers[5][6] := 86;
Numbers[5][7] := 87;
Numbers[5][8] := 103;
Numbers[5][9] := 119;
Numbers[5][10] := 118;
Numbers[6][-1] := cHighGreen;
Numbers[6][0] := 117;
Numbers[6][1] := 53;
Numbers[6][2] := 54;
Numbers[6][3] := 55;
Numbers[6][4] := 69;
Numbers[6][5] := 85;
Numbers[6][6] := 86;
Numbers[6][7] := 87;
Numbers[6][8] := 101;
Numbers[6][9] := 119;
Numbers[6][10] := 118;
Numbers[6][11] := 103;
result:=true;
end;
procedure OnLoad;
begin
initLaunchpad(0);
countdown := 0;
enabletimer(1000);
end;
procedure OnShutdown;
begin
initLaunchpad(0);
end;
procedure OnCartwallPlayerStateChange(PlayerIndex: integer;
OldState: TPlayerState; NewState: TPlayerState;
Item: IAudioCartwallItem; PlaylistItem: IPlaylistItem;
OnAirMode: TCartwallOnAirMode);
var row:integer;
begin
row := PlayerIndex-1 div 8;
if (NewState = psStopped) then
begin
midiout(Launchpad_Device,144, Buttons[PlayerIndex-1],cHighGreen);
end
else if (NewState = psLoaded) then
begin
midiout(Launchpad_Device,144, Buttons[PlayerIndex-1],cHighGreen);
end
else if (NewState = psEmpty) then
begin
midiout(Launchpad_Device,144, Buttons[PlayerIndex-1],cOff);
end
else if (NewState = psPlaying) then
begin
midiout(Launchpad_Device,144, Buttons[PlayerIndex-1],cHighRed);
end
else if (NewState = psFading) then
begin
midiout(Launchpad_Device,144, Buttons[PlayerIndex-1],cBlinkRed);
end
else if (NewState = psError) then
begin
midiout(Launchpad_Device,144, Buttons[PlayerIndex-1],cBlinkYellow);
end
else if (NewState = psLoading) then
begin
midiout(Launchpad_Device,144, Buttons[PlayerIndex-1],cBlinkGreen);
end;
end;
procedure OnOnAir();
begin
midiout(Launchpad_Device,176, SessionButtons[7],cHighRed);
end;
procedure OnOffAir();
begin
midiout(Launchpad_Device,176, SessionButtons[7],cHighgreen);
end;
procedure OnAutomationOn(PlaylistIndex: integer);
begin
midiout(Launchpad_Device,176, SessionButtons[0],cHighRed);
end;
procedure OnAutomationOff(PlaylistIndex: integer);
begin
midiout(Launchpad_Device,176, SessionButtons[0],cHighGreen);
end;
procedure OnMidiMessage(Device: integer; Status, Data1, Data2: byte);
var
row,i,i_div:integer;
begin
row:=0;
i:=0;
i_div:=0;
systemlog(inttostr(Data1));
if (Status = 144) then
begin
row := Data1 div 16;
i_div := Data1 mod 16;
systemlog(inttostr(i_div));
if (Data2 = 127) then
begin
if (row = 0) or (row = 1) or (row = 2) or (row = 3) or (row = 4) or (row = 5) or (row = 6) or (row = 7) then
begin
if ( i_div <8) then
begin
ExecuteCommand(‘CARTWALL ’ + inttostr(row8+i_div +1) + ’ START/STOP’);
end
else if (i_div = 8) then
begin
for i:=0 to 7 do
begin
ExecuteCommand('CARTWALL ’ + inttostr(row8+i +1) + ’ STOP’);
end;
end;
end
end;
end
else if (Status = 176) then
begin
if (Data1 = 111) and (Data2 = 127) then
begin
ExecuteCommand('AUTOMATION 1 ON/OFF');
end;
if (Data1 = 104) and (Data2 = 127) then
begin
ExecuteCommand('AUTOMATION 1 ON/OFF');
end;
end;
end;
begin
end.[/code]
