Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

complex FFT #23

Open
wants to merge 6 commits into
base: main
Choose a base branch
from
Open

complex FFT #23

wants to merge 6 commits into from

Conversation

LauerViolence
Copy link

@LauerViolence LauerViolence commented Jun 27, 2023

Integrated the output of complex numbers split into real and imaginairy parts into the existing FFT-function. They are output as double-values.
Also added separate IFFT-Function in double precision for resynthesis. Works for now, but buffering and inverse windowing could be improved in the future.

This makes convolution of audio-signals (f.e. for filters or reverbs) possible.

Alternatively the complex-output-FFT could be implemented as a separate function to keep the existing one (which serves mainly analysis purposes) in its state and have the complex one (which serves processing purposes) separate.

Copy link
Member

@joreg joreg left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please remove the following unnecessary changes from the PR:

  • adding \runtims\VL.Audio - Verknüpfung.lnk
  • adding \src\Backu\VL.Audio.sln
  • adding UpgradeLog.htm
  • the change to VL.Audio.sln is a downgrade as you seem to be working with an older VS version. if you can't update VS, simply don't commit changes to that file

@LauerViolence
Copy link
Author

Done, I´ve also noticed that I somehow accidentially added a second set of dependencies for different version of many packages, which I reverted now. Sorry, I´m very new to this sort of thing but I hope my changes are usable now.

@tebjan
Copy link
Member

tebjan commented Jun 28, 2023

Just saw this randomly and have some thoughts about it:

  • complex FFT and IFFT should be done solely in the Audio loop, not in the main loop on update. it is virtually impossible to keep that synchronous

Following that thought:

  • I would not add the outputs to the standard FFT node but make a new node that is made for the purpose of FFT resynthesis which is actually a region that has FFT data as input and FFT data as output. this way it is guaranteed that the resynthesis is correct and the user doesn't have the mental load of dealing with synchronization.

It should be relatively easy to do with the NWaves library.

The nodes doing FFF/IFFT on update like the vvvv beta nodes do no harm, but aren't that useful, unfortunately.

@LauerViolence
Copy link
Author

good point, I´ll try doing that, for now I mainly wanted to use this for non-realtime cases (such as convoluting audiosignals with graphics data and playing back the resulting blocks on loop) so it doesn´t need to be synchronous but in general I´ll move it towards the audio-loop

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants