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 >>>;
}
}