PLOrk2009/AdrianKwokFinalProject

From CSWiki
Jump to: navigation, search

Dark Matter

Welcome to Adrian's MUS 314 Project Wiki Page!

Introduction

This project grew out of the desire to build an instrument that was based off of some sort of goal-oriented game. Eventually through some brainstorming I developed a graphical model where a start state (in this case a grid of 256 black squares) is converted into a goal state (a grid of 256 white squares). The rules of the game are simple, every click of the mouse causes a pattern to appear around that point on the screen (in Dark Matter speak we call this an "explosion" yo), changing the colors by a predetermined rule. Ultimately I added a number of other features, including the ability to lighten or darken the entire screen, change the explosion pattern and reset the screen to either the goal or start states.

Built off of the graphical interface is a simple sonic representation of the gameplay. The start state is represented by 3 StkInstruments (in this version either Clarinets or Flutes) that are set to dissonant relative frequencies. Their frequencies are directly related to the total "darkness" of the screen, so the goal state has them in perfect unison. In this way I envisioned a piece using this instrument to represent the logical problem solving ability of its players, each seeking to make his/her sound as pure as possible. In light of this clear goal I steered clear of making the individual sounds too complicated or to have additional voices present, in my instrument everything presented is directly controlled by the user and his/her actions.

And thus, Dark Matter came into existence...

Code

All of the relevant code for this project can be found here

How to Play

To run Dark Matter open both the Chuck and Processing files and run both (you need to download Chuck, the MiniAudicle and Processing). Ensure that the virtual machine is running if you are having problems running the Chuck file. Once the Processing file is running you should see a screen like this. Note that this doesn't necessarily mean everything is good to go, the GUI could run without the sound component.

To start Dark Matter you have to click one of the two instruments. There are two choices, a clarinet and a flute. The buttons labeled as such naturally control the instrument playing. Dark Matter will not produce sound until one of these instruments is initially selected.

Click a random spot on the grid. A cool pattern like this should appear. Now observe that there is a cool scrollbar-like thing under the grid on the left side. This bar controls the style of the explosion that appears on the screen. Play with the various options, you should get different gradient patterns like this. Notice that the sound changes whenever you change the makeup of the screen. What is happening in the background is whenever you click, the program is immediately recalculating the total "darkness" of the screen and adjusting the frequencies of the 3 sound sources accordingly. They will converge on the same value when the screen is perfectly white.

If you can't wait to see what that sounds like, there's a cool option with the button labeled "white" that will set the entire screen to white. The button labeled "black" naturally changes the entire screen back to black. Sometimes for pieces it's more musically appropriate to start with a white screen, to make this change just set the screen to white before picking your initial instrument. Say we started with a white screen and made some patterns of different styles. Now we decide we want to make the entire screen lighter. We can do so by clicking the "lighter" button. The same sort of thing can be done with making the screen darker.

Overall the instrument is more interesting when the screen is more complicated because squares will cycle through colors, that is, white squares will become darker until they are black and then turn white again, so where you click really affects the sound given the layout of the grid at that time. Using the darker and lighter buttons in these cases is very useful to make clear jumps in harmony and is the best way to synchronize a large group of Dark Matter players.

Black and White

I wrote a piece called "Black and White", which demonstrates the various features of the instrument. A video of me playing "Black and White" can be found here

Acknowledgements

This project represents my own work in accordance with University regulations.

Adrian Kwok

As stated in the individual files, code was borrowed with permission from the Processing programming language website and examples by Rebecca Fiebrink and Dan Trueman. Special thanks to Rebecca for her help. Yay PLOrk!