This is version based on a script, don't know if it usefull enough to put it in the add-on section, I've just made this one for my own user purposes.
Code: Select all
//////////////////////////
// Rechannel MIDI messages
/////////////////////////
// parameters declaration
var MidiIn : Tparameter;
var MidiOut : Tparameter;
var Newchannel : Tparameter;
// initialisation : create parameters
procedure init;
begin
MidiIn := CreateParam('In',ptMidi);
MidiOut := CreateParam('Out',ptMidi);
Newchannel := CreateParam('Newchannel',ptDataFader);
SetIsInput(MidiOut,false);
SetIsOutput(MidiIn,false);
SetIsOutput(Newchannel,false);
SetMin(Newchannel,1);
SetMax(Newchannel,16);
SetFormat(Newchannel,'%.0f');
SetDefaultValue(Newchannel,1);
end;
// Global variables
var cnt : integer;
var lngthMidi : integer;
var ReceivedMidi : TMidi;
var Newc : single;
//////////////////////////////
// main proc
//////////////////////////////
begin
lngthMidi := GetLength(MidiIn);
if lngthMidi > 0
then begin
SetLength(MidiOut,lngthMidi);
NewC := getvalue(NewChannel);
for cnt := 0 to lngthMidi-1
do begin
GetMidiArrayValue(MidiIn,cnt,ReceivedMidi);
ReceivedMidi.Channel := trunc(NewC);
SetMidiArrayValue(MidiOut,cnt,ReceivedMidi);
end;
end
else SetLength(MidiOut,0);
end.