An audiovisualizer featuring Eleanor's little show :)
The little characters on the projector are mapped to the audio input's frequency spectrum. Vaguely speaking, the characters closer to the left are for lower frequencies while the characters closer to the right are for higher frequencies. The higher a character jumps, the more amplitude or magnitude there is for that certain frequency.
1. Please download the zip file and open the folder in IDE of your choice. Make sure to also download chucK-1.5.1.6 and chuGL version 2023.10.20.
2. Run the following command in terminal: chuck final_freqspectrum.ck ../soundfiles/soundfiles/audio.ck ../soundfiles/soundfiles/playmidi.ck
Files are here.
I'm pretty satisfied with how the visualizer turned out. Compared to milestone 1, the idea definitely changed direction but in a way that fits the assignment's requirements better.
To get rid of some of the latency and to not have so many little characters on the screen,
I decided to limit the frequency spectrum to [220Hz,1000Hz], meaning I only used the FFT's [10:47] index outputs. I also adjusted the way that the characters move using 1-pole smoothing.
Resources I used include: Pages/Notability to draw, Soundly's free samples, MuseScore4, Reaper/OBS, and the many chucK and chuGL tutorials/examples + chucK read midi file example
*I was using zoom screen record so there's some additional latency/chucK picking up noise from my computer fan.
Edit: Adding other variations here:
*I used voice memo on my phone to record audio & quicktime for screen record.
A 3d cube that follows the 3d color space:
By default, the cube will be white (no sound/gain under a certain x gain threshold. When there is sound, the frequencies will be mapped to RGB values (specifics TBD). Over time, the colors should fade to white. The waveform will be in the background. User should also be able to move around the camera by dragging the mouse.
Idea #2:
A plant which grows depending on sound input.
Sprout = no sound/under x noise threshold aka gain (g): 0 ≤ g < x
Mid-sized plant = some sound, aka gain (g): x ≤ g < y
Tree = above a certain gain threshold, aka gain (g): y > g
waveform in the background? sky?
The location of the tree in the window is mapped to a freq spectrum.
Idea #3:
A cartoon character singing.
Similar to idea #2, each character is mapped to locations across the freq spectrum/across the window.
When there's 0 sound/gain is under a certain x threshold, then we have the brain-empty character.
As time passes, the characters fade.
Exercise #1: Hello chuGL