FFT Analyser Settings...
-
When I edit the settings they always revert back to their default settings. I've ended up editing the source code to get the changes to stick but though I should flag this up...
-
im not sure it's posted anywhere, but i've figured out a workaround like this (using it in a script panel)
const var pnlAnalyzer = Content.getComponent("pnlAnalyzer"); const var ScriptFX1 = Synth.getEffect("Script FX1"); const var analyzerSource = Synth.getDisplayBufferSource("Script FX1"); pnlAnalyzer.data.buffer0 = analyzerSource.getDisplayBuffer(0); const var fftSettings = { "BufferLength": 8192, "WindowType": "Blackman Harris", "Overlap": 0.8, "DecibelRange": [ -73.0, 0.0 ], "UsePeakDecay": 1, "UseDecibelScale": 1, "YGamma": 0.42, "Decay": 0.87, "UseLogarithmicFreqAxis": 1 }; pnlAnalyzer.data.buffer0.setRingBufferProperties(fftSettings);
and make sure to have an external display buffer added in the fft module in ScriptFX, but it persists for me!
-
@sinewavekid Yes in order to make the properties of a display buffer permanent, they need to be set from script and applied to the display buffer. That's the normal procedure, you did well
-
@DanH do you recall what edits to the source code you made to get these properties to stick? I feel like it should be included in the xml data of the Scriptnode Network.
I'd propose a bump on this topic as it has really tripped me up recently. I'm finally solving the issues related to my FFT and this was one of them.
-
@HISEnberg possibly in AnalyseNodes.h, line 337?
FFTHelpers::WindowType currentWindow = FFTHelpers::BlackmanHarris; bool useLogX = true; bool useDb = true; Range<float> dbRange = { -100.0f, 0.0 }; float yGamma = 1.0f; float decay = 0.7f; float overlap = 0.0f; int fftBufferSize = 0;
I'd have to check properly tomorrow
-
@HISEnberg said in FFT Analyser Settings...:
do you recall what edits to the source code you made to get these properties to stick?
As @sinewavekid said, you need to put it in your script.
It's a bit long winded because you have to get the display buffer, but wrap it in a function and it keeps it tidy.