Gli Artisti Acari Insorti dell'Immaginario Liberato, continuano a lavorare per l’Attuazione di un'Utopia Concreta, quella di Rovesciare un Mondo Rovesciato. Colpire al Cuore la Società dello Spettacolo, significa Liberare il Suono, la Parola e l'Immagine per trasformarli nella Lingua della Creatività Libera e della Pura Immaginazione;

(
{
    Mix.fill(37,
        {
        var freq;
        freq = exprand(100, 3000);
        Pan2.ar(
            Saw.ar(
                        freq * LFNoise1.kr(1/6, 0.4, 1),
                        mul: EnvGen.kr(Env.perc(0, (freq**(-0.7))*100), PinkNoise.kr(1/5))
                    ), 0
                )
        })*0.3
}.play

)






"Non bisogna credere che sia semplicemente un Uomo che si sia voluto divertire ad abitare Sotto la Terra. Fa delle Cose che nessun altro Uomo sarebbe capace di fare; sa delle Cose che i Non-Morti ignorano."

"Egli dissemina Botole e Passaggi Segreti in tutto il Teatro Spettacolare, rendendolo il suo Parco dei Divertimenti. Si costruisce anche una Casa nei Sotterranei dello Spettacolo dove può vivere lontano dalla Crudeltà e dalla Mediocrità dell'Uomo. Nel suo Isolamento, trascorre molti anni, mentre Compone la sua intera Opera;"

