Benvenuto, Visitatore. Per favore, effettua il login o registrati.

  Hai perso la tua email di attivazione?

Main Home Help Ricerca Login Registrati

+  Virtual Sound - FORUM
|-+  Linguaggi per la Computer Music
| |-+  Altri linguaggi
| | |-+  Supercollider
« precedente successivo »
Pagine: [1] Stampa
Autore Topic: Supercollider  (Letto 867 volte)
aledl
Jr. Member
**
Posts: 69


Guarda Profilo
« il: Settembre 09, 2007, 12:50:28 »

Una volta "rotto il ghiaccio" con i linguaggi di programmazione diventa quasi appassionante scoprire nuove sintassi anche senza farci nulla  Grossa risata.
Stabilita ormai sempre più definitivamente la mia predilezione per i linguaggi "testuali" stavo dando un'occhiata a Supercollider...che, se non erro, rappresenta lo standard di riferimento dopo Csound.

Volevo sapere se le conclusioni che ne ho tratto sono corrette, anche se non ho di certo approfondito completamente la sintassi di Supercollider:

- Se voglio riscrivere la Va di Beethoven con suoni elettronici (per fare un esempio banale), in Csound è un duro lavoro, ma alla fine avrò il controllo millimetrico su ogni nota, su ogni parametro di attacco e di timbro del suono e una possibilità espressiva e "discrezionale" assoluta. Con Supercollider prima devo impazzire, poi una volta ricoverato scopro che è impossibile. Nel senso che da quel che ho capito non si può scrivere una vera e propria "partitura", ma dei moduli che hanno determinati comportamenti, che vengono caricati sul server, e a cui vengono inviati dei messaggi in tempo reale sotto forma di linee di codice "eseguite" dall'utente selezionando una porzione di testo e premendo il tasto "enter".
L'unica possibilità che ho è suonare una tastiera MIDI e registrare (ma anche lì non è facile e bisogna usare una libreria esterna)...però non potendo suonare da solo la Va di Beethoven non c'è verso (non parlando poi del controllo dei vari parametri e della polifonia di timbri).
Per far suonare Supercollider bisogna scrivere algoritmi che generano automaticamente il brano (tipo StructuresI di Boulez, ma già Structures II sarebbe impossibile).

- Se invece voglio generare 2000 oscillatori con frequenze random (o con un altro algoritmo) e modificare i parametri globali in tempo reale con un solo clic, oppure aggiungere un riverbero "cucinato" al momento, la situazione si inverte (ovvero impazzisco con csound).

- Essendo le mie esigenze attuali orientate ad un tipo di lavoro "strutturalista", e quindi l'ascoltare in tempo reale mi interessa solo come "test provvisorio", ma il mio obbiettivo è l'elaborazione di eventi definiti in modo microscopico, totalmente controllati in ogni parametro del timbro e del tempo, e poi fissati in un file audio da trasmettere (che poi sia trasmesso su 2 o 100 canali è un altro discorso  Grossa risata), la mia scelta deve naturalmente orientarsi verso Csound.

- Se avessi in futuro bisogno di far interagire strumenti acustici elaborati in tempo reale dal computer, dovrei rivolgermi a Supercollider...ma in quel caso penso che Maxmsp sia una scelta ancora più efficace. Super collider lo vedo più proiettato sulla generazione algoritmica e sulle "performances improvvisazioni" dal vivo con Ibook.
Loggato
cecinestpasmonID
Newbie
*
Posts: 7


Guarda Profilo WWW
« Risposta #1 il: Settembre 30, 2007, 15:29:43 »

Citazione

[…] una volta ricoverato scopro che è impossibile. Nel senso che da quel che ho capito non si può scrivere una vera e propria "partitura", ma dei moduli che hanno determinati comportamenti, che vengono caricati sul server, e a cui vengono inviati dei messaggi in tempo reale sotto forma di linee di codice "eseguite" dall'utente selezionando una porzione di testo e premendo il tasto "enter".
L'unica possibilità che ho è suonare una tastiera MIDI e registrare (ma anche lì non è facile e bisogna usare una libreria esterna)...però non potendo suonare da solo la Va di Beethoven non c'è verso (non parlando poi del controllo dei vari parametri e della polifonia di timbri).
Per far suonare Supercollider bisogna scrivere algoritmi che generano automaticamente il brano (tipo StructuresI di Boulez, ma già Structures II sarebbe impossibile).

