ArrayArrayArrayArrayArrayArrayArrayArray BrainModular BrainModular Users Forum 2023-12-08T02:49:06+02:00 https://brainmodular.com/forums/app.php/feed/topic/7196 2023-12-08T02:49:06+02:00 2023-12-08T02:49:06+02:00 https://brainmodular.com/forums/viewtopic.php?t=7196&p=45104#p45104 <![CDATA[Re: Sending Midi Via script]]>
//GLOBAL VARIABLES AND TPARAMETER DECLARATIONS
var StateInput : TParameter;

var LastInput : TParameter;

var MIDIOut : TParameter;

var MIDINotex1,MIDINotex2 : TMidi;

var countdown : Integer;

var testmode : Integer;

var flag : Integer;


//INIT PROCEDURE
PROCEDURE INIT();
BEGIN

StateInput:=CreateParam('State',ptDataFader,pioInput);
StateInput.Min(0);
StateInput.Max(100);


MIDIOut := CreateParam('MIDIOut',ptMidi,pioOutput);
testmode := 0;

END;

procedure ProcessThread;
//var inval : single;
begin

end;

PROCEDURE CALLBACK(N:INTEGER);
BEGIN
CASE N OF
lastInput: Begin

testmode := testmode +1;
Trace('MIDITest input has changed State:' + inttostr(LastInput) );
Trace(testmode);
flag := 1;

CASE LastInput.asInteger OF
0: Begin
trace('case 0');
MIDINotex1.msg := 144;
MIDINotex1.data1 := 64;
MIDINotex1.data2 := 127;
MIDINotex1.Channel:= 2;
MIDIOut.Length(2);
MIDIOut.asMidi(0,MIDINotex1);
MIDINotex2.msg := 128;
MIDINotex2.data1 := 64;
MIDINotex2.data2 := 0;
MIDINotex2.Channel:= 10;
MIDIOut.asMidi(1,MIDINotex2);

End;
1: Begin
trace('case 1');
MIDINotex1.msg := 144;
MIDINotex1.data1 := 0;
MIDINotex1.data2 := 127;

MIDINotex2.msg := 144;
MIDINotex2.data1 := 1;
MIDINotex2.data2 := 127;
End;
2: Begin
MIDINotex1.msg := 144;
MIDINotex1.data1 := 4;
MIDINotex1.data2 := 127;

MIDINotex2.msg := 144;
MIDINotex2.data1 := 5;
MIDINotex2.data2 := 127;

End;
3: Begin
MIDINotex1.msg := 128;
MIDINotex1.data1 := 0;
MIDINotex1.data2 := 0;

MIDINotex2.msg := 128;
MIDINotex2.data1 := 1;
MIDINotex2.data2 := 0;

End;
4: Begin
MIDINotex1.msg := 128;
MIDINotex1.data1 := 4;
MIDINotex1.data2 := 0;

MIDINotex2.msg := 128;
MIDINotex2.data1 := 5;
MIDINotex2.data2 := 0;

End;
5: Begin
End;
6: Begin
End;
7: Begin
End;
8: Begin
End;
9: Begin
End;
10: Begin
End;
11: Begin
End;
End;//END CASE
END
END;
END;

//PROCESS
PROCEDURE PROCESS();
BEGIN

if flag = 1
then
BEGIN
flag:=0;
MIDIOut.Length(2);
MIDIOut.asMidi(0,MIDINotex1);
MIDIOut.asMidi(1,MIDINotex2);
END
else
MIDIOut.Length(0);

END;

Statistics: Posted by oli_lab — 08 Dec 2023, 01:49


]]>
2023-12-05T17:58:53+02:00 2023-12-05T17:58:53+02:00 https://brainmodular.com/forums/viewtopic.php?t=7196&p=45099#p45099 <![CDATA[Re: Sending Midi Via script]]> i could change the script accordingly and it seems to work, but it looks a little hacky....

many thanks for Your help and all the best!

Statistics: Posted by styro — 05 Dec 2023, 16:58


]]>
2023-11-30T15:03:17+02:00 2023-11-30T15:03:17+02:00 https://brainmodular.com/forums/viewtopic.php?t=7196&p=45094#p45094 <![CDATA[Re: Sending Midi Via script]]>

//GLOBAL VARIABLES AND TPARAMETER DECLARATIONS
var StateInput : TParameter;

