ArrayArray BrainModular BrainModular Users Forum 2025-05-29T23:12:33+02:00 https://brainmodular.com/forums/app.php/feed/topic/7367 2025-05-29T23:12:33+02:00 2025-05-29T23:12:33+02:00 https://brainmodular.com/forums/viewtopic.php?t=7367&p=45880#p45880 <![CDATA[Re: Midi out from script looks good, but doesn't show up on cable]]>

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


]]>
2025-05-28T21:49:14+02:00 2025-05-28T21:49:14+02:00 https://brainmodular.com/forums/viewtopic.php?t=7367&p=45878#p45878 <![CDATA[Midi out from script looks good, but doesn't show up on cable]]>
The data outs work fine....

I feel like maybe an array isn't initialized somewhere? But I can't spot anything.

THANKS!
-e

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


]]>
BrainModular BrainModular Users Forum 2025-05-29T23:12:33+02:00 https://brainmodular.com/forums/app.php/feed/topic/7367 2025-05-29T23:12:33+02:00 2025-05-29T23:12:33+02:00 https://brainmodular.com/forums/viewtopic.php?t=7367&p=45880#p45880 <![CDATA[Re: Midi out from script looks good, but doesn't show up on cable]]>

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


]]>
2025-05-28T21:49:14+02:00 2025-05-28T21:49:14+02:00 https://brainmodular.com/forums/viewtopic.php?t=7367&p=45878#p45878 <![CDATA[Midi out from script looks good, but doesn't show up on cable]]>
The data outs work fine....

I feel like maybe an array isn't initialized somewhere? But I can't spot anything.

THANKS!
-e

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


]]>