Welcome to %s forums

BrainModular Users Forum

Login Register

this used to work....

I need help on a Patch
Post Reply
woodslanding
Member
Posts: 1327
Contact:

Unread post by woodslanding » 04 Jan 2017, 01:10

This is a script to load data from a text file. It is getting erroneous data suddenly, and I can't figure out why. Midi channel always comes up as 21, and low and hi notes as zero. But the trace shows correct data coming from the file.

Here is the data which gets stored in a text file in the HH config folder under INSTRUMENTSDATA:

Code: Select all

instName=kPianos
loadPatch=kontakt
initPreset=0
loadPresetBank=0
pCH[vst/midi/list]=0
audioIn[none/fx/ext/both]=0
color=-2.0755231108091E38
inputTrim=0
outputTrim=21.3069114685059
midiCHin=1
transpose=0
transToCC=0
noteSolo=0
soloLoNote=21
soloHiNote=108
details=Need to work out subpatch loading for Kontakt
and here is the script:

Code: Select all

/////////////////////////////////////////////
// READ INST DATA                                              
////////////////////////////////////////////
const folder = 'INSTRUMENTSDATA';
const delimiter = '=';
// parameters declaration


var instNameOUT,patchOUT,presetOUT,pgCHtypeOUT,
    audioConfigOUT,colorOUT,nsSoloOUT,lowNoteOUT,hiNoteOUT,
    inputTrimOUT,outputTrimOUT,midiChOUT,transposeOUT,transCCOUT,
    detailsOUT,loadBankOUT,filenameIN    : Tparameter;
 
var   instName, 
      patch,  
      preset, 
      bank, 
      pgCHtype,  
      audioConfig,  
      color,  
      inputTrim,                       
      outputTrim, 
      transpose,
      transCC,   
      midiCh,  
      noteSrcSolo,   
      lowNote,                                
      HiNote, 
      details : integer; 
var st,tags       : TStringList;                                             
var filename : string;
var dataSent : boolean;

 // initialisation : create parameters
procedure init;
var i : integer
begin  
 
    SetModuleColor($808080+999999);
         
    tags.create;
    tags.add('instName');                        instName := 0;
    tags.add('loadPatch');                        patch := 1;
    tags.add('loadPresetBank');                    bank := 2;
    tags.add('initPreset');                       preset := 3;
    tags.add('pCH[vst/midi/list]');                pgCHtype := 4;
    tags.add('audioIn[none/fx/ext/both]');        audioConfig := 5;
    tags.add('color');                            color := 6; 
    tags.add('inputTrim');                         inputTrim := 7;
    tags.add('outputTrim');                        outputTrim := 8; 
    tags.add('midiCHin');                         midiCh := 9;
    tags.add('transpose');                         transpose := 10;
    tags.add('transToCC');                         transCC := 11;
    tags.add('noteSolo');                        noteSrcSolo := 12;
    tags.add('soloLoNote');                        lowNote := 13;
    tags.add('soloHiNote');                        HiNote := 14; 
    tags.add('details');                        details := 15;
    
    filenameIN := CreateParam('file name',ptTextfield);                        SetIsOUTput(filenameIN,false);
    instNameOUT := CreateParam(tags.getStrings(instName),ptTextField);         SetIsinput(instNameOUT,false);
    patchOUT := CreateParam(tags.getStrings(patch),ptTextField);               SetIsinput(patchOUT,false);
    loadBankOUT := CreateParam(tags.getStrings(bank),ptTextfield);             SetIsInput(loadBankOUT,false); 
    presetOUT := CreateParam(tags.getStrings(preset),ptDatafield);             SetIsinput(presetOUT,false);    
    pgCHtypeOUT := CreateParam(tags.getStrings(pgCHtype),ptDataField);         SetIsinput(pgCHtypeOUT,false);
    audioConfigOUT := CreateParam(tags.getStrings(audioConfig),ptDataField);   SetIsinput(audioConfigOUT,false);
    colorOUT := CreateParam(tags.getStrings(color),ptDatafield);               SetIsinput(colorOUT,false);    
    nsSoloOUT := CreateParam(tags.getStrings(noteSrcSolo),ptDatafield);        SetIsinput(nsSoloOUT,false);
    lowNoteOUT := CreateParam(tags.getStrings(lowNote),ptDataField);           SetIsinput(lowNoteOUT,false);
    hiNoteOUT := CreateParam(tags.getStrings(hiNote),ptDataField);             SetIsinput(hiNoteOUT,false);
    inputTrimOUT := CreateParam(tags.getStrings(inputTrim),ptDataField);       SetIsinput(inputTrimOUT,false);
    outputTrimOUT := CreateParam(tags.getStrings(outputTrim),ptDataField);     SetIsinput(outputTrimOUT,false);
    midiChOUT := CreateParam(tags.getStrings(midiCh),ptDataField);             SetIsinput(midiChOUT,false);
    transposeOUT := CreateParam(tags.getStrings(transpose),ptDataField);       SetIsinput(transposeOUT,false); 
    transCCOUT := CreateParam(tags.getStrings(transCC),ptDataField);           SetIsinput(transccOUT,false); 
    detailsOUT := CreateParam(tags.getStrings(details),ptTextField);           SetIsinput(detailsOUT,false);
                                                               
 
    strace('**************************load inst file**********************************');

       
