Marc-André Labelle, 30, Canada.
Musician, Composer, Creative coder.
Posts
-
RE: The world of HISE
-
RE: Order of IR in Combobox not in the same order after export. Am I the only one?
EX:
const masterIRReverb = Synth.getAudioSampleProcessor("masterIRReverb"); inline function loadIR(filename) { masterIRReverb.setFile("{PROJECT_FOLDER}" + "ir/" + filename + ".wav"); }
-
RE: Order of IR in Combobox not in the same order after export. Am I the only one?
@d-healey Array.sortNatural();
Array.sort() doesn't sort strings if I'm not mistaking.
-
RE: Order of IR in Combobox not in the same order after export. Am I the only one?
@d-healey Yep, i'm testing right now.
-
RE: Order of IR in Combobox not in the same order after export. Am I the only one?
Technically, .setFile is a path. So I could bypass
cmbIR.set("items", irs.join("\n")); // Populate dropdown
and add items by hand in the Combobox.
-
RE: Order of IR in Combobox not in the same order after export. Am I the only one?
@d-healey Yeah! But the problem is that they also change place when compiling...very strange. I don't get the same result in Hise and in Reaper let's say..so I think something is happening when compiling
-
RE: Order of IR in Combobox not in the same order after export. Am I the only one?
@Christoph-Hart So it's a problem with JUCE then? I'm not crazy?
-
Order of IR in Combobox not in the same order after export. Am I the only one?
Here's in the audio file folder :
Here's in Hise (right order):
Here's the exported Vsti (strange order)
The order is also different on MAC.
Any thoughts?
This is how the combobox is populated with the names :
// Pool audio files const audioFiles = Engine.loadAudioFilesIntoPool();
// Get a list of irs const var irs = []; for (a in audioFiles) { if (a.indexOf("ir/")) //Impulse responses will be in ir folder { var ir = a.substring(a.indexOf("ir/") + 3, a.lastIndexOf(".")); irs.push(ir); } }
// cmbIR const var cmbIR = Content.getComponent("cmbIR"); cmbIR.set("items", irs.join("\n")); // Populate dropdown inline function oncmbIRControl(component, value) { local filename = component.getItemText(); loadIR(filename); }; Content.getComponent("cmbIR").setControlCallback(oncmbIRControl);
inline function loadIR(filename) { masterIRReverb.setFile("{PROJECT_FOLDER}" + "ir/" + filename + ".wav"); }
Maybe Engine.loadAudioFilesIntoPool(); is loading the files in a different order, because it's more desorganized on mac?
-
RE: Sliderpack default value funkiness
@ulrik reimported my initial snippet and now it's fine...
-
RE: Sliderpack default value funkiness
@ulrik hummm...yep your example is giving me a 0.0..that's great. I don't, know why I got all 1.0 with the other example..strange.
-
RE: Sliderpack default value funkiness
@ulrik If I set the default value to 0, I also get 1.
-
Sliderpack default value funkiness
Hello my friends.
I've notices that even if sliderpack default value is at 0.0. If I print values, I get 1.0, I'm I the only one? I'm on the develop branch
here's a snippet ->
HiseSnippet 830.3oc6V0saSCCE1tqdPKLDCwCPzDB0pMlRY+.ntI5V6Fp.aqhNp3Bjl7RbVsVhcjiyfJDua7Hwa.bbR1R5naZqRb27EQ57ymymO9b74zSIcXQQREBW4vQgLD9gj9iD5gsGR4BT2NH7iH6QizLkUppsGERihXtHLdl2YTfqTFkr98a2l5SENrbUHz.I2g8Qd.WmqsWqOv882k5xNjGTv6Ua00QJZK8kw.elgXiBoNmROgsO03VIBBO6NtbsT0WS0rHvmskti5OT9MQp+C3Q7i8YFgFn9vFkpF0dH22s24m0HDBWtW9IelzS9SI6wc4WnOOB73DCV4HJFCvkFmRkGiRMtJJsqz20rAWA8vEnW4T5MOouihGpysX31CHcEvkiGEB6EoUpunReESZKAOD5kCnmx1UABWfn1511KYslsc8lUqBg9Hs0YTkUeetKS0Ch8Mr1z5b3mvzskAgRAHTagB9rfAsmTYUiuocS9FELY.sebPplnZ0axWbw5Uq.aYjzmsbnhC60k7OUb.0OlsktFud8ldwBGMWJrjh8kZ1AhZ0q9ipUp9ypVW1jm2DsYNCJouOSMQylzP00ArlHN3XlZIH7.z5BGg6lwu7m8lc46jFRK3nTzUv0GDxxjySOZLgzCT1chIQIig.UzIoIOIKMIOph3vFMGoPXFkbLJVl5R0TTomOCAxHVFVdKZ99l1vmUN3N46juSNWFg9b2NlBlrxOnRDpNCYJM27H.tC6LnoW5q1UHcXQmpkgI9l87IBeuaQw52yKTeeqQ4BazJJwqsBjwh71q+53VAzBXdVKWlGM1WOHsnmPrWF547uMXf1bR2Xepd7dell7YFf2DGqIioQhHhqGUbHfaQCQ6I1Pbhu3cCo67jdbsyvIy2RSfuvc3+a9lMdwbjc77XN5bxVlr6Wl1YItET4SxXMWbxdTshC4EDSCYXBKGFvDgf4C+HBtjoqRprsQ1DY5yDtIB+AVYFaXjwYFabtQT.0QIOxIsWjY.l6mnA3jHY1sJvPjfr0EsdRyBCf4pNxwwDJdAv8Ii4kSAlUlBLqNEXVaJvr9Tf4USAlWesXLiztUrVFjVl.J5sSxiZX7NBJjkkjQh9KfQeQ7N
-
ed->editor.document.selections.values.elements.data was nullptr.
Just wanted to let you know :p
Hello, I'm currently working on the latest develop branch. Sometimes I get this crash while scripting.
ed->editor.document.selections.values.elements.data was nullptr.
line 1760 ->
return CodeDocument::Position(getDoc(c), pos.x, pos.y);
juce::CodeDocument::Position CommonEditorFunctions::getCaretPos(Component* c) { auto ed = as(c); // this must always be true... jassert(ed != nullptr); #if HISE_USE_NEW_CODE_EDITOR auto pos = ed->editor.getTextDocument().getSelection(0).head; return CodeDocument::Position(getDoc(c), pos.x, pos.y); #else return ed->getCaretPos(); #endif }
-
RE: Dynamically adding Curve EQ with Effect Slot Save Preset Problem.
UPDATE with
juce::ValueTree UserPresetHelpers::createModuleStateTree(ModulatorSynthChain* chain) { ValueTree modules("Modules"); if (auto sp = JavascriptMidiProcessor::getFirstInterfaceScriptProcessor(chain->getMainController())) { for (auto id : sp->getListOfModuleIds()) { auto p = ProcessorHelpers::getFirstProcessorWithName(chain, id); if (p != nullptr) { auto mTree = p->exportAsValueTree(); mTree.removeChild(mTree.getChildWithName("EditorStates"), nullptr); mTree.removeChild(mTree.getChildWithName("EditorStates"), nullptr); modules.addChild(mTree, -1, nullptr); } } }
It does work! But I need to click twice to recall the CurveEq values if coming from Empty Slot or other FX. If I'm already on a CureveEq then it loads on first attempt ->
-
Dynamically adding Curve EQ with Effect Slot Save Preset Problem.
Hello!
I'm having an issue with, adding and removing dynamically the Curve EQ using the Effect Slot processor.
I think my problem is in this function. ->
inline function oncmbFxControl(component, value) { local index = cmbFxSlot.indexOf(component); local fxType = cmbFxSlot[index].getItemText(); if (fxType == "Empty") fxSlot[index].setEffect("EmptyFX"); else fxSlot[index].setEffect(fxType); btnShowPanel[index].setValue(1); btnShowPanel[index].changed(); if (fxType == "CurveEq") { local tileData = { "Type": "DraggableFilterPanel", "ProcessorId": "fx"+index+"_CurveEq", "Index": -1 }; //Console.print(index); showFltFxEq(index); fltFxEq[index].setContentData(tileData); Engine.addModuleStateToUserPreset("fx"+index+"_CurveEq"); } };
I think the problem is here ->
Engine.addModuleStateToUserPreset("fx"+index+"_CurveEq");
When I save a preset with a CurveEQ it works. If I change the combobox to Empty and Save Preset then I get a crash.
Exception thrown: read access violation. p was nullptr.
juce::ValueTree UserPresetHelpers::createModuleStateTree(ModulatorSynthChain* chain) { ValueTree modules("Modules"); if (auto sp = JavascriptMidiProcessor::getFirstInterfaceScriptProcessor(chain->getMainController())) { for (auto id : sp->getListOfModuleIds()) { auto p = ProcessorHelpers::getFirstProcessorWithName(chain, id); auto mTree = p->exportAsValueTree(); mTree.removeChild(mTree.getChildWithName("EditorStates"), nullptr); mTree.removeChild(mTree.getChildWithName("EditorStates"), nullptr); modules.addChild(mTree, -1, nullptr); } } return modules; }
So I tried this in the source code ->
juce::ValueTree UserPresetHelpers::createModuleStateTree(ModulatorSynthChain* chain) { ValueTree modules("Modules"); if (auto sp = JavascriptMidiProcessor::getFirstInterfaceScriptProcessor(chain->getMainController())) { for (auto id : sp->getListOfModuleIds()) { auto p = ProcessorHelpers::getFirstProcessorWithName(chain, id); if (p != nullptr) { auto mTree = p->exportAsValueTree(); mTree.removeChild(mTree.getChildWithName("EditorStates"), nullptr); mTree.removeChild(mTree.getChildWithName("EditorStates"), nullptr); modules.addChild(mTree, -1, nullptr); } } }
Hise is not crashing anymore but I think my fix breaks it in some other way.
IN CONCLUSION (lol)
I think this nullptr problem is caused by .addModuleStateToUserPreset once I Save my combobox with Empty after setting it to CurveEq. I don't have this problem with other FX.
Is there a way to remove addModuleStateToUserPreset - removeModuleStateToUserPreset or something similar? Maybe this will solve my problem.
Cheers!
-
Adding more than 16 channel to routing matrix
Hello, it's me again.
I'm wondering if there's a way to add more than 16 channels to the matrix?
cheers!
-
RE: FX SLOT ROUTING BUG
@d-healey Just noticed new_layout was updated 6 hours ago.. things are moving fast :)
-
RE: FX SLOT ROUTING BUG
Sorry for being stuck in the past :anxious_face_with_sweat: