• Floating tile Analyser improvement

    1
    0 Votes
    1 Posts
    206 Views
    No one has replied
  • Strange error after compiling

    3
    0 Votes
    3 Posts
    294 Views
    ulrikU

    @Christoph-Hart Ah, that was it, thank you!

  • Table value jumps to 0

    4
    0 Votes
    4 Posts
    310 Views
    ulrikU

    @d-healey I get the same "jumping" phenomenon here as well, running latest build from source code.
    Mac Os

  • Problem with more than one arp hard coded scripts.

    1
    0 Votes
    1 Posts
    189 Views
    No one has replied
  • Preset (.hip) opens empty

    18
    0 Votes
    18 Posts
    1k Views
    d.healeyD

    The XML recovery isn't working.

    Here is the .hip file. I had to change the extension to mp3 so it would upload (maybe .hip should be an allowed upload format).

    irishWhistles.mp3
    irishwhistles.hip (done ;) )

    Here is the recovered (invalid) XML. This is missing lots of things.

    <?xml version="1.0" encoding="UTF-8"?> <Processor Type="SynthChain" ID="irishWhistles" Bypassed="0" Gain="1" Balance="0" VoiceLimit="64" KillFadeTime="20" IconColour="0" packageName="" BuildVersion="650"> <EditorStates BodyShown="0" Visible="1" Solo="0" Folded="1"/> <ChildProcessors> <Processor Type="MidiProcessorChain" ID="Midi Processor" Bypassed="0"> <EditorStates BodyShown="1" Visible="1" Solo="0" Folded="0"/> <ChildProcessors> <Processor Type="ScriptProcessor" ID="Interface" Bypassed="0" Script="/*&#13;&#10; Copyright 2019 David Healey&#13;&#10;&#13;&#10; This file is free software: you can redistribute it and/or modify&#13;&#10; it under the terms of the GNU General Public License as published by&#13;&#10; the Free Software Foundation, either version 3 of the License, or&#13;&#10; (at your option) any later version.&#13;&#10;&#13;&#10; This file is distributed in the hope that it will be useful,&#13;&#10; but WITHOUT ANY WARRANTY; without even the implied warranty of&#13;&#10; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the&#13;&#10; GNU General Public License for more details.&#13;&#10;&#13;&#10; You should have received a copy of the GNU General Public License&#13;&#10; along with This file. If not, see &lt;http://www.gnu.org/licenses/&gt;.&#13;&#10;*/&#13;&#10;&#13;&#10;Content.makeFrontInterface(800, 580);&#13;&#10;&#13;&#10;include(&quot;manifest.js&quot;);&#13;&#10;include(&quot;settings.js&quot;);&#13;&#10;&#13;&#10;Synth.deferCallbacks(true);&#13;&#10;&#13;&#10;Engine.loadFontAs(&quot;{PROJECT_FOLDER}fonts/BLKCHCRY.TTF&quot;, &quot;blackCherry&quot;);&#13;&#10;&#13;&#10;reg i;&#13;&#10;reg lastArticulation = 0;&#13;&#10;&#13;&#10;//Dynamics\breath control&#13;&#10;const var dynamicsCC = Synth.getModulator(&quot;dynamicsCC&quot;);&#13;&#10;const var legato = Synth.getMidiProcessor(&quot;legato&quot;);&#13;&#10;const var knbDynamics = Content.getComponent(&quot;knbDynamics&quot;);&#13;&#10;knbDynamics.setControlCallback(onknbDynamicsControl);&#13;&#10;&#13;&#10;//Dynamics knobs&#13;&#10;inline function onknbDynamicsControl(control, value)&#13;&#10;{&#13;&#10; dynamicsCC.setAttribute(dynamicsCC.DefaultValue, value);&#13;&#10; legato.setAttribute(legato.knbBreath, value);&#13;&#10;}&#13;&#10;&#13;&#10;//Settings button&#13;&#10;inline function onbtnSettingsControl(component, value)&#13;&#10;{&#13;&#10; Content.getComponent(&quot;pnlInstrument&quot;).set(&quot;enabled&quot;, value);&#13;&#10;&#9;Content.getComponent(&quot;fltPreset&quot;).showControl(0);&#13;&#10;&#9;Content.getComponent(&quot;pnlAbout&quot;).showControl(0);&#13;&#10;&#9;Content.getComponent(&quot;btnAbout&quot;).setValue(0);&#13;&#10;&#9;Content.getComponent(&quot;btnPreset0&quot;).setValue(0);&#13;&#10;&#9;Content.getComponent(&quot;pnlSettings&quot;).showControl(1-value);&#13;&#10;};&#13;&#10;&#13;&#10;Content.getComponent(&quot;btnSettings&quot;).setControlCallback(onbtnSettingsControl);&#13;&#10;&#13;&#10;&#13;&#10;//Curve editors&#13;&#10;const var btnCC = [];&#13;&#10;const var tblCC = [];&#13;&#10;&#13;&#10;for (i = 0; i &lt; 4; i++)&#13;&#10;{&#13;&#10; btnCC[i] = Content.getComponent(&quot;btnCC&quot;+(i+1));&#13;&#10; btnCC[i].setControlCallback(onbtnCCControl);&#13;&#10; tblCC[i] = Content.getComponent(&quot;tblCC&quot;+(i+1));&#13;&#10;}&#13;&#10;&#13;&#10;inline function onbtnCCControl(control, value)&#13;&#10;{&#13;&#10; local idx = btnCC.indexOf(control);&#13;&#10; &#13;&#10; local params = [&quot;Expression&quot;, &quot;Dynamics&quot;, &quot;Vibrato Intensity&quot;, &quot;Vibrato Rate&quot;];&#13;&#10;&#13;&#10; for (i = 0; i &lt; tblCC.length; i++)&#13;&#10; {&#13;&#10; tblCC[i].showControl(false);&#13;&#10; btnCC[i].setValue(false);&#13;&#10; }&#13;&#10;&#13;&#10; tblCC[idx].showControl(value);&#13;&#10; btnCC[idx].setValue(value);&#13;&#10; &#13;&#10; //Show velocity table if value is false&#13;&#10; Content.getComponent(&quot;tblCC0&quot;).showControl(1-value);&#13;&#10; &#13;&#10; //Set parameter label&#13;&#10; if (value == 1)&#13;&#10; Content.getComponent(&quot;lblParam&quot;).set(&quot;text&quot;, params[idx]);&#13;&#10; else&#13;&#10; Content.getComponent(&quot;lblParam&quot;).set(&quot;text&quot;, &quot;Velocity&quot;);&#13;&#10; &#13;&#10; //Show velocity dynamics button if dynamics is selected&#13;&#10; Content.getComponent(&quot;btnVelDynamics&quot;).showControl(idx == 1 &amp;&amp; value == 1);&#13;&#10; Content.getComponent(&quot;lblVelocityControl&quot;).showControl(idx == 1 &amp;&amp; value == 1);&#13;&#10;}&#13;&#10;&#13;&#10;//About screen&#13;&#10;inline function onbtnAboutControl(component, value)&#13;&#10;{&#13;&#10; Content.getComponent(&quot;pnlInstrument&quot;).set(&quot;enabled&quot;, 1-value);&#13;&#10;&#9;Content.getComponent(&quot;fltPreset&quot;).showControl(0);&#13;&#10;&#9;Content.getComponent(&quot;pnlAbout&quot;).showControl(value);&#13;&#10;&#9;Content.getComponent(&quot;pnlSettings&quot;).showControl(0);&#13;&#10;&#9;Content.getComponent(&quot;btnSettings&quot;).setValue(1);&#13;&#10;};&#13;&#10;&#13;&#10;Content.getComponent(&quot;btnAbout&quot;).setControlCallback(onbtnAboutControl);&#13;&#10;&#13;&#10;&#13;&#10;//Preset handling&#13;&#10;&#13;&#10;//Get samplers&#13;&#10;const var samplerIds = Synth.getIdList(&quot;Sampler&quot;);&#13;&#10;const var childSynths = {};&#13;&#10;&#13;&#10;for (s in samplerIds)&#13;&#10;{&#13;&#10; childSynths[s] = Synth.getChildSynth(s);&#13;&#10;}&#13;&#10;&#13;&#10;//Preset buttons&#13;&#10;inline function onbtnPreset0Control(component, value)&#13;&#10;{&#13;&#10; Content.getComponent(&quot;pnlInstrument&quot;).set(&quot;enabled&quot;, 1-value);&#13;&#10;&#9;Content.getComponent(&quot;fltPreset&quot;).showControl(value);&#13;&#10;&#9;Content.getComponent(&quot;pnlAbout&quot;).showControl(0);&#13;&#10;&#9;Content.getComponent(&quot;btnAbout&quot;).setValue(0);&#13;&#10;&#9;Content.getComponent(&quot;pnlSettings&quot;).showControl(0);&#13;&#10;&#9;Content.getComponent(&quot;btnSettings&quot;).setValue(1);&#13;&#10;};&#13;&#10;&#13;&#10;Content.getComponent(&quot;btnPreset0&quot;).setControlCallback(onbtnPreset0Control);&#13;&#10;&#13;&#10;inline function loadAdjacentPreset(control, value)&#13;&#10;{&#13;&#10; if (value == 1)&#13;&#10; {&#13;&#10; local idx = btnPreset.indexOf(control);&#13;&#10; idx == 0 ? Engine.loadPreviousUserPreset(false) : Engine.loadNextUserPreset(false);&#13;&#10; Content.getComponent(&quot;lblPreset&quot;).set(&quot;text&quot;, Engine.getCurrentUserPresetName());&#13;&#10; }&#13;&#10;}&#13;&#10;&#13;&#10;const var btnPreset = [];&#13;&#10;btnPreset[0] = Content.getComponent(&quot;btnPreset1&quot;).setControlCallback(loadAdjacentPreset);&#13;&#10;btnPreset[1] = Content.getComponent(&quot;btnPreset2&quot;).setControlCallback(loadAdjacentPreset);&#13;&#10;&#13;&#10;//Patch selection and loading drop down&#13;&#10;const var cmbPatches = Content.getComponent(&quot;cmbPatches&quot;);&#13;&#10;cmbPatches.setControlCallback(oncmbPatchesControl);&#13;&#10;&#13;&#10;inline function oncmbPatchesControl(control, value)&#13;&#10;{&#13;&#10; local patch = control.getItemText();&#13;&#10;&#13;&#10; colourKeys(patch);&#13;&#10; loadSampleMaps(patch);&#13;&#10; &#13;&#10; if(Engine.getCurrentUserPresetName() == &quot;&quot;)&#13;&#10; Content.getComponent(&quot;lblPreset&quot;).set(&quot;text&quot;, &quot;Default&quot;);&#13;&#10; else&#13;&#10; Content.getComponent(&quot;lblPreset&quot;).set(&quot;text&quot;, Engine.getCurrentUserPresetName());&#13;&#10;}&#13;&#10;&#13;&#10;//Populate patch selection drop down&#13;&#10;const var patches = [];&#13;&#10;&#13;&#10;for (k in Manifest.patches)&#13;&#10;{&#13;&#10; patches.push(k);&#13;&#10;}&#13;&#10;&#13;&#10;cmbPatches.set(&quot;items&quot;, patches.join(&quot;\n&quot;));&#13;&#10;&#13;&#10;inline function colourKeys(patch)&#13;&#10;{&#13;&#10; local range = Manifest.patches[patch].range;&#13;&#10;&#13;&#10; for (i = 0; i &lt; 127; i++)&#13;&#10; {&#13;&#10; if (i &gt;= range[0] &amp;&amp; i &lt;= range[1])&#13;&#10; {&#13;&#10; Engine.setKeyColour(i, Colours.withAlpha(Colours.white, 0.0)); //Light key colour&#13;&#10; }&#13;&#10; else&#13;&#10; {&#13;&#10; Engine.setKeyColour(i, Colours.withAlpha(Colours.black, 0.5)); //Dark key colour&#13;&#10; }&#13;&#10; }&#13;&#10;}&#13;&#10;&#13;&#10;inline function loadSampleMaps(patch)&#13;&#10;{&#13;&#10; local sampleMaps = Sampler.getSampleMapList();&#13;&#10;&#13;&#10; for (id in samplerIds) //Each sampler&#13;&#10; {&#13;&#10; //A sample map for this patch was found or sampler is transition sampler&#13;&#10; if (sampleMaps.contains(patch + &quot;_&quot; + id) || id == &quot;transitions&quot;)&#13;&#10; {&#13;&#10; childSynths[id].setBypassed(false); //Enable sampler&#13;&#10;&#13;&#10; if (id == &quot;transitions&quot;)&#13;&#10; {&#13;&#10; childSynths[id].asSampler().loadSampleMap(patch + &quot;_staccato&quot;); //Load staccato sample map&#13;&#10; }&#13;&#10; else&#13;&#10; {&#13;&#10; childSynths[id].asSampler().loadSampleMap(patch + &quot;_&quot; + id); //Load the sample map&#13;&#10; }&#13;&#10; }&#13;&#10; else&#13;&#10; {&#13;&#10; childSynths[id].setBypassed(true); //Bypass sampler&#13;&#10; childSynths[id].asSampler().loadSampleMap(&quot;empty&quot;); //Load empty sample map for this sampler&#13;&#10; }&#13;&#10; }&#13;&#10;}function onNoteOn()&#10;{&#10;&#9;&#10;}&#10;function onNoteOff()&#10;{&#10;&#9;&#10;}&#10;function onController()&#10;{&#10;&#9;&#10;}&#10;function onTimer()&#10;{&#10;&#9;&#10;}&#10;function onControl(number, value)&#10;{&#10;&#9;&#10;}&#10;"> <EditorStates BodyShown="1" Visible="1" Solo="0" contentShown="1" onInitOpen="1"/> <ChildProcessors/> <Content> <Control type="ScriptSlider" id="knbRel" value="250"/> <Control type="ScriptSlider" id="knbStacc" value="-2.9999986"/> <Control type="ScriptButton" id="btnBreath" value="0"/> <Control type="ScriptButton" id="btnRR" value="0"/> <Control type="ScriptLabel" id="lblVelocityControl" value="Velocity Control"/> <Control type="ScriptButton" id="btnVelDynamics" value="0"/> <Control type="ScriptSlider" id="knbExpression" value="127"/> <Control type="ScriptSlider" id="knbDynamics" value="127"/> <Control type="ScriptSlider" id="knbVibIntensity" value="16"/> <Control type="ScriptSlider" id="knbVibratoRate" value="90"/> <Control type="ScriptButton" id="btnCC1" value="0"/> <Control type="ScriptButton" id="btnCC2" value="0"/> <Control type="ScriptButton" id="btnCC3" value="0"/> <Control type="ScriptButton" id="btnCC4" value="0"/> <Control type="ScriptLabel" id="lblParam" value="Velocity"/> <Control type="ScriptTable" id="tblCC0" value="127" data="24...............vO...f+....9C...vO"/> <Control type="ScriptTable" id="tblCC1" value="23" data="24...............vO...f+....9C..3rO"/> <Control type="ScriptTable" id="tblCC2" value="0" data="36...............vO....+PMvd6C..3rO...f+....9C..jwO"/> <Control type="ScriptTable" id="tblCC3" value="0" data="24...............vO...f+....9C..jwO"/> <Control type="ScriptTable" id="tblCC4" value="0" data="24...............vO...f+....9C..nqO"/> <Control type="ScriptSlider" id="knbGain" value="1.4901161e-06"/> <Control type="ScriptSlider" id="knbPan" value="0"/> <Control type="ScriptSlider" id="knbCoarse" value="0"/> <Control type="ScriptSlider" id="knbFine" value="0"/> <Control type="ScriptLabel" id="lblPreset" value="Default"/> <Control type="ScriptComboBox" id="cmbPatches" value="1"/> <Control type="ScriptSlider" id="knbTransition" value="-11.999999"/> </Content> <UIData> <ContentProperties DeviceType="Desktop"> <Component type="ScriptImage" id="imgBgEmpty" x="0" y="0" width="800" height="600" fileName="{PROJECT_FOLDER}Background_empty.png" scale=".5" text="imgBlankBg"/> <Component type="ScriptPanel" id="pnlInstrument" x="0" y="0" width="800" height="580" itemColour="0" itemColour2="0" bgColour="0" textColour="0" borderSize="0"> </> </Component> </ContentProperties> </UIData> </Processor> </ChildProcessors> </Processor> </ChildProcessors> </Processor>

    The recovery file is written to the presets folder but when you use File >> Open XML it defaults to the XmlPresetBackups folder, so maybe that would be a better location to place the recovery xml.

  • Linux VST build deletes all files in ~/.vst

    12
    0 Votes
    12 Posts
    986 Views
    O

    @d-healey Thanks for the suggestion. Debian has back in time... I just made zip files of the most important folders. It's all good I had copies of everything and restored everything back to working order. My apologies for freaking out.

  • Import samples dialog multi-selection

    2
    0 Votes
    2 Posts
    257 Views
    d.healeyD

    Seems to be an OS issue. I just edited the import code to disable the native file browser and multi-selection worked fine. So I don't think there is much that can be done about it.

  • Max samples that can be mapped in one go

    1
    0 Votes
    1 Posts
    175 Views
    No one has replied
  • Delay FX not setting correctly on start up..

    1
    0 Votes
    1 Posts
    222 Views
    No one has replied
  • getProgramChangeNumber broken in deferred script

    1
    0 Votes
    1 Posts
    160 Views
    No one has replied
  • Arpeggiator script = crash

    1
    0 Votes
    1 Posts
    227 Views
    No one has replied
  • CoreMIDI error: 277 - ffffffce

    1
    0 Votes
    1 Posts
    335 Views
    No one has replied
  • Oh that's bad....

    3
    0 Votes
    3 Posts
    289 Views
    ustkU

    @d-healey Thanks a lot man!
    But I don't know if I should feel better or worse now 😆 😆
    I recovered 30% of my work thanks to timemachine

    Anyway that would be cool to have this bug (if it is) corrected when compiling @Christoph-Hart

  • General issues with exported plugins. HISE feb 6 build

    7
    0 Votes
    7 Posts
    669 Views
    Dan KorneffD

    @Christoph-Hart im gonna do a proper debug and figure out what's up. I should note that this issue is only with FX plugin export. Virtual Instruments are okay.

  • Effect Slot cause crash

    6
    0 Votes
    6 Posts
    589 Views
    Christoph HartC

    This is alread fixed on the development branch.

  • Simple Gain Doesn't Work on Sampler

    7
    0 Votes
    7 Posts
    564 Views
    d.healeyD

    @Christoph-Hart said in Simple Gain Doesn't Work on Sampler:

    or a timemachine and hnode ;)

    You tease

  • Saving sample map removes all routing :(

    3
    0 Votes
    3 Posts
    309 Views
    Christoph HartC

    If you change the samplemap, the sampler will also change its channel amount which will overwrite custom routings you‘ve made before. In order to prevent this, I‘ve added a scripting function called Sampler.setStaticRoutingMatrix() or something like that.

    If you can somehow reproduce the empty monolith, let me know, I am currently going through the sampler module and clean up all those annoying little things that have creeped in over the course of time.

  • HISE forum search not working?

    8
    0 Votes
    8 Posts
    590 Views
    DalartD

    @orange Same thing here, same solution.

  • AAX SDK missing?

    20
    0 Votes
    20 Posts
    4k Views
    Dan KorneffD

    Upgraded to SDK 2.3.1 and it finally worked

  • .hr1 and .hr3 Files Opening

    18
    0 Votes
    18 Posts
    3k Views
    LindonL

    @staiff -- plus adding yet another extension makes the .htaccess regex even more nightmarish....

20

Online

1.6k

Users

11.1k

Topics

96.9k

Posts