(
~root = -13;
~reverbSend = Bus.audio(s, 2);
)
(
s.waitForBoot(
    {

        SynthDef(\dissonant, {
            |
            freq=713,
            dur=5, pos=0,
            amp=0.75,
            out=0
            |
            var sig, env, saw;
            env = EnvGen.ar(Env.perc(0.1, 3, 1, -4), doneAction:2);
            saw=Saw.ar(Select.kr(Stepper.kr(Impulse.kr(7,0.1),0,0,7,1),[72,63,67,72,55,62,63,60].midicps),0.1);
            sig = saw;
            sig = LPF.ar(sig, freq*13 );
            sig = (sig * env * amp);
            sig = Mix.new([sig*0.7, Dust.ar(freq)*0.002*env, LFSaw.ar(freq, mul: 0.001)]);
            Out.ar(out, Pan2.ar(sig, pos));
        }).add;

        s.sync;

        SynthDef(\reverb, {
            arg in=0, out=0, mix=1, room=1.8;
            var sig;
            sig = In.ar(in, 2);
            sig = FreeVerb.ar(sig, mix, room);
            Out.ar(out, sig);
        }).add;

        s.sync;

        ~reverb = Synth(\rev, [\in, ~reverbSend]);



w = Pbind(\instrument,\dissonant,
    \scale, #[0, 2, 3, 5, 7, 8, 10],
    \root,  Pfunc({~root}),
    \degree, Pseries(0, Prand(#[1, 2, 3], inf), inf).fold(-11, 11),
    \dur, 0.25
).asEventStreamPlayer;

w.play;


        wait(7);
        r = Routine({
            "starting".postln;
            loop({
                ~root = [2, 7, 1, 3].choose;
                wait( 10.rrand(17) );
            });
        });
        r.play;
});
)





Odio la televisione, mi fa venire il mal di testa. Qualcuno ha detto che a causa delle TV e dei telefoni nell'aria viene sprigionata una tale montagna di onde magnetiche che ci fa perdere cellule cerebrali dieci volte di più di quello che dovremmo. Che tutte le molecole che abbiamo in testa siano instabili e che le aziende lo sanno benissimo, ma non gliene frega niente. Dicono che è tutta una cospirazione. La verità invece è che nei nostri televisori vivono presenze demoniache, fantasmi, poltergeist!

La classe Mix ha un metodo chiamato fill, che prende due argomenti. Il primo è un numero, che determina quante volte il secondo argomento, una Funzione, verrà valutata;

(
{
var fund = 0;
var harmonics = 37;
fund = 37 ;


Mix.fill(harmonics,
{ arg count;

// // Pan2.ar(in, pos, level)

CombC.ar(
PinkNoise.ar(0.1)*FSinOsc.ar(
fund * (count + 1), // calculates each harmonic
mul: LFTri.kr(rrand(1/3, 1/6), add: 1.7 )),
1.0.rand2)
}
) / (2*harmonics)!2
}.play;
)





"Questo mondo è solo un sogno creato dall'esercito delle farfalle? E del quale anche loro fanno parte? Oppure le farfalle sono vere, e questo è stato soltanto un incubo da cui non riesco a svegliarmi?"


(
{
var trigger, fund;
trigger = Dust.kr(3/7);
fund = rrand(100, 137);
Mix.ar(
Array.fill(17,
{arg counter;
var partial;
partial = counter + 1;
Pan2.ar(
Saw.ar(fund*partial) *
EnvGen.kr(Env.adsr(0, 0, 1.0, 5.0),
trigger, 1/partial
) * max(0, LFNoise1.kr(rrand(37.0, 73.0))), 1.0.rand2)
})
)*0.5 //overall volume
}.play
)






È giunto il momento per gli Hacker di unirsi ai lavoratori e agli agricoltori, a tutti i produttori del mondo, per liberare risorse produttive e inventive dal mito della scarsità. È giunto il momento per nuove forme di associazione che possano condurre il Mondo lontano dalla sua distruzione mediante lo sfruttamento mercificato. I più grandi Hack del nostro tempo potrebbero rivelarsi in forme di organizzazione della libera espressione collettiva, così che da ora in poi l'astrazione sia al servizio delle persone, piuttosto che la popolazione al servizio della classe dominante. Qualsiasi sia il modo in cui scegliamo di rappresentarci, come ricercatori o autori, artisti o biologi, chimici o musicisti, filosofi o programmatori, ognuna di queste soggettività è un frammento di una classe che diviene, a poco a poco, consapevole di sé in quanto tale.

Raggiunto il torrente, però, rimasi quasi impietrito per lo spettacolo che si presentò ai miei occhi: nel prato dall'altra parte del rigagnolo c'era un oggetto che assomigliava ad un grande piatto rovesciato. Rimasi per un attimo attonito a guardare, quando mi sentii sollevare da robuste braccia.

(
    Routine.run {
        var s, synth, release;
        s = Server.default;

        SynthDef(\drone, {
            |out = 0, freq = 440, amp = 0.1, gate = 1, attack = 0.3, release = 0.3|
            var snd, ffreq, res;
            snd = { Gendy1.ar(1, 1, 1, 1, freq * 0.99, freq * 1.01) }!5;
            snd = Splay.ar(snd);
            ffreq = LFNoise2.kr(1).exprange(100, 3000);
            res = LFNoise2.kr(3).range(1.0, 0.3);
            snd = RLPF.ar(snd, ffreq, res);
  snd = Mix.fill(37, {snd * amp * Env.asr(attack, 1, release).ar(2, gate)});
            Out.ar(out, snd);
        }).add;

        s.sync;

        s.record(path: "~/out.wav".standardizePath);

        release = 0.3;
        synth = Synth(\drone, [freq: 30.midicps, release: release]);
        30.wait;
        synth.set(\gate, 0);

        // Wait for the Synth to release before stopping the recording.
        release.wait;
        s.stopRecording;
    };
 )







l'Esplosione nella Cattedrale dello Spettacolo si propagherà in lentissime Onde d'Urto; lo sgretolamento dell'Intonaco Spettacolare si compirà nello Sbriciolamento della Finzione e dell'Irrealtà;

saw=AY.ar(Select.kr(Stepper.kr(Impulse.kr(7,0.1),0,0,7,1),[72,63,67,72,55,62,63,60].midicps),0.1);
sig = saw;
sig = LPF.ar(sig, freq*13 );
sig = (sig * env * amp); 
sig = Mix.new([sig*0.7, Dust.ar(freq)*0.07*env, Pulse.ar(freq, mul: 0.01)]);  




"Sabotaggio Cibernetico" o "Interferenza Cibernetica", è una pratica contemporanea che mira alla contestazione in Rete dell'Invasività della Propaganda Mainstream, nella Costruzione dell'Immaginario della Mente Umana. Il Cyber Jammer è un Hacktivista sospeso tra l'Illusione del Mondo Virtuale e l'Inganno del Mondo Reale. Corre lungo i Sentieri Eterei della Rete, naviga nell'Oceano dell'Informazione, è un Impulso di Adrenalina nei Cavi che cablano la Realtà. Rielaborazione di un SCtweet di Juan A. Romero ('rukano')

play{b=PinkNoise;z=SinOsc.ar(b.kr(1,2e4,2e4),b.kr(13,11,17),1,1.007,0.7)!2;Latch.ar(z,SinOsc.ar(b.kr(0.2,5e3,4e3)))*b.kr(5,0.4,0.5)}




Non dobbiamo chiudere occhio tutta la notte. O ci sveglieremo trasformati in qualcosa di inumano. Molte persone perdono a poco a poco la loro umanità senza accorgersene.

da "L’Invasione degli UltraCorpi"

(
{
z = RLPF.ar(AY.ar(Saw.ar([0.017, 0.019]).range(3, 10)) * AY.ar(Saw.ar(10).range(1, 100), AY.ar(0.017).range(300, 1000)), Line.ar(60, 10000, 30*5));
z = GVerb.ar(z + CombL.ar(z, 10, 0.2, 10));
EnvGen.ar(Env.linen(0.01, 60*5, 20), doneAction:2) * z * 0.03!2
}.play;
{RLPF.ar(AY.ar(Saw.ar([0.017, 0.019]).range(3, 10)),60)*0.2;}.play;
)

da Ereticamente


Ispirati al comportamento degli insetti, che non elaborano una mappa dettagliata dell'ambiente in cui si muovono ma si limitano a ricordare punti di riferimento importanti come le fonti di cibo o il nido, i micro droni si muovevano esplorando autonomamente l'ambiente sconosciuto; l'idea principale alla base del nuovo metodo di navigazione era di ridurre le aspettative all'estremo: si richiedeva ai piccoli robot che fossero capaci solamente di tornare alla stazione base. Lo sciame di robot dapprima si sparpagliava nell'ambiente lasciando a ciascun componente la scelta di una direzione preferita, differente da quella degli altri membri dello sciame. Dopo l'esplorazione gli insetti robot tornavano verso il wireless beacon situato alla stazione base; ma qualcosa andò storto e lo sciame dei micro droni impazzì;

(
fork {   
    Ndef(\nbz).play;
    loop {
        var seed = thisThread.randSeed = 171300000.rand.debug('seed');
        Ndef(\nbz, {
            var freq = [713, 1337];
            Splay.ar(
                {
                    var bands = 2.rrand(10);
                    var signal = { [BPF,RLPF,RHPF].choose.ar(
                        HenonN.ar(freq[0].rrand(freq[1]), LFPulse.kr(0.1.exprand(10))),
                        Array.rand(bands, freq[0], freq[1]),
                        Array.rand(bands, 0.2, 1.8)
                    ).mean } ! 2;
                    Rotate2.ar(signal[0], signal[1], SinOsc.kr(0.1.exprand(10)));
                } ! 3.rrand(7).debug('source'), // creazione dell'array da passare a Splay
                                0.5.rrand(1) // spread dell'Splay
            );
        }).fadeTime_(1.rrand(1.3)); // fadeTime randomico
        10.0.rrand(13).debug('wait(bts)').wait;
    }
}
)



























dalla rielaborazione di alcuni sctweets di Juan A. Romero ('rukano') e di Julian Rohruber;

il suono creato con SuperCollider mi ha fatto pensare a una tecnologia malfunzionante abbandonata nel deserto che continua a ripetere loop, errori e a lamentarsi inascoltata; proseguendo indomiti e fieri sull’autostrada della follia tecnoindustriale finiremo con il trasformare il nostro pianeta in un arido deserto popolato da tecnologie abbandonate che imperterrite gracchiano e emettono buzz senza senso fino all'inevitabile esaurimento energetico; il suono è stato creato utilizzando l'Ugen Atari2600 di Fredrik Olofsson

La sepoltura dei videogiochi Atari (in inglese Atari Video Game Burial) fu un importante avvenimento della storia dei videogiochi, che vide l'azienda statunitense Atari sotterrare migliaia di cartucce di videogiochi della propria console di punta, l'Atari 2600, in una discarica desertica di Alamogordo (New Mexico) nel settembre del 1983.

Da sempre considerata una leggenda metropolitana, nell'aprile del 2014, ad oltre 30 anni di distanza dall'accaduto, scavi nel deserto di Alamogordo (New Mexico) portarono alla luce il materiale in questione, confermando la veridicità dell'evento;

(
play{
    t=Saw.kr(Drand(([7,1,3]/13),inf));
    Atari2600.ar(Demand.kr(t,1,Drand((11..17).midicps,inf))*[1,1.7]*SinOsc.kr(0.7).range(1,3)).dup*0.2}
)

{SinOsc.ar(XLine.kr(0.001,1,137).range(137,{exprand(317,1337)}!137)).mean.dup}.play;







Di fatto, in questo momento sei in stato di incoscienza. Questo è per la Mantide un mezzo di comunicazione. Ci ha incorporati tutti nel suo... be' "sensorio" è una parola troppo restrittiva. Possiede limiti e capacità che non riesco a immaginarmi. Sotto un certo punto di vista, questo luogo è una trasformazione Fourier combinata delle nostre menti con quella della Mantide. È più facile unire intelligenze tanto differenti in uno spazio-Fourier, dove le onde vengono ridotte a impulsi e l'unità localizzata (che in questo caso sei tu) viene rappresentata come un pacchetto in espansione di tali impulsi nello spazio-tempo piatto della Mantide.

Il suo sensorio venne invaso da sensazioni contrastanti. Quello era un luogo splendido, un gioiello posto in mezzo al nulla, come volesse affermare la sua presenza in contrasto a tutto quel vuoto buio e ottundente. Ma tutto ciò provocò in lui uno scuotimento improvviso. I suoi Aspetti emisero grida soffocate di gioia, di orgoglio e di intenso e desolato dolore. Anelavano a uscire dai loro reces-
si. Voci ribollenti invasero la sua mente.

(
SynthDef("Sensorium",
{ arg busOut = 3, sweep = 3, rate = 0.3, offset = 73, range = 17;
var cont1, cont2, out;
cont1 = Latch.ar(SinOsc.kr([rrand(3.0, 7.0), rrand(3.0, 7.0)], 0, sweep, offset), Dust.kr(7));
cont2 = Blip.kr(rate, 0, range, cont1).midicps;
out = AY.ar(cont2, mul: 0.1);
Out.ar(busOut, out);
}).send(s);

SynthDef("Echo",
{ arg busIn = 3, delay = 0.3;
var out;
out = CombN.ar(In.ar(busIn, 2), delay, delay, 4);
Out.ar(0, out);
}).send(s)
)

Synth("Echo");
Synth("Sensorium");
Synth("Sensorium", [\rate, 1/7, \offset, 60, \range, 32]);




Il termine Puck deriva dall'inglese antico Púca che indicava, appunto uno spirito dei boschi, dall'aspetto mutevole ed ingannatore, che attirava le persone di notte nella foresta con luci e suoni incantatori;

(
SynthDef(\puck, {|freq = 440, dur = 1|
var klang,note;
dur = dur * 3;
note = freq.cpsmidi;
note = note + (LFNoise2.ar(20).range(-1,1) * (1/8));
note = DelayN.ar(note, 0.148);
klang = AY.ar((note * [1,1.002]).midicps) * 0.3;
klang = klang * EnvGen.ar(Env([0,0.3,0],[0.07,0.9]),doneAction:2) ;
Out.ar(0, klang);
}).store;
)

(
Pbind(
    \degree, Pxrand([0, 1, 2, 4, 6, 3, 5, 7, 8], inf),
    \dur, Prand([0.2, 0.4, 0.8], inf), \amp, 0.05,
    \octave, 5, \instrument, \puck
).play;
)

(
Pbind(
    \degree, Pxrand([0, 1, 2, 4, 6, 3, 5, 7, 8], inf),
    \dur, Prand([0.2, 0.4, 0.8], inf), \amp, 0.05,
    \octave, 3, \instrument, \puck
).play;
)

Radio Bursts ad alta energia, generati da una vecchia macchinetta del caffè di origine araba, si manifestano come rumore e segnali audio, e scatenano un'alterazione magnetica dagli effetti imprevedibili;



(
{
var trigger, fund, flashInst;
flashInst = Array.fill(7,
{
trigger = Dust.kr(2)*PinkNoise.ar(1);
fund = rrand(100, 137);
Pan2.ar(
Mix.ar(
Array.fill(7,
{arg counter;
var partial;
partial = counter + 3;
//HenonC.ar(fund*partial).atan *
DPW3Tri.ar(fund*partial).atan *
EnvGen.kr(Env.adsr(0.01, 0, 0.1, 7.0),
trigger, 1/partial) *AY.ar(713)* max(0, LFNoise1.kr(rrand(37.0, 73.0)))
})
)*0.2,
1.0.rand2)
});
Mix.ar(flashInst)*0.6
}.play
)






"Era molto tozzo e panciuto, la sua testa era più simile a un rospo mostruoso di una divinità, e tutto il suo corpo era coperto con un’ imitazione di pelliccia, dandogli in qualche modo una vaga somiglianza sia a un pipistrello che a un bradipo. Le sue palpebre assonnate erano mezzo abbassate sugli occhi globulari; e la punta di una lingua strana spiccava dalla sua grassa bocca."

s.quit;
s.options.memSize = 65536;  // e.g., could be different for you
s.boot;

(
SynthDef(\thecroaking, {|out, sig, gate=1, freq=440|
 // doneAction: 2 rilascia la synth quando EvnGen ha finito
    sig = (AY.ar(freq)*0.7+AY.ar(freq/3+Rand(1,7))*0.7)
*EnvGen.kr(Env.asr(0.1, 0.3, 0.7), gate, doneAction:2);
    sig = sig*Blip.ar(freq/2)*1.3;
    sig = RLPF.ar(sig,SinOsc.kr(0.3, 0, 200, 500), 0.1);
    sig = FreeVerb.ar(sig, 0.5, 0.5, 0.5);
    Out.ar(out, sig);

}).add;
)

(
Pbind(
    \instrument, \thecroaking,
    \freq, Pseq([113,73,Prand([137, 173, 713],1)], inf),
    \legato, Pseq([1.7, 0.3], inf),
    \dur, Prand([0.2, 0.4, 0.8], inf),
    \out, Pseq([1, 0], inf)
).play;
)





"Qui svolazzava ritmicamente un'orda addomesticata di ibridi esseri alati [...] non si trattava esattamente di corvi, né di talpe, né di poiane, né di formiche, e nemmeno di esseri umani decomposti, ma erano un qualcosa che non posso e non devo ricordare." H. P. Lovecraft, Il Festival

[esempio trovato su SuperCollider Code e rielaborato]

(
SynthDef("pulse",{ arg freq,delayTime,amp = 1.0,attack = 0.01;
        var out,out2,env;
        env = EnvGen.kr(Env.perc(attack, 1, 5, 10),doneAction: 2);
        z = SinOsc.ar(freq,0,0.7);
        a = Pan2.ar(ToggleFF.ar(TDelay.ar(z,delayTime)) * SinOsc.ar(freq),
                 SinOsc.kr(3,0), 0.6);
        out = Pan2.ar(z, SinOsc.kr(5,1.0pi),0.7 ) + a;
        out = out * env;
        out = out.clip2(1);

        Out.ar(0,FreeVerb.ar(out,0.7,1.0,0.4, amp));
}).send(s);
)
(


SynthDef("droneee", { arg freq = 440, amp = 1.0, outbus = 0, phase = 0;
        var out, env;
        env = EnvGen.kr(Env.sine(10),doneAction: 2);
        out = LFPulse.ar(freq , 0.15);
        out = RLPF.ar(out,SinOsc.kr(0.3, 0, 200, 1500), 0.1);
        out = FreeVerb.ar(out, 0.5, 0.5, 0.5) * env;
        out = Pan2.ar(out, SinOsc.kr(1/10, phase),amp);

    Out.ar(outbus, out);
}).send(s);)

(
SynthDef("bass",{
        arg freq,amp,outbus=0;
        var env,out;
        out = SinOsc.ar(freq,0,amp);
        env = EnvGen.kr(Env.perc(0.5,1,1,0),doneAction: 2);
        out = out*env;
        out = Pan2.ar(out,0);
        Out.ar(outbus,out);


}).send(s);

)
 (

p = Prand( [61,77, 37,63,67,71], inf).asStream;
q = Prand( [3,0.7,1.3,0.7], inf ).asStream;
e = Prand([37,73,71,77,81,88,90],inf).asStream;

t = Task({
                inf.do({

                if( 0.1.coin, {
                        Synth("pulse",
                             [\freq,e.value.midicps,
                              \amp,0.07.rand +0.2,
                              \attack,7.0.rand,
                                    \delayTime, 0.02;
                                    ]);
                   });


                Synth("droneee",
                       [\outBus,0,
                        \freq, p.value.midicps,
                        \amp, (0.02.rand2 + 0.05) * 0.7,
                        \phase,[0,1.5pi].wchoose([0.5,0.5]);
                        ]);
                q.value.wait;

                Synth("bass",[\freq,p.value.midicps,\amp,0.3]);

                    });
});

t.start;


)





Nel libro SnowCrash, Neal Stephenson definisce il Nam Shub of Enki come un Linguaggio di Programmazione per il subconscio umano.

(
SynthDef(\snowcrash, {|out, gate=1, freq=440|
    // doneAction: 2 rilascia la synth quando EvnGen ha finito
Out.ar(out, (PinkNoise.ar(freq/2)*0.02*Saw.ar(freq) * EnvGen.kr(Env.asr(0.1, 0.3, 7.3), gate, doneAction:2)));
}).add;
)


(
Pbind(
    \instrument, \snowcrash,
    \freq, Pseq([137, 373, Prand([237, 473, 713],1)], inf),
    \legato, Pseq([1.7, 0.3], inf),
    \dur, 0.3,
    \out, Pseq([1, 0], inf)
).play;
)






"buio, pareti fredde, metallo, passi confusi in un labirinto di paura; precipitare in un abisso oscuro? Oppure continuare a camminare incerto sulla lama del rasoio? Vivo come un acrobata e danzo lentamente sul filo; mi trovo sulla lama del rasoio e inizio a avvertire brividi di piacere."

Non ritrovo come lho fatto;







Captate misteriose onde radio provenienti dalle profondità dell'Universo. Da dove provengono? Chi o cosa le ha prodotte? Sette anni fa, una singola raffica di onde radio di origine sconosciuta fu riconosciuta come proveniente dal di fuori della nostra galassia, un segnale dallo spazio esterno generato a miliardi di anni luce di distanza che ha viaggiato attraverso le profondità del cosmo ed è arrivato qui, sulla Terra.

(
{var frequency;
Mix.ar({
frequency = rrand(100, 300);
Pan2.ar(SinOsc.ar(frequency,
mul: EnvGen.kr(Env.perc(0.001, frequency/100),
Dust.kr(0.05), 0.2)), rrand(-1.0, 1.0)) }.dup(100))}.play
)

un Mix di 100 oscillatori sinusoidali, modulati in ampiezza da Envelope percussivi innescati da impulsi (Dust) random e pannati randomicamente;

rrand(24, 48)   // distribuzione lineare nel range indicato

audacity effect

reverse
vocoder
equalization high+ , bass-




Joshua: Volgiamo fare una partita?.
Jennifer: [Ridacchiando] Sentiva la mancanza di Falken.
David: Già.[Digitando sulla tastiera] Si, volentieri. Ti andrebbe Guerra Termonucleare Globale?
Joshua: Non preferirebbe una bella partita a scacchi?
David: Dopo, Giochiamo alla Guerra Termonucleare Globale.

(
{
var triggerSpeed, trigger;
triggerSpeed = 0.1;
trigger = Impulse.kr(triggerSpeed);
Pan2.ar(LFNoise0.ar(
TRand.kr(100, 1000, trigger),
mul: EnvGen.kr(
Env.perc(0.001, 3/triggerSpeed),
trigger
)
),0)
}.play
)


(
{
Pan2.ar(SinOsc.ar(SinOsc.ar(4/10, mul: 100, add: 1000), mul: 0.1) +
SinOsc.ar(SinOsc.ar(2/10, mul: 100, add: 1000), mul: 0.1) +
SinOsc.ar(SinOsc.ar(5/10, mul: 100, add: 1000), mul: 0.1),0)
}.play
)

2 suoni;

1) il trigger che è un Impulse.kr(0.1Hz, 1 volta ogni 10 sec) innesca il TRand.kr che produce una frequenza da 100 a 1000Hz randomicamente per il LFNoise0.ar, rumore la cui ampiezza ha un Envelopment percussivo con attacco istantaneo e un release di 3/0.1 secondi;

2) il secondo suono è creato dalla somma di 3 Sinusoidi modulate in frequenza da altre Sinusoidi a diverse frequenze, che da vita a interferenze costruttive e distruttive;

