ArrayArrayArrayArray
CODE:
//////////////////////////// transpose midi example/////////////////////////// parameters declarationvar input : Tparameter;var output : Tparameter;var velocitiesIN : TParameter;// initialisation : create parametersprocedure init;begin Input := CreateParam('midi in',ptMidi); Output := CreateParam('midi out',ptMidi); velocitiesIN := CreateParam('velocities',ptArray); SetIsInput(Output,false); SetIsOutPut(Input,false); SetIsOutPut(velocitiesIN,false); SetLength(velocitiesIN, 128);end; // Global variablesvar i : integer;var nbOfMidi : integer;var ReceivedMidi : TMidi;var newVelocity : integer;//////////////////////////////// main proc//////////////////////////////procedure Process; begin nbOfMidi := GetLength(input); // get the number of incoming midi codes if nbOfMidi > 0 then begin SetLength(outPut,nbOfMidi); // set the number of output codes for i := 0 to nbOfMidi-1 // loop for all input codes, for polyphonic data (chords) do begin GetMidiArrayValue(input,i,ReceivedMidi); // get each code newVelocity := round(getDataArrayValue(velocitiesIN,ReceivedMidi.data2)); ReceivedMidi.data2 := trunc(newVelocity); // calculate vel SetMidiArrayValue(output,i,ReceivedMidi); // set output value end; end else SetLength(outPut,0); // nothing received, set out length to 0end;Statistics: Posted by woodslanding — 29 Jul 2018, 06:50
Statistics: Posted by x.iso — 20 Feb 2018, 13:47
CODE:
//////////////////////////// transpose midi example/////////////////////////// parameters declarationvar input : Tparameter;var output : Tparameter;var velocitiesIN : TParameter;// initialisation : create parametersprocedure init;begin Input := CreateParam('midi in',ptMidi); Output := CreateParam('midi out',ptMidi); velocitiesIN := CreateParam('velocities',ptArray); SetIsInput(Output,false); SetIsOutPut(Input,false); SetIsOutPut(velocitiesIN,false); SetLength(velocitiesIN, 128);end; // Global variablesvar i : integer;var nbOfMidi : integer;var ReceivedMidi : TMidi;var newVelocity : integer;//////////////////////////////// main proc//////////////////////////////procedure Process; begin nbOfMidi := GetLength(input); // get the number of incoming midi codes if nbOfMidi > 0 then begin SetLength(outPut,nbOfMidi); // set the number of output codes for i := 0 to nbOfMidi-1 // loop for all input codes, for polyphonic data (chords) do begin GetMidiArrayValue(input,i,ReceivedMidi); // get each code newVelocity := round(getDataArrayValue(velocitiesIN,ReceivedMidi.data2)); ReceivedMidi.data2 := trunc(newVelocity); // calculate vel SetMidiArrayValue(output,i,ReceivedMidi); // set output value end; end else SetLength(outPut,0); // nothing received, set out length to 0end;Statistics: Posted by woodslanding — 29 Jul 2018, 06:50
Statistics: Posted by x.iso — 20 Feb 2018, 13:47