end;


// destroy
procedure Destroy;
begin  
 tags.free;
end; 

function getData (tagNum : integer; list : tStringlist)  : string
var tag,data : string;
var taglength,i : integer;
var line : string;
begin
    for i := 0 to st.count do
    begin   
        tag := tags.getStrings(tagNum);
        line := list.getStrings(i);
        if (pos(tag,line) = 1) then 
        begin                       
           data := copy(line,length(tag) + 2,length(line) - length(tag));
           strace('found data for tag ' +tag + ': ' + data); 
           result := trim(data);
           break;
        end
    end   
end;                                                                   

procedure loadText
var data  : string;
begin
  st.create;
  st.clear;                        
  filename := getApplicationPath() + 'config' 
        + folder + ''
        + GetStringValue(filenameIN) + '.txt';
  st.loadfromFile(filename);  
  //strings
  SetStringValue(instNameOUT,getData(instName,st)); 
  SetStringValue(patchOUT,getData(patch,st));             
  SetStringValue(loadBankOUT,getData(bank,st));  
  SetStringValue(detailsOUT,getData(details,st));
  //integers
  SetValue(presetOUT,strToInt(getData(preset,st)));
  SetValue(audioConfigOUT,strToInt(getData(audioConfig,st))); 
  SetValue(pgCHtypeOUT,strToInt(getData(pgCHtype,st))); 
  SetValue(midiChOUT,strToInt(getData(midiCh,st)));
  SetValue(lowNote,strToInt(getData(lowNote,st)));
  SetValue(hiNote,strToInt(getData(hiNote,st)));
  SetValue(nsSoloOUT,strToInt(getData(noteSrcSolo,st)));
  SetValue(transposeOUT,strToInt(getData(transpose,st)));
  SetValue(transCCOUT,strToInt(getData(transCC,st)));
  //floats 
  SetValue(colorOUT,strToFloat(getData(color,st)));
  SetValue(inputTrimOUT,strToFloat(getData(inputTrim,st)));
  SetValue(outputTrimOUT,strToFloat(getData(outputTrim,st))); 
  dataSent := true;      
  st.free;                          
end;  


procedure Callback(n:integer);
var res : string;
var i : integer;     
begin
  //  if (n = loadBankOUT) and (getValue(loadBankOUT) = 1) then  begin
    
    strace('loading text');  
      loadText;   
       // end;
end;

// no process bloc
and here is what the trace shows:
found data for tag instName: kPianos
found data for tag loadPatch: kontakt
found data for tag loadPresetBank: 0
found data for tag details: Need to work out subpatch loading for Kontakt
found data for tag initPreset: 0
found data for tag audioIn[none/fx/ext/both]: 0
found data for tag pCH[vst/midi/list]: 2
found data for tag midiCHin: 1
found data for tag soloLoNote: 21
found data for tag soloHiNote: 108
found data for tag noteSolo: 0
found data for tag transpose: 0
found data for tag transToCC: 0
found data for tag color: -2.0755231108091E38
found data for tag inputTrim: 0
found data for tag outputTrim: 21.3069114685059


any clues???

Thanks in advance!
-eric
Custom Ryzen 5900x MATX build, Win10, Fireface UFX, touchscreen
Custom 2 manual midi keyboard
Usine, Kontakt, Reaktor, Synthmaster, Byome, Arturia, Soundtoys, Unify

woodslanding
Member
Posts: 1327
Contact:

Unread post by woodslanding » 04 Jan 2017, 19:29

aaaag, so simple, and still I couldn't find it. Setting the local variable instead of the output, DOH!

never mind......
Custom Ryzen 5900x MATX build, Win10, Fireface UFX, touchscreen
Custom 2 manual midi keyboard
Usine, Kontakt, Reaktor, Synthmaster, Byome, Arturia, Soundtoys, Unify

Post Reply

Who is online

Users browsing this forum: No registered users and 32 guests