TRand           generatore di numeri casuali a innesco

TRand.kr(lo, hi, trig)
TRand.ar(lo, hi, trig)

Genera un valore float casuale nella distribuzione uniforme da lo a hi
ogni volta che il trigger passa da valori non positivi a valori positivi


Impulse     oscillatore a impulsi

Impulse.ar(freq, phase, mul, add)

genera un singolo campio di impulsi a banda non limitata.
freq - frequenza in Hertz
phase - offset di fase in cicli ( 0..1 )





"Erano creature di un colore tendente al rosa, lunghe circa un metro e mezzo; il loro corpo, avvolto in un involucro da crostaceo, era dotato di un paio di grandi pinne o ali membranose dorsali, e di diversi gruppi di membra articolate; una specie di ellissoide ricoperto da una moltitudine di brevi antenne teneva il posto della testa." H. P. Lovecraft, Colui che sussurrava nel buio

play({RLPF.ar(Dust.ar([12, 15]), LFNoise1.ar(1/[3, 4], 1500, 1600), 0.02)})

Un filtro risonante passa basso attraverso il quale vengono fatti passare due treni di impulsi random (Dust, il parametro density è il valor medio di impulsi al secondo); la frequenza del filtro è modulata tramite 2 UGen di tipo LFNoise, mentre il parametro della risonanza è impostato a 0.02;