var LastInput : TParameter;

var MIDIOut : TParameter;

var MIDINotex1,MIDINotex2 : TMidi;

var countdown : Integer;

var testmode : Integer;

var flag : Integer;


//INIT PROCEDURE
PROCEDURE INIT();
BEGIN

StateInput:=CreateParam('State',ptDataFader,pioInput);
StateInput.Min(0);
StateInput.Max(100);


MIDIOut := CreateParam('MIDIOut',ptMidi,pioOutput);
testmode := 0;

END;

procedure ProcessThread;
//var inval : single;
begin

end;

PROCEDURE CALLBACK(N:INTEGER);
BEGIN
CASE N OF
lastInput: Begin

testmode := testmode +1;
Trace('MIDITest input has changed State:' + inttostr(LastInput) );
Trace(testmode);
flag := 1;

CASE LastInput.asInteger OF
0: Begin
trace('case 0');
MIDINotex1.msg := 144;
MIDINotex1.data1 := 64;
MIDINotex1.data2 := 127;
//MIDINotex.Channel(2):
MIDIOut.Length(2);
MIDIOut.asMidi(0,MIDINotex1);
MIDINotex2.msg := 128;
MIDINotex2.data1 := 64;
MIDINotex2.data2 := 0;
//MIDINotex.Channel(3):
MIDIOut.asMidi(1,MIDINotex2);

End;
1: Begin
trace('case 1');
MIDINotex1.msg := 144;
MIDINotex1.data1 := 0;
MIDINotex1.data2 := 127;

MIDINotex2.msg := 144;
MIDINotex2.data1 := 1;
MIDINotex2.data2 := 127;
End;
2: Begin
MIDINotex1.msg := 144;
MIDINotex1.data1 := 4;
MIDINotex1.data2 := 127;

MIDINotex2.msg := 144;
MIDINotex2.data1 := 5;
MIDINotex2.data2 := 127;

End;
3: Begin
MIDINotex1.msg := 128;
MIDINotex1.data1 := 0;
MIDINotex1.data2 := 0;

MIDINotex2.msg := 128;
MIDINotex2.data1 := 1;
MIDINotex2.data2 := 0;

End;
4: Begin
MIDINotex1.msg := 128;
MIDINotex1.data1 := 4;
MIDINotex1.data2 := 0;

MIDINotex2.msg := 128;
MIDINotex2.data1 := 5;
MIDINotex2.data2 := 0;

End;
5: Begin
End;
6: Begin
End;
7: Begin
End;
8: Begin
End;
9: Begin
End;
10: Begin
End;
11: Begin
End;
End;//END CASE
END
END;
END;

//PROCESS
PROCEDURE PROCESS();
BEGIN

if flag = 1
then
BEGIN
flag:=0;
MIDIOut.Length(2);
MIDIOut.asMidi(0,MIDINotex1);
MIDIOut.asMidi(1,MIDINotex2);
END
else
MIDIOut.Length(0);

END;

Statistics: Posted by oli_lab — 30 Nov 2023, 14:03


]]>
2023-11-30T02:10:19+02:00 2023-11-30T02:10:19+02:00 https://brainmodular.com/forums/viewtopic.php?t=7196&p=45092#p45092 <![CDATA[Re: Sending Midi Via script]]> cheers styro

Statistics: Posted by styro — 30 Nov 2023, 01:10


]]>
2023-11-29T02:21:25+02:00 2023-11-29T02:21:25+02:00 https://brainmodular.com/forums/viewtopic.php?t=7196&p=45090#p45090 <![CDATA[Re: Sending Midi Via script]]>
Cheers

Statistics: Posted by oli_lab — 29 Nov 2023, 01:21


]]>
2023-11-27T15:13:30+02:00 2023-11-27T15:13:30+02:00 https://brainmodular.com/forums/viewtopic.php?t=7196&p=45087#p45087 <![CDATA[Re: Sending Midi Via script]]> Unfortunately putting the things in the callback procedure doesn't help, the MIDI-Out commands just keep on sending,
my midi-interface transmit-led keeps on blinking like wild while all the MIDI-Note from a state are sent repeatedly.
Thats really wired, its like that a buffer holding the MIDI-Notes is not cleared after sending.
The states-input changes not fast, it's connected to a increment button and a counter.
When i put a pass-change module on the midi-out-port of the script is works, so that the notes are only sent one time,
but this would be a really ugly kludge, and i would like to know how to solve this error in the script.

