24/06/22

IF YOU WISH TO MAKE AN APPLE PIE FROM SCRATCH, YOU MUST FIRST INVENT THE UNIVERSE;

IL LIVE CODING PURO, FROM SCRATCH, PARTENDO DA UN EDITOR VUOTO O QUASI VUOTO, SI COLLOCA A UN ESTREMO DELLO SPETTRO DELLE POSSIBILITÀ, MENTRE LA MUSICA GENERATIVA, SI COLLOCA ALL'ALTRO ESTREMO. IL LIVE CODING PURO È L'IDEA CHE POSSIAMO CREARE MUSICA DA ZERO, SCRIVENDO CODICE, PARTENDO DA UN EDITOR VUOTO O QUASI; LA MUSICA GENERATIVA D'ALTRO CANTO INSEGUE L'IDEA CHE I COMPUTER POSSANO FARE MUSICA INTERAMENTE DA SOLI, SENZA SUPERVISIONE. ENTRAMBI GLI IDEALI SONO IMPOSSIBILI DA RAGGIUNGERE; PERSONALMENTE PENSO CHE IL MODO MIGLIORE DI CREARE MUSICA CON IL LIVE CODING DURANTE UNA PERFORMANCE LIVE, POSSA TROVARSI IN MEZZO AI DUE ESTREMI DELLO SPETTRO DELLE POSSIBILITÀ; QUANDO COMPONGO IN STUDIO E USO LO STRUMENTO DEL LIVE CODING, MI CAPITA COMUNQUE, ALLE VOLTE, DI PARTIRE DA UN EDITOR VUOTO O QUASI;

CHE DIFFERENZA C'È TRA FARE LIVE CODING CON UN LINGUAGGIO CHE CON TRE RIGHE DI CODICE TI PERMETTE VELOCEMENTE DI DEFINIRE LA BASE RITMICA, LA LINEA DI BASSO E LA BASE MELODICA DELLA COMPOSIZIONE E FARE LIVE CODING CON UN LINGUAGGIO VERBOSO E PROLISSO COME SUPERCOLLIDER CHE HA BISOGNO QUINDI DELLA DIFINIZIONE DI LUNGHE SUB-ROUTINE E TEMPLATE GIA PRONTE DA CUI NECESSARIAMENTE PARTIRE E SUCCESSIVAMENTE MODIFICARE E COMBINARE DURANTE LA PERFORMANCE LIVE? NESSUNA, IL LINGUAGGIO DELLE TRE RIGHE, HA GIÀ LE SUB-ROUTINE PRONTE E PREDEFINITE NELLE LIBRERIE (SCRITTE DA QUALCUN ALTRO, CHE CON IL TUO SHOW YOUR CODE, NON MI FAI VEDERE); CON SUPERCOLLIDER TE LE SCRIVI TE MAGARI PER SNELLIRE LA CODIFICA DURANTE I LIVE E ADEGUARLA ALLE TUE ESIGENZE COMPOSITIVE; LIVE CODING COME STRUMENTO DI ESPLORAZIONE PER LA COMPOSIZIONE MUSICALE E ARTISTICA ELETTRONICA, E COME STRUMENTO MUSICALE LIVE DI ESPOSIZIONE E ESPLORAZIONE DELL'IDEA MUSICALE E ARTISTICA;
Share:

23/06/22

SLITTAMENTI PERCETTIVI;

NELL'AMBIENTE VIDEOMUSICALE CHE VADO A CREARE AVVENGONO SLITTAMENTI PERCETTIVI; IMMAGINI, SUONO, RUMORE, MUSICA, PAROLA, SONO ELEMENTI CHE SI POSSONO INTERSCAMBIARE FRA LORO; SONO CATEGORIE NON RIGIDE; PER ESEMPIO VEDI CADERE UN OGGETTO, E ALLA SUA CADUTA NON CORRISPONDE LA PERCEZIONE UDITIVA DEL RUMORE ASSOCIATO A QUELL'OGGETTO, MA SENTI UN SUONO DIVERSO O UNA SEQUENZA MUSICALE CHE RICALCA, IMITA IL MOVIMENTO; QUESTI SPOSTAMENTI, QUESTI SLITTAMENTI PERCETTIVI, ASSUMONO UN PESO MOLTO IMPORTANTE NELLE MIE CREAZIONI VIDEOMUSICALI;
Share:

22/06/22

RIELABORARE SE STESSI;