(
{
GVerb.ar((
{
var burstEnv, att = 0, dec = 0.001;
var burst, delayTime, delayDecay = 0.5;
var midiPitch = 69; // A 440
delayTime = midiPitch.midicps.reciprocal;

burstEnv = EnvGen.kr(Env.perc(att, dec), gate: Impulse.kr(1/delayDecay));
burst = PinkNoise.ar(burstEnv);
CombL.ar(burst, delayTime, delayTime,delayDecay, add: burst);
}
),270,30,0.7,drylevel:0.5)
}.play
)

Viene costruito un Envelope di tipo percussivo, attack a 0 e decay a 0.001 con un gate di impulsi (2 al secondo); questo Envelope va a sagomare l'ampiezza di un segnale PinkNoise; il tutto viene dato in pasto a questa UGen CombL, una echo chamber :

viene inviato l'impulso rumoroso attraverso una camera di eco; CombL, che ha questi argomenti : in, maxdelaytime, delayTime, decayTime, mul, add. L'input sarà l'impulso rumoroso che abbiamo appena creato. Il delaytime e il maxdelaytime rappresentano quantità di tempo, in secondi, e indicano quanto il segnale viene ritardato (l'eco). Il tempo di decadimento è il tempo necessario per la scomparsa dell'eco. La frequenza del gate è impostata sul reciproco del  delayDecay in modo che un nuovo impulso inneschi un altro burst di rumore quando il precedente si è spento.





