Audio Visualizer

Raindrops on Brass

This visualizer depicts the sharp yet delicate drops of sound as they cascade and glow into one another. As the sound builds, the energy gets more frenetic and the rings begin to separate from each other. To use the visualizer (built for MacOS). You can pan the camera using the Q (up), E (down), W (zoom), S (unzoom), A (left), and D (right) keys. The mouse or two fingers pressed on the trackpad controls rotation.

I was inspired by the circular motion of waveforms and the resemblance of sound to droplets rippling across the pond. I was also inspired by the metallic yet bright sounds of Laurie Anderson. The main struggle for the project was managing the amount of objects of in the scene to reduce frame drops and create a responsive program, but also while trying to achieve a high resolution and delicate detial. Thanks to (especially) Kunwoo Kim and classmates in Music256A for help, tips, and moral support. Thanks to Ge Wang and Kunwoo Kim for starter project and super helpful tutorials.

Files

Unity Project

Final Video

Milestone 2

Link to Youtube video

Visualizer Progress Update

I've been mostly working on getting the spectrum history implemented. It's been lots of struggling with copying to 2D arrays, cloning 1D arrays, and understanding the cube transforms. Most of the difficulty I think comes with not knowing proper C# syntax. Sometimes I will have thoughts of what I want to do, but then it takes a very long time to find proper syntax for it or I'll be forced to implement a roundabout way to do it because I couldn't find any appropriate function. For example, I manually looped through each row of the 2D array to copy it over to the next array to persist the memory. Instead of duplicating the first line of cubes, I drew new ones for each history row, because whenever I tried to duplicate it seemed it would keep referencing the initial array which just changed it's original position values.

At first, I kept the array size at 32 but Unity kept crashing almost immediately after starting to run.

Then I scaled the array size down to 5 which ran much quicker but did not have much of a history.

To show more of a change, I added an incrementer to the update function so that it only updates the history 2D array once every 50 calls and increased the row number to 10. It shows some slight change but still not significant enough which makes me think there's something wrong with the scaling section of the code because through the Debug log I was able to see history did record different spectrum values across rows in the same column.

Unity kept crashing still, so I think it might have to do with the workaround for loops I had implemented and how they scale in size as the row number increases.

Next, I'm looking to potentially move the history updating out of Update function to see if it makes it run more quickly. I want to make a visualizer that sees the history ripple out from the center of a circle from a waveform, like droplets of water hitting a surface. Therefore, once I get the history working without crashes, I'll be converting the cubes to polar coordinates and trying out the prefab shape as instead a sphere.

Milestone 1

Tutorial Response

I found the series of tutorials a bit overwhelming to get started with when looked at all at once, but once I started doing them I felt like they were broken down into manageable steps. As with all tutorials, I wonder how much I'll have learned once I start to deviate from the pre-defined steps.

The Unity tutorial was the most easily understandable for me, and I think past experience in 3D modeling and rendering software helped provide context for that. The most difficult tutorial was the sound visualizer one, although the Chunity one was also a close second. At times I was not sure what specific segments of code did and what syntax was built in and if it was specific to Chuck or Unity. This may be due to my lack of background in audio. For the sound visualizer design, some ideas I had included considering the possibilities of using the 3D space in Unity more. In the tutorial, we took 3D objcts (the cubes) and flattened them down into 2D space (lines). I wonder what potential visualizations could come out of keepign that 3 dimensionality.

Reading Response

Chapter 2

Several topics resonated with me in this Chapter relating to the act of creating music or the act of designing. On page 91, the word amateur is called back to it's roots as a word with positive connotations, meaning someone who loves. This was called out specifically with regards to music making and how the pervasiveness of technology for sharing music has somehow made music creation less prominent. I think the same could be applied to most passions, especially at institutions like Stanford, where to love doing something there is an outward expectation that there must be a certain level to the skill or some expectation of working towards a goal in the skill.

This also relates to an earlier quote from Aristotle towards the beginning of the Chapter. That "if the art of shipbuilding were inherent in wood, we have only but to leave wood laying around". To be a designer one has to actually design, not just think and pontificate on it. But design like music has also seemed to be affected by technology's capabilities to showcase and spread. There is a atmosphere to create only what can be displayed in a portfolio. Perhaps this relates to the idea of play and lowering inhibitions, if we can return to the childhood mindset of arts and crafts, of creating for the sake of creating (and being okay that there is no other utilitarian or loftier purpose), perhaps more people would create.

This sense of ignoring purpose (the quests that needed to be completed) also permeated the Idyllic Video Game Sublime film. It takes a similar concept to the dérive and applies it to a fictional rural/utopian landscape. I have always been fascinated by that and the concept of the flâneur, wondering if observation and journeying detached from purpose can lead to new insights.

Chapter 3

In this Chapter, I found mostly practical tools and tips on how to design for the visual senses. The principles of how to design for both physical and digital visual interaction I found especially applicable as I'm really interested in designing at the intersection of both mediums. While creating tangible objects brings me a lot of satisfaction, I also recognize that the world has become a lot more virtual and there is an inherent scalability to that. I think where design will go in the future will probably be somewhere in between. People will not want to completely let go of the familiar and earthly in tangible objects but they will also want the rapid iteration and speed in digital products. It was also really interesting how philosophical paradoxes like Zeno's could be used for identifiable outcomes in design and music. The concept of strange design loops and feedback loops relates to people's desire to not just view but also interact with art and design. The rise of popular immersive art installations and instagram ready "pop ups" is something I see as a concrete manifestation of that interest.

The design principle 3.7, to allow the medium to highlight the message but hiding the actual medium itself, makes me think of the recent phenomena of NFT artworks. There, the fact that it is a minted NFT almost matters more than the digital artwork itself in terms of appreciating the narrative. Does the message of a work of art change depending on what commercial channels it goes through to reach people? According to Walter Benjamin in his "Art in the Age of Mechanical Reproduction", reproduction of a work of art leads to it losing its aura but that in turn can lead to new meanings and new discoveries. All this to say, I'm not quite sure I agree with this principle as sometimes I think the medium is an important part of the message.

On a separate note, I was very curious about what Shepard tones actually sounded like and went on Youtube to find out. I found several hours of videos with warnings about how the sound could make you go mad and agreed after listening to several of them agreed that it was quite a maddening affect. This brings to mind questions about potential unintended consequences in art and design that are caused by experimentation with the sublime. A light artist I'm a big fan of, James Turrell, likes to experiment with something called the Ganzfeld effect. It's caused by extended exposure to a uniform visual field and can cause hallucinations. This makes me question, does the creator have a role/responsibility in warning their audience about their work or any unintended consequences of it? When working with audio, are there any considerations we should take into account?