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 KontaktCode: 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 blocfound 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
