EQ curve from object.
-
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).