IL RISULTATO STESSO È IL NUOVO MATERIALE; USO LE FORME RISULTANTI COME FRAMMENTI PER SVILUPPARE NUOVI CODICI E OTTENERE NUOVI RISULTATI; LA COMPOSIZIONE IN GENERE PUÒ INIZIARE DA FRAMMENTI DI COMPOSIZIONI PRECEDENTI; PERCHÈ È UN MATERIALE CHE CONOSCO BENE, ED È ANCHE UNA SORTA DI PROLIFERAZIONE DA UN PEZZO A UN ALTRO; È RIELABORARE SE STESSI, PERCHÈ TUTTO È RIELABORAZIONE; NEL COMPORRE C'È SEMPRE UN ELEMENTO SORPRESA : C'È SEMPRE UNA PARTE NOTA E UNA SPERIMENTALE: L'ELEMENTO SORPRESA È QUELLO CHE POI PUÒ FARTI CAMBIARE STRADA;
Share:

21/06/22

IL FILM DEL SUONO;

LA FORMA RISPECCHIA LA PROFONDITÀ DEL SUONO SUL PIANO IMMAGINATIVO E L'IMMAGINE FUNGE, IMPLICITAMENTE, DA CONNETTIVO CON CUI QUALCOSA PASSA DALL'UNO ALL'ALTRO.

L'ASSOCIARE UN QUALSIASI FENOMENO ACUSTICO A UNA SEQUENZA DI IMMAGINI, PERMETTE DI RENDERE CONTO VISIVAMENTE DELLA REALTÀ SONORA IN TUTTO «IL BRULICARE DELLA SUA VITA INTERNA.»

CIÒ HA COMPORTATO IL SUPERAMENTO DEFINITIVO DELL'IDEA DI SUONO COME OGGETTO FISSO E IMMOBILE: IL SUONO ASSUME LE SEMBIANZE DI UN ESSERE VIVO CHE CAMBIA EVOLVENDO IN CONTINUAZIONE;

IN CERTI PARTICOLARI CASI, DIVENGONO VISIBILI I MICRO-PROCESSI O GLI STATI TRANSITIVI INFINITESIMALI CHE ANIMANO INTERNAMENTE IL SUONO. È IL «FILM» DEL SUONO, CHE PERMETTE DI VISUALIZZARE I SUONI, D'IDENTIFICARLI CON TUTTE LE LORO QUALITÀ, ESATTAMENTE COME FACCIAMO CON L'ORECCHIO.

VI SAREBBERO, COSÌ, CORRISPONDENZE PERFETTE TRA L'IMMAGINE VISIVA E L'IMMAGINE ACUSTICA PERCEPITA O MENTALE SUGGERITA DIRETTAMENTE DAL SUONO: TUTTO CIÒ CHE SI ASCOLTA E S'INTENDE È VISUALIZZATO;

LO STESSO TIPO DI CORRISPENDENZE, POSSONO ESISTERE TRA LA MUSICA E LE SEQUENZE DI IMMAGINI, TRA LE DINAMICHE DELLA MELODIA E I MOVIMENTI NELLE IMMAGINI;
Share:

20/06/22

LA SINTESI DEL SOUNO CON IL REBOP;

IN GENERE, IN UN PROCESSO CLASSICO DI SINTESI DEL SUONO, LA PRIMA COSA DA FARE È SAPERE COSA SI VUOLE OTTENERE; MIGLIORI SONO LE SPECIFICHE INIZIALI, MENO LAVORO SARÀ SPRECATO LUNGO IL PERCORSO. LA SPECIFICA DEI REQUISITI È UN PROCESSO IN CUI SI LAVORA PER CHIARIRE IL PIÙ POSSIBILE CON IL RESTO DEL TEAM DI PRODUZIONE QUALI SONO QUESTI REQUISITI, PER OTTENERE ALLA FINE UN DOCUMENTO. QUESTO QUANDO STAI LAVORANDO PER OTTENERE UNO SPECIFICO RISULTATO;

NEL REBOP LE COSE SONO DIFFERENTI; LA TUA È UNA VERA E PROPRIA ESPLORAZIONE E SPESSO QUESTE SPECIFICHE DEI REQUISITI SI DEFINISCONO MAN MANO CHE PROCEDE L'ESPLORAZIONE REALTIME;

