I would suggest Wave Digital models - Faust has a WD library , but you could also do it in C++ with (mentioned above) transfer functions based on the fuctions you want to model.
Cheers
I would suggest Wave Digital models - Faust has a WD library , but you could also do it in C++ with (mentioned above) transfer functions based on the fuctions you want to model.
Cheers
Awesome stuff! Thank you so much for creating this video. Will follow your instructions.
Cheers
check this https://faustlibraries.grame.fr/libs/#wdmodels
As far as i can see there is no such thing as wd.WDFTriode.
Btw i highly suggest to do some tutorials. you can simply state a thing like
input_hp = highpass(...) - there is quite a bit more to it
Also your model like you intend to code it would not work as there is so much more to this topic than simply sending a signal thru a triode. You might check out some basics here as well :)
Best Ben
Links:
https://www.youtube.com/watch?v=VwoPt3h7DWM - on wdModels
https://www.youtube.com/watch?v=hDkur8zOcv0&t=5545s - on Faust
https://www.aikenamps.com/index.php/designing-common-cathode-triode-amplifiers
Hey guys,
recently i was working on my new Synth, and i came across an interesting thing:
When i open the Synthesizer Group Container and adjust the amount of voices and spread , everything works as expected. As soon as i CLOSE the SG Container the spread amount resets to 0 % ?
Any ideas ?
Best Ben
i tried it myself and with my solution above the waveshaper works, but not the filter. sorry , i am quite sick , so i cant check it on my pc yet
oh my god, i get it! Now thats embarassing. Thank you so much!!
Guys thank you so much, OF COURSE, i did compile it as instrument first, and then , when compiling it as FX i forgot to enable vst3 support. Now its running , and i can take a deeper dive into this ! Thank you thank you thank you
you need to be more specific on what you want to achieve? i am glad to help, as this community has also helped me a lot, but i need more information?
Btw shall i do a written tutorial on how to combine c++ nodes with your project ? Would the community be interested in that ?
Hey, i can figure that out in a few hours, i guess i can write a quick and dirty custom c++ node for bitcrushing and downsampling. Send me a dm if you like !

EDIT
This is what i can offer 
Already playing SMB Theme haha
Cheers
okok, tehre you go:
here is a short explaination -
It combines Sample Rate Reduction (Sample & Hold) and Bit Depth Quantization in a single SNEX node.How it works:The node processes audio in two distinct stages to achieve that classic "crushed" digital sound.
1. Sample Rate Reduction (Temporal Distortion)Instead of processing every incoming sample, the node "freezes" the amplitude for a set number of samples using a counter and a buffer.The Logic:
2. Bit Depth Reduction (Amplitude Quantization)This stage reduces the dynamic resolution of the signal, simulating older AD/DA converters (like 8-bit or 12-bit systems).
The Math:
The Result: This introduces Quantization Noise and "fuzziness," especially audible on tails and quiet signals.
template <typename T> void processFrame(T& data)
{
// --- Sample Rate Reduction (Sample & Hold) ---
int divider = jmax(1, (int)srDivider);
if (holdCounter <= 0)
{
holdLeft = data[0];
holdRight = data[1];
holdCounter = divider;
}
holdCounter--;
float outL = holdLeft;
float outR = holdRight;
// --- Bit Crusher ---
float steps = std::pow(2.0f, bitDepth) - 1.0f; // calculate steps
steps = jmax(1.0f, steps);
outL = std::round(outL * steps) / steps;
outR = std::round(outR * steps) / steps;
data[0] = outL;
data[1] = outR;
}
int handleModulation(double& ) { return 0; }
void setExternalData(const ExternalData& , int ) {}
// -------------------------------------------------------------------------
// Parameters: 0 = BitDepth | 1 = SampleRateReduction
// -------------------------------------------------------------------------
template <int P> void setParameter(double v)
{
if constexpr (P == 0) // Bit Depth (1 – 16)
bitDepth = (float)jlimit(1.0, 16.0, v);
if constexpr (P == 1) // SR Divider (1 – 32)
srDivider = (float)jlimit(1.0, 32.0, v);
}
Play around with the settings, and you will get the classic NES - Sound :)
I can gice you the .h files if you send me a dm
Cheers Ben
Hallo Christoph ;)
grüße aus Österreich :)
I was thinking about doing a little python script that creates the loop point meta data Hise needs for user samples. TBH i have never looked that much into your sample engine. Are there any specific metadata that hise needs? Would such a little project help the community ?
cheers
as i have read quite a few times there is need for a low / highpass with steeper slopes.... i could give the community the code and everything and show them how to implement that as third party c++ node, if that helps.
Pretty sure soon a kind of AI will help us all with that part of the job, but as long as we dont have this feature, i am more than willing to help others
Cheers
well i get it, but one thing i want to mention in advance is , that i would not want my (simple) code to be used in projects that are public. As you mentioned , you want "the user" not to force to install samples. That implies for me that you want to distribute the vst.
COMMUNITY: What would you do ? I really want to help, but if this project is not for personal use, i have some problems with that.
Anyways, - First you need to create the waveform itself - then you need to downsample and bitcrush it, depending on your needs.
you need to be more specific on what you want to achieve? i am glad to help, as this community has also helped me a lot, but i need more information?
Btw shall i do a written tutorial on how to combine c++ nodes with your project ? Would the community be interested in that ?
Hey, i can figure that out in a few hours, i guess i can write a quick and dirty custom c++ node for bitcrushing and downsampling. Send me a dm if you like !

