examples\book\digital-artists\chapter7\Listing7.7.ck
// Listing 7.7 Playing a scale on the STK Bowed string model

// Bowed string demo
Bowed viol => dac;                   // (1) Bowed string physical model

// define a D Major Scale (in MIDI note numbers)
[62, 64, 66, 67, 69, 71, 73, 74] @=> int scale[];

// run through our scale one note at a time
for (0 => int i; i < scale.cap(); i++)
{
    // set frequency according to note number
    Std.mtof(scale[i]) => viol.freq; // (2) Sets pitch with .freq, just like other UGens


    // note on for a while, then note off
    1 => viol.noteOn;     // (3) noteOn starts it bowing automatically
    0.3 :: second => now;

    1 => viol.noteOff;
    0.1 :: second => now;
}

// repeat last note with lots of vibrato
1 => viol.noteOn; 
0.1 => viol.vibratoGain;  // (4) A little extra vibrato on the last note
2.0 :: second => now;

0 => viol.noteOff;
0.2 :: second => now;
home .. language .. program .. examples