|
|
|
@ -4,6 +4,38 @@ Copyright (c) 2018 Luka Prinčič, All rights reserved.
|
|
|
|
|
This program is free software distributed under
|
|
|
|
|
GNU General Public Licence. See COPYING for more info.
|
|
|
|
|
- - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
|
|
|
|
|
|
|
|
|
This is source code to Antigone/Child music release and
|
|
|
|
|
soundtrack to the stage piece by Matija Ferlin "Staging
|
|
|
|
|
a Play: Antigone" by Luka Prinčič. It replicates 6
|
|
|
|
|
tracks from the album and 6 tracks from the stage show.
|
|
|
|
|
|
|
|
|
|
If you openned this file in SuperCollider IDE, there are
|
|
|
|
|
two steps you have to do:
|
|
|
|
|
|
|
|
|
|
PART I:
|
|
|
|
|
Place the cursos anywhere between top parenthesis
|
|
|
|
|
and the closing one, which is the one above the line
|
|
|
|
|
that sais "Cooking Synths". In fact your cursor might
|
|
|
|
|
already at the begining of this file, which means you can
|
|
|
|
|
press CTRL+RETURN to run this part of code - booting and
|
|
|
|
|
preparing server. The code will flash, there is no sound
|
|
|
|
|
yet.)
|
|
|
|
|
|
|
|
|
|
PART II:
|
|
|
|
|
Scroll down to "Cooking Synths" and place the cursor inside
|
|
|
|
|
the first block (ACT I), and press CTRL+RETURN again. The
|
|
|
|
|
code will flash and slowly the sound should come in. If not,
|
|
|
|
|
check with CTRL+M to see meters and SC output visualy.
|
|
|
|
|
The piece will run out in about 5 minutes. Or you can
|
|
|
|
|
always stop it with CTRL+<PERIOD>. And run the next block.
|
|
|
|
|
|
|
|
|
|
Then play with parameters, break the code, start again.
|
|
|
|
|
Make music!
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
*/
|
|
|
|
|
// Be nice. Say hi!
|
|
|
|
|
postln("\n\n
|
|
|
|
@ -12,15 +44,15 @@ postln("\n\n
|
|
|
|
|
>>> Hello. <<<
|
|
|
|
|
|
|
|
|
|
_ _ _ _____ ___ ___ ___ _ _ ___ _____ _ _ ___ _ ___
|
|
|
|
|
/_\ | \| |_ _|_ _/ __|/ _ \| \| | __| / / __| || |_ _| | | \
|
|
|
|
|
/ _ \| .` | | | | | (_ | (_) | .` | _| / / (__| __ || || |__| |) |
|
|
|
|
|
/_/ \_\_|\_| |_| |___\___|\___/|_|\_|___/_/ \___|_||_|___|____|___/
|
|
|
|
|
/_\\ | \\| |_ _|_ _/ __|/ _ \\| \\| | __| / / __| || |_ _| | | \
|
|
|
|
|
/ _ \\| .` | | | | | (_ | (_) | .` | _| / / (__| __ || || |__| |) |
|
|
|
|
|
/_/ \\_\\_|\\_| |_| |___\\___|\\___/|_|\\_|___/_/ \\___|_||_|___|____|___/
|
|
|
|
|
|
|
|
|
|
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
|
|
|
|
|
|
|
|
|
");
|
|
|
|
|
|
|
|
|
|
Server.default.waitForBoot {
|
|
|
|
|
Server.default.waitForBoot { // if the SC server is not yet booted, boot it
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// home folder of current script
|
|
|
|
@ -41,7 +73,7 @@ Server.default.waitForBoot {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//////////////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
// granulator "Granny" definition - basic recipe for the cake
|
|
|
|
|
// granulator "Granny" synth definition - basic recipe for the cake
|
|
|
|
|
|
|
|
|
|
SynthDef(\Granny, {
|
|
|
|
|
|
|
|
|
@ -124,15 +156,17 @@ Server.default.waitForBoot {
|
|
|
|
|
|
|
|
|
|
postln("~~~ adding SynthDef: Granny ...");
|
|
|
|
|
|
|
|
|
|
}).add;
|
|
|
|
|
}).add; // add to server
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//////////////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
// cooking Synths
|
|
|
|
|
// run each one separately one after the other.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -140,11 +174,14 @@ Server.default.waitForBoot {
|
|
|
|
|
(
|
|
|
|
|
~act_I = Synth(\Granny,
|
|
|
|
|
[
|
|
|
|
|
// which sample should we use?
|
|
|
|
|
\bufnum, ~granBfr.at(21), // "09 - PART II - Chorus.7.wav"
|
|
|
|
|
|
|
|
|
|
// fade-in, fade-out
|
|
|
|
|
\gainEnv, Env([0, 1, 1, 0], [1,320,40], \lin),
|
|
|
|
|
\lpfEnv, Env([0.001, 1, 1, 0.001], [20,301,30], \exp),
|
|
|
|
|
|
|
|
|
|
// LFOSpeed is the frequency of LF oscilator, then variation and min/max points
|
|
|
|
|
\lpfLFOSpeed, 0.023, \lpfLFOSpeedVar, 0.041, \lpfLFOMin, 1000, \lpfLFOMax, 8000,
|
|
|
|
|
\posLFOSpeed, 0.020, \posLFOSpeedVar, 0.089, \posLFOMin, 0.56, \posLFOMax, 0.92
|
|
|
|
|
]
|
|
|
|
@ -183,7 +220,7 @@ Server.default.waitForBoot {
|
|
|
|
|
);
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
( // ACT III (and ACT VII) ------------------------------------------------------------
|
|
|
|
|
( // ACT III (and ACT VII!) ------------------------------------------------------------
|
|
|
|
|
~act_III = Synth(\Granny,
|
|
|
|
|
[
|
|
|
|
|
\bufnum, ~granBfr.at(25), // "11 - Chorus Of The Persecutors And Persecuted.8.wav"
|
|
|
|
@ -251,13 +288,16 @@ Server.default.waitForBoot {
|
|
|
|
|
/////////////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
(
|
|
|
|
|
// --------------------------------------------------------------------------
|
|
|
|
|
// Track 02 from the album - "Chorus 1 (SC)"
|
|
|
|
|
|
|
|
|
|
( // --------------------------------------------------------------------------
|
|
|
|
|
~number38 = Synth(\Granny,
|
|
|
|
|
~chorus1 = Synth(\Granny,
|
|
|
|
|
[
|
|
|
|
|
\bufnum, ~granBfr.at(38), // "21 - A Spiritual Of Anger (Chorus & Bass Solo).3.wav"
|
|
|
|
|
\lpfLFOSpeed, 0.041, \lpfLFOMin, 700, \lpfLFOMax, 6500,
|
|
|
|
|
\posLFOSpeed, 0.037, \posLFOMin, 0.15, \posLFOMax, 0.9,
|
|
|
|
|
\bufnum, ~granBfr.at(3), // "01 - PART I - Chorus.12.wav"
|
|
|
|
|
\lpfLFOSpeed, 0.021, \lpfLFOMin, 700, \lpfLFOMax, 6500,
|
|
|
|
|
\posLFOSpeed, 0.017, \posLFOMin, 0.09, \posLFOMax, 0.91,
|
|
|
|
|
\gain, 0.15,
|
|
|
|
|
|
|
|
|
|
// fade-in, fade-out
|
|
|
|
|
\gainEnv, Env([0, 1, 1, 0], [1,320,40], \lin),
|
|
|
|
@ -270,10 +310,14 @@ Server.default.waitForBoot {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
( // --------------------------------------------------------------------------
|
|
|
|
|
~number0 = Synth(\Granny,
|
|
|
|
|
|
|
|
|
|
(
|
|
|
|
|
// --------------------------------------------------------------------------
|
|
|
|
|
// Track 08 from the album - "Chorus 2 (SC)"
|
|
|
|
|
|
|
|
|
|
~number4 = Synth(\Granny,
|
|
|
|
|
[
|
|
|
|
|
\bufnum, ~granBfr.at(0), // "01 - PART I - Chorus.10.wav"
|
|
|
|
|
\bufnum, ~granBfr.at(4), // "01 - PART I - Chorus.3.wav"
|
|
|
|
|
\lpfLFOSpeed, 0.021, \lpfLFOMin, 700, \lpfLFOMax, 6500,
|
|
|
|
|
\posLFOSpeed, 0.017, \posLFOMin, 0.09, \posLFOMax, 0.91,
|
|
|
|
|
\gain, 0.15,
|
|
|
|
@ -288,17 +332,22 @@ Server.default.waitForBoot {
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
( // --------------------------------------------------------------------------
|
|
|
|
|
~number1 = Synth(\Granny,
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
(
|
|
|
|
|
// --------------------------------------------------------------------------
|
|
|
|
|
// Track 10 from the album - "The Oppressed 2 (SC)"
|
|
|
|
|
|
|
|
|
|
~number12 = Synth(\Granny,
|
|
|
|
|
[
|
|
|
|
|
\bufnum, ~granBfr.at(1), // "01 - PART I - Chorus.12.wav"
|
|
|
|
|
\lpfLFOSpeed, 0.021, \lpfLFOMin, 700, \lpfLFOMax, 6500,
|
|
|
|
|
\posLFOSpeed, 0.017, \posLFOMin, 0.09, \posLFOMax, 0.91,
|
|
|
|
|
\gain, 0.15,
|
|
|
|
|
\bufnum, ~granBfr.at(12), // "05 - Chorus Of The Oppressed.11.wav"
|
|
|
|
|
\lpfLFOSpeed, 0.015, \lpfLFOMin, 700, \lpfLFOMax, 5000,
|
|
|
|
|
\posLFOSpeed, 0.01, \posLFOMin, 0.05, \posLFOMax, 0.95,
|
|
|
|
|
\gain, 0.15, \pitch, 0.80,
|
|
|
|
|
|
|
|
|
|
// fade-in, fade-out
|
|
|
|
|
\gainEnv, Env([0, 1, 1, 0], [1,320,40], \lin),
|
|
|
|
|
\lpfEnv, Env([0.001, 1, 1, 0.001], [19,301,30], \exp),
|
|
|
|
|
\lpfEnv, Env([0.001, 1, 1, 0.001], [15,301,30], \exp),
|
|
|
|
|
|
|
|
|
|
\lpfLFOSpeedVar, 0.054, \posLFOSpeedVar, 0.033,
|
|
|
|
|
]
|
|
|
|
@ -313,3 +362,5 @@ Server.default.waitForBoot {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|