From: owner-sc-users-digest@lists.io.com (sc-users-digest) To: sc-users-digest@lists.io.com Subject: sc-users-digest V1 #299 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 Tuesday, June 5 2001 Volume 01 : Number 299 ---------------------------------------------------------------------- Date: Sat, 02 Jun 2001 16:40:53 -0400 From: Christian Adam Hresko <---@---.---> Subject: Re: impending SFP refactoring / RequestForComments /USB DSPGuy@aol.com wrote: > Check this out: > > http://www.usb-audio.com/asio.html > > It describes an ASIO driver for USB audio devices that has only 7 ms of > latency. Has anyone tried this? > > Jerry has anyone had any success with a USB audio interface? i'd love to get the MOTU firewire interface, but that's just not going to happen for the time being. so i need a way to get audio (stereo... i don't need 4 or 8 inputs) into my powerbook in a cost efficient manner. the ASIO support seems like USB audio isn't going to flop like many predicted, but regardless, i just want a simple interface. i'm still not sure why apple 'killed' the 1/8" input jack on 'newer' powerbooks. even if the quality isn't the best, it sure beats the hell out of this stupid mic next to the speaker setup they have going. suggestions, comments? cheers, christian ------------------------------ Date: Sat, 02 Jun 2001 16:04:04 -0500 From: James McCartney <---@---.---> Subject: FW: BOUNCE Klank docs wrong... - ------- Date: Thu, 31 May 2001 21:10:03 -0400 Subject: Klank docs wrong... From: "crucial" <---@---.---> To: scusers they state that freqScale etc. are set at initialisation time, but you can in fact freely modulate them in sc.2.10 _____(( http://crucial-systems.com _________________))_______ ------------------------------ Date: Sat, 02 Jun 2001 19:43:37 -0400 From: krakowiak@sympatico.ca Subject: Audiowerk card hello! first of all thanks for all answers to my "sc tutorial" question. second, does anybody have an Audiowerk 8 card working under sc2? ------------------------------ Date: Sun, 03 Jun 2001 00:53:50 +0000 From: Martin Robinson <---@---.---> Subject: Re: Audiowerk card yes. it works under ASIO ... on a good day ... but for less than a day or so (leaving an installation running for a number of hours results in distortion, can't remember the reason - the max list has some info). opinion: useful if you have one, don't buy one if you haven't > second, does anybody have an Audiowerk 8 card working under sc2? > I tested 16 outputs with two cards successfully (still only two inputs) but you need to sync them from on dig-out to dig-in Martin - -- ..>>>>Martin Robinson :: (Ex)tractor :: && ________ >>><<<_[sonic arts]_[middlesex university]_[en4 8ht] ______ ________________________________________________________________ ________________________________________________________________ >><<>>___t.+44 [0] 7970 405 903 // f.+44 [0] 7970 702 976 __ >><><>____e. _ ------------------------------ Date: Sun, 3 Jun 2001 18:57:35 +0200 From: Martin Stepanek <---@---.---> Subject: SC and MIDI I know, MIDI has got some bad smell on this list but sorry, i-m dependent on it to integrate SC into my live-setup. Anybody got a way to sync SC-Patches via MIDI to external sequencers (by incoming note-ons via Voicer for example?). SC as a Sync-Master via MIDIOut seems to be no option since i-m even not able to send ANY Midi-Data properly from SC. My test-Code generates some MIDI-Data but if it should send a note-on every second, it does it only every 12th or 15th time. i seem to make something totally wrong here. ( Synth.play({ thisSynth.repeat(0, 1, { MIDIOut(0).noteOn(1, 64, 64); "Out, out, brief candle!".postln}); Plug.ar(0); }) ) best wishes, martin stepanek Postmodernism is German Romanticism with Better Special Effects ~Jeff Keuss~ ------------------------------ Date: Sun, 03 Jun 2001 18:16:28 +0100 From: eric_hard_jams <---@---.---> Subject: Re: SC and MIDI you lot are a bunch of cunts i'd love to torture you all. :) ------------------------------ Date: Sun, 03 Jun 2001 12:42:34 -0500 From: James McCartney <---@---.---> Subject: Re: SC and MIDI > From: Majordomo@lists.io.com > Subject: Majordomo results: > >>>>> approve XXXXXXXXXX unsubscribe sc-users eric_hard_jams@btinternet.com > Succeeded. >>>>> >>>>> - --- james mccartney james@audiosynth.com SuperCollider - a real time synthesis programming language for the PowerMac. ------------------------------ Date: Sun, 03 Jun 2001 19:52:07 +0200 From: Hairi <---@---.---> Subject: Re: Turtle ciao julian, very nice turtles , but i could not get the ants to compile a variable 'array' results undefined hairi Julian Rohrhuber wrote: > Now there is an updated version of Ants and Turtle on the swiki: > http://swiki.hfbk.uni-hamburg.de:8080/MusicTechnology/133 > > I think the Ant interface is now fairly clear design, so it can be used > for various purposes. If you have any hints for improvement, > especially about the way it is implemented, please let me know. > Turtle is still in a state of change but works fine (it's not so easy > to get all the advantages of a formal language into an object > oriented concept...) > > best whishes, > Julian Rohrhuber ------------------------------ Date: Sun, 03 Jun 2001 13:00:55 -0500 From: James McCartney <---@---.---> Subject: Re: SC and MIDI on 6/3/01 11:57 AM, Martin Stepanek at a9305560@unet.univie.ac.at wrote: > I know, MIDI has got some bad smell on this list but sorry, i-m dependent > on it to integrate SC into my live-setup. No, I just joke about it. Better MIDI support will be in future versions. I will look into what the problem here is.. SC is not a good sync source, because it's MIDI output timing granularity is dependant on the sound hardware buffer size. - --- james mccartney james@audiosynth.com SuperCollider - a real time synthesis programming language for the PowerMac. ------------------------------ Date: Sun, 03 Jun 2001 12:19:12 -0600 From: "David Cottle" <---@---.---> Subject: Re: SC and MIDI Hi, > I know, MIDI has got some bad smell on this list but sorry, i-m dependent > on it to integrate SC into my live-setup. On the contrary, I love working with SC and MIDI. This was one of the best selling points; it's one of the first programs I've seen that will do everything: real time digital synthesis, concrete manipulation, and MIDI composition. There used to be a pretty sharp division between analogue composers and computer assisted composers. When I approach a project I often have to first ask, is this an orchestration/composition (creating interesting sounds) or a computer assisted composition (using the computer to crunch numbers and complex ideas). In the second case, MIDI is perfect, because I really don't want to be bothered with designing patches. I just want notes. The works are eventually performed on a MIDI driven grand piano. The computer is the performer. ------------------------------ Date: Sun, 03 Jun 2001 14:15:03 -0600 From: Michael Theodore <---@---.---> Subject: Pattern questions, change ringing Greetings, I just started learning Supercollider, and my first thought is "Why didn't I start a couple of years ago!" What a fascinating and extraordinarily thoughtful landscape. I'm just blown away. I bow in appreciation for this stunning work, and thrill at the possibilities.... Now a couple of questions. I've been through the pattern docs, but can't figure out some simple things (mostly stuff that I'm used to doing from Common Music land). 1) An example of what I'd like to do: Set up two patterns, such as 1, 2, 3, 4, 5 and 10, 20, 30. Have these two patterns cycle endlessly, but draw variable amounts of items on each iteration. For instance, (1 2 3 4 5 for 3) (10 20 30 for 2) would yield: 1 2 3 10 20 4 5 1 30 10 2 3 4 20 30 , etc or (1 2 3 4 5 for ( 1 2 3)) (10 20 30 for 2) 1 10 20 3 4 30 10 5 1 2 20 30, etc I can't figure out the "for" part 2) Given the resultant stream above, how would one repeat select amounts (repeat ( ( 1 2 3 4 5 for 3) (10 20 30 for 2) for 5) 1) //ie, one repeat 1 2 3 10 20 1 2 3 20 4 5 1 30 10 4 5 1 30 10, etc. Or another, simpler example: (repeat (1 2 3 4 5 for 3) 1): 1 2 3 1 2 3 4 5 1 4 5 1 2 3 4 2 3 4, etc In other words, how does one simply store and then repeat previous stream values? 3) Finally, has anyone already implemented change ringing patterns in SC? I'd love to see how this is done. I've included Common Music code below to show an approach in another language. many thanks, Michael ;; We implement change ringing by passsing the appropriate changes to the ;;; rotation pattern. These rotation changes affect just the first two ;;; change value numbers, ie. the start index and the stepping increment of ;;; the rotation. Change ringing rotates (almost always) by pairs, so the ;;; step increment between rotations is generally 2. The start index is ;;; (almost always) the mod 2 cycle. The basic changes for even bell hunting ;;; is therefore a cycle of two changes: (items (0 2) (1 2)). This pattern ;;; is called the Plain Hunt. Plain Hunting causes a set of n elements to ;;; repeat after 2n changes, or n times through our cycle. Here is Plain Hunt ;;; Minumus (4 elements A B C D); X marks the rotations. ;;; ;;; Plain Hunt Minimus ;;; A B C D ;;; X X ;;; B A D C ;;; X ;;; B D A C ;;; X X ;;; D B C A ;;; X ;;; D C B A ;;; X X ;;; C D A B ;;; X ;;; C A D B ;;; X X ;;; A C B D ;;; X ;;; A B C D ;;; (defprop plain-hunt :item-expand t) (defprop dodge :item-expand t) (defprop plain-bob :item-expand t) (defprop call-bob :item-expand t) (defprop call-single :item-expand t) (defprop grandsire :item-expand t) ;;; ;;; Plain Hunt changes: start=cycle(0,1) and step=2. ;;; For n elements, this process brings a pattern back to its original ;;; form after 2*n changes, which we look at as n repetitions of ;;; cycle(0,1) ;;; (defun plain-hunt () (items (0 2) (1 2))) ;;; ;;; Plain Bob builds on the Plain Hunt and is n-1 repetions of cycle(0,1) ;;; followed by a "dodge" on the nth: cycle(0,2), wich causes the rotation ;;; to start at the 2nd index instead of the first, this stops the return ;;; of the pattern, which finally repeats after 2n*(n-1) changes. ;;; (defun plain-bob (n) (items (items (plain-hunt) for (1- n)) (dodge 2))) (defun dodge (start &optional (step 2)) ;; returns a "dodged" cycle, ie instead of 0,1 its 0,x (make-item-stream 'items 'cycle (list '(0 2) (list start step)))) ;;; ;;; Call Bob builds on Plain Bob. It's n-2 repitions of Plain Bob ;;; followed by a plain bob whose dodge is different: cycle(1,3). The ;;; total number of changes become 3*(2n*(n-1)). So for 6 bells ;;; (Call Bob Minumus), the pattern repeats after 3*60 or 180 changes. ;;; (defun call-bob (n) (items (items (plain-bob n) for (- n 2)) (items (items (plain-hunt) for (1- n)) (dodge 1 3)))) ;;; ;;; ;;; Call Single builds on Call Bob, but the very last dodge of 1,3 is ;;; replaced by a rotation of just the last two elements, which causes ;;; the process to double (360 changes for 6 bells). If call-single were ;;; itself doubled with another single then all n! possible rotations ;;; would be made, ie 720 changes for 6 bells, 720=6*5*4*3*2*1 ;;; (defun call-single (n) (items (items (call-bob n) for 2) (items (items (plain-bob n) for (- n 2)) ;; the third call-bob is the single (items (items (plain-hunt) for (1- n)) (dodge (- n 2)))))) ;;; ;;; Grandsire rotates an odd number of Bells ;;; (defun grandsire (n) (items (0 3) (items (items (1 2) (0 2)) for (1- n)) (1 2))) ------------------------------ Date: Sun, 3 Jun 2001 22:20:28 +0200 From: Martin Stepanek <---@---.---> Subject: Re: SC and MIDI >I will look into what the problem here is.. > hm, with tyamasas code i was able to generate a constant flow of midi-notes (thank you, tyamasa!). so the problem lies in the code i posted. maybe it-s thisSynth.repeat? syncing a sequencer in my nord modular to SC didn-t work out with tyamasa-s code. maybe i didn-t provide the right kind of sync-signal. >SC is not a good sync source, because it's MIDI output timing granularity is >dependant on the sound hardware buffer size. so is there anything you would suggest? maybe, syncing SC as slave to a steady flow of noteons via Voicer? ------------------------------ Date: Sun, 03 Jun 2001 14:20:26 -0600 From: Michael Theodore <---@---.---> Subject: re:patterns > > 2) Given the resultant stream above, how would one repeat select amounts > (repeat ( ( 1 2 3 4 5 for 3) (10 20 30 for 2) for 5) 1) //ie, one repeat > 1 2 3 10 20 1 2 3 20 4 5 1 30 10 4 5 1 30 10, etc. Oops - this should start: 1 2 3 10 20 1 2 3 10 20 ------------------------------ Date: Sun, 03 Jun 2001 15:40:24 -0500 From: James McCartney <---@---.---> Subject: Re: Pattern questions, change ringing on 6/3/01 3:15 PM, Michael Theodore at michael.theodore@colorado.edu wrote: > 1) An example of what I'd like to do: > Set up two patterns, such as 1, 2, 3, 4, 5 and 10, 20, 30. > Have these two patterns cycle endlessly, but draw variable amounts of items > on each iteration. For instance, > (1 2 3 4 5 for 3) (10 20 30 for 2) would yield: > 1 2 3 10 20 4 5 1 30 10 2 3 4 20 30 , etc > or > (1 2 3 4 5 for ( 1 2 3)) (10 20 30 for 2) > 1 10 20 3 4 30 10 5 1 2 20 30, etc > I can't figure out the "for" part ( z = Plazy({ var a, b; a = Pseq([1, 2, 3, 4, 5], inf).asStream; b = Pseq([10, 20, 30], inf).asStream; Pseq([ Pfuncn({ a.next }, 3), Pfuncn({ b.next }, 2) ], inf); }); s = z.asStream; 20.do({ s.next.postln }); ) //////////////////////////////////// > 2) Given the resultant stream above, how would one repeat select amounts > (repeat ( ( 1 2 3 4 5 for 3) (10 20 30 for 2) for 5) 1) //ie, one repeat > 1 2 3 10 20 1 2 3 20 4 5 1 30 10 4 5 1 30 10, etc. > Or another, simpler example: > (repeat (1 2 3 4 5 for 3) 1): > 1 2 3 1 2 3 4 5 1 4 5 1 2 3 4 2 3 4, etc > In other words, how does one simply store and then repeat previous > stream values? ( z = Plazy({ var a, b; a = Pseq([1, 2, 3, 4, 5], inf).asStream; b = Pseq([10, 20, 30], inf).asStream; Pseq([ Pfuncn({ a.next }, 3), Pfuncn({ b.next }, 2) ], inf); }); y = Prout({ var a, b; a = z.asStream; loop({ b = []; 5.do({ var val; val = a.next; val.yield; b = b.add(val); }); 5.do({ arg i; b.at(i).yield; }); }); }); s = y.asStream; 20.do({ s.next.postln }); ) //////////////////////////////////// - --- james mccartney james@audiosynth.com SuperCollider - a real time synthesis programming language for the PowerMac. ------------------------------ Date: Sun, 03 Jun 2001 16:25:48 -0500 From: James McCartney <---@---.---> Subject: Re: Pattern questions, change ringing on 6/3/01 3:40 PM, James McCartney at asynth@io.com wrote: > ( > z = Plazy({ > var a, b; > a = Pseq([1, 2, 3, 4, 5], inf).asStream; > b = Pseq([10, 20, 30], inf).asStream; > Pseq([ Pfuncn({ a.next }, 3), Pfuncn({ b.next }, 2) ], inf); > }); > > s = z.asStream; > 20.do({ s.next.postln }); > ) I did't really need the Plazy to demonstrate this. I could have written: a = Pseq([1, 2, 3, 4, 5], inf).asStream; b = Pseq([10, 20, 30], inf).asStream; z = Pseq([ Pfuncn({ a.next }, 3), Pfuncn({ b.next }, 2) ], inf); s = z.asStream; 20.do({ s.next.postln }); However, by using the Plazy I can create as many streams from this pattern as I want and, since they each will have their own copies of the child threads, they will not interfere with each other. - --- james mccartney james@audiosynth.com SuperCollider - a real time synthesis programming language for the PowerMac. ------------------------------ Date: Mon, 04 Jun 2001 13:33:17 -0400 From: "crucial" <---@---.---> Subject: Denomalize and Compander blowups James, I discovered that the Compander doesn't blow up if i submit the key as Compander.ar( input, input.max(0.001),etc...) When the compander gets weird stuff (especially 0.0, 0.0,0.0.... pure silence ), it blows up and takes all audio with it. So I guess I'm killing the denormalized numbers, and its due to 'pathological operations' that I get this problem, right ? a ZapGremlins ugen would be useful then. For the purposes of Compander key input, the max works fine. > from music-dsp list , a post by JmC >on 5/28/01 2:44 PM, Jon Watte at hplus@mindcontrol.org wrote: > >> If you nuke the delay >> memory every 64 frames (or whatever your block size is) it's not very >> expensive at all; much cheaper than adding noise at the input. > >While you are at it, you can kill more than denormals. > >// this is a function for preventing pathological math operations in ugens. >// can be used at the end of a block to fix any recirculating filter values. >template >inline TFloat zapgremlins(TFloat x) >{ > TFloat absx = fabs(x); > // very small numbers fail the first test, eliminating denormalized >numbers > // (zero also fails the first test, but that is OK since it returns >zero.) > // very large numbers fail the second test, eliminating infinities > // Not-a-Numbers fail both tests and are eliminated. > return (absx > 1e-15 && absx < 1e15) ? x : 0.; >} > > >--- james mccartney james@audiosynth.com _____(( http://crucial-systems.com _________________))_______ ------------------------------ Date: Tue, 05 Jun 2001 14:12:24 +0100 From: Scott Wilson <---@---.---> Subject: OT More Muellmusik Just a reminder to those on the European side of the pond that I'll be continuing to tour in Germany in June with Muellmusik, my piece based on recycled and reinterpreted data and audio. June 6th A lecture/performance on Muellmusik and a work in progress for trombone and SuperCollider at the Zentrum für Kunst und Medientechnologie Karlsruhe. 20:00 ZKM Kubus. Admission Free. www.zkm.de June 23nd Some Muellmusik as part of USAsauce at mex in Dortmund. 20:00 Sunderweg 1. www.mexappeal.de June 24th At Gallery Rachel Haferkamp in Cologne. 19:00 Eigelstein 112. www.rachelhaferkamp.de More information available at: http://sdwilson.web.wesleyan.edu I hope to see some of you there! Scott Wilson ------------------------------ End of sc-users-digest V1 #299 ******************************