La sintesi granulare è spesso basata sullo stesso principio del campionamento ma include anche tecnologie di tipo analogico. L'idea è quella di creare suoni complessi a partire da una grossa quantità di suoni semplici. I grani sono di durata compresa tra 1 e 50 millisecondi e possono essere combinati e riprodotti insieme a velocità, fase e volume variabili. Il risultato non è un unico tono, ma una nuvola di suoni che viene manipolata in maniera differente da qualsiasi altro suono naturale o da qualsiasi altro metodo di sintesi.

Rielaborazione di un tutorial :

(
SynthDef(\sinegrain, {arg pan, freq, amp; var grain;
grain= SinOsc.ar(freq, 0, amp)*(XLine.kr(1.001,0.001,0.1,doneAction:2)-0.001);
XLine genera una curva esponenziale di durata dur, in questo caso 0.1, tra il valore start e il valore end;
Out.ar(0,Pan2.ar(grain, pan))}).add;
)
Synth(\sinegrain,[\freq,rrand(100,10000),\amp, exprand(0.05,0.1), \pan, 1.0.rand2]);
exprand è valore float randomico in una distribuzione esponenziale tra hi e lo; rand2 tra -this e this.
//schedule 100 random grains over 1 second
(
{
2000.do{arg i;
        Synth(\sinegrain,[\freq,rrand(50,50+i*2),\amp, exprand(0.05,0.1), \pan, 1.0.rand2]);
        0.01.wait
};
}.fork
)
una condizione di errore che si verifica a runtime quando in un buffer di una data dimensione vengono scritti dati di dimensioni maggiori; viene sovrascritta parte della zona di memoria immediatamente adiacente al buffer in questione, con diversi effetti possibili a seconda di dove è situato il buffer e di come è organizzata la memoria.
 