Non è esattamente così: se controlli le sezioni "Streams-Patterns-EventsN.html" dell'help (N sta per un numero da 1 a 7) vedi che puoi fare anche con sc una bella esecuzione della 5a Occhiolino

Citazione
Se invece voglio generare 2000 oscillatori con frequenze random (o con un altro algoritmo) e modificare i parametri globali in tempo reale con un solo clic, oppure aggiungere un riverbero "cucinato" al momento, la situazione si inverte (ovvero impazzisco con csound).

Non ho mai usato Csound, diciamo che sc ha un sacco di facilitazioni per provare in fretta i risultati dei nostri esperimenti. In particolare la sintassi Function.play permette di sentire subito come suonano:
es sciocco:

Codice:
s.boot;
{ Mix.fill(8, { arg i; SinOsc.ar( exprand(110, 440) * (i+1), 2pi.rand ! 2, 0.1/(i+1) ) }) }.play;

Citazione
Essendo le mie esigenze attuali orientate ad un tipo di lavoro "strutturalista", e quindi l'ascoltare in tempo reale mi interessa solo come "test provvisorio", ma il mio obbiettivo è l'elaborazione di eventi definiti in modo microscopico, totalmente controllati in ogni parametro del timbro e del tempo, e poi fissati in un file audio da trasmettere (che poi sia trasmesso su 2 o 100 canali è un altro discorso  Grossa risata), la mia scelta deve naturalmente orientarsi verso Csound.

può darsi, resta sempre da tener presente che spesso specificare al minimo dettaglio tutti i parametri di una composizione può far perdere "slancio". con sc mi trovo a lasciare che alcuni parametri siano guidati dal caso. l'esempio sopra ne è (in piccolo) una dimostrazione. spesso i suoni "naturali" che troviamo così belli lo sono perchè ciascuno di essi differisce dal precedente per dettagli che spesso non possiamo controllare uando suoniamo uno strumento. lasciando che di alcuni particolari di sintesi se ne occupi un processo stocastico aggiunge naturalezza - secondo me ovviamente. ritengo quindi sc molto adatto allo scopo. Comunque questo discorso esula dalle tue richieste. scusa Occhiolino

Citazione
Se avessi in futuro bisogno di far interagire strumenti acustici elaborati in tempo reale dal computer, dovrei rivolgermi a Supercollider...ma in quel caso penso che Maxmsp sia una scelta ancora più efficace. Super collider lo vedo più proiettato sulla generazione algoritmica e sulle "performances improvvisazioni" dal vivo con Ibook.

MaxMSP (rispetto a csound) invece l'ho usato. Se nell'esempio precedente voglio (il primo esempio che mi passa per la testa) 1000 armonici scrivo 1000 al posto di 8; crea 1 oscillatore sinusoidale in MAX MSP e poi cambia idea, ne voglio 16!: copia-incolla, copia-incolla, copia-incolla, copia-incolla, etc…
al posto di oscillatore sinusoidale posso dire abstraction per rendere meglio l'idea.

Qualcosa che ho fatto con sc:
http://corrado.tirelli.googlepages.com/Zzz.mp3
http://corrado.tirelli.googlepages.com/Misembravabellissima.mp3

contattami pure offlist se hai bisogno di una mano con sc, per quello che so ti aiuterei volentieri.

CT



 
« Ultima modifica: Settembre 30, 2007, 15:34:47 da cecinestpasmonID » Loggato
franz
AAA1
Hero Member
*
Posts: 829


Guarda Profilo WWW
« Risposta #2 il: Settembre 30, 2007, 18:35:57 »

MaxMSP (rispetto a csound) invece l'ho usato. Se nell'esempio precedente voglio (il primo esempio che mi passa per la testa) 1000 armonici scrivo 1000 al posto di 8; crea 1 oscillatore sinusoidale in MAX MSP e poi cambia idea, ne voglio 16!: copia-incolla, copia-incolla, copia-incolla, copia-incolla, etc…
al posto di oscillatore sinusoidale posso dire abstraction per rendere meglio l'idea.

