I finally was able to achieve a kind of smooth, non-jagged buffering that really evolves the look of the music visualization that occurs in the scene. With the help of the professor, I generated a windowed application over the latest eight values for each band, and updated my own set of buffers, ignoring the one's that were set up by the tutorial.
The tutorial buffers preserved spikes in a way that was more jagged and quick-moving. My applied window has it so that the newest buffer value only carries 12.5% total weight in the overall averaging of band buffers. The code on the left in the following image is the outline of what was so eloquently and humbly suggested by the professor, while the code on the right is the final application of it. Instead of using a 2D array and dealing with the shifting of values, I decided to go with a single array of eight queues, each representing one band. Once the queue has eight values to read from (the ninth frame) the queue discards the oldest value and adds the newest before averaging the new collection of values.
The following video is the result of the new buffering system, and when compared side to side with the old videos, the difference is night and day several seconds into the video.
My next steps for the project include more pleasant color coding and the arrangement of multiple tiles representing eight new bands for each of the bands already at play here. The color coding will most likely come afterwards, at which point various colors will depict different registers more cleanly. Way after that implementation, I'm thinking of moving the tiles into 3D, maybe forming a cube shape or something similar, and then using a collection of THESE 3D objects/visualizers to make a kind of audiovisual composition.
댓글