• About Label bug

    3
    0 Votes
    3 Posts
    419 Views
    Christoph HartC

    It's just for Labels that were set to saveInPreset=true, but I actually changed it so that all controls also restore the value.

  • Release Trigger crashes Hise

    2
    0 Votes
    2 Posts
    217 Views
    Christoph HartC

    Should be OK now.

  • New crash scenarios

    4
    0 Votes
    4 Posts
    321 Views
    Christoph HartC

    Yes if you can create a minimal example that crashes, I'll take a look.

  • Moog filter bad clipping

    8
    1 Votes
    8 Posts
    584 Views
    ustkU

    @Christoph-Hart ok... I already use the ladder, I just wanted another color in order to implement two filters at the same time in my synth

  • Problem with Impulse

    3
    0 Votes
    3 Posts
    463 Views
    alexaudio10A

    Hello,

    Thanks for your help. I just removed the metadata with Windows and it does not change anything.

  • Major MIDI automation bug

    17
    0 Votes
    17 Posts
    1k Views
    d.healeyD

    @Christoph-Hart Bump bump

    The only work around I've found so far is to move all of the controls out the panel. But I really don't want to do this as I'm using the panel's enabled property to control the enabled state of a lot of controls. If I get rid of the panel them I'm going to have to set the state of each control individually.

  • BG Image missing on all plugin exports with hise 2?

    4
    0 Votes
    4 Posts
    358 Views
    M

    yep needs to be png lol

  • Minor bug in FX modules

    1
    2 Votes
    1 Posts
    164 Views
    No one has replied
  • .hip save as not possible

    3
    2 Votes
    3 Posts
    277 Views
    gorangroovesG

    Yeah. This is confusing. There should be "save as" option and just one reliable format for saving a HISE project file (whatever the format may be). This is standard on most software.

  • HISE 2.0 Plugin Crashes In Cubase 10

    14
    0 Votes
    14 Posts
    2k Views
    gorangroovesG

    @Christoph-Hart I narrowed down the cause of the crashes. It has to with the code of the project. While it works in the stand-alone version, it crashes the plugin. I believe that this is part of the code that causes the crash:

    settingsPanel.setContentData(channelData); settingsPanel2.setContentData(audioSettingsData); settingsPanel3.setContentData(midiInput);

    @Jay It is how the pop-up panels are initiated. Get rid of that code and the project should open up.

    I ended up rebuilding the entire project from scratch within the HISE plugin. I copied and pasted elements from standalone version and once I came across those elements, issues started to happen. I utilized different solution to display pop-ups, that Christoph provided in another post.

  • Bug: Re-encode monolith wipes sample map

    1
    1 Votes
    1 Posts
    280 Views
    No one has replied
  • Serious sample map bug

    23
    0 Votes
    23 Posts
    3k Views
    d.healeyD

    Still having glitchyness with this. HISE is instantly crashing when trying to save a particular sample map as a monolith.

  • Floating tile Analyser improvement

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

    3
    0 Votes
    3 Posts
    332 Views
    ulrikU

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

  • Table value jumps to 0

    4
    0 Votes
    4 Posts
    357 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
    205 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
    1k 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
    294 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
    204 Views
    No one has replied

11

Online

1.9k

Users

12.5k

Topics

108.7k

Posts