many thanks for some help and all the best
styro

Statistics: Posted by styro — 27 Nov 2023, 14:13


]]>
2023-11-26T16:41:24+02:00 2023-11-26T16:41:24+02:00 https://brainmodular.com/forums/viewtopic.php?t=7196&p=45085#p45085 <![CDATA[Re: Sending Midi Via script]]> Statistics: Posted by oli_lab — 26 Nov 2023, 15:41


]]>
2023-11-23T15:01:27+02:00 2023-11-23T15:01:27+02:00 https://brainmodular.com/forums/viewtopic.php?t=7196&p=45077#p45077 <![CDATA[Sending Midi Via script]]> Somehow i don't get how to send MIDI...

how does the MIDIOut TParameters works, whats the meaning of the first parameter (index)?

procedure TParameter.asMidi(index : integer; val : TMIDI); // set the value of a MIDI parameter at the index

i made a simple script, it works somehow, what is really puzzleing is that there is permanently sending the MIDI of the state,
not only one time when the state is changing? The wire from the MIDIOut-Port to the MIDI-device has permanent traffic...


many thanks for any help!

styro


//GLOBAL VARIABLES AND TPARAMETER DECLARATIONS
var StateInput : TParameter;

var LastInput : TParameter;

var MIDIOut : TParameter;

var MIDINotex : TMidi;

var countdown : Integer;

var testmode : Integer;

//PROCESS
PROCEDURE PROCESS();
BEGIN
testmode := testmode +1;
if LastInput <> StateInput.asInteger
then
BEGIN
LastInput:=StateInput.asInteger;
Trace('MIDITest input has changed State:' + inttostr(LastInput) );
Trace(testmode);
CASE LastInput OF
0: Begin
MIDINotex.msg := 128;
MIDINotex.data1 := 0;
MIDINotex.data2 := 0;
MIDIOut.asMidi(0,MIDINotex);
MIDINotex.msg := 128;
MIDINotex.data1 := 1;
MIDINotex.data2 := 0;
MIDIOut.asMidi(1,MIDINotex);

End;
1: Begin
MIDINotex.msg := 144;
MIDINotex.data1 := 0;
MIDINotex.data2 := 127;
MIDIOut.asMidi(0,MIDINotex);
MIDINotex.msg := 144;
MIDINotex.data1 := 1;
MIDINotex.data2 := 127;
MIDIOut.asMidi(1,MIDINotex);
End;
2: Begin
MIDINotex.msg := 144;
MIDINotex.data1 := 4;
MIDINotex.data2 := 127;
MIDIOut.asMidi(0,MIDINotex);
MIDINotex.msg := 144;
MIDINotex.data1 := 5;
MIDINotex.data2 := 127;
MIDIOut.asMidi(1,MIDINotex);
End;
3: Begin
MIDINotex.msg := 128;
MIDINotex.data1 := 0;
MIDINotex.data2 := 0;
MIDIOut.asMidi(0,MIDINotex);
MIDINotex.msg := 128;
MIDINotex.data1 := 1;
MIDINotex.data2 := 0;
MIDIOut.asMidi(1,MIDINotex);
End;
4: Begin
MIDINotex.msg := 128;
MIDINotex.data1 := 4;
MIDINotex.data2 := 0;
MIDIOut.asMidi(0,MIDINotex);
MIDINotex.msg := 128;
MIDINotex.data1 := 5;
MIDINotex.data2 := 0;
MIDIOut.asMidi(1,MIDINotex);
End;
5: Begin
End;
6: Begin
End;
7: Begin
End;
8: Begin
End;
9: Begin
End;
10: Begin
End;
11: Begin
End;
End;//END MAIN CASE
END
END;

//INIT PROCEDURE
PROCEDURE INIT();
BEGIN

StateInput:=CreateParam('State',ptDataFader,pioInput);
StateInput.Min(0);
StateInput.Max(100);


MIDIOut := CreateParam('MIDIOut',ptMidi,pioOutput);
testmode := 0;

END;

procedure ProcessThread;
var inval : single;
begin

end;

