MUSIC 220C: Kevin Liao

June 7: Final Projects

Bubble Bells

Shepard Scale Penrose Stairs

Settled on Penrose Stairs in P5.js to visualize the discrete Shepard Scale from ChucK. Extracted coordinates from an SVG file from wikimedia commons.

May 29

I've been using a deprecated version of WebChucK for my projects. On the 25th, I tried to work with the team to figure out a solution to run ChucK files but unfortunately I couldn't find a good solution. I will keep using the deprecated version for now.

May 23

Coded a spinning xylophone in p5.js to act as a visualizer for the Shepard Scale. Not really a huge fan. Movement of ball is mapped to sin function, which is incorrect. Shepard Scale Visualizer Screenshot 'xylophone'

May 17


May 10

Bubble Bells is pretty much complete. Just need a few touches.

Altered Ge Wang's ChucK code for rising/descending Shepard tone into discrete notes to create a Shepard Scale. Added sliders. Removed mouse response.

Ran through some Unity tutorials over the weekend. Seems a little complicated.

May 3

Looking to do a possible ragdoll animation on a staircase to visualize descending Shepard scale. Looking @ Unity, PixiJS, or P5.js. Not sure which is best option.

April 26

Got WebChucK working and connected. Changed the appearance of bubbles, as well as the entire canvas. Altered the sound of the instrument, shorter attack, uses sin oscillator and octave above square oscillator.

April 17

Early p5.js implementation of original Processing visuals. Looking for solutions to sound. Currently having trouble getting WebChucK working.

April 12

Early p5.js implementation of original Processing visuals. See comments for more info.

April 10


ChucK code (run concurrently with Processing code)

Processing Sketchbook

Here's where I last left off on this project for MUSIC 220B: "Bubble Bells" is an early stage of a computer instrument made for play and audiovisual performance. "Bubble Bells" can be thought of as an arpeggiator that allows for high-level controls of when each "bubble" strikes the edge, but this control has only loose precision due to the variance in bubble speed. When the performer clicks the mouse, the bubbles will move in the direction of the mouseclick. The interface was created in Processing, and sends an OSC packet to ChucK each time a bubble hits a border of the screen. The upper border corresponds to the root of a chord, the right corresponds to the third, the bottom corresponds to the fifth, and the left corresponds to the seventh. Through OSC, keyboard input allows the musician to change between scale degrees. Naturally, the strike of each note is visually parallel to the bubble hitting the border, and the change of scale degree changes the color of the background.

I have a few thoughts as to where this can go next. Firstly, the physics of the response to the mouse click could be redone, although I did try many different versions and this was the one that made the most sense. Next, I think I would like to learn web-dev in order to create a web version of this. I don't know really any JavaScript but I think I could learn for this; this seems like the biggest challenge moving forward in creating a product that people can actually use without having to download MiniAudicle and Processing. Also, the noise of the instrument I believe is a single square oscillator through an envelope and low-pass filter. I think this could definitely be more interesting.

Issues I had with the instrument were mainly the physics; I didn't like that I had to anticipate the beat in order to drag the bubbles over in time. On the other hand, if I allowed for a faster response, it would ruin the arpeggiator aspect of the instrument by making all the bubbles hit at the same time. In performance, it isn't too difficult to compensate for this with a little bit of rehearsal on the instrument, but it does not feel intuitive the way most instruments do - it doesn't feel "correct" to make the motion in advance of the correct rhythm. Still, there is an aspect of the instrument that is less like an instrument and more like a relaxing audiovisual: the visual aspect was initially inspired by the old Windows Vista bubbles screensaver. So aside from any individual issues I have with the instrument or its visual, I think my main concern is that it's hard to pin down exactly what this is, an instrument for performance or something that runs in the background. This tension doesn't necessarily need to be resolved, but I think I could hone the vision before moving forward.