Blip band limited impulse oscillator

Blip.ar(freq, numharm, mul, add)

Band Limited ImPulse generator. All harmonics have equal amplitude. This is the equivalent of 'buzz' in MusicN languages.

Line line generator

Inherits from: Object : AbstractFunction : UGen

Line.ar(start, end, dur, mul, add, doneAction)
Line.kr(start, end, dur, mul, add, doneAction)

Generates a line from the start value to the end value.
start - starting value
end - ending value
dur - duration in seconds
doneAction - a doneAction to be evaluated when the Line is completed. See UGen-doneActions for more detail.

Limiter peak limiter

Limiter.ar(in, level, dur)

Limits the input amplitude to the given level. Limiter will not overshoot
like Compander will, but it needs to look ahead in the audio. Thus there is a
delay equal to twice the lookAheadTime.
Limiter, unlike Compander, is completely transparent for an in range signal.

in - the signal to be processed.
level - the peak output amplitude level to which to normalize the input.
dur - aka lookAheadTime. The buffer delay time. Shorter times will produce smaller delays
and quicker transient response times, but may introduce amplitude modulation artifacts.

GVerb A two-channel reverb

#left, right = GVerb.ar(in, roomsize, revtime, damping, inputbw, spread, drylevel, earlyreflevel, taillevel,
maxroomsize, mul, add)

