The Sequencer That Glows
GlowSeq (pronounced "glowseek") is an audio sequencer programmed in Unity, ChucK, and Chunity, that allows the user to change the pitch and speed of playback for preloaded audio samples. The world in which this occurs is a 3D (outer)space of cubes, where time moves vertically upward. The source code can be downloaded here as a zip file. Please scroll down for instructions on how to trigger samples, change the view, and create new life!
The video shows one potential Musical Statement that can be created using GlowSeq.
The following video shows normal use of keyboard input to create a sequence of sounds in GlowSeq.
Process: My vision for the sequencer was inspired by an Escher drawing, shown below, and Toshio Iwai's sequencers, especially the one performed in "Chess". I began with wanting to make a sampler that enabled exploration of playback speed and pitch shifts, while at the same time exploring and building a physical instantiation of that world. The samples are my own, two of which are taken from an FM Synthesis project from a previous class. The sample of a man speaking "destroy" was actually recorded off of a VHS tape and comes from the original version of the movie, The Time Machine, made in 1960. It is one of my favorites and the dialogue and sound effects are wonderfully lo-fi.
* Use the arrow keys to move left, right, up, and down
******* left / right: decrease / increase playback speed
******* up / down : increase / decrease pitch shift
* To trigger a sample, press 'a', 's', 'd', 'f'
******* 'a', 's' : FM samples
******* 'd' : destroy sample (press 10 times to engage self-destruction
******* 'f' : tambourine sample
* The initial grid is only 5 x 5 x 5 cubes, but if you use the arrow keys to move around, and land on what would be a new cube, one will be brought to life. In this way, you can make the grid as big as you want!
* If you look at Display 2, you will see another view from outside the grid. You may zoom in and out using the scroll wheel of the mouse.
My custom components include a script to fill an initial grid of cubes and then wait until a new position is reached to fill in more. I also have a lengthy script to control my camera based on ChucK's event notifier, keep track of keyboard input, and objects hit when samples are triggered. Another script moves a spotlight with the camera so that you can see where you are, and a final script zooms in and out on the second display.
I have really enjoyed the graphics capabilities of Unity, and Chunity's documentation and starter code was pretty helpful. However, I ran out of time to implement a 'nice to have' idea whereby each cube only scales in size based on the individual sample that hit it when it was played. Currently, all cubes hit with samples move when any sound is playing.
There are of course many features / fixes I would like to make, but for now, the narrative of The Time Machine is carried out via the "destroy" sample. Once that sample is played 5 times, all objects that have been "hit" with sound begin to rotate around the center, increasing their speed. In the movie, the futuristic world that the main scientist wishes to stay in collapses, and he must get back to the present before his time machine is destroyed.