fft core library module
-
@iamlamprey said in fft core library module:
I was just checking to see if you or anyone else was ahead of me in terms of writing your own FFT in a JIT node. If I finish mine I'll post it as a snippet.
Well writing an actual FFT routine in JIT code is a bit ambitious (and there is no chance that the performance will be competitive to a statically compiled FFT routine from an industry standard library like IPP or Apples VDSP). There will be a wrapper for different FFT implementations and a common API that allows high-level usage of FFT tasks...
-
@Christoph-Hart said in fft core library module:
Well writing an actual FFT routine in JIT code is a bit ambitious
So it IS possible
Just messing around with it while I wait for the update
-
@Christoph-Hart Could you elaborate on "high-level usage of FFT tasks"?
Mainly will we be able to analyze a signal and detect gains of specific frequencies?
I have the most ridiculously sweaty idea for introducing RR functionality in a static sample using modal resynthesis and residue, both of which necessitate being able to identify the loudest frequency(s).
-
With high-level usage I mean that you don't know how the FFT works, you just use it. Something like this:
block b; SnexFFT fftObject; void prepare(PrepareSpecs ps) { fftObject.setImplementation(FFT::IPP); fftObject.setMaxFFTSize(ps.blockSize); fftObject.setScaleToNormalise(true); fftObject.setOutputFormat(FFT::Amplitude); } void process(ProcessData<2>& d) { // Transforms the first channel of the signal to the fftBuffer fftObject.forward(d[0], fftBuffer); int maxIndex = 0; int counter; float maxValue = 0.0f; for(auto& s: fftBuffer) { if(s > maxValue) { maxValue = s; maxIndex = counter; } ++counter; } double freq = (double)maxIndex / (double)fftBuffer.size() * nyquist; }
All these methods are purely theoretical at the moment, but it will look something like this (so basically just a wrapper around the C++ FFT classes that HISE is already using).
-
Sweeeet officially bought a ticket on the hype train
-
The hype train just got a new logo:
Not using the circles as cable end points is such a missed opportunity that I don't know how I could have missed that in the past...
-
@Christoph-Hart Is the C a modulator or is it the P ???
-
It could also be a send connection:
Or a xfader connection:
Cables!
-
@Christoph-Hart Canβt wait for a t-shirt
-
Good idea. The t-shirt will either have this logo or "Crashy, the scriptnode robot":
-
@Christoph-Hart (scriptnode logo) love it!!!!!!!!! Really pro. Just try zooming out to see if small sizes are ok. Otherwise you can make a simpler version with just one wire..... Sorry.... Can't help. Worked in advertising for 20 years
-
@Christoph-Hart said in fft core library module:
The hype train just got a new logo:
Not using the circles as cable end points is such a missed opportunity that I don't know how I could have missed that in the past...
Scriptpiercer :)
-
@Christoph-Hart Looks (and I am sure it also sounds) Amazing! I really like it, congratulations, as always..
-
-
count me +1 for a t-shirt -
You always had this as a plan right? - make a truck of money from t-shirt sales and nearly nothing form the software?
-
-
@Lindon I thought the strategy was to become a guru and teach how to make money with software sales
-
@iamlamprey said in fft core library module:
@Lindon I thought the strategy was to become a guru and teach how to make money with software sales
thats all part of the grand lie that is HISE!! HA hA ! I a=have you now!! uncovered for the scoundrels you all are with your free fully functional software that I can use to make a living - all the while trying to get me to buy your lousy t-shirt!!
-
@Lindon said in fft core library module:
lousy t-shirt
The T-shirt is just the beginning. My actual goal is a clothing line that takes over the entire fashion industry and I heard that creating a nerdy open source framework is a shortcut to get there faster.
-