NEL REBOP SI PARTE DA UN PEZZO DI CODICE, DA UN PRESET DI UN SINTETIZZATORE VIRTUALE, OGGETTI DEL TUO STUDIO E DELLA TUA ESPLORAZIONE, E DOPO LA FASE DI REVERSE ENGINEERING E DI COMPRENSIONE, SI PASSA ALLA FASE DI MANIPOLAZIONE E RIELABORAZIONE; QUESTA FASE TI POTERÀ INIZIALMENTE A RISULTATI IMPREVEDIBILI E INTERMEDI; È A QUESTO PUNTO CHE SI PUÒ INIZIARE A DEFINIRE UN DOCUMENTO DI SPECIFICA DEI REQUISITI O COMUNQUE INIZIARE A CAPIRE IN CHE DIREZIONE DI RIELABORAZIONE SI VUOLE PROCEDERE E COSA SI VUOLE CREARE;
Share:

19/06/22

THE PHANTOM OF THE OPERA;



"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 DELLA MEDIOCRITÀ DELL'UOMO. NEL SUO ISOLAMENTO, TRASCORRE MOLTI ANNI, MENTRE COMPONE LA SUA INTERA OPERA"

DOWNLOAD THE SOUND FROM FREESOUND.ORG 🎹

(
~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;
});
)

Share:

18/06/22

TILT;



ARRESTO DEL CIRCUITO SPETTACOLARE E CONSEGUENTE FINE DELLA PROPAGANDA, PROVOCATI DAI MENTECATTI AL POTERE PER ECCESSIVO SCUOTIMENTO DI PALLE E ECCESSIVA GENERAZIONE DI PUTTANATE.

HO IMMAGINATO IL SISTEMA DELLA PROPAGANDA, DELLE TV MAINSTREAM ANDARE IN TILT, E INIZIARE A EMETTERE TUTTI QUESTI FISCHI E SUONI DI RI-SINTONIZZAZIONE NEL TENTATIVO DI RIPRENDERE IL CONTROLLO, SENZA PERÒ RIUSCIRCI;

NEL GIOCO DEL FLIPPER, CONTATTO ELETTRICO CHE PROVOCA L'INTERRUZIONE DEL GIOCO (E L'ACCENSIONE DI UNA SPIA LUMINOSA) IN SEGUITO A UNA MOSSA SCORRETTA DA PARTE DEL GIOCATORE CHE, PER OTTENERE UN MIGLIORE RISULTATO, DÀ AL FLIPPER UNA CERTA INCLINAZIONE O LO SCUOTE VIOLENTEMENTE.

     var gen = 7; 
     PinkNoise.ar(0.3)+ 
     FreeVerb.ar( 
        LFPar.ar(                            
            LFNoise2.ar(gen!8).exprange(20,2e4) * LFTri.ar(1/gen!3).exprange(1,1.2), 0,
            LFNoise2.ar(gen!8).exprange(0.08,0.5) * EnvGen.ar(
                Env.perc.blend(Env.sine, LFNoise2.kr(gen!8)).circle, 
                timeScale: gen!8 // LFNoise2.ar(gen!8).range(1/5, 5)
            )
        ).clump(2).mean,
        LFNoise2.ar(1/5)
    ) 
    + Pan2.ar(
        Pluck.ar(
            PinkNoise.ar(2) ! 2,
            Dust.ar(LFNoise2.kr(gen!2).exprange(2,5)), 
            1/200, LFNoise2.kr(gen!2).exprange(1/14000,1/200),
            LFNoise2.kr(gen!2).range(1,10),
            LFNoise2.kr(gen!2).range(0,1),
            LFNoise2.kr(gen!2).exprange(0.2,1)
        ),
        LFNoise2.kr(gen!2).range(-1,1)
    ).sum / 2;
}.play
)

(
{
var freq, freqArray, ratioArray, indexArray,
env, rate = 0.1, trig;
trig = Impulse.kr(rate);
freqArray = [48, 50, 52, 53, 55, 57, 59, 60,                         
62, 64, 65, 67, 69, 71, 72].scramble.midicps;
ratioArray = {rrand(1.0, 3.0)}.dup(20);
indexArray = {rrand(1.0, 4.0)}.dup(20);
env = EnvGen.kr(Env.perc(0.5, 1/rate), gate: trig);
freq = Select.kr(Stepper.kr(trig, max: freqArray.size-1), freqArray/5);
PMOsc.ar(
freq,
freq*Select.kr(Stepper.kr(trig, max: ratioArray.size-1), ratioArray),
Select.kr(Stepper.kr(trig, max: indexArray.size-1), indexArray)
+ env*4,
mul: env
)*0.3+AY.ar(freq)*0.3}.play
)


DOWNLOAD THE SOUND FROM FREESOUND.ORG 🎹



Share: