Yeah, merry christmas to all of you!
Posts
-
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: 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):_,_;
-
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? :-)
-
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: 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?
-
RE: Adventures in ScriptNode - Faust.....
@Lindon said in Adventures in ScriptNode - Faust.....:
@Lindon ..and its because you need to set up the Faust path in the project preferences...by the looks of things...
ooops, that was faster than me! :D
-
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: Faust is here...
@Sawer ahh, okay, i'm still at work, but try to use this as process line instead:
process = _,_:re.dattorro_rev(bw, inputDiff1, inputDiff2, decay, decDiff1, decDiff2, damping);
-
RE: Getting Started FUAST for HISE video
@DabDab Add a scriptnode fx, create a new scriptnode network and add a core.faust node inside it. The node has some options to load a Faust dsp-file or to enter the faust code manually. Enter the code and hit the compile button on the faust.node, three knobs should appear on the node to adjust the filter parameters.
-
RE: Connections lost after restarting the project
@Christoph-Hart I just now have another problem:
So far i always updated HISE by downloading a zip file from the latest develop branch from github, but after @d-healey told me, better to use git for version control, i tried that right now, which seems to work quite fine.
But after I updated some minutes ago I have the following issue in scriptnode:
Each parameter from the main container leading to a faust node knob only uses the range 0-1, regardless of what the parameter is set to (for example 4-32). But this only occurs on the core.faust nodes, other nodes don't seem to be affected. Can you help?EDIT: And one more: So far, when i hit the symbol in the upper right corner of a faust node to edit the .dsp-file, my standard editor opened, so i could edit the code. But now, nothing happens anymore, when i click that symbol.
-
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! :man_facepalming_medium-light_skin_tone:
Thank you anyway! ;-) -
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... -
RE: Scriptnode Phase Delay and building a phaser.
@lalalandsynth Don't know, if this is interesting for you, but you could build a phaser with a few lines of code in Faust:
declare name "t_phaser"; declare version "1.0"; declare author "toxonic"; declare license "GPL v.3.0"; declare copyright "(c) toxonic 2022"; import("stdfaust.lib"); coeffOne = hslider("coeffOne", -1,-1,1,0.01):si.smoo; coeffTwo = hslider("coeffTwo", 0,-1,1,0.01):si.smoo; lfoFrequency = hslider("lfo freq",0.25,0.1,1,0.01):si.smoo; phaseOffset = (hslider("phaseOffset", 0,-1,1,0.05)):si.smoo; phaserTrig = button("on/off"); intensity = hslider("intensity", 0.7,0,1,0.01):si.smoo; fb = hslider("feedback", 0.6, 0,0.999, 0.001):si.smoo; rangeCon(curV,oMin,oMax,nMin,nMax) = (((curV - oMin) * (nMax - nMin)) / (oMax - oMin)) + nMin; lfo(off) = os.hsp_phasor(1,lfoFrequency, 1-phaserTrig, off)-0.5:abs*2:rangeCon(_,0,1,coeffOne,coeffTwo); apSer(off) = fi.allpassn(1, lfo(off)):fi.allpassn(1, lfo(off)):fi.allpassn(1, lfo(off)):fi.allpassn(1, lfo(off)):fi.allpassn(1, lfo(off)):fi.allpassn(1, lfo(off)):fi.allpassn(1, lfo(off)):fi.allpassn(1, lfo(off)); mPhas(off) = (+:apSer(off))~*(fb); phaserMono(off) = _<:select2(phaserTrig,_,(_*(1-intensity),mPhas(off)*intensity:+)); process = _,_:phaserMono(((phaseOffset*-1)*0.25-0.25)),phaserMono(((phaseOffset)*0.25-0.25)):_,_;
-
RE: ButtonPack Colours
@ulrik Changing line 48 to
g.setColour(this.data.buttonValues[i] ? this.data.onColour : Colours.black);
was enough to change the on-colour.HiseSnippet 2360.3ocwZs0aajaEdji0hZ0cA1EXeXQeh0OTH4HqHoj3VXU2Mw1wcUasiQjSZ.LL7ROCkFhLhb1Ynrs1.+is+C5+f1CImKbtIIKjhJHXngy4F+32g7PRed.2lDFxCrps0Ey8IV0955ilyDtG4hoLqgGaU6Gpe3LgfyNGa+IzQbO9r.zEjPg0gy8wggDGqZ0dxeUJcss1zR84e+iGh8vLaRZSVVefSsI+C5TpHs0ye0em54cB1gbAcpgzu3UCs4Lsyrp8j5cs7AuimPNCKEai5V09p23PE7fQBrfDZUayC4NyG4xuiok+CzP5MdD4C8rFAFR27IbOGYDKa05HWpmy4wHPnEXkySwimnwiuu9oTGZR6o3x2pdAJUCS7n1FYCumjI75YFdcMBuRBoZFgzl5P56pOxNf5KReiLd9s0GxDjfwX.1MCEsrVa7u9g5GwAIXhNSwehbR.7PhFM2qa21H3OsFznwy1YGzEtDjw3NMDgQgDAhOF4xCn+JnL1yaNB6QmvHNnaTxFhtykZ61XGDBYiYnaHHAexDOo.yQNA3ISnrIH9sj.jvkLsSicTx99PXrceTzS85fNJf..mTFynXVnT6zF5XqDKsglLfezFceazbniHsU+NnQPXKMDa1za.+B8f3fUIA7o4I7.n+w8EzoXOD12mfCj721fKIvati5HbkZ9yfQztKbmyPOE06maoLxKRcish0FVLXA3Syna1BgYNJgmPukvhTAM73PkwdYGzPl50xb.lHf6cD.12.FoM.qddlVcluC.AM8wLh2E72qdpEf5n.x3.RnqzNw8SGZnuGdt5w85nFiS7fxvRW.cVvC1xAXpNJzvEJTwkQX3aP.dNL18rFR7NDxMMGlZ74FRm8rmEOaAzu1W0j5OfkCEnawAnCAgmDvmwbzBNzAc.p6f7RoL7aYFxzuBYFOtnPRxrlMIovF.GBBeo.TlGkQPimwrETnatHNkRAc2S9wiCfljbLAF6O.EmdgcbNWNbjkMl..xOwhBbBHK1mDHnjPHkb5eazaOKRuT+rsh+s89nW164sSa0kPm3JfledeiVggQ9cw7kP3saejGE9UazOox69CniixC21PqP7sjgryAFCQZQQvLhwa493eYFAZuWRaOjuKoggN.+C2wCGJTdg3Lj4PtG.mc6MnTQcf4D+.1aFIcrOubRPB3hh2wmIfgplwCUMmzJQzTvR9QxIRyTAKKbogZ+oIyJOF1wivlHbGTPWsP+SUV+AnlJsgHQ0PyV61qE5YF1OU+LFZRmwPlzq87ZpYkgcfIGgjyJDeLOnIUABHJ5OaZdD8oOsUFYy1a0NKc5kx6rWRuB8iF.Q75qn8Qww2Md.ko0fRLtrm7Nhsn4k8fY8n6zz.gZ0F0qsIjsK7XLj8SJNJfY8uJmgenJTKsijfaTg6q87cwM6d+IQeZi51oWqb1Lefl1ackbeEWbMiczRY9PbeJGVuHN2KkmRfI4EUwUoi0uuisLMk3rrQ5z9TIYYWCAhl1nXAsQZSOUFWGCYZeD5H4Q7BdHIhBcoiER0ZUPlhwURdG4NEgCVSE39PL0CsaE4eWVce4pAk5fRa7Z.4AWcngki58YikVkayzfvbtnrpVTyGJzBwKjrh3z05phxLRUMV7nh6uDH8CMp9IYuLkgHKoaYD1HRwikoBouo93i4vfx3r48weYIS62pTTMfHlEvd7d62evhFAWQdwBysy4wAUlKXjHrTtU6xnQsVcJwCksblFCilWT+9GLlyTVRFTsbnp3RLLhyDFUkWYgYPO6rjEEa521XIx7ElA0d9NYkLZOHqVM4U9E4C.1d4U4lS+wrZre4K1lTOyCY65x0GTnNZLTvW157SpBuRTHtd+7cYfR5KWzROr2JhiiN3fxBuBY.edYcHjzNolOcPOkJjY9urFTWnL.hWvOh6OGL1oXgamoTVYAc6kj2tfjyhCaZOVxn1BG4LiJnkx5tY7sem.hurF0XnwbLG1HjKlMgDZr+PYjZr4pvpX7QUBArc6ns1D+q7DfPnJIa2lwhU0XqMNzbyZcJtIr8SfkIQUHdPjKGftA1bzmFrXCla+ZIlKofy0wboasK0dwsUsAeHZrHdbHcVG4bBxsxFm2oW9Tts7nARsbpsUW5Xy05DQ0InvvdESH8kEDpoPkPyLHwE3N5FsUbFmxITuhF42xisLkW.bGZ5hPetwBI+pJBhJZqZARiyhvvfbX9RB0bqWEGrsgxFjqD8XhYkFqRn8HPxRJszuhXK2bOUOs6iYIjkUFZlYg9hziSqKC5n2W9Qdb+Y7foXO5uRjmzx8vtg8M1e7f7wkVIZTcLpo9G6wA3pZLBsioSLRLhpsflVBzCMfhKZrnSEb6QjeYFgYSB1F11H7ErW5gGk7RiivYhbl2o9bF7fo5fhYOQOiJRRjB1S4dEDLZhbCgVvblsS1R9j.BgsNFq375sKrO+UDz5qPsWVAp0e4vV+UC25uR.W+UD4BTzlFMxSv4rDSEM4OrlYTLmjY+4FaU7LVSzCrqjxsTxhN7yb.tMK59kEk8W2vr+pEm8WZf12LRaXDimwEj2xZpBjFvrL4e03wk9tHy4QBJ80x6BJXQJ1TeT9lvfTPqZal8VWpW8stXdoP1Z7wPPNaHiJdqOgU0UEYEApVV01HJp.QEp6m4ahueFYwCVTG4cyjfkVpX1p1d0kG06k8TG.U23+l7sW7Wye26JseWry95Tm0Om25l0jk9izXA716GdLLAs7Znh5uomVMz1wjao1D8kRsU8iIgeRv8U.RDKCZdUfj6ggpZx68ad7OTG3Mn8WUaC8MBpOqaYKnn6Sz7DqkpI0SeN0J8hjJ6ogaU62UupSCWBsKOry.tYi69++JtKdCgea8S4Ny7vhrWXo7VZidAjOk4VBk0LvBoh4l2ha9awbyU6VLW7krtpg62U+b4FZJOd2nj3UlJ9+33M5Ng+l5uY7XhsHMX2r9IebgW.7WlPQeCHSfJnBnRxGrJ5HXwNahbCl.EUNmmh4E8b2XB5HByQ8v+A9D8xdwrO4K6E+RqoX6.9015oYj2.8uQ0BDSL0kuuU8SkOi5EO2R85c6z0ZJ0gdsssDJ1Eh8x0o+ZnyyWCcdwZnyKWCc1aMz4OtF57mVnNx+ODd8LAepNMAZ372nl1tVs2vv.KSwHs9uvodwtA�
-
RE: dry/wet mix on whole Effect Rack?
@Straticah oh, i'm afraid, i'm not! ;-) This here is just a simple hyperbolic tangent saturation, which is most of the time enough for my needs. I tried some other saturation stuff in the past, but that was just tinkering around....
Edit: you can find several saturation algorithms in the internet, but it's not always trivial to adapt them to Faust or other environments. -
RE: Got no idea what to give your friends/enemies..
@ulrik Oh, silly me, thought there would audio be recorded...
-
RE: Win 10 / VS 2017 HISE Build Error
@orange I have a dualboot system, one OS is Windows 10 with VS 2022. No issues known by now