EQ curve from object.
-
@orange I thought about that but what I'd like to do is perform an analysis outside of HISE and import the curve from a file.
-
@d-healey said in EQ curve from object.:
@orange I thought about that but what I'd like to do is perform an analysis outside of HISE and import the curve from a file.
So make a plugin or standalone app with the draggable filter that is connected to the Parametric Eq for analyzing purposes. Put a button on the GUI that exports the state of the eq using
exportState
so you'll be saving the eq curves to files. Analyze outside of Hise and create curve files. Then import these files to your real project withrestoreState
.Since each eq plugin's filter coefficients are different, your curve analysis and final curve settings should be done with the same eq. Otherwise, the resulting sound won't match the analysis.
-
restoreFromState
is definitely not something you want to call in an onNoteOn callback. -
@orange It's not possible to perform the analysis I'm doing using HISE. I'm trying to recreate Kontakt's AET filter.
@Christoph-Hart Is there a way to add nodes to the eq programmatically?
-
@d-healey Why don't you use scriptnode for it?
-
@Christoph-Hart Because I'm a noob :) can I load in curves from external analysis into a scriptnode filter?
-
@d-healey Sure, it's called scriptnode for a reason. You can grab references to every node and set the parameter programatically.
-
@Christoph-Hart I have some learning to do :)
-
@d-healey Can't wait for the Patreon video
-
@Dan-Korneff Everybody is waiting for this video and I really don't know why it takes so long for this guy to learn scriptnode :)
-
I can't see a node that is like the EQ, are you suggesting I add individual filters for every band? Is this more/less efficient than the using the stock EQ?
-
@d-healey I believe it's only 1 band per node.
-
@Dan-Korneff And if I wanted to add 30 or so bands, any idea how the efficiency would compare to the EQ effect? And how would it compare to just adding 30 filter effects?
-
@d-healey I can be wrong but : Talking only about using 30 1-band EQ nodes, I would guess that once your ScriptFX is compiled into a HardcodedFX, there won't be much of a difference than using an EQ module with 30 bands.
-
Yes itโs pretty much the same.
-
Excellent. Is the clone control node thing working properly?
-
@d-healey A simple test for your use case works, but the entire concept is a little unstable (it's basically the child panels of scriptnode) so I'm not sure I would recommend it at this point.
HiseSnippet 1557.3oc6a0saaaCElJNxoNscHEqO.Fn2jh1Y3eRiSvtXNwIt0qKIdUtoc6lLVI5XNKQpJQ6D2gc01E8tALz89zGfVfAzmf8FrAr61EcGJIaIG63lnkM3EHGf.cN7PxOd346ix.zMb35DWWtCRISy91Djx0T05yDsq1FSYn5agT9H0cvtBhSVeWa12F65RLPJJotuzgRl4Qde98OaSrIloSBcgP6yo5jufZQEgdaT4gTSyZXCRSpUjnWoRccNqJ2j2EvSJ07HardG7gjcwxvlSEojdaCpf6nIvBhKDylbi9Zs4Gw7ieepK8YlDoQAjFLP9tQUaSMMZLXs5hPJy2HbkmxekeS0cnFzg9Cy.K40P1vdDMGnL2zfTgyAjTh.o48gzMT0zcn1hvVj34pp0YvFRKLjpiBE+XQJuVsJGBfIxYg6Pp4.FC6vxqlO+cyB+61eZqtLcAkyxxY6xEj8XKe6E+tEyr32uX1S1TqVSrM4z3vMMINSrY4tqyz53xrtVOi3b2r8vlcICCDV9ilSSe1xo59q5HAxY0YTwd1j.6ZbSCYtR9736.nfzF7ziquEVfkaJA9f3rINBpDNJaQ5AU09aQYT2h31Qvsg55w1+fJGtQWSrXzxIIuInAHeLxdnbih4RE8ixqNYM17md9Hej7wGX0dFg6MTaPE5smLdmaB3ExZ+ai2.F60U2tUKhtHDryqV6oSkddg.kIQUWLfpByuDHWKvLasmVXhjzWpFRHrcH1XGRSdCSb+kcwV1ljGA38tYelIWuiF8EjwYQ19PXSYDKq2FyXDS23P1ReAIfgdDuqfxNbGrvgdLRQc2tVZfTtNoZ.5.eJyI4Y914k1x5EMByvy38vmfFKHsUBZrvfFiPQ2kHNh6zwa6H3YXs3m6c8RxGz53BnMLM4GUkaYSCpdg8.OeM3l8sayYTcoK+HFfzMr3cgII.tO.61DSMkk66Sbb8FjETymC9CJ02ka.IG0ZXcHI1uAVzVxYjZQPQIwIm9vhyQvUzZB4PL3XO+LB.GK4xz6PuTQDe7q8jV.iaN+Qst69xV0wln8k6sRfhjioL7TA3yOTcSNibf7XUzH.9ld.FpRxEIhyADmOJDQgZEMwNGRDtABoLht+VfWRqNLvWQ0sWqCHOG0.6.GxCGRI8dU0ZNjm2kvz66MO.c33A5wZlTChSC.etiZJSGLCxwCJU1Fp1M.RrWGUxqVpXtMrd7Qq0rfAYkpq8skr2qXuGr558vFOtr1SbeT+8Vu55MuS45a2espnPDImm4FZA0X6PYA44PI5cvGeBe4qnIH1Rtaz3z5PNxOyG0q+o5.eopL66hFa3QSe9gT9XyOLWiM+.a5Tm+ET8Gfwm6HUPWORETgY4RnzdGxdgV87j897xq+B5lOYsp4xkis2Wa9U0tSiCe98WUZmKGXatdOilkJmT8LV0yB9A4UZfNcsRulO6EMxioBVzflmzJRdG7DGoyTCkNuxDJ70km5g9.h8m1BHS5W8pW89KV8ckHfbHUXD7sjZKpoLijKn03dzyIIS07G1vGmNIBFuQoEoiTVtv3kkqTYrxxW9tJmoxxJ+f0aCnEgmjL5PU4mprQWA2BdoGuWjcZbjJkJ8tSxQe8adysNafAcq+3W8.SJ0uLDD+xaeX2e9O+qQ3lSHIT70iyMKV47wMCzBGi0elW++yzH9lOdq2ErYnYw4h1v6HNBXp7au3GiiF0RmSMxzxudyXRTKU4BZoOsoNi51LL7VzFSSbVRwhvl+nnRNElU0bxDn4THQzIQzIQz4RknSwYcQmhIhNIhNIhNWpDcJMqK5TJQzIQzIQz4RknyJy5hNqjH5jH5jH5boRz4dy5hN2KQzIQzIQz4Rknypy5hNqlH5jH5jH5boRzo7rtnS4DQmDQmDQm+WJ5D2qZkpxUj49KpqYU13jTPmy8iqqpYaREZzCYgZagSvnIlM47NVXuqHa7tP6+Wbgdsv5N7CBt5fd25JOO.0m48q9Hi5NR6rEP8B11j27VjE0fdftt7Fe+IEPnI2mhwnOkhQeVIF84dwnOqFi9TNF8Yso1G4OFl.cP4MwDbzXa+iqTFvXk2ht+1nh0wh
-
Could this be a use-case for Faust when it's ready?
-
@Christoph-Hart Thank you, I'll play around with it.
-
@iamlamprey said in EQ curve from object.:
Could this be a use-case for Faust when it's ready?
No, not really, Faust is not really suited for spectral processing, it shines in circuit simulation and physical modeling.
Actually I also think that using 30+ bands of peak EQs is not the 100% right way to simulate AET as this amount of filters will smear the phase and is not super efficient (especially if it's per voice). The proper solution would be writing a FFT filter that applies interpolated gain reduction for each FFT bin based on the analysis of the loudest and softest sample:
- Create a samplemap with two layers (ff and pp)
- For each note / sample, do an FFT, and compare the gain factor for each bin (should be <1.0 so it only works subtractive)
- Write that gain factor array into a data file. You can just use audio files to store that, then you can load the data as SFZ into the realtime processor.
- Ditch the pp layer.
- Write a FFT processor that applies the gain factor on each bin (the FFT size of the analysis and of the realtime processor must be the same, so you need to find a compromise between latency and frequency resolution).
Everything from 1-4 can be done inside HISE, but for 5. you need to write (or commission) a custom C++ module, but I would say that's rather beginner level spectral processing. Then you need to tweak the parameters to match your use case (FFT window, FFT size, smoothing between bins, etc).