Novation Launchpad Mini?

Hi Guys,
Guess who is asking another question :wink:

well to be honest, I am quite new to the software and still discovering lots of functions, so that is why I bother you guys with perhaps some “stupid” questions.
Here is another one…

I have Mairlist 6.0.2 and also I have a Novation launchpad mini.
Since I have found the tutorial from Thomas Kloppholz, wich is very simple explained! I was thinking to do this. But somehow it doesn’t work…

Here are the steps I should follow (including the problems I find)

  1. Turn your Computer on (just kidding)
    So Far So good
    2.Copy the Script in your Mairlist Direcotry
    I have downloaded “NovationMidi.mls” from the site and placed it into the directory
    3.Install Automap Software from Novation
    This is installed
    4.Open mAirList Konfiguration -> Notification Script
    I can’t find notification script, only background script
    5.Add NovationMidi.mls Script to your Konfiguration
    I added the script to the background script
    6.Start Mairlist 6.1 Add a Midi Input device 6.2 Choose “Launchpad” as input device 6.3 Took the last key of the Launchpad to a Random Funktion (known bug)
    I Added the 2- Launchpad mini
    7.Show in Mairlist Log and look for “Launchpad” Device - Get the Number
    Here it goes wrong. when i open mairlist log i get an error loading the background script. [error] (7.1): “BEGIN” expected
    7.Enter the Number into the “Launchpad_Device = XX ;” Line (insteat of XX)
    I can’t find the "Launchpad_Device = XX;"Line
    Restart Mairlist.
    9.The Launchpad shoud turn on some Lights by starting Mairlist.

I hope It is explained clearly. Somehow there is an error in the script? Or am I doing something wrong?

Best regards,

Ruud

You need to alter some lines in the script. The script is witten for mairlist 4. I Am not at home Wright now at home. I have a changed script. But is not the same as kloppie’s :grinning:

Hi Henk,

I read something about the changes since version 5. But to be honest I am new in Mairlist and also not familiar with scripting.
Is there a place to download the complete changed script? Or isn’t allowed to use?

Launchpad mini is not supported with Automap.

Ok good to know.
I also have a normal launchpad, but i bought the mini for this. No problem i will use the normal one :wink:
Still i wonder if someone can post the complete script?

I must have a ferry special version because it works fine here with Automap

[quote=“RuVo80, post:3, topic:11212”]Hi Henk,

I read something about the changes since version 5. But to be honest I am new in Mairlist and also not familiar with scripting.
Is there a place to download the complete changed script? Or isn’t allowed to use?[/quote]
open the script in wordpad look for [PlayerIndex] change it to [PlayerIndex - 1]
and for 5 and 6 ad this line in mAirList 5 - and beyond :wink: - OnPlayerStateChange needs an extra “Item: IPlaylistItem” parameter:

Code: [Select]

// Called when (playlist) player changes its state
procedure OnPlayerStateChange(PlaylistIndex: integer; PlayerIndex: integer; OldState: TPlayerState; NewState: TPlayerState; Item: IPlaylistItem);
begin
end;

The same is true for a number of other procedures (notably OnPlayetStart, OnPlayerStop). Please check the current “Background Script Template.mls” file in the program directory if all definitions are up to date.

I must have a ferry special version because it works fine here with Automap[/quote]
I found it on the website, do you upgrade to automap 4.10,Launchpad mini does not support anymore.

[quote=“Henk, post:7, topic:11212”][quote=“RuVo80, post:3, topic:11212”]Hi Henk,

I read something about the changes since version 5. But to be honest I am new in Mairlist and also not familiar with scripting.
Is there a place to download the complete changed script? Or isn’t allowed to use?[/quote]
open the script in wordpad look for [PlayerIndex] change it to [PlayerIndex - 1]
and for 5 and 6 ad this line in mAirList 5 - and beyond :wink: - OnPlayerStateChange needs an extra “Item: IPlaylistItem” parameter:

Code: [Select]

// Called when (playlist) player changes its state
procedure OnPlayerStateChange(PlaylistIndex: integer; PlayerIndex: integer; OldState: TPlayerState; NewState: TPlayerState; Item: IPlaylistItem);
begin
end;

The same is true for a number of other procedures (notably OnPlayetStart, OnPlayerStop). Please check the current “Background Script Template.mls” file in the program directory if all definitions are up to date.[/quote]

Can you upload the whole script,i can’t get it working in 6.02.
Thnx.

GOOD NEWS:

Launchpad mini is also working well!

It is cool to get to know with scripts, I am getting further every day!
And earlier messages saying that the launchpad mini is not compatible aren’t true.
I have it running now.
Unfortunattely I am not at home right now but I will post the entire script later today!

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 :slight_smile:
// under Creative Commone “CC BY-SA” licenze SHARE + COPY But UNDER SAME LIZENZE and with my Name in it… :slight_smile:
//
// 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(row
8+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]


d.jpg

Can i used with more Launchpads from novation or alone with the Mini and Launchpad S

And i must place the file in the backgound scripts from mairlist

Hi, as we are not familiar with every product on the market, we sadly cannot answer questions about certain compatibility issues. But since the developers at Novation also just put their pants on one leg at a time, it might well be likely that other types use the same MIDI-commands. But to be certain in that point, you want to compare the set of commands in the technical documents of the respective items.

And, second question, yes: Save the script as a text file with the extension .mls and register it in the Scripts section in the mAirList Configuration.

Scripted regards

TSD

Thanks for the Answer I go search for a launchpad and go play with it

I let it know of it works

Thanks again for the fast answer

1 Like

Sorry i have problems maybe is is something simpel

First i have placed the file NovationMidi.mls in the root from mairlist
I have place the NovationMidi.mls in the Background Scripts
I have install the Automap and have do nothing in that program is that correct ?
Now Started Mairlist and by remote i have selected the MIDI and select Launchpad Mini

Now i need a launch pad key what i must fill in the MLS file

But i see not that File Launchpad Device for the number

I come not further than this

1-4-2020 19:59:56 Fout Fout bij het laden achtergrond script C:\Program Files (x86)\mAirList 6.1\NovationMidi.mls: [Error] (1:2): Unknown identifier ‘’

So i hope that someone can help me and tell me what i do wrong
I was happy that it sal works with the mini but for now lights are Off and no effects

Where did you get the MLS file?
Was it the original file from kloppi on github.com? If yes that’s been written for mairlist 4.
If you use version 6 search for a post in this forum from ruvo80 that’s the latest that will work.
Now the number. When you press the orange dot there’s a drop down menu whith seccond? ‘Log’ there are your devices with a number remember the number from novation go back to the script and fill in the number.
If it still doesn’t work send me a pm with your mail address and I send you the latest script for version 6

1 Like

Did you copy (erroneously) the [code] and [/code] tags at the beginning and the end? They are residues from the change of forum software. Skip these. And, for the same reason, change any typographic apostrophes ( and ) to simple ones (')!

Confused regards

TSD

1 Like

I have send you a PM with my email adres

Hello Tondose

I have remove the codes
and chance all ` in ’

now is the message
2-4-2020 15:12:25 Fout Fout bij het laden achtergrond script C:\Program Files (x86)\mAirList 6.1\NovationMiniMidi.mls: [Error] (313:39): Unknown identifier ‘row8’

But i can not find the Launchpad device number the log is not go further than this message

Would you mind appending your .mls file for further lookup, please?

Uploaded regards

TSD