220A Final Project Starry Sky

 

 

 

The Music Starry Sky

 

Starry Sky is based on “ChucK”, which is originated byGe Wang and Perry Cook.

“Chuck” home page: http://chuck.stanford.edu

 

The idea of “Starry Sky” comes from the beautiful night view of CCRMA and Fountain at Bellagio. While Digital music is a part of the nature, it is supposed to reflect the beauty of nature while generating sound effects that is not very often to seen in the normal world. At the fountain in Bellagio in Vegas, this combination was perfect expressed by crystal water fall and touching music piece. The inspiration of “Starry Sky” comes right from this point.

 

Except several drum beats, all sound in Starry Sky was generated using ChucK code:

 

Background(fast)

Background(Slow)

Background(withstop)

HighSound(long)

HighSound

Noisesweep

Noisesweep2

Solo

Sweep

Original

 

The Code is sampled in Audacity to get raw sound source below:

Raw1, Raw2, Raw3, Raw4, Raw5, Raw6, Raw7, Raw8, Raw9, Raw10

 

Then, using Cubase SX3 as mixing platform, raw samples are mixed into final piece.

 

Within ChucK code:

 

In Background group,

Original sound is generated by SinOsc object. The original signal is passed to Pan2 object and divided into two channel, which are left and right of dac. Before dac, signal of left channel passes JCRev reverb unit and right channel passes NRev reverb unit, of which the mix rate differs.

A ray of numbers consist to an note vector which is: [ 0, 5, 10, 7, 13, 19 ]. Using midi to frequency function, these numbers are modulated and selected within range of 4 oct. Meanwhile, a low frequency sinusoid control signal is modulating the overall panning of left and right channel. Also after sounding for a certain length, the volume of SinOsc is suddenly turned down to general clip sound, which is reverberating within left and right channel.

 

In HighSound group:

Rhodey generates original signal which is passed into two separated left and right channel. Left channel passes JCRev and Echo object, while right channel passes two Echo objects. Feedback is given by putting a Gain object between Rhodey and Pan2, and returning the feedback to itself.

Within main function, three numbers are used to record and decide the parameter of increasing mix of effect units based on previous status. Random number is used to decide the original state of beginning of the loop. But the random number is also selected by if function to choose different directory of the parameter. The frequency function uses the same idea, only the original state is given by a vector of numbers. Therefore, the result of the function is not repetitive ,and could self-generate new notes and frequency from the original state. With different effect mixing rate, the effect units modulates the signal by different portion which gives sound with fascinating tone.

 

In Sweep Group:

White noise is filtered by a BiQuad filter with parameter of: 0.97 => biq.prad;.05 => biq.gain;1 => biq.eqzs. In while loop, the frequency point is changed by low frequency sinusoid sweep.

 

 

At the end of mixing, I recorded some of my own sound into “adc”, and pass it through NRev and JCRev using: adc => Gain g => Pan2 pan, and then pan.left => NRev and pan.right=> JCRev to get different reverb effect from different reverb units. During this process, the mix level is very high. Then the sampled sound is mixed with the other parts. Pitch shifting is processed within Audacity.