From: owner-sc-users-digest@lists.io.com (sc-users-digest) To: sc-users-digest@lists.io.com Subject: sc-users-digest V1 #357 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, September 19 2001 Volume 01 : Number 357 ---------------------------------------------------------------------- Date: Mon, 17 Sep 2001 00:37:17 -0700 (PDT) From: Arne Hanna <---@---.---> Subject: spawn question Try as I may, I can see no way to provide an initial delay for Spawn. Is there some kind of 'start at x' message that can be sent to spawn so that events commence spawning at some time other than zero? Any help in this regard would be greatly appreciated. Cheers Arne __________________________________________________ Terrorist Attacks on U.S. - How can you help? Donate cash, emergency relief information http://dailynews.yahoo.com/fc/US/Emergency_Information/ ------------------------------ Date: Mon, 17 Sep 2001 05:46:44 -0500 (CDT) From: "AUDIOSYNTH.COM" <---@---.---> Subject: Re: spawn question You can use the event count argument and return nil for the first event. On Mon, 17 Sep 2001, Arne Hanna wrote: > Try as I may, I can see no way to provide an initial > delay for Spawn. Is there some kind of 'start at x' > message that can be sent to spawn so that events > commence spawning at some time other than zero? > > Any help in this regard would be greatly appreciated. > > Cheers > Arne > > __________________________________________________ > Terrorist Attacks on U.S. - How can you help? > Donate cash, emergency relief information > http://dailynews.yahoo.com/fc/US/Emergency_Information/ > ------------------------------ Date: Mon, 17 Sep 2001 06:11:57 -0700 (PDT) From: Arne Hanna <---@---.---> Subject: Re: spawn question - --0-1620782470-1000732317=:45244 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline - --- "AUDIOSYNTH.COM" wrote: > > You can use the event count argument and return nil > for the first event. My apologies for not being more detailed in my description. In the context of my low budget drum machine, the timings of which are read cyclically from different arrays, returning nil for the first event doesn't solve the problem. I actually need to 'offset' one array against the other. I attach the code for clarity: Cheers Arne __________________________________________________ Terrorist Attacks on U.S. - How can you help? Donate cash, emergency relief information http://dailynews.yahoo.com/fc/US/Emergency_Information/ - --0-1620782470-1000732317=:45244 Content-Type: application/x-macbinary; name=spawnquestion Content-Transfer-Encoding: base64 Content-Description: spawnquestion Content-Disposition: attachment; filename=spawnquestion AA1zcGF3bnF1ZXN0aW9uAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAABURVhUUipjaAEAAhwBgAAAAAAAAAR/AAAF dLfMLD23zDABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACBgQGDAAAvLyB2YXJp YWJsZXMNdmFyIGtpY2tOb2lzZUVudiwga2lja1RvbmVFbnYsa2lja05leHRQ YXQsDWZpbGVuYW1lLCBzb3VuZCwgc2lnbmFsLHNuYXJlRW52LHNuYXJlTmV4 dFBhdDsNa2lja05vaXNlRW52ID0gRW52Lm5ldyhbMCwgMSwgMF0sIFswLjAw NSwwLjAwNV0sICdzaW5lJyk7DWtpY2tUb25lRW52ID0gRW52Lm5ldyhbMCwg MSwgMF0sIFswLjAwMSwwLjE2MF0sICdzaW5lJyk7DQ1raWNrTmV4dFBhdCA9 ICNbMSwzLDRdOyANDS8vIGFzc2lnbm1lbnRzDXNuYXJlTmV4dFBhdCA9ICNb OCw4LDgsMiwyLDIsMl07IC8vIEhvdyBkbyBJIG9mZnNldCB0aGlzID8NDXNu YXJlRW52ID0gRW52Lm5ldyhbMSwwXSwgMC4yNDEsICdzaW5lJyk7DWZpbGVu YW1lID0gIjpTb3VuZHM6c25hcmUuYWlmIjsNc291bmQgPSBTb3VuZEZpbGUu bmV3Ow1pZiAoc291bmQucmVhZChmaWxlbmFtZSksIA17DQlzaWduYWwgPSBz b3VuZC5kYXRhLmF0KDApOyANCQ0JeyANCQkvLyBzcGF3biBmb3Igc25hcmUN CSAJU3Bhd24uYXIoeyBhcmcgc3Bhd24sIGksIHN5bnRoOwkJCQ0JCQlzcGF3 bi5uZXh0VGltZSA9IHNuYXJlTmV4dFBhdC53cmFwQXQoaSkgKiAwLjEyNTsN CQkJc3ludGguY2hhbm5lbE9mZnNldCA9IGkgJSAyOw0JCQlpZiAoaS52YWx1 ZSA+IDAsIA0JCQl7CQ0NCQkJCVBsYXlCdWYuYXIoc2lnbmFsLCANCQkJCXNv dW5kLnNhbXBsZVJhdGUsIA0JCQkJMSwgMCwgMCwgc2lnbmFsLnNpemUtMiwg DQkJCQltdWw6IEVudkdlbi5hcihzbmFyZUVudikpDQkJCQkNCQkJfSwgeyBu aWwgfSk7DQkJCQ0JCX0sMikNCQkNCQkrDQ0JCS8vIHNwYXduIGZvciBraWNr DQkgCVNwYXduLmFyKHsgYXJnIHNwYXduLCBpLCBzeW50aDsNCQkJc3Bhd24u bmV4dFRpbWUgPSBraWNrTmV4dFBhdC53cmFwQXQoaSkgKiAwLjEyNTsNCQkJ c3ludGguY2hhbm5lbE9mZnNldCA9IGkgJSAyOw0NCQkJRlNpbk9zYy5hcigN CQkJWExpbmUua3IoMTYxLjUsIDI1LCAwLjIpLA0JCQlFbnZHZW4uYXIoa2lj a1RvbmVFbnYpKSANCQkJKyANCQkJDQkJCUZTaW5Pc2MuYXIoMTAwLA0JCQlC cm93bk5vaXNlLmFyKA0JCQlFbnZHZW4uYXIoa2lja05vaXNlRW52KSkpDQkJ CQ0JCX0sMik7DQkNCX0ucGxheTsNfSx7IChmaWxlbmFtZSArKyAiIG5vdCBm b3VuZC5cbiIpLnBvc3QgfSk7DQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAEAAAAFLgAABC4AAABG//8gBA4HAAAAAOSo//8ABA6F AAAAAOSn//8ABA+EAAAAAAAD//8ABBCxAAAAAAf+//8gBCOPAAAAAAf///8g BCddAMG1bOAG//8gBB3HAAAAAAAB//8ABB3vAAAAAAAB//8ABB4bAAAAAAAB //8ABB7nAAAAAAAC//8ABB9tAAAAAAAB//8ABB/zAAAAAAAC//8ABCA7AAAA AAAB//8ABCCDAAAAAAAC//8ABCGHAAAAAAAD//8ABCKLAAAAAODA//8ABDrB AAAAAOC///8EBDrRAMBpnOC+//8ABDrhAAAAAOC9//8ABDrxAAAAAPAAAAAE JgA1AAAAAAALAAkABAD3AAnAAAAAAAAAAAANAAsACQAEAHMACQAAAADAAAAA ABAACwAJAAQAPQAJAAAAAAAAAAAAdgALAAkABAAgAAkAAAAAwAAAAAB5AAsA CQAEAGUACQAAAAAAAAAAAJgACwAJAAQAWwAJAABwAAAAAAAAngALAAkABABz AAkAAAAAAAAAAACvAAsACQAEAGEACQAAAADAAAAAALIACwAJAAQAYQAJAAAA AAAAAAAA0QALAAkABAAwAAkAAHAAAAAAAADXAAsACQAEAGsACQAAAAAAAAAA APkACwAJAAQAMAAJwAAAAAAAAAABCAALAAkABAA7AAkAAAAAAAAAAAEwAAsA CQAEABUACQAAAADAAAAAATMACwAJAAQAAAAJAAAAAAAAAAABRgALAAkABAAA AAkAAHAAAAAAAAFMAAsACQAEAAAACQAAAAAAAAAAAVoACwAJAAQAAAAJYABg AGAAAAABbQALAAkABAAAAAkAAAAAAAAAAAF3AAsACQAEAAAACQAAAADAAAAA AYAACwAJAAQAAAAJAAAAAAAAAAAByAALAAkABAAAAAnAAAAAAAAAAAHbAAsA CQAEAAAACQAAAAAAAAAAAd4ACwAJAAQAAAAJAAAAAMAAAAAB4wALAAkABAAA AAkAAAAAAAAAAAHpAAsACQAEAAAACQAAAADAAAAAAewACwAJAAQAAAAJAAAA AAAAAAACewALAAkABAAAAAkAAAAAwAAAAAKCAAsACQAEAAAACQAAAAAAAAAA AscACwAJAAQAAAAJAAAAAMAAAAACzQALAAkABAAAAAkAAAAAAAAAAALpAAsA CQAEAAAACQAAAADAAAAAAu0ACwAJAAQAAAAJAAAAAAAAAAADBgALAAkABAAA AAnAAAAAAAAAAAMYAAsACQAEAAAACQAAAAAAAAAAAxsACwAJAAQAAAAJAAAA AMAAAAADIAALAAkABAD9AAkAAAAAAAAAAAMmAAsACQAEAP0ACQAAAADAAAAA AykACwAJAAQAAAAJAAAAAAAAAAADkgALAAkABAAAAAkAAAAAwAAAAAOZAAsA CQAEAAAACQAAAAAAAAAAA6EACwAJAAQA/QAJAAAAAMAAAAADpgALAAkABAAA AAkAAAAAAAAAAAO+AAsACQAEAAAACQAAAADAAAAAA8QACwAJAAQA/QAJAAAA AAAAAAAD5AALAAkABAAAAAkAAAAAwAAAAAPrAAsACQAEAAkACQAAAAAAAAAA A/cACwAJAAQABAAJAAAAAMAAAAAEAQALAAkABAD9AAkAAAAAAAAAAAQJAAsA CQAEAL0ACQAAAADAAAAABA8ACwAJAAQAAAAJAAAAAAAAAAAESwALAAkABAAJ AAlgAGAAYAAAAARaAAsACQAEAAAACQAAAAAAAAAAAAAAAAEAAAAFLgAABC4A AABGAKj0eCu0AAAAHABGAAFzdHlsAAAAElNPVVAAAAAeAID//wAAAAAAAAAA AID//wAABCoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= - --0-1620782470-1000732317=:45244-- ------------------------------ Date: Mon, 17 Sep 2001 20:53:29 +0200 From: sc <---@---.---> Subject: FW: Drummachine triggers SC..or doesn't - -- - ------ Weitergeleitete Nachricht Von: studiobeige@studiobeige.de Datum: Mon, 17 Sep 2001 20:52:46 +0200 An: Betreff: Drummachine triggers SC..or doesn't http://www.studiobeige.de ... .. . ... . . .http://www.echtzeitmusik.de > > > Hello > > I try to trigger differrent Sounds within a Voicer because I want to use my > drummachine with SC as Sound generator. I tried this but it doesn't work > properly. > > ( > // MIDI voicing. Notes on MIDI channel 1 trigger something. > e = Env.new([0, 0.1, 0.1, 0], [0.2, 0.1, 0.2], 'linear', 2); > Synth.play({ > Voicer.ar({ arg voicer, i, synth, deltaTime, channel, note, velocity; > > > if( note == 36 ,{EnvGen.ar(e, SinOsc.ar(440));} > ,{if( note == 40 ,{EnvGen.ar(e, SinOsc.ar(620));} > ,{if( note == 41 ,{EnvGen.ar(e, SinOsc.ar(700));})} > > > )}) > > > > > > > }, > 1, // one audio output channel > 1, // listen to MIDI channel 1 > 8 // max voices. If too many voices are triggered, then voice > stealing occurs. > ) > }) > > ) > > > > > > > Could anybody help me ? Nicholas > > > > > - ------ Ende der weitergeleiteten Nachricht ------------------------------ Date: Sun, 4 Mar 2001 18:01:39 -0500 From: felix <---@---.---> Subject: Re: FW: Drummachine triggers SC..or doesn't On Monday, September 17, 2001, at 02:53 PM, sc wrote: > ------ Weitergeleitete Nachricht > Von: studiobeige@studiobeige.de > Datum: Mon, 17 Sep 2001 20:52:46 +0200 >> it may not work properly because of midi problems, oms problems, etc. but regardless i suggest using a dictionary: i=IdentityDictionary.new; i.put(36, {EnvGen.ar(e,SinOsc.ar(440))}); etc. and within the voicer say; i.at(note).value; // find the function and value it thus, if you don't hit any registered note, the dictionary returns nil, and returns that to the spawn. a nil as the spawn's event will result in no sound. its also significantly more efficient. >> ( >> // MIDI voicing. Notes on MIDI channel 1 trigger something. >> e = Env.new([0, 0.1, 0.1, 0], [0.2, 0.1, 0.2], 'linear', 2); >> Synth.play({ >> Voicer.ar({ arg voicer, i, synth, deltaTime, channel, note, velocity; >> >> >> if( note == 36 ,{EnvGen.ar(e, SinOsc.ar(440));} >> ,{if( note == 40 ,{EnvGen.ar(e, SinOsc.ar(620));} >> ,{if( note == 41 ,{EnvGen.ar(e, SinOsc.ar(700));})} >> >> >> )}) >> >> >> >> >> >> >> }, >> 1, // one audio output channel >> 1, // listen to MIDI channel 1 >> 8 // max voices. If too many voices are triggered, then voice >> stealing occurs. >> ) >> }) >> >> ) >> >> >> >> >> >> >> Could anybody help me ? Nicholas >> >> >> >> >> > > ------ Ende der weitergeleiteten Nachricht > > > ------------------------------ Date: Mon, 17 Sep 2001 16:27:21 -0600 From: David Cottle <---@---.---> Subject: I'm stumped- if(... Hi, Why does this work: ( Synth.scope({ Spawn.ar({ var mouse, freq; mouse = MouseX.kr(-1.0, 1.0); freq = if(0 < mouse, 440, 220); SinOsc.ar(freq, mul: EnvGen.kr(Env.perc(0, 1)))}, 1, 1)}) ) And this doesn't. ( Synth.scope({ Spawn.ar({ var mouse, freq; mouse = MouseX.kr(-1.0, 1.0); freq = if(0 < mouse, {440}, {220}); SinOsc.ar(freq, mul: EnvGen.kr(Env.perc(0, 1)))}, 1, 1)}) ) The only difference is the "{440}, {220}" instead of "440, 220" - -- ><><><><><><><><><><><> David Cottle, computer music, contra, cottle@cerlsoundgroup.org "Are we not all familiar with the type of pseudo-sophistication that gives more importance to aversions than to preferences, that is more afraid of loving what is bad than disliking what is good?" ‹Roger Sessions ------------------------------ Date: Tue, 18 Sep 2001 01:05:08 +0200 From: Julian Rohrhuber <---@---.---> Subject: Re: I'm stumped- if(... >Hi, > >Why does this work: > >( > >Synth.scope({ > Spawn.ar({ > var mouse, freq; > mouse = MouseX.kr(-1.0, 1.0); > freq = if(0 < mouse, 440, 220); > SinOsc.ar(freq, mul: EnvGen.kr(Env.perc(0, 1)))}, 1, 1)}) >) > >And this doesn't. > >( > >Synth.scope({ > Spawn.ar({ > var mouse, freq; > mouse = MouseX.kr(-1.0, 1.0); > freq = if(0 < mouse, {440}, {220}); > SinOsc.ar(freq, mul: EnvGen.kr(Env.perc(0, 1)))}, 1, 1)}) >) > > >The only difference is the "{440}, {220}" instead of "440, 220" > > >-- >><><><><><><><><><><><> >David Cottle, computer music, contra, cottle@cerlsoundgroup.org > >"Are we not all familiar with the type of pseudo-sophistication that gives >more importance to aversions than to preferences, that is more afraid of >loving what is bad than disliking what is good?" -Roger Sessions see Examples: misconception... ------------------------------ Date: Sun, 4 Mar 2001 19:03:20 -0500 From: felix <---@---.---> Subject: Re: I'm stumped- if(... when the message 'if' is passed to a Boolean, it does what you are expecting: values the first or second argument depending. when the message 'if' is passed to a UGen, it does this: if { arg trueUGen, falseUGen; ^(this * (trueUGen - falseUGen)) + falseUGen; } 0 < mouse results in a signal that is either 0 or 1 depending. you could say if(SinOsc.ar(0.01), sounda, soundb); though it would be an abuse of the intentions of the method. btw. the fires are still burning here in nyc. i can still see the smoke. people are all still acting very very strange. On Monday, September 17, 2001, at 06:27 PM, David Cottle wrote: > Hi, > > Why does this work: > > ( > > Synth.scope({ > Spawn.ar({ > var mouse, freq; > mouse = MouseX.kr(-1.0, 1.0); > freq = if(0 < mouse, 440, 220); > SinOsc.ar(freq, mul: EnvGen.kr(Env.perc(0, 1)))}, 1, 1)}) > ) > > And this doesn't. > > ( > > Synth.scope({ > Spawn.ar({ > var mouse, freq; > mouse = MouseX.kr(-1.0, 1.0); > freq = if(0 < mouse, {440}, {220}); > SinOsc.ar(freq, mul: EnvGen.kr(Env.perc(0, 1)))}, 1, 1)}) > ) > > > The only difference is the "{440}, {220}" instead of "440, 220" > > > -- >> <><><><><><><><><><><> > David Cottle, computer music, contra, cottle@cerlsoundgroup.org > > "Are we not all familiar with the type of pseudo-sophistication that > gives > more importance to aversions than to preferences, that is more afraid of > loving what is bad than disliking what is good?" —Roger Sessions > > > ------------------------------ Date: Tue, 18 Sep 2001 02:09:11 +0200 (MSZ) From: martin stepanek <---@---.---> Subject: Re: FW: Drummachine triggers SC..or doesn't i tried something similar with a alesis-sr16 triggering sc. below is the code that worked for me. it uses an identity dictionary. one sound is transcribed from the jmc-examples. maybe it is of help for you. beware, my emailer put in some additional carriage returns. you will have to fix that first. martin ( // MIDI voicing. Notes on MIDI channel 1 trigger notes. var velocity, orc, dict, sound; orc = Orchestra[ Instrument.new( \bd, { arg velocity; e = Env.perc(0.001, 0.5, 1, -4); Pan2.ar(EnvGen.ar(e, Resonz.ar(SinOsc.ar(60, 0, velocity/127), 100, 0.3)), 0); }), Instrument.new( \sn, { arg velocity; e = Env.perc(0.001, 0.5, 1, -4); Pan2.ar( EnvGen.ar(e, LFPulse.ar(SinOsc.kr(3, 0, 100, 100), 0, velocity/127)), -1.0+2.0.rand); }), Instrument.new( \hh, { arg velocity; e = Env.perc(0.001, 0.5, 1, -4); Pan2.ar(EnvGen.ar(e, Resonz.ar(WhiteNoise.ar(8), 300 + 300.rand, 0.003, velocity/127).softclip), 0.5); }), Instrument.new( \hh2, { e = Env.perc(0.001, 0.5, 1, -4); Pan2.ar( EnvGen.ar(e, Resonz.ar(HPZ2.ar(Dust2.ar(4000, 2)), SinOsc.kr(2, 0, 400, 4000), 0.2)), SinOsc.ar(3, 0, 0.5)); }), Instrument.new( \rand, { e = Env.new([1, 1, 0],[3, 0.001]); // 3 second cut off envelope to end sound Pan2.ar( // resonant filter bank simulates resonant modes of bouncing objects Klank.ar( `[ Array.fill(4, { 400 + 8000.0.rand }), // resonant freqs Array.fill(4, { 1.0.rand }), // amplitudes Array.fill(4, { 0.01 + 0.1.rand }) // ring times ], // decays excite filter bank Decay.ar( // each impulse triggers a decay Impulse.ar( // impulses trigger decay envelope XLine.kr(5 + 2.0.rand2, 600, 4), // accellerating frequency XLine.kr(0.09, 0.000009, 4) // decaying impulse amplitude ), 0.001 // decay time - very short ) ), 1.0.rand2 // place each bouncer at a random position in the stereo field ) * // multiply by an envelope is necessary to make the sound end EnvGen.kr(e) }), Instrument.new( \sn2, { e = Env.perc(0.01, 0.5, 1, -4); Pan2.ar(EnvGen.ar( e, RLPF4.ar( //Mix.ar([Dust.ar(1000), WhiteNoise.ar]), Dust.ar(1000), Line.kr( 0.3 + 0.4.rand, 0.4, 2), 0.3 + 0.4.rand ) ) ) } ) ]; dict = IdentityDictionary[ 48 -> \bd, 49 -> \sn, 50 -> \hh, 51 -> \hh2, 52 -> \rand, 53 -> \sn2 ]; Synth.scope({ Voicer.ar({ arg voicer, i, synth, deltaTime, channel, note, velocity; sound = dict.at(note.asInt); if (sound.notNil, {orc.at(sound).ar(velocity)}) }, 2, // one audio output channel 1, // listen to MIDI channel 1 8 // max voices. If too many voices are triggered, //then voice stealing occurs. ) } //, nil, "test", 'AIFF', '16 big endian signed' ) ) ------------------------------ Date: Mon, 17 Sep 2001 21:25:30 -0600 From: "David Cottle" <---@---.---> Subject: Units Hi What is the unit of measure for window sizes, pixels or points? (As in Rect.newBy(120, 70, 200, 180)) - -- ><><><><><><><><><><><> David Cottle, computer music, contra, cottle@cerlsoundgroup.org "Backward composition is when one imagines a musical event, then goes about describing the circumstances and means necessary to produce that event. Forward composition is describing a set of circumstances and means for an event and discovering the resulting sound. The difference is political." ‹Author unknown ------------------------------ Date: Mon, 17 Sep 2001 23:11:13 -0600 From: Michael Theodore <---@---.---> Subject: Arrays of sample buffers question Hello, I'm trying to figure out how to have an array of, say , 20 sample buffers, and be able to PlayBuf them on the fly by referencing the array. In other words, I want to 1) read samples into buffers 2) collect buffers into a single array 3) play samples by sending at message to array from within Spawn I'd be a happy man if someone could post an example that shows how to do this, or point me towards relevant docs. None of my attempts are really worth posting I'm afraid. many thanks, Michael ------------------------------ Date: Tue, 18 Sep 2001 01:43:23 EDT From: DSPGuy@aol.com Subject: 24-bit files supported? Is 24-bit file I/O supported in SC2? When attempting to read a 24-bit Sound Designer II or AIFF file using inFile.readHeader, I get errors like this: ERROR: sample format size not supported When I try to write a 24-bit file using something like this, Synth.write(myFunc, 120, "HD0:myFile", 'SD2', '24 big endian signed'); I get this error: ERROR: unsupported output style/size for SD2 header Is 24-bit file I/O supported in SC3? Jerry ------------------------------ Date: Tue, 18 Sep 2001 03:05:24 -0700 (PDT) From: Arne Hanna <---@---.---> Subject: Re: Arrays of sample buffers question - --- Michael Theodore wrote: > Hello, > I'm trying to figure out how to have an array > of, say , 20 sample buffers, and be able to PlayBuf > them on the fly by referencing the array. > In other words, I want to > > 1) read samples into buffers > 2) collect buffers into a single array > 3) play samples by sending at message to array > from within Spawn Yowza. And while we're at it, can anyone tell me how to turn PlayBuf's looping off? Cheers Arne __________________________________________________ Terrorist Attacks on U.S. - How can you help? Donate cash, emergency relief information http://dailynews.yahoo.com/fc/US/Emergency_Information/ ------------------------------ Date: Tue, 18 Sep 2001 15:53:16 +0200 From: Paul Modler <---@---.---> Subject: motu 2408 + sc 2.2.11 doesnt work ? SC 2.2.11 doesnt seem to work with Motu 2408 on OS 9.1 SC2.2.10 does on the same machine SC 2.2.11 changes in File/Audio Setup the PReferences from Motu to Apple sound Manager and some some weired values Any help paul ------------------------------ Date: Tue, 18 Sep 2001 10:32:50 -0500 (CDT) From: "AUDIOSYNTH.COM" <---@---.---> Subject: Re: motu 2408 + sc 2.2.11 doesnt work ? SC 2.2.11 has a fix that saves the prefs when SC is not on the startup disk. Maybe you are not getting the correct preference file. Do Audio Setup in 2.2.11. On Tue, 18 Sep 2001, Paul Modler wrote: > SC 2.2.11 doesnt seem to work with Motu 2408 on OS 9.1 > > SC2.2.10 does on the same machine > > SC 2.2.11 changes in File/Audio Setup the PReferences from Motu to Apple sound > Manager and some some weired values > > Any help > paul > ------------------------------ Date: Tue, 18 Sep 2001 10:35:39 -0500 (CDT) From: "AUDIOSYNTH.COM" <---@---.---> Subject: Re: Units On Mon, 17 Sep 2001, David Cottle wrote: > Hi > > What is the unit of measure for window sizes, pixels or points? > > (As in Rect.newBy(120, 70, 200, 180)) pixels. On the Mac coordinate lines lie at the boundaries of pixels, not at their centers. ------------------------------ Date: Mon, 5 Mar 2001 11:56:51 -0500 From: felix <---@---.---> Subject: Re: 24-bit files supported? It is not supported in versions < 2.2.11 unfortunately I have not been able to get it to work on 2.2.11 either. it writes a file, but the file is screwed up. On Tuesday, September 18, 2001, at 01:43 AM, DSPGuy@aol.com wrote: > > Is 24-bit file I/O supported in SC2? When attempting to read a 24-bit > Sound Designer II or AIFF file using inFile.readHeader, I get errors > like > this: > > ERROR: sample format size not supported > > > When I try to write a 24-bit file using something like this, > > Synth.write(myFunc, 120, "HD0:myFile", 'SD2', '24 big endian > signed'); > > I get this error: > > ERROR: unsupported output style/size for SD2 header > > Is 24-bit file I/O supported in SC3? > > Jerry > > ------------------------------ Date: Tue, 18 Sep 2001 10:15:50 -0600 From: Michael Theodore <---@---.---> Subject: Scope problem? Hello. I'd still love to be referred to examples of sample buffers in an array or table of somekind. Here's another question: Why does this work: ( Synth.scope( { var sig, shape; sig = SinOsc.ar(440,0,1); shape = Env.triangle(4,0.2); EnvGen.ar(shape, sig); }) ) But this not? ( var sig, shape; sig = SinOsc.ar(440,0, 1); shape = Env.triangle(4, 0.2); Synth.scope( { EnvGen.ar (shape, sig) }); ) It doesn't seem like a scope problem. Must unit generators be defined within the Synth, and if so, why? thanks, Michael ------------------------------ Date: Tue, 18 Sep 2001 12:57:57 -0400 From: Andrei <---@---.---> Subject: random generation Is there a random number or pattern generating thing in SC which will behave like a tone row, meaning it will pick values out of a list, but won't repeat a value until it has gone through all the values in the list ? Andrei ------------------------------ Date: Tue, 18 Sep 2001 19:15:30 +0200 From: Julian Rohrhuber <---@---.---> Subject: Re: random generation >Is there a random number or pattern generating thing in SC which will >behave like a tone row, meaning it will pick values out of a list, but >won't repeat a value until it has gone through all the values in the list >? > >Andrei you can use array.scramble, and then index once through it. ------------------------------ Date: Tue, 18 Sep 2001 11:20:44 -0600 From: Michael Theodore <---@---.---> Subject: Re: Arrays of sample buffers question I think beating my head against sc is a form of therapy for me right now. I'm still too stunned to face the real world (let alone bummed that I'm not smoking a cigar in warmer climes...) In any case, here's an answer to my own question. I'm sure there's a more elegant way to do it, and would love to hear about it. My problem had to do with the same thing as my previous post. Some kind of scope thing with unit generators seemingly needing to be defined within synth that I don't understand. - -Michael //Put at least 2 soundfiles in your Sounds folder ( Synth.scope ({ var filename1, filename2, sound1, sound2, signal1, signal2, sigarray, sndarray, dispatch, dur1, dur2, durarray; filename1 = ":Sounds:floating_1"; sound1 = SoundFile.new; filename2 = ":Sounds:drumloop.aif"; //edit this path name to match what you have sound2 = SoundFile.new; if (sound1.read(filename1), { signal1 = sound1.data.at(0); }, { (filename1 ++ " not found.\n").post }); if (sound2.read(filename2), { signal2 = sound2.data.at(0); }, { (filename2 ++ " not found.\n").post }); dur1 = sound1.numFrames / 44100.0; //figure out duration of sample files dur2 = sound2.numFrames / 44100.0; sigarray = [signal1, signal2]; //create array of signals sndarray = [sound1, sound2]; //create array of soundfiles durarray = [dur1, dur2]; //create array of durations Spawn.ar( { var dispatch, shape; dispatch = 2.rand; //determine a location in both arrays shape = Env.new([0.001, 1, 1, 0.001], [0.01, durarray.at(dispatch) - 0.02, 0.01], 'linear'); EnvGen.ar ( shape, PlayBuf.ar(sigarray.at(dispatch), sndarray.at(dispatch).sampleRate, 1, 0, 0, sigarray.at(dispatch).size-2); )}, 1, 0.5 ) }) ) ------------------------------ Date: Tue, 18 Sep 2001 10:34:59 -0700 (PDT) From: Chad Kirby <---@---.---> Subject: Re: random generation Maybe this will give you some ideas... ( var rand, list, iList; list = [\a,\b,\c,\d,\e,\f,\g]; // your list of stuff here iList = []; // initialize index list used by rand function rand = { (iList.size == 0).if({ // if index list is empty, generate a new list of // random indexes iList = Array.series( list.size, 0, 1).scramble; }); // pop off the last random index, // return the list element in that slot list.at( iList.pop ) }; // test the function: 20.do({rand.value.postln}); ) Chad Kirby // Technical Coordinator for Digital Arts // CARTAH ckirby@u.washington.edu // 206.295.3592 ________ If I have seen farther than others, it is because I was standing on the shoulders of giants. Isaac Newton On Tue, 18 Sep 2001 at 19:15, Julian Rohrhuber wrote: > >Is there a random number or pattern generating thing in SC which will > >behave like a tone row, meaning it will pick values out of a list, but > >won't repeat a value until it has gone through all the values in the list > >? > > > >Andrei > > you can use array.scramble, and then index once through it. > > ------------------------------ Date: Tue, 18 Sep 2001 19:14:27 -0400 From: christian adam hresko <---@---.---> Subject: Re: Scope problem? Michael Theodore wrote: > Hello. I'd still love to be referred to examples of sample buffers > in an array or table of somekind. Here's another question: > > Why does this work: > ( > Synth.scope( { > var sig, shape; > sig = SinOsc.ar(440,0,1); > shape = Env.triangle(4,0.2); > EnvGen.ar(shape, sig); > }) > ) > > But this not? > > ( > var sig, shape; > sig = SinOsc.ar(440,0, 1); > shape = Env.triangle(4, 0.2); > Synth.scope( { EnvGen.ar (shape, sig) }); > ) > > It doesn't seem like a scope problem. Must unit generators > be defined within the Synth, and if so, why? > > thanks, > Michael try: ({ var sig, shape; sig = SinOsc.ar(440, 0, 1); shape = Env.triangle(4, 0.2); EnvGen.ar(shape, sig); }.scope; ) a unit generator must be installed in the synth because that's how james has things wired up. taking the second derivative with respect to y, christian ------------------------------ Date: Wed, 19 Sep 2001 12:17:03 +0100 From: Martin Robinson <---@---.---> Subject: Re: Arrays of sample buffers question hello, on 18/9/01 6:20 pm, it is said that Michael Theodore did write: > In any case, here's an answer to my own question. I'm > sure there's a more elegant way to do it, and would love > to hear about it. try this: ( Synth.scope({ var numSounds = 2; var loop = false; var filenames, sounds, signals, playbufs; filenames = Array.fill(numSounds, { GetFileDialog.new.path }); sounds = filenames.collect({ arg filename; var sound; sound = SoundFile.new; sound.read(filename); sound }); signals = sounds.collect({ arg sound; sound.data }); playbufs = signals.collect({ arg signal, i; var numChannels, duration, sampleRate, env; numChannels = signal.size; duration = signal.first.size; sampleRate = sounds.at(i).sampleRate; if(loop,{ PlayBuf.ar(signal, sampleRate, 1.0, 0, 0, duration ) },{ env = Env.linen(0.01, 0.98, 0.01, 1.0); Spawn.ar({ PlayBuf.ar(signal, sampleRate, 1.0, 0, 0, duration, EnvGen.kr(env, timeScale: duration/sampleRate ) ) }, signal.size, nil, 1) }) }); Mix.ar(playbufs)/numSounds }) ) m - -- ..>>>>Martin Robinson :: (Ex)tractor :: && ________ >>><<<_[sonic arts]_[middlesex university]_[en4 8ht] ______ ________________________________________________________________ ________________________________________________________________ >><<>>___t.+44 [0] 7970 405 903 // f.+44 [0] 7970 702 976 __ >><><>____e. _ ------------------------------ End of sc-users-digest V1 #357 ******************************