Statistics: Posted by styro — 23 Nov 2023, 14:01


]]>
BrainModular BrainModular Users Forum 2023-12-08T02:49:06+02:00 https://brainmodular.com/forums/app.php/feed/topic/7196 2023-12-08T02:49:06+02:00 2023-12-08T02:49:06+02:00 https://brainmodular.com/forums/viewtopic.php?t=7196&p=45104#p45104 <![CDATA[Re: Sending Midi Via script]]>
//GLOBAL VARIABLES AND TPARAMETER DECLARATIONS
var StateInput : TParameter;

var LastInput : TParameter;

var MIDIOut : TParameter;

var MIDINotex1,MIDINotex2 : TMidi;

var countdown : Integer;

var testmode : Integer;

var flag : Integer;


//INIT PROCEDURE
PROCEDURE INIT();
BEGIN

StateInput:=CreateParam('State',ptDataFader,pioInput);
StateInput.Min(0);
StateInput.Max(100);


MIDIOut := CreateParam('MIDIOut',ptMidi,pioOutput);
testmode := 0;

END;

procedure ProcessThread;
//var inval : single;
begin

end;

PROCEDURE CALLBACK(N:INTEGER);
BEGIN
CASE N OF
lastInput: Begin

testmode := testmode +1;
Trace('MIDITest input has changed State:' + inttostr(LastInput) );
Trace(testmode);
flag := 1;

CASE LastInput.asInteger OF
0: Begin
trace('case 0');
MIDINotex1.msg := 144;
MIDINotex1.data1 := 64;
MIDINotex1.data2 := 127;
MIDINotex1.Channel:= 2;
MIDIOut.Length(2);
MIDIOut.asMidi(0,MIDINotex1);
MIDINotex2.msg := 128;
MIDINotex2.data1 := 64;
MIDINotex2.data2 := 0;
MIDINotex2.Channel:= 10;
MIDIOut.asMidi(1,MIDINotex2);

End;
1: Begin
trace('case 1');
MIDINotex1.msg := 144;
MIDINotex1.data1 := 0;
MIDINotex1.data2 := 127;

MIDINotex2.msg := 144;
MIDINotex2.data1 := 1;
MIDINotex2.data2 := 127;
End;
2: Begin
MIDINotex1.msg := 144;
MIDINotex1.data1 := 4;
MIDINotex1.data2 := 127;

MIDINotex2.msg := 144;
MIDINotex2.data1 := 5;
MIDINotex2.data2 := 127;

End;
3: Begin
MIDINotex1.msg := 128;
MIDINotex1.data1 := 0;
MIDINotex1.data2 := 0;

MIDINotex2.msg := 128;
MIDINotex2.data1 := 1;
MIDINotex2.data2 := 0;

End;
4: Begin
MIDINotex1.msg := 128;
MIDINotex1.data1 := 4;
MIDINotex1.data2 := 0;

MIDINotex2.msg := 128;
MIDINotex2.data1 := 5;
MIDINotex2.data2 := 0;

End;
5: Begin
End;
6: Begin
End;
7: Begin
End;
8: Begin
End;
9: Begin
End;
10: Begin
End;
11: Begin
End;
End;//END CASE
END
END;
END;

//PROCESS
PROCEDURE PROCESS();
BEGIN

if flag = 1
then
BEGIN
flag:=0;
MIDIOut.Length(2);
MIDIOut.asMidi(0,MIDINotex1);
MIDIOut.asMidi(1,MIDINotex2);
END
else
MIDIOut.Length(0);

END;

Statistics: Posted by oli_lab — 08 Dec 2023, 01:49


]]>
2023-12-05T17:58:53+02:00 2023-12-05T17:58:53+02:00 https://brainmodular.com/forums/viewtopic.php?t=7196&p=45099#p45099 <![CDATA[Re: Sending Midi Via script]]> i could change the script accordingly and it seems to work, but it looks a little hacky....

many thanks for Your help and all the best!

Statistics: Posted by styro — 05 Dec 2023, 16:58


]]>
2023-11-30T15:03:17+02:00 2023-11-30T15:03:17+02:00 https://brainmodular.com/forums/viewtopic.php?t=7196&p=45094#p45094 <![CDATA[Re: Sending Midi Via script]]>

//GLOBAL VARIABLES AND TPARAMETER DECLARATIONS
var StateInput : TParameter;

