From: owner-sc-users-digest@lists.io.com (sc-users-digest) To: sc-users-digest@lists.io.com Subject: sc-users-digest V1 #283 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 Monday, April 30 2001 Volume 01 : Number 283 ---------------------------------------------------------------------- Date: Sat, 28 Apr 2001 19:25:45 +0000 From: Jem Finer <---@---.---> Subject: edit window + hello swiki An SC2 Mixer question : I've been trying to SEND values to a slider in an edit window of the Mixer : thought maybe it could be done via the instance variable called editWindow (like MixerVoice.editWindow.at(2).value = . . .) but cannot make this work - maybe because writing MixerVoice.editWindow is wrong . . . anyway I've tried all manner of things and I'm sure it's actually very simple . . . . . . so how does one do it ? hello swiki ; Would it be good if there was a place to put examples of all the Pattern classes - some seem a interesting yet mysterious and you swiki people seem to be on the case . . . cheers Jem ------------------------------ Date: Sun, 29 Apr 2001 00:32:40 +0200 From: Alberto de Campo <---@---.---> Subject: Re: edit window + hello swiki Hi Jem, Jem Finer wrote: > An SC2 Mixer question : > > I've been trying to SEND values to a slider in an edit window of the Mixer : > > thought maybe it could be done via the instance variable called editWindow > (like MixerVoice.editWindow.at(2).value = . . .) but cannot make this work - > maybe because writing MixerVoice.editWindow is wrong . . . anyway I've tried > all manner of things and I'm sure it's actually very simple . . . > > . . . so how does one do it ? Ugly, but gets you there: ( var mixerVolSliders; MixerPlayer.makeMixer; // make the mixer first if there is none yet. mixerVolSliders = MixerPlayer.mixer.views.select({ arg view; view.isKindOf(SliderView) }); mixerVolSliders.at(0).value_(0.2); ) Smoother: Find out which input will be used for the next instrument that starts. Make it a global var, then start the instrument. ( MixerPlayer.makeMixer; c = MixerPlayer.findFreeInput; Instrument.play(\dust, { Dust.ar(100) }); ) Then set the slider on input channel c anytime later. ( c.volumeSlider.value_(0); ) Or find your channel if it runs already: ( Instrument.play(\dust, { Dust.ar(100) }); ) ( c = MixerPlayer.inputs.detect({ arg input; input.name == "dust"; }).postln; ) ( c.volumeSlider.value_(0); ) Best, adc ------------------------------ Date: Sun, 29 Apr 2001 17:35:47 -0500 From: James McCartney <---@---.---> Subject: SCd5 now available. SC3d5 MacBinary: SC3d5 BinHex: Most of the changes in this version have been under the hood. only Plug is pollable. This is now enforced but was the case in earlier versions in SC3. Because buffers are now reused to improve cache performance and memory usage, 'poll' cannot rely on a ugen's output buffer having the correct contents. The Function send method now takes a processID parameter. All messaging between the two virtual machines happens via object archives. deepCopy, deepBecomeImmutable, and deepFreeze have now been made into primitives for efficiency. read any file as a sound file. WavesampleBank readRaw method will read any data file as a sound file. You specify the sample format and number of channels and the data gets interpreted as such and loaded into RAM. random number seeding. Seeding threads is now easier and seeds get inherited to child threads. Now also Groups can be seeded so that all ugens that generate random values can be reseeded. This makes it possible to reproduce a randomly generated sound exactly. Plug in development: Most of the graphical primitives have been made into plug ins. Codewarrior projects and source code is provided. Plug ins will need to be recompiled. The PyrObject structure has been simplified. getsym() now requires an argument for the virtual machine's globals. If you are at compile time you should use gMainVMGlobals, at run time you should use the VMGlobals for the virtual machine you are in. Finalization is now implemented via Finalizer objects which can be dealt with in a more efficient way by the garbage collector. Bugs: Some of the image synth examples cause a delayed crash. Being investigated. Some bugs reported on the sc-users list have not yet been fixed. ------------------------------ Date: Sun, 29 Apr 2001 15:48:45 -0700 From: Mark Polishook <---@---.---> Subject: a job for Pswitch1? ... Is there a pattern-based way to change from \instrument1 to \instrument2 30 seconds into the piece - and re-start the \degree pattern (Prewrite) and the \dur pattern (Pseq) at the same time? ***** ( var rewriteLevel = 23, orc, instrument1, instrument2; orc = Orchestra[ /* Instrument( \instrument1, { some code } ) Instrument( \instrument2, { some more code } ) */ ]; d = IdentityDictionary[ 0 -> [0, 1, 2], 1 -> [1, 0, 2], 2 -> [2, 1, 0] ]; Pbind( \degree, Prewrite(Pseq([0, 1, 2], 1), d, rewriteLevel), \dur, Pseq([0.1, 0.15, 0.075], 1), \instrument, Pseq([instrument1, instrument2]) ).play ) ***** thanks, mark ------------------------------ Date: Sun, 29 Apr 2001 18:58:43 -0700 (PDT) From: crux xial <---@---.---> Subject: Re: SCd5 now available. > Bugs: > Some bugs reported on the sc-users list have not yet been > fixed. btw. add this to the list: when using the File.getFileDialog hitting the enter key results in returning 'cancel', not selecting the currently selected path as is normal. and don't forget .numFramesInFile returns wrong for 32float files! thanks! ::crucial-systems.com:: _______________________________________________________ Send a cool gift with your E-Card http://www.bluemountain.com/giftcenter/ ------------------------------ Date: Mon, 30 Apr 2001 04:47:12 +0200 (CEST) From: integer@www.god-emil.dk Subject: [ot] [!nt] \n2+0\ once upon a time ... once upon a time a single-celled organism swallowed a photosynthetic bacterium and created the first plant cell. the bacterium became a chloroplast converting light into energy on behalf of the plant - and the rest is history. other single-celled organisms just kept on swallowing. single-celled algae swallowed primeval plant cells; these were in turn swallowed by larger single-celled organisms creating microscopic russian dolls. > = shl b thouzandz da + da. u undrztnd = dze netuork yes. i understand. live architecture. i want to give life to your celz. fertilize them! want to be your gardener. want to be your roots. want to biosculpt your tomatoes. stories exist in stories. lives exist in lives. i like it. sounds very feasible as well. 1x lovely experiment in cyberbotany. and the rest is history. *n - bkausz u uant !t tzo badl! u kan tazte !t. n* - bkausz dzere = 0+0 t!me az dze prezent. *n - bkausz u l!ke 2 ut!l!sz ur noodle. 1001 ventuze.nn /_/ / \ \/ i should like to be a human plant \/ __ __/ i will shed leaves in the shade \_\ because i like stepping on bugs *--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*-- Netochka Nezvanova nezvanova@eusocial.com http://www.eusocial.com http://www.biohakc.com http://www.ggttctttat.com/! I am not Greta Garbo!!! http://steim.nl/leaves/petalz *--*--*--*--*--*--*--*--*--*--*--*--*-- --*--*--*--*--*--*-- ------------------------------ Date: Mon, 30 Apr 2001 15:36:50 +0200 From: julisn <---@---.---> Subject: Re: + hello swiki Jem Finer wrote:hello swiki ; > > Would it be good if there was a place to put examples of all the Pattern > classes - some seem a interesting yet mysterious and you swiki people seem > to be on the case . . . > > cheers > > Jem I made a page dedicated to this: http://swiki.hfbk.uni-hamburg.de:8080/MusicTechnology/221 not much on there yet - please paste in anything that might be useful. ------------------------------ Date: Mon, 30 Apr 2001 08:29:34 -0700 From: cramakrishnan@acm.org Subject: Fun Patch - ------- =_aaaaaaaaaa0 Content-Type: text/plain; charset="us-ascii" Content-ID: <90341.988644537.1@soda.csua.berkeley.edu> Hey guys. I was listening to a Coltrane record this weekend which got me noodling in SC and I came up with this patch. Can anyone name the tune? - - sekhar (The Mac version) - ------- =_aaaaaaaaaa0 Content-Type: text/plain; charset="us-ascii" Content-ID: <90341.988644537.2@soda.csua.berkeley.edu> (// Fun Patch var pattern, subpattern, reverb, envwah, smear; var fxpattern1, protoEvent; var seq, dur; reverb = { arg in; 4.do({ in = AllpassN.ar(in, 0.04, [0.01.rand + 0.02, 0.01.rand + 0.02], 3); }); in}; envwah = { arg in; // wah Normalizer.ar( RLPF.ar(in, Amplitude.kr(in, mul: XLine.kr(100, 20000, 24), add: 100), 0.15 ), 0.3, 0.01 ).softclip * 0.7; }; smear = { arg in; a = Pseq([0.001, 0.01, 0.01, 0.03, 0.05, 0.07, 0.09]); a = a ++ Pseq([0.1], inf); a = a.asStream; a = Sequencer.kr(a, LFPulse.ar(0.05)); 8.do({ in = AllpassA.ar(in, 0.4, [a.rand + a*2, a.rand + a*2], 3); }); in }; // The A section seq = Pseq(#[69, 76, 72, 74]); dur = Pseq(#[0.5, 0.5, 0.5, 1.5]); seq = seq ++ Pseq(#[72, 74, 69]); dur = dur ++ Pseq(#[0.75, 0.75, 1.5]); seq = Pseq([seq], 2); dur = Pseq([dur], 2); a = Pbind( \dur, dur, \midinote, seq ); // The B section seq = Pseq(#[67, 67, 71, 67]); dur = Pseq(#[0.5, 0.5, 0.5, 1.5]); seq = seq ++ Pseq(#[64, 67, 69]! ); dur = dur ++ Pseq(#[0.75, 0.75, 1.5]); seq = Pseq([seq], 2); dur = Pseq([dur], 2); b = Pbind( \dur, dur, \midinote, seq ); // The C section seq = Pseq(#[69, 81, 79, 76]); dur = Pseq(#[0.5, 0.5, 0.5, 1.5]); seq = seq ++ Pseq(#[74, 72, 69]); dur = dur ++ Pseq(#[0.75, 0.75, 1.5]); seq = Pseq([seq], 2); dur = Pseq([dur], 2); c = Pbind( \dur, dur, \midinote, seq ); subpattern = Pseq([a,b,c,b]); fxpattern1 = Ppar([ Padd(\ctranspose, [-5,0,7], Pfx( Pn(subpattern, 3), envwah ) ), Padd(\ctranspose, [-17, -24], Pmul(\stretch, 3.0, Pfx( subpattern, reverb ) ) ) ]); protoEvent = Event.protoEvent.make({ ~tempo = 1.7; ~amp = 0.2; ~ctranspose = -6; ~legato = 0.2; }); pattern = Pbindf( \pan, Pfunc({ 1.0.rand2 }), Pfx( Pseq([fxpattern1], inf), smear ) ); Synth.play(pattern.asUGenFunc(protoEvent,2)) ) - ------- =_aaaaaaaaaa0 Content-Type: text/plain; charset="us-ascii" Content-ID: <90341.988644537.3@soda.csua.berkeley.edu> (The text version) - ------- =_aaaaaaaaaa0 Content-Type: text/plain; charset="us-ascii" Content-ID: <90341.988644537.4@soda.csua.berkeley.edu> (// Fun Patch var pattern, subpattern, reverb, envwah, smear; var fxpattern1, protoEvent; var seq, dur; reverb = { arg in; 4.do({ in = AllpassN.ar(in, 0.04, [0.01.rand + 0.02, 0.01.rand + 0.02], 3); }); in}; envwah = { arg in; // wah Normalizer.ar( RLPF.ar(in, Amplitude.kr(in, mul: XLine.kr(100, 20000, 24), add: 100), 0.15 ), 0.3, 0.01 ).softclip * 0.7; }; smear = { arg in; a = Pseq([0.001, 0.01, 0.01, 0.03, 0.05, 0.07, 0.09]); a = a ++ Pseq([0.1], inf); a = a.asStream; a = Sequencer.kr(a, LFPulse.ar(0.05)); 8.do({ in = AllpassA.ar(in, 0.4, [a.rand + a*2, a.rand + a*2], 3); }); in }; // The A section seq = Pseq(#[69, 76, 72, 74]); dur = Pseq(#[0.5, 0.5, 0.5, 1.5]); seq = seq ++ Pseq(#[72, 74, 69]); dur = dur ++ Pseq(#[0.75, 0.75, 1.5]); seq = Pseq([seq], 2); dur = Pseq([dur], 2); a = Pbind( \dur, dur, \midinote, seq ); // The B section seq = Pseq(#[67, 67, 71, 67]); dur = Pseq(#[0.5, 0.5, 0.5, 1.5]); seq = seq ++ Pseq(#[64, 67, 69]); dur = dur ++ Pseq(#[0.75, 0.75, 1.5]); seq = Pseq([seq], 2); dur = Pseq([dur], 2); b = Pbind( \dur, dur, \midinote, seq ); // The C section seq = Pseq(#[69, 81, 79, 76]); dur = Pseq(#[0.5, 0.5, 0.5, 1.5]); seq = seq ++ Pseq(#[74, 72, 69]); dur = dur ++ Pseq(#[0.75, 0.75, 1.5]); seq = Pseq([seq], 2); dur = Pseq([dur], 2); c = Pbind( \dur, dur, \midinote, seq ); subpattern = Pseq([a,b,c,b]); fxpattern1 = Ppar([ Padd(\ctranspose, [-5,0,7], Pfx( Pn(subpattern, 3), envwah ) ), Padd(\ctranspose, [-17, -24], Pmul(\stretch, 3.0, Pfx( subpattern, reverb ) ) ) ]); protoEvent = Event.protoEvent.make({ ~tempo = 1.7; ~amp = 0.2; ~ctranspose = -6; ~legato = 0.2; }); pattern = Pbindf( \pan, Pfunc({ 1.0.rand2 }), Pfx( Pseq([fxpattern1], inf), smear ) ); Synth.play(pattern.asUGenFunc(protoEvent,2)) ) - ------- =_aaaaaaaaaa0 Content-Type: text/plain; charset="us-ascii" Content-ID: <90341.988644537.5@soda.csua.berkeley.edu> - -- C. Ramakrishnan cramakrishnan@acm.org - ------- =_aaaaaaaaaa0-- ------------------------------ Date: Mon, 30 Apr 2001 10:02:31 -0600 From: "David Cottle" <---@---.---> Subject: Re: Fun Patch Very nice. > // The B section > seq = Pseq(#[67, 67, 71, 67]); > dur = Pseq(#[0.5, 0.5, 0.5, 1.5]); > seq = seq ++ Pseq(#[64, 67, 69]! Should have a semi-colon instead of a ! > seq = seq ++ Pseq(#[64, 67, 69]; ------------------------------ Date: Mon, 30 Apr 2001 09:38:57 -0700 From: cramakrishnan@acm.org Subject: Re: Fun Patch "David Cottle" writes: > Very nice. > > > // The B section > > seq = Pseq(#[67, 67, 71, 67]); > > dur = Pseq(#[0.5, 0.5, 0.5, 1.5]); > > seq = seq ++ Pseq(#[64, 67, 69]! > > Should have a semi-colon instead of a ! > > > seq = seq ++ Pseq(#[64, 67, 69]; Doh! It's correct in the "text" version, but didn't come out right in the "Mac" version. I should have told MIME that the Mac version was a binary instead of plain text... that's what I get for using a command-line emailer instead of Eudora or Outlook or something. - -sekhar - -- C. Ramakrishnan cramakrishnan@acm.org ------------------------------ Date: Mon, 30 Apr 2001 13:56:04 -0500 From: James McCartney <---@---.---> Subject: OS X simple demo app For those who have any interest in developing your own audio apps for MacOSX, I have made a small Cocoa + CoreAudio demo project which you can get from: This is a simple sinewave oscillator controlled by GUI sliders. Thanks to Cocoa it takes very few lines of code. This program shows how to get audio out of OS X in as few lines as possible, it is not a "how to do everything you ever wanted to do with CoreAudio" demo. - --- james mccartney james@audiosynth.com SuperCollider - a real time synthesis programming language for the PowerMac. ------------------------------ Date: Mon, 30 Apr 2001 23:29:18 -0400 From: christian adam hresko <---@---.---> Subject: Re: OS X simple demo app James McCartney wrote: > For those who have any interest in developing your own audio apps for > MacOSX, I have made a small Cocoa + CoreAudio demo project which you can get > from: > > > > This is a simple sinewave oscillator controlled by GUI sliders. > Thanks to Cocoa it takes very few lines of code. > > This program shows how to get audio out of OS X in as few lines as possible, > it is not a "how to do everything you ever wanted to do with CoreAudio" > demo. > very cool. i've yet to dig into all these apple SDKs but i'm pretty psyched about 'cocoa.' just one more week till freedom... (and time to actually do things that i consider productive) cheers, christian - -- "realize that being copied means being alike" ------------------------------ End of sc-users-digest V1 #283 ******************************