The reason that the previous smoothing algorithm didn’t work (while it should be,) and how I solved it:
- const bool frame_rate) + const double frame_rate)
Uh-oh.
Week 3
In this week, I:
- Added basic FFT functionality to the node, and
- Implemented a very simple (and incomplete) caching mechanism.
The project file is attached in a comment from my working PR. The packed audio is made by myself and licensed under CC0.
Known issues, i.e. FIXME
’s:
- The cache is not thread-safe for now. Although one can hardly make it crash in its typical usage (like what the video has shown), it may be unable to handle heavy workloads.
- Floating-point arithmetic error can cause sample position (time) to jump back and forth between different frames, making weird jiggles in animation.
- Assertion error happens when a new sound is specified while current scene is still in playback.
In the next week, I plan to:
- Support various window functions for FFT,
- Support EMA for smoother attack/release, and
- Add a Sound Info node for conveniently getting important information (e.g. channel amount and sample rate).