var LastInput : TParameter;

var MIDIOut : TParameter;

var MIDINotex1,MIDINotex2 : TMidi;

var countdown : Integer;

var testmode : Integer;

var flag : Integer;


//INIT PROCEDURE
PROCEDURE INIT();
BEGIN

StateInput:=CreateParam('State',ptDataFader,pioInput);
StateInput.Min(0);
StateInput.Max(100);


MIDIOut := CreateParam('MIDIOut',ptMidi,pioOutput);
testmode := 0;

END;

procedure ProcessThread;
//var inval : single;
begin

end;

PROCEDURE CALLBACK(N:INTEGER);
BEGIN
CASE N OF
lastInput: Begin

testmode := testmode +1;
Trace('MIDITest input has changed State:' + inttostr(LastInput) );
Trace(testmode);
flag := 1;

CASE LastInput.asInteger OF
0: Begin
trace('case 0');
MIDINotex1.msg := 144;
MIDINotex1.data1 := 64;
MIDINotex1.data2 := 127;
//MIDINotex.Channel(2):
MIDIOut.Length(2);
MIDIOut.asMidi(0,MIDINotex1);
MIDINotex2.msg := 128;
MIDINotex2.data1 := 64;
MIDINotex2.data2 := 0;
//MIDINotex.Channel(3):
MIDIOut.asMidi(1,MIDINotex2);

End;
1: Begin
trace('case 1');
MIDINotex1.msg := 144;
MIDINotex1.data1 := 0;
MIDINotex1.data2 := 127;

MIDINotex2.msg := 144;
MIDINotex2.data1 := 1;
MIDINotex2.data2 := 127;
End;
2: Begin
MIDINotex1.msg := 144;
MIDINotex1.data1 := 4;
MIDINotex1.data2 := 127;

MIDINotex2.msg := 144;
MIDINotex2.data1 := 5;
MIDINotex2.data2 := 127;

End;
3: Begin
MIDINotex1.msg := 128;
MIDINotex1.data1 := 0;
MIDINotex1.data2 := 0;

MIDINotex2.msg := 128;
MIDINotex2.data1 := 1;
MIDINotex2.data2 := 0;

End;
4: Begin
MIDINotex1.msg := 128;
MIDINotex1.data1 := 4;
MIDINotex1.data2 := 0;

MIDINotex2.msg := 128;
MIDINotex2.data1 := 5;
MIDINotex2.data2 := 0;

End;
5: Begin
End;
6: Begin
End;
7: Begin
End;
8: Begin
End;
9: Begin
End;
10: Begin
End;
11: Begin
End;
End;//END CASE
END
END;
END;

//PROCESS
PROCEDURE PROCESS();
BEGIN

if flag = 1
then
BEGIN
flag:=0;
MIDIOut.Length(2);
MIDIOut.asMidi(0,MIDINotex1);
MIDIOut.asMidi(1,MIDINotex2);
END
else
MIDIOut.Length(0);

END;

Statistics: Posted by oli_lab — 30 Nov 2023, 14:03


]]>
2023-11-30T02:10:19+02:00 2023-11-30T02:10:19+02:00 https://brainmodular.com/forums/viewtopic.php?t=7196&p=45092#p45092 <![CDATA[Re: Sending Midi Via script]]> cheers styro

Statistics: Posted by styro — 30 Nov 2023, 01:10


]]>
2023-11-29T02:21:25+02:00 2023-11-29T02:21:25+02:00 https://brainmodular.com/forums/viewtopic.php?t=7196&p=45090#p45090 <![CDATA[Re: Sending Midi Via script]]>
Cheers

Statistics: Posted by oli_lab — 29 Nov 2023, 01:21


]]>
2023-11-27T15:13:30+02:00 2023-11-27T15:13:30+02:00 https://brainmodular.com/forums/viewtopic.php?t=7196&p=45087#p45087 <![CDATA[Re: Sending Midi Via script]]> Unfortunately putting the things in the callback procedure doesn't help, the MIDI-Out commands just keep on sending,
my midi-interface transmit-led keeps on blinking like wild while all the MIDI-Note from a state are sent repeatedly.
Thats really wired, its like that a buffer holding the MIDI-Notes is not cleared after sending.
The states-input changes not fast, it's connected to a increment button and a counter.
When i put a pass-change module on the midi-out-port of the script is works, so that the notes are only sent one time,
but this would be a really ugly kludge, and i would like to know how to solve this error in the script.