Non è proprio esatto, MaxMSP effettivamete è più "scomodo" rispetto ad altri linguaggi nella gestione della polifonia, replicare più volte la stessa abstraction o lo stesso external.
Nel primo caso si può fare utilizzando l'oggetto poly~, pensato per la gestione di instanze polifoniche ma utile anche ad altri scopi, il cui utilizzo consiste solamente nel richiamare al suo interno un'abstraction di nostra fattura contenente l'oggetto thispoly~.
Se invece si vuole duplicare un'abstraction o un externals n volte, in MaxMSP come in Pd, è possibile ricorrere allo "scripting" interno, controllabile su max tramite l'oggetto thispatcher o via javascript, in pd semplicemente con il messaggio ;pd seguito dagli argomenti desiderati simili a quelli presenti in max Sorriso



contattami pure offlist se hai bisogno di una mano con sc, per quello che so ti aiuterei volentieri.

CT

sarebbe carino se continuaste IN-LIST visto che di SuperCollider si parla poco ed è un linguaggio estremamente interessante Sorriso

a presto

franz

p.s. corrado, veramente carini i tuoi pezzi!

« Ultima modifica: Settembre 30, 2007, 20:34:45 da franz » Loggato

cecinestpasmonID
Newbie
*
Posts: 7


Guarda Profilo WWW
« Risposta #3 il: Settembre 30, 2007, 23:43:31 »

Citazione
Non è proprio esatto, MaxMSP effettivamete è più "scomodo" rispetto ad altri linguaggi nella gestione della polifonia, replicare più volte la stessa abstraction o lo stesso external.
Nel primo caso si può fare utilizzando l'oggetto poly~, pensato per la gestione di instanze polifoniche ma utile anche ad altri scopi, il cui utilizzo consiste solamente nel richiamare al suo interno un'abstraction di nostra fattura contenente l'oggetto thispoly~.
Se invece si vuole duplicare un'abstraction o un externals n volte, in MaxMSP come in Pd, è possibile ricorrere allo "scripting" interno, controllabile su max tramite l'oggetto thispatcher o via javascript, in pd semplicemente con il messaggio ;pd seguito dagli argomenti desiderati simili a quelli presenti in max

mi riferivo non tanto alla polifonia quanto a fare copia e incolla di un abstraction con, poniamo, 2 inlet e 2 outlet, da attaccare ad un modulo con 16 inlet: copio e incollo 8 volte (vabbè, copio e incollo la prima volta 1 abstraction e ne ottengo 2, copio e incollo queste due e ne ottengo 4, copio e incollo queste 4 e ne ho 8, copio e incollo queste 8  e ne ho 16 con 4 copia e incolla ma il succo è questo).
comunque, semplicemente, ogni software è meglio per alcune cose e peggio per altre. sc è più orientato alla creazione di musica composta algoritmicamente, attraverso mutazioni che sono solo parzialmente sotto il controllo dell'utente e ciò - la facilità (forse meglio la sveltezza) con cui lo si fa non che si possa fare solo con sc, eh - lo rende musicale in senso naturale. in questo l'utente aledl ha ragione. È però possibile anche fare sequencing in sc, sfruttando le capacità algoritmiche a livello micro (singoli eventi sonori) piuttosto che macro (sequenze di note, accordi, etc…).
un esempio del secondo tipo:

Codice:
a = Buffer.read(s, "/Users/Corrado/SUONI/NewDm/Akai_XR-10 Folder/Akai XR-10/XR10bd01.wav"); // carica 4 campioni (MONO) di batteria a tua scelta nella ram; Cassa
b = Buffer.read(s, "/Users/Corrado/SUONI/NewDm/Akai_XR-10 Folder/Akai XR-10/XR10bd02.wav"); // Cassa
c = Buffer.read(s, "/Users/Corrado/SUONI/NewDm/Akai_XR-10 Folder/Akai XR-10/XR10bd03.wav"); // Cassa
d = Buffer.read(s, "/Users/Corrado/SUONI/NewDm/Akai_XR-10 Folder/Akai XR-10/XR10sd01.wav"); // Rullante

( // carica lo strumento per usarlo con i pattern
SynthDef(\play,{ arg out=0,bufnum=0, r=1.0, amp=0.1;
var playbuf;
playbuf = PlayBuf.ar(1, bufnum, BufRateScale.kr(bufnum) * r ) ! 2;
FreeSelfWhenDone.kr(playbuf);
Out.ar(out, playbuf * amp);
}).memStore;
)

TempoClock.default.tempo_(1.11) // tempo

Pdef(\qwerty).play; // crea un pattern vuoto e lo avvia

