Felipe GrisiCharlotte Recording Connection

Computer Music Posted on 2014-06-11 by Felipe Grisi

I've just finished the readings for chapter 6. It talks about microphone placement, which is something really important if you want to have a decent final result. It all starts with a good choice of mics and a good placement.

I already posted here which microphones I use, so of course I'm not going to post it again. I'll post some pictures as soon as I use them in the studio.

I would like to talk about computer music today! This is something that I'm really interested in. I've been studying a lot of ChucK these last days. ChucK is a musical programming language. It's a language where you can do some real time synthesis. I'm already proficient with SuperColliderm which is a little more "traditional" than ChucK. But I'm really enjoying ChucK, although I think it has a long way to grow.

As a language, ChucK uses a syntax that is similar to C++ (or maybe C). So, you're gonna find all the loops, conditionals and etc. I just think it's fascinating to program music!

Anyway, I would like to post here the code for something very simple that I just did. It's just a sequence of arpeggios. Of course, I will post the audio as well. The chords being played are: Cm, Em and Abm. Even if you don't understand coding, it's interesting how the score of a piece can be a piece of code.

Enjoy it!

https://soundcloud.com/felipegrisi/chordz-1

// Resonant filter fed by and Impulse Ugen

Impulse imp => ResonZ rez => Gain input => dac;

100 => rez.Q;

100 => rez.gain;

1.0 => input.gain;

// Array of delays

Delay del[3];

 

// Setting delay pans

input => del[0] => dac.left;

input => del[1] => dac;

input => del[2] => dac.right;

 

// Looping through the delay lines and setting times

for (0 => int i; i < 3; i++)

{

    del[i] => del[i];

    0.6 => del[i].gain;

    (0.8 + i*0.3)::second => del[i].max => del[i].delay;

}

 

// Creating chords

[60,63,67,72] @=> int Cm[];

[59,64,67,71] @=> int Em[];

[59,63,68,71] @=> int Abm[];

 

Cm.cap() - 1 => int numNotes;

 

// Infinite loop to play through the chords

while(true)

{

    for(0 => int i; i < 32; i++)

    {

        Std.mtof(Cm[Math.random2(0, numNotes)]) => rez.freq;

        1.0 => imp.next;

        0.4::second => now;

        <<< i >>>;

    }

 

    for(0 => int i; i < 32; i++)

    {

        Std.mtof(Em[Math.random2(0, numNotes)]) => rez.freq;

        1.0 => imp.next;

        0.4::second => now;

        <<< i >>>;

    }

 

    for(0 => int i; i < 32; i++)

    {

        Std.mtof(Abm[Math.random2(0, numNotes)]) => rez.freq;

        1.0 => imp.next;

        0.4::second => now;

        <<< i >>>;

    }

}

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

« Return to Felipe Grisi's Blog

More Blog Entries from Felipe Grisi