many thanks for some help and all the best
styro

Statistics: Posted by styro — 27 Nov 2023, 14:13


]]>
2023-11-26T16:41:24+02:00 2023-11-26T16:41:24+02:00 https://brainmodular.com/forums/viewtopic.php?t=7196&p=45085#p45085 <![CDATA[Re: Sending Midi Via script]]> Statistics: Posted by oli_lab — 26 Nov 2023, 15:41


]]>
2023-11-23T15:01:27+02:00 2023-11-23T15:01:27+02:00 https://brainmodular.com/forums/viewtopic.php?t=7196&p=45077#p45077 <![CDATA[Sending Midi Via script]]> Somehow i don't get how to send MIDI...

how does the MIDIOut TParameters works, whats the meaning of the first parameter (index)?

procedure TParameter.asMidi(index : integer; val : TMIDI); // set the value of a MIDI parameter at the index

i made a simple script, it works somehow, what is really puzzleing is that there is permanently sending the MIDI of the state,
not only one time when the state is changing? The wire from the MIDIOut-Port to the MIDI-device has permanent traffic...


many thanks for any help!

styro


//GLOBAL VARIABLES AND TPARAMETER DECLARATIONS
var StateInput : TParameter;

var LastInput : TParameter;

var MIDIOut : TParameter;

var MIDINotex : TMidi;

var countdown : Integer;

var testmode : Integer;

//PROCESS
PROCEDURE PROCESS();
BEGIN
testmode := testmode +1;
if LastInput <> StateInput.asInteger
then
BEGIN
LastInput:=StateInput.asInteger;
Trace('MIDITest input has changed State:' + inttostr(LastInput) );
Trace(testmode);
CASE LastInput OF
0: Begin
MIDINotex.msg := 128;
MIDINotex.data1 := 0;
MIDINotex.data2 := 0;
MIDIOut.asMidi(0,MIDINotex);
MIDINotex.msg := 128;
MIDINotex.data1 := 1;
MIDINotex.data2 := 0;
MIDIOut.asMidi(1,MIDINotex);

End;
1: Begin
MIDINotex.msg := 144;
MIDINotex.data1 := 0;
MIDINotex.data2 := 127;
MIDIOut.asMidi(0,MIDINotex);
MIDINotex.msg := 144;
MIDINotex.data1 := 1;
MIDINotex.data2 := 127;
MIDIOut.asMidi(1,MIDINotex);
End;
2: Begin
MIDINotex.msg := 144;
MIDINotex.data1 := 4;
MIDINotex.data2 := 127;
MIDIOut.asMidi(0,MIDINotex);
MIDINotex.msg := 144;
MIDINotex.data1 := 5;
MIDINotex.data2 := 127;
MIDIOut.asMidi(1,MIDINotex);
End;
3: Begin
MIDINotex.msg := 128;
MIDINotex.data1 := 0;
MIDINotex.data2 := 0;
MIDIOut.asMidi(0,MIDINotex);
MIDINotex.msg := 128;
MIDINotex.data1 := 1;
MIDINotex.data2 := 0;
MIDIOut.asMidi(1,MIDINotex);
End;
4: Begin
MIDINotex.msg := 128;
MIDINotex.data1 := 4;
MIDINotex.data2 := 0;
MIDIOut.asMidi(0,MIDINotex);
MIDINotex.msg := 128;
MIDINotex.data1 := 5;
MIDINotex.data2 := 0;
MIDIOut.asMidi(1,MIDINotex);
End;
5: Begin
End;
6: Begin
End;
7: Begin
End;
8: Begin
End;
9: Begin
End;
10: Begin
End;
11: Begin
End;
End;//END MAIN CASE
END
END;

//INIT PROCEDURE
PROCEDURE INIT();
BEGIN

StateInput:=CreateParam('State',ptDataFader,pioInput);
StateInput.Min(0);
StateInput.Max(100);


MIDIOut := CreateParam('MIDIOut',ptMidi,pioOutput);
testmode := 0;

END;

procedure ProcessThread;
var inval : single;
begin

end;

Statistics: Posted by styro — 23 Nov 2023, 14:01


]]>