EDIT
This is what i can offer 
Already playing SMB Theme haha
Cheers
SOLVED - my bad. I am a bit tired today. ;) Thank you so much ! Hope you have seen the comment in my code as well haha
@ulrik
Hey Ulrik,
would you please check out my snippet - i connected a delayfx to your buttons and
on my side, when i save the preset and open hise again, i can experience the same thing .
HiseSnippet 1112.3ocwWstSabDEdVLaS1MsQMR4AXDp+vzRI9FNPhpv3aXqBFKLMMnnpzgcmEOh0y3N6XHVU8+88Ku.8QnuAsmY2E7rfIPrRSsPfm4b9Nmu4LmKC8kBOZTjPhrbOZ5XJx5KsGLkqF1XHgwQcahrdrsj3yDmLQoD7HT8oiIQQTejkUtc05X4rLJ9yeuccRHg6QmsEB8JAyitGaDSMa2909QVXXahO8H1HCsqTqqmf2PDJl.7ImcAzXh2YjSo8HZ0VxF0gDMDY8s1aTprWE+m6WpzFaU0iTktU.IHnXY+JUpt4VEKuEoxlUoE1.Y8Es7YJgbfhnnQHqkqK7mNXn3BdhCdEKhcRHUunHZ.34jsaKB80GQ8tnFCYg98uLPEg.qzeVXKWRX6o16y7YWs+rv2WGK.OCgY.zZorzKWF5UzjdELn2bnjkAkVNgROwdfmjMVMShlOOxtKWQkAD3dxjJI5hV5M4raH.M3p0GQNi1VBKtBQ9pEJrFF90puzEtphT3yIRb83Tih3e.eIxSopFhQiEbXQ9URkuxb.U5N.UJKnlzPxTsihyQ0HZEDP8.0Sjn010P+C0YtIVJBP8l6feq4hu0O2AKWTnkWY0eA3LiGx3TbvDtmhI3XA2j5ZCHEg48tD8ZvoKbBcU2e20gEfymtxwAzLRDRWerjo8wNf0NmlFqwrnWfW46LM75LtO8cGDLyxqBQPGG3mj.55QT0NJkjAk+z7vc+8Dsqi6e35FHj37RLimAFvSo1tompFjvvSf577y8LqMn6ydVmVGiqeL9nNsv+7N5+9Zb6CND2o0d861aW72iazoUqCGfq2pmiqQTrmPQOfmONPALBecQAAyUVpyCox4JV21R9g.lmOYzITo40jVQnzLa8t8sWua1NxKIAxPQAuKmoNXLkeaMoPoYcPugborB9lJtyviS6LjDpQLnAficZU.Jlxlc0QeDvKcc3oD4dBu7bf+ScaRTDcKtzSDbJGSkJlN.Z0jdNLfIogmicSZzYJw33ibZJIx5A2iC86l4xuo1TyEWv7UCmsww0FRYmNzXZVyZwyG2UJlL9ZgsOBJTxfB090+WnPYSJH9TQgaNWBlHJ7mDRTYGSpeLQp.nVJyrI87GdDSM0zxexlcdeo3Sr6yTdCmOGWZNbDxY+ufiou33qrSl8MifKa290eFddwiR7+CriGQD64Gl78hY7d7V5Vk6QCLxTP0tRvgYygdZs1TpudVfAhZkK+9subeS.wB1SbQevgskze6J67muuVG1M1ExP2mYTl+WaeDEJNfGR3kIqJ28NjU7CeicnXhhwOceBL8D7qcuIiF.Or0iBWXbNMT292ZIc+wj0Ezq0jX.k6Gu3efOoBKpWakJr3kB+r3iQDOo3sdIMw04BOLdG3byieVti89503h2r28H3kuu0yKqotAvRKJvxKJvJKJvMVTfUWTfOeQAt4cCT+OlryDkXTR2LDZ+9shm0ZY0hSfr73xXz+x5SXOH
Cheers
Hey guys, me again :)
Today my next challenge is to get my radio buttons to work:
3 Buttons, on radio channel 1 - they switch between 3 values (0,1,2) in my hardcoded master fx.
Everything works, except, when i reload HISE (standalone, plugin, and also compiled vst), the start value is always 2 , altough i need 0 as my starting point.
Do you guys have any idea?
Cheers , Ben
Hey , one more question
I have a simple button that activates some effects. That said and done, cubase wont recorde the button trigger. My button has the "ispluginParameter" enabled, and i have given it a name.
Do you have any ideas ?
Cheers Ben