CODE:
const MIDI_TAGS = ['fs1-leslie','fs2-tapRec','fs3-sustain','fs4','mod','vol','ped2','exp'];const MIDI_CCS_IN = [28,27,26,25,1,7,11,12];const MIDI_CCS_OUT = [28,27,64,25,1,7,11,12];var midiIN : Tparameter;var ccMidiOUTs,ccValOUTs,ccINs : array [0..length(MIDI_TAGS) - 1] of Tparameter;// Global variablesvar i,m : integer;var midiInCount : integer;var midiOutCounts : array [0..length(MIDI_TAGS) - 1] of integer;var midi : TMidi;var ccTarget : integer;var ccNum : integer;var ccVal : single;var invert : boolean;// initialisation : create parametersprocedure init;begin midiIN := CreateParam('midi in',ptMidi,pioInput); for i := 0 to (length(MIDI_TAGS) - 1) do ccMidiOUTs[i]:= CreateParam(MIDI_TAGS[i] + ' cc ' + intToStr(MIDI_CCS_IN[i]),ptMidi,pioOutput); for i := 0 to (length(MIDI_TAGS) - 1) do ccValOUTs[i]:= CreateParam(MIDI_TAGS[i],ptDataField,pioOutput); end;//////////////////////////////// main proc//////////////////////////////procedure process;begin midiInCount := GetLength(midiIN); if midiInCount > 0 then begin for i := 0 to length(MIDI_TAGS) - 1 do midiOutCounts[i] := 0; for m := 0 to midiInCount-1 do begin midi := midiIN.asMidi(m); ccNum := round(midi.data1); for i := 0 to length(MIDI_TAGS) - 1 do begin ccTarget := MIDI_CCS_IN[i]; if ccNum = ccTarget then begin midi.data1 := MIDI_CCS_OUT[i]; ccMidiOUTs[i].asMidi(midiOutCounts[i],midi); midiOutCounts[i] := midiOutCounts[i] + 1; ccVal := (midi.data2)/127; ccValOUTs[i].asFloat(ccVal); end; SetLength(ccMidiOUTs[i],midiOutCounts[i]); //FIX end; end; end else for i := 0 to length(MIDI_TAGS) - 1 do begin SetLength(ccMidiOUTs[i],0); end;end;Statistics: Posted by woodslanding — 29 May 2025, 23:12
CODE:
const MIDI_TAGS = ['fs1-leslie','fs2-tapRec','fs3-sustain','fs4','mod','vol','ped2','exp'];const MIDI_CCS_IN = [28,27,26,25,1,7,11,12];const MIDI_CCS_OUT = [28,27,64,25,1,7,11,12];var midiIN : Tparameter;var ccMidiOUTs,ccValOUTs,ccINs : array [0..length(MIDI_TAGS)] of Tparameter;// Global variablesvar i,m : integer;var midiInCount : integer;var midiOutCounts : array [0..length(MIDI_TAGS)] of integer;var midi : TMidi;var ccTarget : integer;var ccNum : integer;var ccVal : single;var invert : boolean;// initialisation : create parametersprocedure init;begin midiIN := CreateParam('midi in',ptMidi,pioInput); for i := 0 to (length(MIDI_TAGS) - 1) do ccMidiOUTs[i]:= CreateParam(MIDI_TAGS[i] + ' cc ' + intToStr(MIDI_CCS_IN[i]),ptMidi,pioOutput); for i := 0 to (length(MIDI_TAGS) - 1) do ccValOUTs[i]:= CreateParam(MIDI_TAGS[i],ptDataField,pioOutput); end;//////////////////////////////// main proc//////////////////////////////procedure process;begin midiInCount := GetLength(midiIN); if midiInCount > 0 then begin for i := 0 to length(MIDI_TAGS) - 1 do midiOutCounts[i] := 0; for m := 0 to midiInCount-1 do begin midi := midiIN.asMidi(m); ccNum := round(midi.data1); for i := 0 to length(MIDI_TAGS) - 1 do begin ccTarget := MIDI_CCS_IN[i]; if ccNum = ccTarget then begin midi.data1 := MIDI_CCS_OUT[i]; ccMidiOUTs[i].asMidi(midiOutCounts[i],midi); midiOutCounts[i] := midiOutCounts[i] + 1; ccVal := (midi.data2)/127; ccValOUTs[i].asFloat(ccVal); end; end; end; SetLength(ccMidiOUTs[i],midiOutCounts[i]); end else for i := 0 to length(MIDI_TAGS) - 1 do begin SetLength(ccMidiOUTs[i],0); end;end;Statistics: Posted by woodslanding — 28 May 2025, 21:49
CODE:
const MIDI_TAGS = ['fs1-leslie','fs2-tapRec','fs3-sustain','fs4','mod','vol','ped2','exp'];const MIDI_CCS_IN = [28,27,26,25,1,7,11,12];const MIDI_CCS_OUT = [28,27,64,25,1,7,11,12];var midiIN : Tparameter;var ccMidiOUTs,ccValOUTs,ccINs : array [0..length(MIDI_TAGS) - 1] of Tparameter;// Global variablesvar i,m : integer;var midiInCount : integer;var midiOutCounts : array [0..length(MIDI_TAGS) - 1] of integer;var midi : TMidi;var ccTarget : integer;var ccNum : integer;var ccVal : single;var invert : boolean;// initialisation : create parametersprocedure init;begin midiIN := CreateParam('midi in',ptMidi,pioInput); for i := 0 to (length(MIDI_TAGS) - 1) do ccMidiOUTs[i]:= CreateParam(MIDI_TAGS[i] + ' cc ' + intToStr(MIDI_CCS_IN[i]),ptMidi,pioOutput); for i := 0 to (length(MIDI_TAGS) - 1) do ccValOUTs[i]:= CreateParam(MIDI_TAGS[i],ptDataField,pioOutput); end;//////////////////////////////// main proc//////////////////////////////procedure process;begin midiInCount := GetLength(midiIN); if midiInCount > 0 then begin for i := 0 to length(MIDI_TAGS) - 1 do midiOutCounts[i] := 0; for m := 0 to midiInCount-1 do begin midi := midiIN.asMidi(m); ccNum := round(midi.data1); for i := 0 to length(MIDI_TAGS) - 1 do begin ccTarget := MIDI_CCS_IN[i]; if ccNum = ccTarget then begin midi.data1 := MIDI_CCS_OUT[i]; ccMidiOUTs[i].asMidi(midiOutCounts[i],midi); midiOutCounts[i] := midiOutCounts[i] + 1; ccVal := (midi.data2)/127; ccValOUTs[i].asFloat(ccVal); end; SetLength(ccMidiOUTs[i],midiOutCounts[i]); //FIX end; end; end else for i := 0 to length(MIDI_TAGS) - 1 do begin SetLength(ccMidiOUTs[i],0); end;end;Statistics: Posted by woodslanding — 29 May 2025, 23:12
CODE:
const MIDI_TAGS = ['fs1-leslie','fs2-tapRec','fs3-sustain','fs4','mod','vol','ped2','exp'];const MIDI_CCS_IN = [28,27,26,25,1,7,11,12];const MIDI_CCS_OUT = [28,27,64,25,1,7,11,12];var midiIN : Tparameter;var ccMidiOUTs,ccValOUTs,ccINs : array [0..length(MIDI_TAGS)] of Tparameter;// Global variablesvar i,m : integer;var midiInCount : integer;var midiOutCounts : array [0..length(MIDI_TAGS)] of integer;var midi : TMidi;var ccTarget : integer;var ccNum : integer;var ccVal : single;var invert : boolean;// initialisation : create parametersprocedure init;begin midiIN := CreateParam('midi in',ptMidi,pioInput); for i := 0 to (length(MIDI_TAGS) - 1) do ccMidiOUTs[i]:= CreateParam(MIDI_TAGS[i] + ' cc ' + intToStr(MIDI_CCS_IN[i]),ptMidi,pioOutput); for i := 0 to (length(MIDI_TAGS) - 1) do ccValOUTs[i]:= CreateParam(MIDI_TAGS[i],ptDataField,pioOutput); end;//////////////////////////////// main proc//////////////////////////////procedure process;begin midiInCount := GetLength(midiIN); if midiInCount > 0 then begin for i := 0 to length(MIDI_TAGS) - 1 do midiOutCounts[i] := 0; for m := 0 to midiInCount-1 do begin midi := midiIN.asMidi(m); ccNum := round(midi.data1); for i := 0 to length(MIDI_TAGS) - 1 do begin ccTarget := MIDI_CCS_IN[i]; if ccNum = ccTarget then begin midi.data1 := MIDI_CCS_OUT[i]; ccMidiOUTs[i].asMidi(midiOutCounts[i],midi); midiOutCounts[i] := midiOutCounts[i] + 1; ccVal := (midi.data2)/127; ccValOUTs[i].asFloat(ccVal); end; end; end; SetLength(ccMidiOUTs[i],midiOutCounts[i]); end else for i := 0 to length(MIDI_TAGS) - 1 do begin SetLength(ccMidiOUTs[i],0); end;end;Statistics: Posted by woodslanding — 28 May 2025, 21:49