Name: Perturbulence
Description: Perturbulence is a realtime audio visualizer that displays both the time-domain waveform and a spectral history of the given audio input. The time-domain waveform is captured by ripples in the rainbow arcing in the sky, and the spectral history animates the clouds.
This project took a lot to complete! The ChucK/Unity learning curve was quite steep, but I still feel good about what I was able to accomplish. Here are some of my takeaways from the experience:
- Sometimes you just need to sit down and build something. It felt like I started early, but I spent wayyy too long trying to figure out what I was going to do. I watched hours of audio visualizers before I finally sat down and figured out what I thought I was going to do — and then many, many more hours after that making something that was completely different than any of the ideas I started out with. My idea for clouds didn’t come to me until I’d actually finished creating the mesh and just spent some time staring at the way it moves. Suddenly, I was struck by the way it reminded me of staring out an airplane window, looking out at a mat of clouds in the sky. I don’t think I would have landed there until I started actually making things that moved in real time.
- There will always be more to do! I would have loved to have a feature where more rainbows might be rendered in a way that corresponds to sound, or have the directional light move slowly. Still fun to think about these ideas, but there will always be more to do and sometimes it’s okay to just be done.
- I really should have spent more time trying to figure things out with ChucK, especially since I’ve never made a music composition before… yikes. There will be more opportunities to put some sounds together, though, I hope.
Instructions
Camera Controls:
1–7
number keys let you switch between cameras placed within the scenewasd
keys to move around- hold right click and move around mouse to angle the camera
m
to use mic inputn
to play the narrative- Note: only one of
m
andn
can be run at the beginning of the program.