From: owner-sc-users-digest@lists.io.com (sc-users-digest) To: sc-users-digest@lists.io.com Subject: sc-users-digest V1 #380 Reply-To: sc-users Sender: owner-sc-users-digest@lists.io.com Errors-To: owner-sc-users-digest@lists.io.com Precedence: bulk sc-users-digest Wednesday, November 14 2001 Volume 01 : Number 380 ---------------------------------------------------------------------- Date: Sun, 11 Nov 2001 23:29:11 -0600 From: James McCartney <---@---.---> Subject: Re: Type conversion? on 11/11/01 10:24 PM, Michael Theodore at michael.theodore@colorado.edu wrote: > Hello, > I'm doing a process which first results in floats. The floats are > then sent a floor message, the results of which are > used as an index for an array. However, > floor seems to be returning a float, and not an integer, > which isn't what I'd expect, as the docs say float returns > the "next smaller integer". It returns a Float with an integer value. Use the asInteger method to convert to an Integer. - --- james mccartney james@audiosynth.com SuperCollider - a real time synthesis programming language for the PowerMac. ------------------------------ Date: Mon, 12 Nov 2001 16:03:36 +0000 From: Tim Sayer <---@---.---> Subject: Re: amplitude you've helped my understanding Felix many thanks, TiM ------------------------------ Date: Mon, 12 Nov 2001 18:43:55 -0500 From: newton armstrong <---@---.---> Subject: sc working group at princeton the supercollider working group at princeton will meet for the first time this wednesday. anyone is welcome. details can be found here: http://music.princeton.edu/~newton/group.html ------------------------------ Date: Tue, 13 Nov 2001 00:56:44 -0800 From: Garry Kling <---@---.---> Subject: OSC limits Hi James, all, Forgive me if this question has been asked/answered before, I can't seem to find any reference to it. What is the maximum OSC packet size for SC2? Is this likely to change in SC server/v3? I suppose this may depend on the OS, but I was wondering if there was any limit built into SC. I'm writing an interface from another application to SC, and I want to be able to check the packet to make sure it isn't too big for SC before sending. Thanks, Garry Kling - -- /* * Garry Kling * MAT UC Santa Barbara * kling007@earthlink.net * */ ------------------------------ Date: Tue, 13 Nov 2001 15:30:02 +0100 (CET) From: Giorgio Robino <---@---.---> Subject: Re: String Ensemble Hi Sekhar, thank you very match for your reply! I can't ear your sound now ... thanks for the italian comments ;-) as soon I will can try your code in to my mac I will reply. In the meantime I improoved the structure of the patch with more structural approach; but I have diffculties to reproduce a good string orchestral emulation; anyway i will lpost asap I invite all the SC-users to post them code into the list; I believe the direcy experience of all the user aids other! Giorgio > ========================== > Date: Fri, 09 Nov 2001 13:31:32 -0800 > Subject: String Ensemble > From: "C. Ramakrishnan" <---@---.---> > To: Giorgio Robino > ========================== > > > > Hi Giorgio. > > A couple months back you posted a patch approximating a string > ensemble and > invited modifications, right? > > I messed around with it briefly last week, I though I'd send > you my > modifications. I'm not totally satisfied with them, but I think > they hit at > some directions to explore for improvements. > > I also re-structured your patch to make it possible to try out > different > voices while the synth is running (in realtime). I hope the Italian > I used > to comment my patch is coherent (it's been a while...). > > Ciao! > > - sekhar > > -- > C. Ramakrishnan cramakrishnan@acm.org > > > > > > Allegato "string_ensemble.sc" > > // scegli una voce > > (// originale -- di Giorgio > v = > {arg f; > LPZ2.ar( > LPZ2.ar( > Mix.arFill(10, { > var ff; > ff = f * SinOsc.kr(exprand(4,6),0,0.008,1); > LFSaw.ar( > [ff * rrand(0.99,1.01), ff * rrand(0.99,1.01)], > 0.01 > ) > }) > ) > ); > } > ) > > (// il mio tentavio -- sperimenta coi parametri > v = > {arg f; > > var alto, basso, altaBassaScelta, nOscillatoriVoce; > > altaBassaScelta = 400; > nOscillatoriVoce = 5; > > alto = {LPZ2.ar( > Mix.arFill(nOscillatoriVoce, { > var ff; > ff = f * SinOsc.kr(rrand(4,6),0,0.008,1); > // O Blip -- mi piace Blip nei suoni alti, ma penso che > // Saw e' meglio nei suoni meno alti > Saw.ar( > [ff * rrand(0.99,1.01), ff * rrand(0.99,1.01)], > mul: 0.1 > ) > }) > )}; > basso = {LPZ2.ar( > Mix.arFill(nOscillatoriVoce, { > var ff; > ff = f * SinOsc.kr(exprand(4, 6), 0, 0.008, 1); > Formant.ar( > [ff * rrand(0.99, 1.01), ff * rrand(0.99, 1.01)], > 80, > 70, > mul: 0.1 > ) > }))}; > (f > altaBassaScelta).if(alto, basso); > } > > - --- Giorgio Robino http://www.giorgiorobino.com , mailto:giorgio.robino@giorgiorobino.com - --- DEEP LISTENINGS "ascolti profondi, the new music magazine" (rivista trimestrale di cultura musicale), vendita per solo per corrispondenza. Rivolgersi a Gianluigi Gasparetti, mailto:deeplist@tin.it - --- SUPERCOLLIDER is an Object Oriented Programming Environment for real-time audio and video processing. It is one of the finest and most versatile environments for signal processing and especially for creating music applications of all kinds, such as complete compositions, interactive performances, installations etc. It runs on Macintosh Power PC computers. The author of SuperCollider is James McCartney. He maintains a site at: http://www.audiosynth.com ------------------------------ Date: Wed, 14 Nov 2001 12:06:07 +0100 (CET) From: Giorgio Robino <---@---.---> Subject: patch: stringsTexture Hi all and sekhar in particular, here below my work (I will integrate sekhar ideas asap), I invite all SC coders to modify, improove & repost here the patchs! bye Giorgio ( // stringsTexture // by Giorgio Robino, 13/11/2001, for SC 2.2.11 // ("incredibily hale and hearty" after a terrible car accident the 11/11/2001) // // ho preso un suono base di James che mi piaceva ricondandomi // un suono orchestrale di archi lenti e ... // ho cercato di migliorare il suono base ma non ci sono riuscito. // ho studiato come fare tutto con Just Intonantion e mi sembra di esserci riuscito. // ho cercato di migliorare immagine stereo e riverbero adatto ma NON ci sono ancora riuscito. // ho cercato di strutturare la patch in modo funzionale creando funzioni riusabili. // NON sono riuscito ad usare synth.repeat per modificare dinamicamente i parametri // (ad esempio cambiare in run-time la probScala). // sto' cercando di far diventare la OverlapTexture una Pbind, ovvero un PATTERN. // scrivo tutto con synth.write perche' il mio PB1400 non ce la fa' in real-time. // INVITO A MODIFICARE QUESTA PATCH E RIPOSTARLA var fileName = "Macintosh HD:Desktop Folder:stringsTexture1.aif"; var fileLength = 300; var fadeIn = 5, fadeOut = 15; var weightFreqJI; var stringSingle; var stringsTexture; var aReverb; var nVoci; // numero di archi simultanea var notaBase; // nota fondamendale della tessitura: RE // propabilita' assegnata ai gradi della scala (modo MINORE): var probScala, pesiScala; var scala; var jiBas7limitScale, jiRobertRichScale, jiMaj7limitScale, jiMin7limitScale; var jiLaMonteYoungScale, jiDavidCanrightScale; // just intonation with a 7 limit tritone, // used by Robert Rich in "Geometry" and others works jiBas7limitScale = [1/1, 16/15, 9/8, 6/5, 5/4, 4/3, 7/5, 3/2, 8/5, 5/3, 9/5, 15/8]; jiRobertRichScale = [1/1, 16/15, 9/8, 6/5, 5/4, 4/3, 7/5, 3/2, 8/5, 5/3, 9/5, 15/8]; // just intonation major 5-limit jiMaj7limitScale = [1/1, 16/15, 9/8, 6/5, 5/4, 4/3, 45/32, 3/2, 8/5, 5/3, 16/9, 15/8]; // just intonation minor 5-limit jiMin7limitScale = [1/1, 25/24, 10/9, 6/5, 5/4, 4/3, 45/32, 3/2, 8/5, 5/3, 16/9, 15/8]; // just intonation pentatonic used by LaMonte Young in "dreams chords" ? jiLaMonteYoungScale = [1/1, 25/24, 26/25, 27/26, 4/3]; // just intonation pentatonic used by David Canright jiDavidCanrightScale = [1/1, 7/6, 4/3, 3/2, 7/4]; // probScala e' un vettore di pesi che indicano la probabilita' che la nota della // scala venga scelto; per convezione uso valore massimo: 1000, minimo: 0. probScala = [ // I II III IV V VI VII [700, 0, 100, 500, 0, 100, 0, 500, 0, 0, 0, 0], [700, 0, 400, 550, 0, 400, 0, 600, 400, 0, 400, 0], [700, 50, 400, 550, 50, 400, 50, 600, 400, 50, 400, 50], [200, 0, 100, 100, 0, 400, 0, 500, 300, 0, 100, 0], [200, 0, 100, 100, 0, 400, 0, 600, 300, 0, 100, 0], [100, 50, 400, 100, 0, 70, 0, 100, 0, 10, 0, 50], [ 50, 200, 50, 200, 50, 50, 50, 100, 300, 10, 100, 50], [100, 50, 400, 0, 200, 70, 0, 500, 0, 10, 0, 100], [500, 70, 400, 300, 0, 300, 10, 100, 300, 10, 80, 80] ]; /////////////////////////////////////////////////////////////////// // determina una frequenza random in base ad una intonazione giusta // weightFreqJI.value(notaBase, justScala, probScala) // weightFreqJI = { arg notaBase = 0, justScala, probScala; var scala12note, ottava, probOttava, frequenza; // 12 note nella scala // I:do II:re III:mi IV:fa V:sol VI:la VII:si scala12note = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]; // propabilita' assegnata ai gradi della scala, normalizza il vettore // per poi essere utilizzato dal metodo windex probScala = probScala.normalizeSum; // vettore che riporta il DO per le ottave scelte. ottava = [24, 36, 48, 60, 72, 84, 96, 108] + notaBase; // propabilita' assegnata all'ottava: // l'ottava bassa e quella alta hanno un po' meno chance probOttava = [2, 15, 20, 25, 20, 15, 15, 2].normalizeSum; // scelta casuale/polarizzata dell'ottava, // scelta casuale/polarizzata del grado della scala, // correzione della frequenza del grado della scala in JI frequenza = ottava.at(windex(probOttava)).midicps * justScala.at(windex(probScala)); }; ////////////////////////////////////////////////// // stringSingle.value(frequenza, nOscillatoriVoce) // stringSingle = { arg frequenza = 200, // frequenza fondamentale nOscillatoriVoce = 16; // numbero di oscillatori per costruire una voce var voceBase, voceFiltrata, voceStereo; var delta = 0.01; voceBase = Mix.arFill( nOscillatoriVoce, { var ff; ff = frequenza * SinOsc.kr(exprand(4,6), 0, 0.008, 1); LFSaw.ar([ff * rrand(1-delta,1+delta), ff * rrand(1-delta,1+delta)], 0.01) }); voceFiltrata = LPZ2.ar(LPZ2.ar(voceBase)); //voceStereo = Pan2.ar(voceFiltrata, rrand(-1.0, 1.0)) }; /////////////////////////////////////////////////// // stringsTexture.value(notaBase, scala, pesiScala, nVoci) // stringsTexture = { arg notaBase, scala, pesiScala, nVoci; var nOscillatoriVoce = 32; // esegue tessitura di archi s = OverlapTexture.ar( { stringSingle.value(weightFreqJI.value(notaBase, scala, pesiScala), nVoci, nOscillatoriVoce) }, { rrand ( nVoci/2, nVoci*4) }.value, { rrand ( nVoci/1, nVoci*4) }.value, { rrand ( nVoci/1, nVoci*3) }.value, 2); }; ////////////////////// // aReverb effect // aReverb.value(in) aReverb = { arg in; CombN.ar(in, 0.6, [0.6,0.5], 6, 1, in.reverse) //CombN.ar(in, 1.2, [1.2,1.1], 12, 1, in.reverse) }; /////////////// // Synth global // Synth.write ( { arg synth; // inizializza valori pesiScala = probScala.at(1); scala = jiRobertRichScale; nVoci = 8; notaBase = 2; // nota fondamendale della tessitura: RE // Stampa i dati della composizione { " fileName: " + fileName }.value.postcln; { " fileLength: " + fileLength }.value.postcln; { " randSeed: " + thisThread.randSeed }.value.postcln; { " voci: " + nVoci }.value.postcln; { " scala " + scala }.value.postcln; { " pesiScala: " + pesiScala }.value.postcln; { " nota base: " + notaBase }.value.postcln; // stringsTexture con riverbero ed un inviluppo per un finale sfumato. aReverb.value( stringsTexture.value(notaBase, scala, pesiScala, nVoci)) * EnvGen.kr(Env.linen(fadeIn, fileLength - (fadeIn + fadeOut), fadeOut)) }, fileLength, fileName); // fileName: Macintosh HD:Desktop Folder:stringsTexture.aif // fileLength: 300 // randSeed: -1980520301 // voci: 8 // scala [ 1, 1.06667, 1.125, 1.2, 1.25, 1.33333, 1.4, 1.5, 1.6, 1.66667, 1.8, 1.875 ] // pesiScala: [ 700, 0, 400, 550, 0, 400, 0, 600, 400, 0, 400, 0 ] // nota base: 2 // fileName: Macintosh HD:Desktop Folder:stringsTexture1.aif // fileLength: 300 // randSeed: 1757444688 // voci: 8 // scala [ 1, 1.06667, 1.125, 1.2, 1.25, 1.33333, 1.4, 1.5, 1.6, 1.66667, 1.8, 1.875 ] // pesiScala: [ 700, 0, 400, 550, 0, 400, 0, 600, 400, 0, 400, 0 ] // nota base: 2 ) - --- Giorgio Robino http://www.giorgiorobino.com , mailto:giorgio.robino@giorgiorobino.com - --- DEEP LISTENINGS "ascolti profondi, the new music magazine" (rivista trimestrale di cultura musicale), vendita per solo per corrispondenza. Rivolgersi a Gianluigi Gasparetti, mailto:deeplist@tin.it - --- SUPERCOLLIDER is an Object Oriented Programming Environment for real-time audio and video processing. It is one of the finest and most versatile environments for signal processing and especially for creating music applications of all kinds, such as complete compositions, interactive performances, installations etc. It runs on Macintosh Power PC computers. The author of SuperCollider is James McCartney. He maintains a site at: http://www.audiosynth.com ------------------------------ End of sc-users-digest V1 #380 ******************************