BenTetris is an audio visualizer inspired by the first version of Tetris. It is fully playable.
1984 Tetris:
BenTetris:
Download code here: code.zip
Unzip the archive
There are two ways to run the code:
chmod +x run.sh & ./run.sh
orchuck include/WaveTable.ck include/intqueue.ck include/voicebankvoice.ck include/voicebank.ck include/absdistortion.ck include/tandistortion.ck include/EightBit.ck include/BubblePluck.ck tetris.ck
There are a few keyboard controls that are used to play BenTetris:
↑ : Rotate block
↓ : Move block down
← : Move block left
→ : Move block right
Space : Drop block
R : Restart game after game over
For my final deliverable, I decided to completely scrap the work that I had done for my milestone. I was becoming more frustrated because I had a vision of what to create but was unable to execute it. I felt that every time I added or changed an element of my visualizer, it would not add anything to what was there before. So three days before the deadline, I started to brainstorm new ideas...
I picked up one of my coffee table books to help me with my brainstorming. The book was Brain Dead: Clothing for a Curious Life by Brain Dead. It contained the artistic vision of Brain Dead and a lot of visual media. On one of the pages were book covers, one with a grid. This made me think of Tetris, and I thought it would be cool to recreate it in ChuGL.
That's what I did. I found an image of the original Tetris from 1984, and it looked feasible to
recreate in
ChuGL. I bounced around
different ideas of what elements of Tetris I could use to visualize audio. I ended up
representing a block
as a spectrum, where
the spectrum is displayed in place of the next block, the spectrum history as the spectrums when
blocks are
placed, and the waveform
to visually match the original Tetris. It was a lot of GText
s, and then I decided
to make it
fully playable in ChuGL.
Easy enough. It gave me some headaches, and the code is a bit messy and not at all adaptable. I implemented the basic game loop of Tetris, where the player can move the block down/left/right, rotate the block, drop the block, lose, and restart. There is no level system and there is only one type of block.
For the audio narrative, I decided to recreate the Tetris theme song in ChucK and add aural feedback for user actions. I thought this was enough for my audio narrative. The Tetris theme song is recognizable and the audio cues add to the interactivity of the visualizer. The interactive Tetris game in ChuGL and the audio together portray the narrative of BenTetris. The narrative of playing, losing, and restarting (no winning, since I did not implement a level system).
As a designer I feel a lot better about my final deliverable than my milestone. I was motivated to work on this project once I had an idea that kept on giving. I feel that my final design has some artful elements to it. It was a fun project.
DashTune is an audio visualizer visualized by a motorcycle dashboard display.
This past summer was my first riding season on my motorcycle! I rode over 6000 miles over the course of the summer, learned how to clean and lube my chain, change my oil, replace my chain and sprockets, and replace my clutch cable and clutch cover. When I'm riding, I always listen to music, GPS, and communicate using my Cardo (sorry Kunwoo!). I wanted to create something that involved motorcycles.
For this milestone, I focused on experimenting with ChuGL, GGens, etc... to build a foundation for this and future assignments. I experimented with different GGens, sporked and disposed of shreds, created buttons, created UIs for testing, listened to keyboard input, etc... for this milestone. Because of this, I now feel more confident to pull off my ideas in ChuGL for the final version of this project.
However, because I focused on ChuGL proficiency and coding for this milestone, I forgot to think about how I could artfully design this visualizer. I spent more time coding and debugging than figuring out if the feature I was implementing added to the visualizer in an artful way. And at this very moment, I'm not sure of what I could add or change to make my visualizer artful. The current state of this project is not artful and feels bland and unfinished.