( // definisce il pattern
Pdef(\qwerty, Ptpar([
0.0, Pbind(
\instrument, \play,
\bufnum, Prand([a, b, c].collect(_.bufnum), inf),
\dur, PdurStutter(
Pn(Pshuf([ Prand([1, 2, 4, 8], 1), 4, 2, Prand([1, 3, 6, 0, 4, 2], 1), 1 ], 1), inf), Pseq([0.5, 0.25, 0.25, 0.75, 0.25], inf)
)
),
0.25, Pbind(
\instrument, \play,
\bufnum, d.bufnum,
\dur, 1
)
], inf)))

Pdef(\qwerty).stop; // ferma


Alla fine tutto si basa sulla cellula ritmica [0.5, 0.25, 0.25, 0.75, 0.25], però, insomma, ha la sua varietà;

e uno del primo:

Codice:
(
{

var freq = 220;

var saw = SinOsc.ar(freq);

var mouseX = LFNoise2.kr([1, 0.8], 0.99, 1);

var mouseY = LFNoise1.kr([0.97, 1.1], 0.9, 1);

var filtsaw = BLowPass4.ar(saw, freq * 0.49, 1.0) * ((freq.reciprocal * 0.499)*mouseX) + ((freq.reciprocal) * mouseY);

var comb = Out.ar(0, LeakDC.ar(CombC.ar(saw, 1, filtsaw, 2, 0.01).minNyquist));

comb
}.play
)

CIAO

OT: ascolto Echus Chasma intanto.
« Ultima modifica: Settembre 30, 2007, 23:57:45 da cecinestpasmonID » Loggato
franz
AAA1
Hero Member
*
Posts: 829


Guarda Profilo WWW
« Risposta #4 il: Ottobre 01, 2007, 00:21:13 »

Citazione
comunque, semplicemente, ogni software è meglio per alcune cose e peggio per altre. sc è più orientato alla creazione di musica composta algoritmicamente, attraverso mutazioni che sono solo parzialmente sotto il controllo dell'utente e ciò - la facilità (forse meglio la sveltezza) con cui lo si fa non che si possa fare solo con sc, eh - lo rende musicale in senso naturale.

d'accordo, non del tutto ma sono discorsi lunghi e poco interessanti (intendo i miei, non il topic) Sorriso

grazie pe gli esempi

CIAO
Citazione
OT: ascolto Echus Chasma intanto.

OT: roba vecchissimissima!
tra un pò metterò cose nuove Occhiolino
Loggato

franz
AAA1
Hero Member
*
Posts: 829


Guarda Profilo WWW
« Risposta #5 il: Ottobre 02, 2007, 10:43:32 »

comunque, per rispondere ad aledl:
io credo che la cosa fondamentale sia ricorrere all'utilizzo di questi mezzi nella giusta misura, senza restarne schiavi e sentirsi costretti ad utilizzarli sempre e comunque.

Insomma: nulla ti vieta di usarli tutti per produrre materiale sonoro che poi andrai ad assemblare diversamente, anche se, per come la vedo io, la soluzione migliore tra imparare tutti questi linguaggi "così così", o studiarsene uno approfonditamente e spremerlo fino alla fine, è la seconda.

In sostanza, non credo che ci siano cose che con SC si possono fare e con Max no...
semmai ci sono cose che puoi fare più facilmente con SC rispetto a Max e viceversa, ma se già conosci Max o Csound metti molto meno ad imparare un procedimento nuovo nel linguaggio che hai studiato, che per imparare un linguaggio nuovo per una necessità specifica Sorriso

Loggato

brunozamborlin
Hero Member
*****
Posts: 776



Guarda Profilo
« Risposta #6 il: Ottobre 02, 2007, 11:18:39 »

Si sono perfettamente d'accordo con franz. Spesso si tende a perdere tempo imparando a fare le stesse cose con linguaggi diversi, anzichè approdonfirne uno specifico.
Nel caso di Max poi, che integra benone almeno 5 linguaggi di programmazione al suo interno (c,java,js,lua e lisp) direi che limiti non ce ne sono, se non appunto di scarsa conoscenza di quest'ultimi da parte dell'utente.
Loggato

aledl
Jr. Member
**
Posts: 69


Guarda Profilo
« Risposta #7 il: Ottobre 02, 2007, 14:11:15 »

