Perdut matí:
Perdut vespre:
Copio a continuació el codi en SuperCollider que he fet servir per generar aquestes dues peces musicals, titulades Perdut matí i Perdut vespre. En els dos casos es tracta d’un acompanyament fixat, repetitiu, sobre el qual evoluciona una melodia aleatòria.
És important dir que els dos arxius que pots reproduir a l’inici d’aquesta entrada són dos enregistraments particulars, d’uns 5 minuts cadascun aproximadament, d’aquestes peces, però que no són en cap cas les peces. Serien, per dir-ho així, interpretacions concretes de les peces (interpretacions fetes per l’ordinador, en aquest cas). Una interpretació de Perdut matí i de Perdut vespre consistiria en una execució concreta del codi que copio a sota, en unes circumstàncies determinades. Perdut matí consta de les veus anomenades \baix
, \harmonia
i \melodia1
; Perdut vespre consta de les veus \baix
i \melodia2
. En si les dues peces tenen una duració indefinida i, en rigor, excepte accidents (és clar), no es repeteixen mai.
La Lúa Coderch em deia l’altre dia que aquestes peces són caixetes de música. Penso que té raó. Però són caixetes de música no mecàniques, caixetes computacionals, aleatòries i infinites.
(
SynthDef(\ding, {
arg freq;
var env = EnvGen.kr(Env.perc(releaseTime: 3, level: {Rand(0.05, 0.2)}), doneAction: 2);
var sig = SinOsc.ar(freq*{Rand(0.99, 1.01)}!2)*env;
Out.ar(0, sig);
}).add
)
(
x = Pdef(\baix,
Pbind(
\instrument, \ding,
\dur, Pseq([2, 3], inf),
\degree, Pseq([-3, -2, 0], inf),
\scale, Scale.minor
)
).play(TempoClock.default)
)
x.clear
(
y = Pdef(\harmonia,
Pbind(
\instrument, \ding,
\dur, Pseq([0.5, 0.25, 0.25, 0.5, 0.5, 0.25, 0.25, 0.25, 0.25], inf),
\degree, Pseq([0, 2, 4, 1, 3, 4, 2, 0, 1, 3], inf),
\scale, Scale.minor
)
).play(TempoClock.default)
)
y.clear
(
z = Pdef(\melodia1,
Pbind(
\instrument, \ding,
\dur, Pseq([Prand([0.5, 0.25])], inf),
\degree, Pseq([Prand([2, 3, 4, 6, 7, 8, 9, 10, 11, 12])], inf),
\scale, Scale.minor
)
).play(TempoClock.default)
)
z.clear
(
t = Pdef(\melodia2,
Pbind(
\instrument, \ding,
\dur, Pseq([Prand([0.5, 1, 1.5, 2])], inf),
\degree, Pseq([Prand([1, 2, 3, 4, 5, 6, 7, 8])], inf),
\scale, Scale.minor
)
).play(TempoClock.default)
)
t.clear