Tutorial: Using Randomness to Generate Streams

A Static Song

When you listen to music on YouTube or SoundCloud or iTunes, you are experiencing static music. You press play, the music starts and progresses for the length of the song's duration and then it stops. If you press play again, the music will sound exactly the same. It's static. This is the status quo in music.

YouTube Player

A Dynamic Stream

Celody changes the status quo by adding randomness to musical loops. Loops were discussed in a previous tutorial (SEE LOOPS). This tutorial focuses on the different elements of a stream that can be randomized. You can think of someone rolling a pair of dice every few seconds to decide on the next part of the stream. The key takeaway is that the stream is dynamic and changes with each random shift.

Loop

Random Notes

Think of a piano keyboard. The most obvious thing we can do is choose the next music note using randomness. We can randomly play one of the "A" notes on the piano. We could even randomly substitute a different note (e.g. an "E") for the "A".

Piano Keyboard

Random Phrases

We don't have to only use notes, however. We can think instead about phrases of notes. If you've heard a chorus or a verse, that's just a collection of notes grouped together. So instead of randomly choosing between 2 notes on the piano, we can also randomly choose between 2 phrases. We can randomly choose to play Verse 1 or Verse 2.

Phrases

Random Volume

It's easy to forget that the notes and phrases discussed above can each be played at a whole range of volumes. You can tap the piano keyboard lightly for soft sounds or strike it hard for louder ones. This is something that we can randomize as well. We can even randomly mute the note or phrase to make the stream less dense.

Loud Soft

Random Pan Position

We don't need to stop with volume. We can also randomize the spatial position of the sound. We can randomly place the note or phrase to the left or the right "pan" position. We can even ping-pong the sounds back and forth from right to left.

Right Left

Random Effects

How about randomly adding effects to the notes and phrases. This is also possible. Celody can generate a low-pass filter effect and a flanger effect in real-time. So the notes and phrases can randomly change as well. The sounds change dynamically.

Effects

Wrapping Up

All of these random features are like small dice rolls that get calculated in real-time. Once the dice is revealed, the stream dynamically generates the next part. Importantly, all the different random elements are acting at the same time, so the stream is constantly changing. Different volumes, pan positions, effects all being generated simultaneously. If you play the stream again, the dice rolls will be different and the stream will sound different.