Grazie mille ragazzi...infatti mi aveva incuriosito supercollider proprio per la sua immediatezze e per la facilità di generare algoritmicamente un gran numero di ugens (l'esempio di cinespasmon dimostra). In effetti il rischio è quello di perdersi in un labirinto di linguaggi e sintassi diversi e bloccarsi un attimo di fronte a tutte queste alternative...meglio approfondire una strada bene e poi magari spaziare. Certo la tentazione di teorizzare è forte perchè quando si hanno paradigmi compositivi ben precisi c'è sempre un po' la paura di affidarsi ad un linguaggio che non collimi esattamente con le proprie esigenze...escludendo il puro fascino di scoprire e studiare (il rischio è che diventi dispersività). Per tornare ad un discorso più tecnico approfondendo il discorso degli UDopcodes recursivi in csound (in pratica bolcchi di codice che possono assumere se stessi al proprio interno), ho trovato il modo di generare grandi quantità di parametri con poche linee di codice. Ad es: ho creato un UDO che genera un numero indefinito di subarmonici in modo molto semplice. Questo per ora mi basta, visto che trovo la sintassi di csound terribilmente accattivante e intuitiva (in poche parole semplicissima!), mentre super collider mi pare molto molto più tortuoso, almeno all'inizio forse.
Penso che il modo migliore comunque, ed è quello che mi voglio imporre adesso, sia quello di cominciare a CREARE e affrontare i vari problemi e le varie necessità man mano si presentano all'interno dello stesso linguaggio e una volta trovate cose veramente scomode o impossibili eventualmente cercare altrove per integrare o sostituire. Penso quindi di approfondire meglio csound...magari posterò le mie esperienze in un thread apposito (anche di csound si parla poco! anzi, sembra un po' passato di moda Grossa risata, secondo me perchè oggi si vede più l'elettronica nel senso live del termine  Wow)
Loggato
gianlucamodica
Jr. Member
**
Posts: 73


Guarda Profilo
« Risposta #8 il: Ottobre 12, 2007, 12:15:50 »

Ho trovato questa dispense in italiano molto interessante anche per chi non usa SC

http://www4.autistici.org/dhexform/ ( per adesso la lascio qui
Loggato
franz
AAA1
Hero Member
*
Posts: 829


Guarda Profilo WWW
« Risposta #9 il: Ottobre 12, 2007, 13:22:13 »

ho inserito il link ufficiale Occhiolino
Loggato

aledl
Jr. Member
**
Posts: 69


Guarda Profilo
« Risposta #10 il: Ottobre 13, 2007, 13:09:22 »

Ho trovato questa dispense in italiano molto interessante anche per chi non usa SC

http://www4.autistici.org/dhexform/ ( per adesso la lascio qui
mamma mia...che roba Scioccato, gli ho dato una occhiata veloce...mi sembra di non aver mai visto un "manuale" più approfondito ed esauriente Scioccato, ragazzi dategli un'occhiata...
grazie yan
Loggato
gianlucamodica
Jr. Member
**
Posts: 73


Guarda Profilo
« Risposta #11 il: Ottobre 13, 2007, 20:20:53 »

Non dovete ringraziare me,http://www.metaelectronica.blogspot.com/
é uno spazio appena aperto,ma cmnq gli articoli sono molto interessanti
Loggato
franz
AAA1
Hero Member
*
Posts: 829


Guarda Profilo WWW
« Risposta #12 il: Ottobre 13, 2007, 20:28:49 »

in realtà bisognerebbe ringraziare Andrea Valle Occhiolino

http://www.cirma.unito.it/andrea/

comunque ho messo il link diretto al manuale nella sezione
Loggato

gianlucamodica
Jr. Member
**
Posts: 73


Guarda Profilo
« Risposta #13 il: Ottobre 13, 2007, 20:43:52 »

 Wow In effeti hai ragione .....intendevo come risorsa da dove ho attinto....
Loggato
Pagine: [1] Stampa 
« precedente successivo »
Salta a:  


Login con username, password e lunghezza della sessione

Powered by MySQL Powered by PHP © Copyright 1996 - 2008 - ConTempoNet Edizioni Musicali ® - P.IVA: 05174251008
Tutti i diritti riservati - Tutti i marchi sono registrati -
È vietata la riproduzione, anche parziale, dei testi e delle immagini.
Powered by SMF 1.1.5 | SMF © 2006-2008, Simple Machines LLC
Traduzione Italiana a cura di SMItalia
XHTML 1.0 Valido! CSS Valido!