fft core library module
-
Not sure, also I havenโt found a proper way how to handle Complex number type of the fft output within the scriptnode signal architecture. Iโll probably remove it and move the functionality to pure SNEX (because chances are good that once you enter the frequency domain you want to write code anyway).
-
@Christoph-Hart That's what I was thinking, having it along with SNEX would be a better way of handling it I guess...
-
@ustk Was just trying to get my mark with fft, which isn't the easiest part ahah....
-
@ustk How are your delves into FFT going? I just started finally wrapping my brain around it and JIT today
-
@iamlamprey as you can read above the fft isn't working (unless you wrap your own in C++ of course), and JIT isn't viable either anymore.
Christoph is currently rewriting everything, SNEX, JIT, all FFT related stuff, graphs, scriptnode, the new workbench tool, and probably tons of stuffs I can't understand... in short, a titan job... Until then, nobody has any idea on how it'll work. -
JIT lets you operate on the audio buffer directly so unless that functionality is removed from HISE completely (doubtful), any custom stuff we write now can be ported over to the new version (the actual algorithms aren't going to change any time soon).
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.
-
@iamlamprey yeah youโre right, unfortunately I didnโt get very far, Iโm waiting for the library to work so itโll be easier to implement
-
@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..