Sequentris (Music Sequencer)

Sequentris is a musical sequencer game, inspired by Tetris. There are three sequencers you can generate, melody, bass, and beats. You can generate melodies and bass in any pitch on the piano. For beats, you can choose among 7 instruments (Cabasa, Sekere, Guiro, Tambourine, Coke Can, Franc + Mug, and Sleigh Bells).

Sequentris is programed in Unity with a plug-in Chunity, which connects ChucK with Unity. Both time and sound are governed by ChucK. Visual aspects and game mechanics are governed by Unity.

There are three play windows: the 1st window is the melody, the 2nd window is the bass, and the 3rd window is the beats. You can assign acoustic features to each block by typing the keys when playing. When you clear a line, the line moves to the sequencer window, playing the assigned acoustic features in a sequence. When your block goes over the grid, both the playing window and the sequencer window reset.

I assigned random note and instrument values to each block, and realized that the user has almost no control of the sequencer. I set my goal to break some rules of tetris and add a few rules to cut down the randomness.

Change in block shapes: Except for the square tetromino, the blocks were composed of three, two, or one minos. This enabled users to gain more control, yet leave the room for some randomness.

Elongated grid width: The grid width increased from 12 to 16, in order to create sequencers of standard 4 beats.

Individuality in blocks: The user could assign pitch or instrument to the blocks.

Increased number of windows: The user could build melody, bass, and beat separately.

Acoustic Feature Display: The pitch value and instrument were displayed on the screen.

Advantage in Gameover: When the block reached the top, it allowed users to reset the corresponding window and start over.

[Software General Structure]

ChucK clock is the master timer that initiates every event. Overall game mechanics are designed in Game.cp and individual tetromino mechanics are designed in Tetromino.cp (including the User Inputs).

[Feedback on Unity, Chuck, and Chunity]

Unity has a vast amount of tutorials and error analysis online, which made the coding process easier.

Unity crashed quite frequently. Sometimes restart did not work, so I had to save my files very frequently and create backup projects time to time.

ChucK has a good library in sound synth such as Rhodey and StkInstruments. Since the Shaker Synth had multiple instruments in one, switching instruments in my sequencer was easy.

When having multiple instruments playing simultaneously, beating occurs from time to time.

Implementing Sndbuf brought along errors that I ended up not using them.

Chunity was great in that it allowed high-level audio design that Unity lacked.

Chunity examples given by our TA Jack helped a lot.

Chunity is simple to use. I felt complicated mechanics were hidden under the user’s level.

I once connected Supercollider and Unity using OSC messages to create a simple audio puzzle game, and from my experience, Chunity was much easier to use. Using OSC made me go back and forth Unity and Supercollider, but with Chunity, I only had to worry about Unity.

SetInt() function implemented in my code completely crashed Unity. After switching it to SetFloat(), it worked fine.

Implementing Sndbuf brought along errors that I ended up not using them.

Music Sequencer Project for Music 256A at CCRMA @ Stanford University.