Yeah, merry christmas to all of you!
![](https://i.imgur.com/uIPwlHU.jpg)
Best posts made by toxonic
-
RE: dry/wet mix on whole Effect Rack?
.... and a Saturator based on Faust, if needed, with prefilter and post gain.
import ("stdfaust.lib"); lpF = hslider("[0]lowpass[scale:log]",20000,20,20000,1):si.smoo; hpF = hslider("[1]highpass[scale:log]",20,20,20000,1):si.smoo; drive = hslider("[2]saturation",35,0,50,0.01):ba.db2linear:si.smoo; post = hslider("[5][0]post", -20,-40,0,0.1):ba.db2linear:si.smoo; mix = hslider("[6]mix",0.5,0,1,0.01):si.smoo; trig = button("trig"); sat(x) = ma.tanh(x*drive):*(post); mixer(x,y) = x*mix,y*(1-mix):>_; t_sat_mono=_<:(fi.lowpass(2,lpF):fi.highpass(2,hpF):sat),_:mixer; t_sat_bypass = _<:select2(trig,_,t_sat_mono); process = sp.stereoize(t_sat_bypass);
-
RE: Some Faust errors on Hise
@Steve-Mohican
In the first example you only have one in- and one output, while the hise core.faust node expects 2 ins and outs.
you can make it process stero channels by changing the process line as follows:process = sp.stereoize(diode_clipper);
In the second exapmple, there's an 15 band analyzer included, each band displayed by an "bargraph" module, which HISE interprets as a modulation source. Since HISE only accepts 4 moulation sources per node, this will lead to an error. You can just delete the ": level_viewer" from the process line, then the example works, but without analyzer.
The last one is somehow mystic (at least to me). There are a lot of functions that are not part of the included libray "wdmodels.lib". You can have a look at the contents of the library here.
-
RE: Nice Faust Reverb and Delay?
@Straticah did you take a look at the Faust Web IDE?
You can try out a lot of examples there, most of them can just be copied and pasted into a HISE core.faust node.
-
RE: LAF Again
@Straticah said in LAF Again:
How would i create a LAF slider with rounded rectangles that only fills colour to the point where its value is like in this mockup?
Have not seen that yet in other HISE examplesSomething like this?
HiseSnippet 1065.3ocsV0saZbDEdVr2n.sopQpO.q3pEWBF6j3Tonn5+fVTscPF2nVEYEMrygkIL6LnYGvlTk2sdUed5aP6Y1YA1TivIHUtvly+eyYNy2gtZUDjlpzDuxWMaLP79Z+dyjlgmLjxkjNmR7dj+E7HHnmfy.M43Yiooo.i34s0OYcwq71jrO+8OdLUPkQvRUDxaTXrmwS3lkZ6d3uvEh1TFbEOof2O6vNQJ4IJgZBBms7aRFSiFQigKnV2J4S7dPKF2nz8LTCjh9brhMq2P0MRm+ugmx6K.qvdjdXhbpImLjKXcmeTSIDus6t7fuk6f+c9myY7E5W1.91LCAKinXOvqz5fzdeAPxq.j11AoG62KRyGaVZwhmuxuiz.5ATrUWDJNeIk9qs7OQgdHMMRnif1ZTXQDgGzrY8.7O0dYkJX6N0DLkpC5cVmSacYvqBlGYLXNQkLVIQgvpNyUWFyHYeAcPA+iz.1.NSEQEmoTiNRxZCfHDiv4ZCMDySQPzdhLxvUxvpLM8ly3RfpcyVUqGLXtw35Ap9uuVk+nRYrBoJAzXrliPwnsGBqML0ksPmhn.kaPQDjqZHUxD.pm918ud2Cx0JQEgVMAOI2iZA6l4RtCSyyzTpXBbgRmPE7O.rfcBjnGUJu6tk6GWobbiTaywNlF59WZC7HFMxhn3FCvg6KUSjLfcIDYnxXADRqiE5oWuSyFOu17bs5LI3wCMwZX1Zx1awqvl0yf9NSC997SiqDWuhJ4ru55cyPNN3lnFAqqftRkU06qXF3V6LE1Bu2VkcB3H7.KA1UXTgsjw37PClZB9j4JUOCdkGGt3Jodv90pGrFrTMBGE0.yNn9Q6vpat0Bh6LY5FKq8x4ibAJ4EJC7ZYX1TWkOVI3+ZZvfUZy9DPqDBPuRyVRN85BLTNIoOnq6ZZKbDYA9TpkG74QsD4dQVvQkrijad8XHWtsRvrTF1ueWhHR9SZKkTNBQWMYDReSNgT9x.NljG56ZxjLzWf6+Pxu14TpgNOOXJwxLFzFt8z3cJLE2M3H5J6eJjNxnFm4aNsCwqx8W0aWVwe+vYEEtgyLCWn3O0GNDrOsJtuI0LSjsx6mUZ9GPLREjD5sEODIbFNg0UkxsWZE21khMX6T6wpasruj6ReiKNTrIBp4S2lXWalavlxhT3VZZIVpYEKzWvJllqcEymKDereWtIZ3pwXoUfQ7J9+CLluX9Q9sFL.ohVBvs8a+aa5V36o7H0mAIcNmhbO38p+ESR5gzVQ.VcoDDXx88JYek3jaZkscfdfjkI7O3mbi6Yk8xMt2bi3HVjV8tH2aK6p+GloAwjL6W5T1+bqbvdyeS462rQSBNJxeWTj83+D7g6piY+MHlmtAw7rMHlmuAwbvFDyK1fX9g0Fi8G.dzDiJw8b.UzsUF2lmWKIEmrxlBI+qcYQxY
@orange Could you please add this to the LAF Collection on github? :-)
-
RE: Granular synthesis in HISE 2022?
@Straticah
Just an example for a simple faust granular pitch shifter, but i guess, there are already library functions for something similar:import("stdfaust.lib"); grnTrig = vslider("trig",0,0,1,1); grnSize = vslider("chunk[style:knob]", 1500, 100, 5000, 1):int:si.smoo; // slider: chunk size in samples grnPitch = vslider("pitch[style:knob]", 6.5, -12, 12,0.1):si.smoo; // slider: pitch in semitones/10 grnFreq = -(pow(2,grnPitch/12),1)*(ma.SR/grnSize); // calculate grain freq grnRamp1 = 1-( (+(grnFreq/ma.SR):ma.frac)~_ ); // iterate through first grain grnRamp2 = grnRamp1+0.5:ma.frac; // iterate through second grain with overlap hanning = -(0.5)*(0.5)*(2*ma.PI):cos; // hanning grain envelope grnRange = min(20000):max(1); // set range for delay grain = _<:select2(grnTrig,_,@(_,grnRamp1*grnSize:grnRange)*(grnRamp1:hanning) + @(_,(grnRamp2*grnSize):grnRange)*(grnRamp2:hanning)); //mono process process = _,_:sp.stereoize(grain):_,_;
-
Building HISE Scriptnode on Linux
after hours of trial and error building the scriptnode branch of HISE on linux mint 19.2, i finally managed to build the HISE standalone binary. Because i couldn't find helpful ressources by searching the internet, and i guess, that other people may run into the same problems, i decided to post my workflow here, hoping that i have done everything correctly - otherwise, please correct me. ;-)
- download the scriptnode branch of HISE via github
-
unzip the "HISE-scriptnode" folder
-
in "/HISE-scriptnode/hi_modules/synthesisers/synths/WavetableTools.cpp" line 503 -> replace "ceilf" with "ceil" with a texteditor
- in "/HISE-scriptnode/hi_tools/hi_standalone_components/SliderPack.cpp" line 300 -> replace "floorf" with "floor"
- in "/HISE-scriptnode/hi_tools/hi_standalone_components/SliderPack.cpp" line 302 -> replace "fmodf" with "fmod" and delete the "f" conversion suffix after "1.0"
-
open the "HISE Standalone.jucer" file in "/HISE-scriptnode/projects/standalone" in the Projucer
-
just save the file, you don't need to change anything within Projucer - the Makefile will automatically be created in "/HISE-scriptnode/projects/standalone/Builds/LinuxMakefile"
-
Run the Makefile via terminal with the command
make - CONFIG=Release
-
If everything is done so far, it should compile the "HISE Standalone" binary to the "build" subfolder
-
run "HISE Standalone" by doubleclicking the icon, open the settings dialog, select the correct path to the HISE scriptnode source and a path to folder, where your custom nodes should be stored in. for some reason, this only worked for me, when this folder was located inside the HISE source code folder, i don't really know, why.... :-/ after that, save settings and quit HISE.
-
once more, open the "HISE Standalone.jucer" file in "/HISE-scriptnode/projects/standalone" in the Projucer
-
in "hi_modules" change "HI_ENABLE_CUSTOM_NODE_LOCATION" to "Enabled"
- resave the project and rebuild HISE like described in step 8 via the Makefile.
at least, this workflow worked for me, hope some people will benefit of that description... ;-)
-
RE: Some Faust errors on Hise
@harris-rosendahl
It's always a good idea to check the examples in the Faust Web IDE (just google for it), and have a look at the diagram. There you can see, if you can simply converst a mono channel code to stereo, or if there are other channel issues:
Which reverb for example has a channel mismatch in HISE too? -
RE: Some Faust errors on Hise
@harris-rosendahl i just took a look at the faust library description in the web, it seems, that this demo has 8 channels....
-
RE: What is the next Step After FAUST DSP Network as Dll
@DabDab Did you enable compilation in the Network properties and made sure, all child nodes are enabled for compilation as weil?
PS: And did you relaunch the project after compilation?
Latest posts made by toxonic
-
RE: Issue building HISE plugin
@d-healey Hey David, yeah I did. But I already managed it to compile the plugin, just by changing the path in the
juce_VST_Wrapper.cpp
to an absolute path on my system.
Not an elegant solution, but worked for me. But nevertheless, I'd love to know, why it won't compile otherwise.
I tried to point to the VST3 SDK folder as well as the vst2.x folder inside it, none of them worked.
I also renamed the VST3 SDK folder, toVST3_SDK
, because I thought, it might got something to do with the empty space in the directory name... didn't work either. -
Issue building HISE plugin
I've been trying to build the plugin version of HISE and got the following error message:
In file included from ../../../../JUCE/modules/juce_audio_plugin_client/juce_audio_plugin_client_VST2.cpp:26, from ../../JuceLibraryCode/include_juce_audio_plugin_client_VST2.cpp:9: ../../../../JUCE/modules/juce_audio_plugin_client/VST/juce_VST_Wrapper.cpp:87:10: fatal error: pluginterfaces/vst2.x/aeffect.h: No such file or directory 87 | #include "pluginterfaces/vst2.x/aeffect.h"
I think, I do remember, I already had that issue yet, but I don't know anymore, how I solved it... :-/
The path to theVST (Legacy) SDK Folder
looks fine, and it contains theaeffect.h
header file, but it seems that I must be missing something.
Anyone can help? -
RE: Audio Loop Player - filebrowser in compiled plugin / Linux
@d-healey Thank you for your superfast reply. :-)
I don't know what I have done wrong, I just recompiled it again, but this time I didn't use the autogenerated batch file, but just resaved the juce file manually after making sure, the flag was put inside the preprocessor definitions and now it works fine!
Thank you anyway! ;-) -
Audio Loop Player - filebrowser in compiled plugin / Linux
I built a tiny drum sampler based on Audio Loop Players and compiled it to Linux VST3 instrument, which worked fine so far. But inside a DAW (Ardour) I neither can open a file browser. nor can I drag and drop new samples into the Audio Loop Players.
I already found this thread, so I added the flagJUCE_DISABLE_NATIVE_FILECHOOSERS=1
to the Extra Definitions in the preferences of the project, resaved it and recompiled it - but still no file browser opens when I click on the Audio Loop Player inside Ardour.
Any ideas? -
VST3 plugin error in DAW
Since I changed some parameter values in a project's DSP Networks and recompiled them, the compiled VST 3 plugin doesn't run anymore on Linux in Ardour.
Ardour spits out the following cryptic error message after scanning the plugin:VST3 module-path '/home/toxonic/.vst3/T_Glitch.vst3/Contents/x86_64-linux/T_Glitch.so' [Info]: Scanning: /home/toxonic/.vst3/T_Glitch.vst3 Error: signal 11 ---8<--- /lib/x86_64-linux-gnu/libc.so.6(+0x42520) [0x7fe58b9f0520] scriptnode::NodeBase::getNumParameters() const /home/toxonic/.vst3/T_Glitch.vst3/Contents/x86_64-linux/T_Glitch.so(+0x9309bf) [0x7fe585f229bf] scriptnode::DspNetwork::DspNetwork(hise::ProcessorWithScriptingContent*, juce::ValueTree, bool, snex::ExternalDataHolder*) scriptnode::DspNetwork::Holder::restoreNetworks(juce::ValueTree const&) hise::JavascriptProcessor::restoreScript(juce::ValueTree const&) /home/toxonic/.vst3/T_Glitch.vst3/Contents/x86_64-linux/T_Glitch.so(+0x972636) [0x7fe585f64636] hise::Processor::restoreFromValueTree(juce::ValueTree const&) hise::Processor::restoreFromValueTree(juce::ValueTree const&) hise::ModulatorSynthChain::restoreFromValueTree(juce::ValueTree const&) hise::FrontendProcessor::createPreset(juce::ValueTree const&) hise::FrontendProcessor::FrontendProcessor(juce::ValueTree&, juce::AudioDeviceManager*, juce::AudioProcessorPlayer*, juce::MemoryInputStream*, juce::MemoryInputStream*, juce::MemoryInputStream*, juce::MemoryInputStream*, juce::ValueTree*, juce::ValueTree*) hise::FrontendFactory::createPluginWithAudioFiles(juce::AudioDeviceManager*, juce::AudioProcessorPlayer*) --->8--- Scan Failed.
Any ideas on that?
EDIT: Tried some thing, updated to the latest commit, rebuilt the DSP networks as hardcoded fx (cleaned build folder), kicked out the Script FX Module (kept hardcoded master fx)... still the same error after recompiling (clean build folder)!
Then compiled to VST2: Works like a charme! Maybe a VST3 issue?
In earlier commits everything worked fine with VST3... -
Creating a file
Is it possible to create a file via the File API? I only found
createDirectory()
.
Although somehowwrite...()
functions from the File API seem to create files too in some cases... -
RE: Store values in ScriptPanel data object
@Lindon Thanks for your reply!
- No, i'm saving the data inside the files via the
File.writeObject(ArrayToStore)
in a file called for examplestutterPresets
. The array to store in the files, containing the values for the UI controls is called the same. - Yes, actually in AppData/User Presets
- I made two functions, one to save the arrays in a file and one to recall them.
// Directory to store Presets var PresetDir = FileSystem.getFolder(FileSystem.UserPresets); //function store inline function writePreset (FILE, ARRAY) { local PresetFile = PresetDir.getChildFile(FILE); PresetFile.writeObject(ARRAY); } //function recall inline function recallPresets (FILE) { local PresetFile = PresetDir.getChildFile(FILE); return PresetFile.loadAsObject(); }
I recall them on init lie this (for example):
stutterPresets = recallPresets("stutterPresets");
PS: What you are seeing in the Panel in my last post are the values of the array, which I wan't to store inside a file. Since this is already empty in the compiled plugin, I don't wonder about, that the files are overwritten with
null
. I just can't get my head around, why the arrays won't get filled with the parameter values i set in the corresponding "presets"... - No, i'm saving the data inside the files via the
-
RE: Store values in ScriptPanel data object
Just to demonstrate my issue, i added a panel, whcih i use to visualize the content of one of the preset dummy arrays.
This is, what it looks in HISE, i can see the values changing, when tweaking parameters:
And this is, what it looks in Ardour as compiled plugin.
Remember, the snippet i posted, which works pretty much the same way, works in both, Hise and in Ardour as compiled plugin....
-
RE: Some Faust errors on Hise
@harris-rosendahl
It's always a good idea to check the examples in the Faust Web IDE (just google for it), and have a look at the diagram. There you can see, if you can simply converst a mono channel code to stereo, or if there are other channel issues:
Which reverb for example has a channel mismatch in HISE too? -
RE: Some Faust errors on Hise
@harris-rosendahl i just took a look at the faust library description in the web, it seems, that this demo has 8 channels....