A two-channel reverb UGen, based on the "GVerb" LADSPA effect by Juhana Sadeharju (kouhia at nic.funet.fi).

in - mono input
roomsize - in squared meters
revtime - in seconds
damping - 0 to 1, high frequency rolloff, 0 damps the reverb signal completely, 1 not at all
inputbw - 0 to 1, same as damping control, but on the input signal
spread - a control on the stereo spread and diffusion of the reverb signal
drylevel - amount of dry signal
earlyreflevel - amount of early reflection level
taillevel - amount of tail level
maxroomsize - to set the size of the delay lines. Defaults to roomsize + 1





Entrammo in laboratorio e vidi l'odiosa macchina elettrica che brillava di una luminosità violetta e poco promettente. Era collegata ad una potente batteria chimica, ma in quel momento non riceveva corrente perché, durante i primi esperimenti ricordavo di averla sentita vibrare e ronzare quando era in funzione.

b = Buffer.read(s,"/home/bz/Desktop/radicaledward/supercollider/a11wlk01.wav");

al posto del grano sinusoidale prendo un pezzetto di wav

{ RLPF.ar(Saw.ar([50,75],0.1), XLine.kr(8000,400,25), 0.05) }.play;

(
SynthDef(\sfgrain, {arg bufnum=0, pan=0.0, startPos=0.0, amp=0.1, dur=0.04;
var grain;

grain= PlayBuf.ar(1,bufnum, BufRateScale.kr(bufnum), 1, BufFrames.ir(bufnum)*startPos, 0)*(EnvGen.kr(Env.perc(0.01,dur),doneAction:2)-0.001);

Out.ar(0,Pan2.ar(grain, pan))}).add;
)

(
{
200.do{arg i;
var timeprop = (i/199.0)**3;

        Synth(\sfgrain,[\freq,exprand(100,5000-(20*i)),\amp, exprand(0.05,0.1), \pan, 1.0.rand2]);
        rrand((timeprop*0.1).max(0.01),timeprop*0.3).wait
};
}.fork

)

+ GVerb Audacity



Update cookies preferences