From sc-users-owner@bga.com Tue Jul 2 01:06:14 1996 Received: (from daemon@localhost) by zoom.bga.com (8.6.12/8.6.12) id BAA22156 for sc-users-outgoing; Tue, 2 Jul 1996 01:06:14 -0500 Received: from escape.com (root@escape.com [198.6.71.10]) by zoom.bga.com (8.6.12/8.6.12) with ESMTP id BAA22145 for ; Tue, 2 Jul 1996 01:06:09 -0500 Received: from [205.160.47.3] (slip-ppp-5-3.escape.com [205.160.47.3]) by escape.com (8.7.3/8.6.9) with SMTP id CAA18435 for ; Tue, 2 Jul 1996 02:01:13 -0400 (EDT) Date: Tue, 2 Jul 1996 02:01:13 -0400 (EDT) X-Sender: kbabb@escape.com (Unverified) Message-Id: Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" To: sc-users@bga.com From: kbabb@escape.com (Kenneth N Babb) Subject: fx Patches Sender: owner-sc-users@bga.com Precedence: bulk Reply-To: sc-users@bga.com James, Thanks for your prompt response and excellent critique of fx-distortion-ring employing Alooprd. I applied the Alooprd to the fx-multitaps as well. Terrific. -knb- From sc-users-owner@bga.com Wed Jul 3 13:59:35 1996 Received: (from daemon@localhost) by zoom.bga.com (8.6.12/8.6.12) id NAA03240 for sc-users-outgoing; Wed, 3 Jul 1996 13:59:35 -0500 Received: from dishes.pixar.com (dishes.pixar.com [138.72.20.78]) by zoom.bga.com (8.6.12/8.6.12) with SMTP id NAA03196 for ; Wed, 3 Jul 1996 13:59:26 -0500 Received: from [138.72.25.187] by dishes.pixar.com with smtp (Smail3.1.28.1 #15) id m0ubX8x-0001FMC; Wed, 3 Jul 96 11:59 PDT X-Sender: alex@dishes.pixar.com Message-Id: In-Reply-To: Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Date: Wed, 3 Jul 1996 11:59:24 -0700 To: sc-users@bga.com From: Alex Stahl <---@---.---> Subject: MIDI Out? Sender: owner-sc-users@bga.com Precedence: bulk Reply-To: sc-users@bga.com It would be really nice, imho, if SuperCollider could send MIDI out as well as receive it. I would like to synchronize Max patches (on a second machine if necessary) to information extracted from audio input by SC. I imagine there would be some uncertainty involved if SC output a MIDI message and a signal "at the same time", but that would be OK for what I'm trying to do. Anyone else interested in this? From sc-users-owner@bga.com Wed Jul 3 14:21:37 1996 Received: (from daemon@localhost) by zoom.bga.com (8.6.12/8.6.12) id OAA06823 for sc-users-outgoing; Wed, 3 Jul 1996 14:21:37 -0500 Received: from clyde.as.utexas.edu (clyde.as.utexas.edu [128.83.129.156]) by zoom.bga.com (8.6.12/8.6.12) with ESMTP id OAA06796 for ; Wed, 3 Jul 1996 14:21:26 -0500 Received: from [128.83.251.9] (slip-51-9.ots.utexas.edu [128.83.251.9]) by clyde.as.utexas.edu (8.6.11/2.01) with SMTP id OAA17155 for ; Wed, 3 Jul 1996 14:24:19 -0500 Date: Wed, 3 Jul 1996 14:24:19 -0500 Message-Id: Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" To: sc-users@bga.com From: james@clyde.as.utexas.edu (James McCartney) Subject: Re: MIDI Out? Sender: owner-sc-users@bga.com Precedence: bulk Reply-To: sc-users@bga.com At 11:59 AM 7/3/96, Alex Stahl wrote: >It would be really nice, imho, if SuperCollider could send MIDI out as well >as receive it. I would like to synchronize Max patches (on a second >machine if necessary) to information extracted from audio input by SC. I >imagine there would be some uncertainty involved if SC output a MIDI >message and a signal "at the same time", but that would be OK for what I'm >trying to do. > >Anyone else interested in this? MIDI out would be relatively easy to add. But in SC, processing happens in bunches ahead of real time at intervals specified by the frame size. So MIDI out would really only be useful for program changes, perhaps controllers if you can stand the choppiness, but note-ons would be very unpredictable. --- james mccartney james@clyde.as.utexas.edu james@lcsaudio.com If you have a PowerMac check out SuperCollider, a real time synth program: ftp://mirror.apple.com//mirrors/Info-Mac.Archive/gst/snd/super-collider-demo.hqx From sc-users-owner@bga.com Wed Jul 3 15:52:27 1996 Received: (from daemon@localhost) by zoom.bga.com (8.6.12/8.6.12) id PAA20739 for sc-users-outgoing; Wed, 3 Jul 1996 15:52:27 -0500 Received: from dishes.pixar.com (dishes.pixar.com [138.72.20.78]) by zoom.bga.com (8.6.12/8.6.12) with SMTP id PAA20722 for ; Wed, 3 Jul 1996 15:52:22 -0500 Received: from [138.72.25.187] by dishes.pixar.com with smtp (Smail3.1.28.1 #15) id m0ubYuM-0001FMC; Wed, 3 Jul 96 13:52 PDT X-Sender: alex@dishes.pixar.com Message-Id: In-Reply-To: Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Date: Wed, 3 Jul 1996 13:52:26 -0700 To: sc-users@bga.com From: Alex Stahl <---@---.---> Subject: Re: MIDI Out? Sender: owner-sc-users@bga.com Precedence: bulk Reply-To: sc-users@bga.com >So MIDI out would really only be useful for program changes, perhaps >controllers if you can stand the choppiness, but note-ons would be very >unpredictable. A program change or choppy controller would be just fine. Basically I want to use an amplitude follower to measure the duration of a phrase by comparing it to a threshold, and export this length as MIDI. The start and stop time is less important than the delta, which I imagine will be accurate since it's all internal to SC? Actually, that's another question: what is the rate of Krms' output? ( I guess I could try doing this using text file I/O, yukko...) >At 11:59 AM 7/3/96, Alex Stahl wrote: >>It would be really nice, imho, if SuperCollider could send MIDI out as well >>as receive it. I would like to synchronize Max patches (on a second >>machine if necessary) to information extracted from audio input by SC. I >>imagine there would be some uncertainty involved if SC output a MIDI >>message and a signal "at the same time", but that would be OK for what I'm >>trying to do. >> >>Anyone else interested in this? > > >MIDI out would be relatively easy to add. But in SC, processing happens >in bunches ahead of real time at intervals specified by the frame size. >So MIDI out would really only be useful for program changes, perhaps >controllers if you can stand the choppiness, but note-ons would be very >unpredictable. > > > --- james mccartney james@clyde.as.utexas.edu james@lcsaudio.com >If you have a PowerMac check out SuperCollider, a real time synth program: >ftp://mirror.apple.com//mirrors/Info-Mac.Archive/gst/snd/super-collider-demo.hq >x From sc-users-owner@bga.com Wed Jul 3 16:01:16 1996 Received: (from daemon@localhost) by zoom.bga.com (8.6.12/8.6.12) id QAA22676 for sc-users-outgoing; Wed, 3 Jul 1996 16:01:16 -0500 Received: from clyde.as.utexas.edu (clyde.as.utexas.edu [128.83.129.156]) by zoom.bga.com (8.6.12/8.6.12) with ESMTP id QAA22644 for ; Wed, 3 Jul 1996 16:00:55 -0500 Received: from [128.83.113.37] (slip-47-5.ots.utexas.edu [128.83.113.37]) by clyde.as.utexas.edu (8.6.11/2.01) with SMTP id QAA17666 for ; Wed, 3 Jul 1996 16:03:44 -0500 Date: Wed, 3 Jul 1996 16:03:44 -0500 Message-Id: Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" To: sc-users@bga.com From: james@clyde.as.utexas.edu (James McCartney) Subject: version 1.1b4 updater available at ftp site Sender: owner-sc-users@bga.com Precedence: bulk Reply-To: sc-users@bga.com You can now get the updater from: When you run the updater it will ask you for version 1.0. It will not overwrite or delete 1.0 so you needn't make a backup copy. ------- SuperCollider version 1.1b4 1.1b4 is an interim version which fixes some bugs as well as adds a few new features. Unfortunately there are new bugs. Another version will be made available as soon as it is ready. Bugs fixed: A Problem with sound input on PCI Macs due to a bug in Apple's driver has been fixed via a work around. The symptom was an error code of -1 setting siContinuous mode, often followed by no sound until reboot or a crash. Fixed a problem updating the control panel when running with Output To File on. Bugs added: In or Out from file do not work in this beta version. New features: Turning on MIDI Monitor in the Synth menu causes all MIDI input to be posted in the Message window. Turning on Overdrive mode allows you to open other windows, edit tables and envelopes as well as use other programs while sound is being generated. Opening an audioin audioout or delay window as the front window will cause that window to update continuously like an oscilloscope. It is currently possible to lock up the machine if your program severely outruns the CPU in Overdrive. This is due to user level starvation because of hogging of the CPU at interrupt level. The Message window is now very much faster than before. Calls to post() should not result in as much of a slow down as before. Some cosmetic anomalies with the new scheme still need to be fixed. New functions : Arlpf resonant low pass filter func = Arlpf(freq, Q) create a 2nd order resonant low pass filter. freq is an initial cutoff frequency in cycles per second Q is the initial 'Q' of the filter which is a ratio of frequency/bandwidth. The nominal Q value is 1.0. The higher the Q the more resonant the filter. Very low Q's (Q<<1 near zero) can cause the filter's math to blow up resulting in no sound. Arlpf: func.value(input, freq, Q) execute a 2nd order resonant low pass filter. input is the input signal to be processed. [A] freq is the cutoff frequency in cycles per second [K] Q is the 'Q' of the filter which is a ratio of frequency/bandwidth. [K] Arhpf resonant high pass filter func = Arhpf(freq, Q) create a 2nd order resonant high pass filter. freq is an initial cutoff frequency in cycles per second Q is the initial 'Q' of the filter which is a ratio of frequency/bandwidth. The nominal Q value is 1.0. The higher the Q the more resonant the filter. Very low Q's (Q<<1 near zero) can cause the filter's math to blow up resulting in no sound. Arhpf: func.value(input, freq, Q) execute a 2nd order resonant high pass filter. input is the input signal to be processed. [A] freq is the cutoff frequency in cycles per second [K] Q is the 'Q' of the filter which is a ratio of frequency/bandwidth. [K] --- james mccartney james@clyde.as.utexas.edu james@lcsaudio.com If you have a PowerMac check out SuperCollider, a real time synth program: ftp://mirror.apple.com//mirrors/Info-Mac.Archive/gst/snd/super-collider-demo.hqx From sc-users-owner@bga.com Wed Jul 3 16:13:43 1996 Received: (from daemon@localhost) by zoom.bga.com (8.6.12/8.6.12) id QAA25126 for sc-users-outgoing; Wed, 3 Jul 1996 16:13:43 -0500 Received: from clyde.as.utexas.edu (clyde.as.utexas.edu [128.83.129.156]) by zoom.bga.com (8.6.12/8.6.12) with ESMTP id QAA25084 for ; Wed, 3 Jul 1996 16:13:32 -0500 Received: from [128.83.113.37] (slip-47-5.ots.utexas.edu [128.83.113.37]) by clyde.as.utexas.edu (8.6.11/2.01) with SMTP id QAA17781 for ; Wed, 3 Jul 1996 16:16:20 -0500 Date: Wed, 3 Jul 1996 16:16:20 -0500 Message-Id: Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" To: sc-users@bga.com From: james@clyde.as.utexas.edu (James McCartney) Subject: Re: MIDI Out? Sender: owner-sc-users@bga.com Precedence: bulk Reply-To: sc-users@bga.com At 1:52 PM 7/3/96, Alex Stahl wrote: >A program change or choppy controller would be just fine. Basically I want >to use an amplitude follower to measure the duration of a phrase by >comparing it to a threshold, and export this length as MIDI. The start and >stop time is less important than the delta, which I imagine will be >accurate since it's all internal to SC? Actually, that's another question: >what is the rate of Krms' output? Krms outputs a float value each control period which is the subframe rate. All functions beginning with 'K' output a float value each control period and those beginning with 'A' output a signal buffer each control period. Processing is done in bunches at the frame rate. If you have a process which is operating at 50% CPU the the processing is being done all in the first half of each frame. Some subframes may take longer to calculate than others because of voices starting or stopping or other variations in the CPU load. So you will get a CPU usage that looks like : |--- calculating 1 frame ------| ... doing nothing ... |-- calc next -> |-------------- real time to play back 1 frame ----------------|-- play next -> The upshot is that the delta times between subframes are distorted. If your frame size is 1024 samples and your subframe size is 128 samples, then the time between frame 1 and frame 2 might be only 64 samples of time if CPU usage is at 50% but the time between frame 8 and 9 would be 512 samples. --- james mccartney james@clyde.as.utexas.edu james@lcsaudio.com If you have a PowerMac check out SuperCollider, a real time synth program: ftp://mirror.apple.com//mirrors/Info-Mac.Archive/gst/snd/super-collider-demo.hqx From sc-users-owner@bga.com Wed Jul 3 18:23:57 1996 Received: (from daemon@localhost) by zoom.bga.com (8.6.12/8.6.12) id SAA14093 for sc-users-outgoing; Wed, 3 Jul 1996 18:23:57 -0500 Received: from clyde.as.utexas.edu (clyde.as.utexas.edu [128.83.129.156]) by zoom.bga.com (8.6.12/8.6.12) with ESMTP id SAA14085 for ; Wed, 3 Jul 1996 18:23:53 -0500 Received: from [128.83.111.105] (slip-29-9.ots.utexas.edu [128.83.111.105]) by clyde.as.utexas.edu (8.6.11/2.01) with SMTP id SAA17983 for ; Wed, 3 Jul 1996 18:26:41 -0500 Date: Wed, 3 Jul 1996 18:26:41 -0500 Message-Id: Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" To: sc-users@bga.com From: james@clyde.as.utexas.edu (James McCartney) Subject: 1.1b4 resonant filter demo patch on ftp site Sender: owner-sc-users@bga.com Precedence: bulk Reply-To: sc-users@bga.com A file which demonstrates the new resonant filter function in 1.1b4 is at the ftp site: --- james mccartney james@clyde.as.utexas.edu james@lcsaudio.com If you have a PowerMac check out SuperCollider, a real time synth program: ftp://mirror.apple.com//mirrors/Info-Mac.Archive/gst/snd/super-collider-demo.hqx From sc-users-owner@bga.com Fri Jul 5 16:10:56 1996 Received: (from daemon@localhost) by zoom.bga.com (8.6.12/8.6.12) id QAA13583 for sc-users-outgoing; Fri, 5 Jul 1996 16:10:56 -0500 Received: from crl.dec.com (crl.dec.com [192.58.206.2]) by zoom.bga.com (8.6.12/8.6.12) with SMTP id QAA13573 for ; Fri, 5 Jul 1996 16:10:51 -0500 Received: by crl.dec.com; id AA24563; Fri, 5 Jul 96 17:05:41 -0400 X-Sender: Eirikur@mosaic.lkg.dec.com Message-Id: Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Date: Fri, 5 Jul 1996 17:10:04 -0400 To: From: Eirikur Hallgrimsson <---@---.---> Subject: Simple Stereo seperation control, or widener. Sender: owner-sc-users@bga.com Precedence: bulk Reply-To: sc-users@bga.com -- Stereo width control. Slider varies from -1 (mono) to +1 (L=L-R, R=R-L) { (in(Lin) -! (1.getItemValue * in(Rin))).out(L); (in(Rin) -! (1.getItemValue * in(Lin))).out(R); }.dspAdd; This uses rather little CPU, so it might fit into multi-effect application like the one that Richard Dundas posted. With a little work, this could grow into a full-fledged Hafler-effect or matrix-style ambience decoder, with controllable delay times and everything. It's funny to be whipping-up stuff that I used to do with passive circuitry, or with op-amps (20 years ago) in SuperCollider. Help needed: I want to be able to index through the input stream, preferably without having to Arecord() into a buffer. Any suggestions? One of the reasons that I want to do this is to make a simple zero-crossing frequency follower. It would also be useful to be able to construct a continuous-running pitch-shifter, but at the moment that seems to require using Alooprd(), or similar for the output side, so maybe I can't escape the capture part of the problem. Eirikur P.S. The siContinuous problem is really fixed on my 9500. Thanks, James! Eirikur Hallgrimsson eh@ranger.enet.dec.com Generic Epistemologist "Came into sci.archaeology.mental via 56k twisted pair down the Ogam Corridor in year five before millennium. Found it replete with loonies. Must cancel subscription to 'Proto-Celtic Chronicle and Sarsen'." -- Al B. Wesolowsky From sc-users-owner@bga.com Fri Jul 5 18:43:45 1996 Received: (from daemon@localhost) by zoom.bga.com (8.6.12/8.6.12) id SAA28045 for sc-users-outgoing; Fri, 5 Jul 1996 18:43:45 -0500 Received: from clyde.as.utexas.edu (clyde.as.utexas.edu [128.83.129.156]) by zoom.bga.com (8.6.12/8.6.12) with ESMTP id SAA28035 for ; Fri, 5 Jul 1996 18:43:38 -0500 Received: from [128.83.249.40] (slip-93-8.ots.utexas.edu [128.83.249.40]) by clyde.as.utexas.edu (8.6.11/2.01) with SMTP id SAA22981 for ; Fri, 5 Jul 1996 18:46:33 -0500 Date: Fri, 5 Jul 1996 18:46:33 -0500 Message-Id: Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" To: sc-users@bga.com From: james@clyde.as.utexas.edu (James McCartney) Subject: Re: Simple Stereo seperation control, or widener. Sender: owner-sc-users@bga.com Precedence: bulk Reply-To: sc-users@bga.com Tell me if any of you got this twice. Majordomo bounced the first one back to me for some reason I don't understand.. At 5:10 PM 7/5/96, Eirikur Hallgrimsson wrote: >Help needed: I want to be able to index through the input stream, >preferably without having to Arecord() into a buffer. Any suggestions? >One of the reasons that I want to do this is to make a simple zero-crossing >frequency follower. It would also be useful to be able to construct a >continuous-running pitch-shifter, but at the moment that seems to require >using Alooprd(), or similar for the output side, so maybe I can't escape >the capture part of the problem. You can't do sample by sample algorithms in real time. These need to be written in C by me. I wrote a zero crossing detector, but as a pitch follower it was nearly useless. Very few real waveforms have a single zero crossing per cycle. Using it to drive an oscillator did produce bizarre effects though. 'fx-grain-pitch-shift' in the fx patches does continuous running pitch shifting by doing moving taps on a delay line. --- james mccartney james@clyde.as.utexas.edu james@lcsaudio.com If you have a PowerMac check out SuperCollider, a real time synth program: ftp://mirror.apple.com//mirrors/Info-Mac.Archive/gst/snd/super-collider-demo.hqx From sc-users-owner@bga.com Wed Jul 10 14:02:26 1996 Received: (from daemon@localhost) by zoom.bga.com (8.6.12/8.6.12) id OAA28318 for sc-users-outgoing; Wed, 10 Jul 1996 14:02:26 -0500 Received: from fht.com ([206.169.34.3]) by zoom.bga.com (8.6.12/8.6.12) with ESMTP id OAA28283 for ; Wed, 10 Jul 1996 14:02:17 -0500 Received: from [206.169.34.4] by fht.com with SMTP (Apple Internet Mail Server 1.0); Wed, 10 Jul 1996 11:57:47 -0700 X-Sender: m@206.169.34.3 Message-Id: Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Date: Wed, 10 Jul 1996 12:02:40 -0800 To: sc-users@bga.com From: m@fht.com (M 5tevens) Subject: Re: MIDI Out? Sender: owner-sc-users@bga.com Precedence: bulk Reply-To: sc-users@bga.com At 11:59 AM 7/3/96, Alex Stahl wrote: >It would be really nice, imho, if SuperCollider could send MIDI out as well >as receive it. I would like to synchronize Max patches (on a second >machine if necessary) to information extracted from audio input by SC. I >imagine there would be some uncertainty involved if SC output a MIDI >message and a signal "at the same time", but that would be OK for what I'm >trying to do. > >Anyone else interested in this? I sure would. I've been too swamped with some heavy new synths I got to deal with SC much yet, but all the scheduler stuff looks great - seems like it would be really cool to either output it directly as Midi, or export it as a .MID file. On the other side of the coin, being able to turn a midi file into scheduler commands would also be helpfull. I don't do much MAX these days, but isn't there a way to access/analyze audio input via a Digi DSP card? And speaking of Digi - I currently have two applications that won't work with my Digi hardware, the common reason being Digidesign's greedy and arrogant developer policies. I'm pig-biting mad about the whole thing. I'm wondering if an E-mail harrassment campaign would do any good. Probably not - they only want to sling expensive Pro-Stools rigs these days. --------------------------| V0ID IF DETACHED |--------------------------- Slowly come to believe that all life is self-serving, and the universe inane. Build a shoebox diorama illustrating these concepts. Be sure to include air holes for any living things you may include. Or don't. It doesn't really matter. ------------------------------------------------------------------------- || //| //| M 5tevens Lead Sound Designer 415.882.1730 Voice || //|| //|| Foley Hi-Tech 415.882.1733 Fax ||// ||// || 185 Berry Street 415.882.1735 BBS ||/ ||/ || m@fht.com San Francrisco, CA 94107 http://www.fht.com ------------------------------------------------------------------------- some information missing / damaged / incomplete ------------------------------------------------------------------------- From sc-users-owner@bga.com Wed Jul 10 14:53:28 1996 Received: (from daemon@localhost) by zoom.bga.com (8.6.12/8.6.12) id OAA07330 for sc-users-outgoing; Wed, 10 Jul 1996 14:53:28 -0500 Received: from dishes.pixar.com (dishes.pixar.com [138.72.20.78]) by zoom.bga.com (8.6.12/8.6.12) with SMTP id OAA07319 for ; Wed, 10 Jul 1996 14:53:24 -0500 Received: from [138.72.25.187] by dishes.pixar.com with smtp (Smail3.1.28.1 #15) id m0ue5Ja-00037qC; Wed, 10 Jul 96 12:52 PDT X-Sender: alex@dishes.pixar.com Message-Id: In-Reply-To: Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Date: Wed, 10 Jul 1996 12:52:59 -0700 To: sc-users@bga.com From: Alex Stahl <---@---.---> Subject: Re: MIDI Out? Sender: owner-sc-users@bga.com Precedence: bulk Reply-To: sc-users@bga.com I asked a while ago: >>It would be really nice, imho, if SuperCollider could send MIDI out.... M. Stevens followed up: > All the scheduler stuff looks great - seems like >it would be really cool to either output it directly as Midi, or export it >as a .MID file. On the other side of the coin, being able to turn a midi >file into scheduler commands would also be helpfull. I don't do much MAX >these days, but isn't there a way to access/analyze audio input via a Digi >DSP card? I think Max would be a better environment for triggering external MIDI sound generators. Especially because of James' Pyrite extensions to Max, which I think can do all the same cool pattern threading and scheduling as SC. I was interested in the idea of SC as an audio analysis front end for Max, because the Max DSP objects haven't been updated to support current digi hardware. But it seems like the buffering required to do DSP in the CPU makes it really difficult to do realtime analysis. Oh well, SC is still the best thing since sliced bread (and I eat toast every day!) From sc-users-owner@bga.com Wed Jul 10 16:17:36 1996 Received: (from daemon@localhost) by zoom.bga.com (8.6.12/8.6.12) id QAA20929 for sc-users-outgoing; Wed, 10 Jul 1996 16:17:36 -0500 Received: from crl.dec.com (crl.dec.com [192.58.206.2]) by zoom.bga.com (8.6.12/8.6.12) with SMTP id QAA20914 for ; Wed, 10 Jul 1996 16:17:29 -0500 Received: by crl.dec.com; id AA06317; Wed, 10 Jul 96 17:09:30 -0400 X-Sender: Eirikur@mosaic.lkg.dec.com Message-Id: Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Date: Wed, 10 Jul 1996 16:57:04 -0400 To: From: Eirikur Hallgrimsson <---@---.---> Subject: Re: MIDI Out? (and stream of consciousness) Sender: owner-sc-users@bga.com Precedence: bulk Reply-To: sc-users@bga.com At 4:08 PM -0400 7/10/96, > % From: Alex Stahl <---@---.---> wrote: > I was interested in the idea of SC as an audio analysis front end for Max, > because the Max DSP objects haven't been updated to support current digi > hardware. But it seems like the buffering required to do DSP in the CPU > makes it really difficult to do realtime analysis. Oh well, SC is still > the best thing since sliced bread (and I eat toast every day!) Krms(input) is fast and probably suffices for things that don't have to happen sample by sample. in.(Lin).asFloat (or as whatever) will get you one sample value at a time. James, does that yield one value per frame or sub-frame? (yes, I could figure this out....) I think that between Krms and the .asFloat conversion, I will be able to build a tempo-follower, that works for some range of known inputs. I'd like to synch SC to band improvs, and I think this is the way. James thinks that MIDI out would be too bursty, and disrupt audio. I don't know the constraints in detail, but certainly with some kind of queuing, controller-thinning and perhaps transmitting one message per frame or sub-frame,it could be made to work and be pre-computed like audio. I thought of a product to write in SC, that would be an emulator for a classic drum machine, but it would be nice to be able to drive other things from it. Crass commercialism rears its ugly head. I probably won't get around to this, even if it would sell, because I don't use that kind of thing myself. Now, if there were a runtime-only version of SC.... Eirikur Eirikur Hallgrimsson eh@ranger.enet.dec.com Generic Epistemologist "Came into sci.archaeology.mental via 56k twisted pair down the Ogam Corridor in year five before millennium. Found it replete with loonies. Must cancel subscription to 'Proto-Celtic Chronicle and Sarsen'." -- Al B. Wesolowsky From sc-users-owner@bga.com Wed Jul 10 16:32:17 1996 Received: (from daemon@localhost) by zoom.bga.com (8.6.12/8.6.12) id QAA23457 for sc-users-outgoing; Wed, 10 Jul 1996 16:32:17 -0500 Received: from clyde.as.utexas.edu (clyde.as.utexas.edu [128.83.129.156]) by zoom.bga.com (8.6.12/8.6.12) with ESMTP id QAA23413 for ; Wed, 10 Jul 1996 16:32:04 -0500 Received: from [128.83.204.146] (slip-10-2.ots.utexas.edu [128.83.204.146]) by clyde.as.utexas.edu (8.6.11/2.01) with SMTP id QAA07473 for ; Wed, 10 Jul 1996 16:34:58 -0500 Date: Wed, 10 Jul 1996 16:34:58 -0500 Message-Id: Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" To: sc-users@bga.com From: james@clyde.as.utexas.edu (James McCartney) Subject: Re: MIDI Out? (and stream of consciousness) Sender: owner-sc-users@bga.com Precedence: bulk Reply-To: sc-users@bga.com At 4:57 PM 7/10/96, Eirikur Hallgrimsson wrote: in.(Lin).asFloat (or as whatever) will get you one >sample value at a time. > >James, does that yield one value per frame or sub-frame? (yes, I could >figure this out....) in(Lin) -- not in.(Lin) returns a signal buffer. Doing asFloat on it simply gives you the first value in the buffer. It is not a way to get input audio on a sample by sample basis. It is not possible to do any sample by sample processing with SC. It works on a control period at a time method. You can record into an audiobuf and process those samples using some algorithm, however that would not be realtime. >I think that between Krms and the .asFloat conversion, I will be able to >build a tempo-follower, that works for some range of known inputs. I'd >like to synch SC to band improvs, and I think this is the way. You could use Krms to detect peaks. > >James thinks that MIDI out would be too bursty, and disrupt audio. I >don't know the constraints in detail, but certainly with some kind of >queuing, controller-thinning and perhaps transmitting one message per frame >or sub-frame,it could be made to work and be pre-computed like audio. MIDI out would be useful for some things where timing is not critical. Playing notes though is not one of them. Computation and scheduling happens in bursts and waits. Doing audio is different than doing MIDI like in MAX. --- james mccartney james@clyde.as.utexas.edu james@lcsaudio.com If you have a PowerMac check out SuperCollider, a real time synth program: ftp://mirror.apple.com//mirrors/Info-Mac.Archive/gst/snd/super-collider-demo.hqx From sc-users-owner@bga.com Wed Jul 10 18:42:47 1996 Received: (from daemon@localhost) by zoom.bga.com (8.6.12/8.6.12) id SAA15147 for sc-users-outgoing; Wed, 10 Jul 1996 18:42:47 -0500 Received: from crl.dec.com (crl.dec.com [192.58.206.2]) by zoom.bga.com (8.6.12/8.6.12) with SMTP id SAA15128 for ; Wed, 10 Jul 1996 18:42:40 -0500 Received: by crl.dec.com; id AA18831; Wed, 10 Jul 96 19:40:12 -0400 X-Sender: Eirikur@mosaic.lkg.dec.com Message-Id: Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Date: Wed, 10 Jul 1996 19:21:15 -0400 To: From: Eirikur Hallgrimsson <---@---.---> Subject: Re: MIDI Out? (and stream of consciousness) Sender: owner-sc-users@bga.com Precedence: bulk Reply-To: sc-users@bga.com At 5:49 PM -0400 7/10/96, in(Lin) -- not in.(Lin) > returns a signal buffer. Doing asFloat on it simply gives you the > first value in the buffer. It is not a way to get input audio on a > sample by sample basis. It is not possible to do any sample by sample > processing with SC. It works on a control period at a time method. I do believe that I understand that. It's extremely clever and it runs happily on low-end systems, which is something to really shock PC users with. Hmm. Maybe I should experiment with in(Lin), then. It may be possible to do non-realtime things of interest, without having to do Arecord(). My program that uses .asFloat(in(Lin)) (drawing Lissajous patterns from stereo inputs), used Krms(), but the code became complex. Simply scaling and plotting the .asFloat value worked very well. It's certainly not sample by sample proccessing, but it gives me a usefull value to work with. Eirikur Eirikur Hallgrimsson eh@ranger.enet.dec.com Generic Epistemologist "Remember this, foolish mortals, when ye stare headlong into the mind-paralyzing void, the inky black nothingness of existence, the hellish yawning maw of the abyss -- it's pretty damn dark, so give it a few minutes for your eyes to adjust." Frank M. Carrano From sc-users-owner@bga.com Wed Jul 10 20:43:06 1996 Received: (from daemon@localhost) by zoom.bga.com (8.6.12/8.6.12) id UAA01777 for sc-users-outgoing; Wed, 10 Jul 1996 20:43:06 -0500 Received: from dishes.pixar.com (dishes.pixar.com [138.72.20.78]) by zoom.bga.com (8.6.12/8.6.12) with SMTP id UAA01759 for ; Wed, 10 Jul 1996 20:43:01 -0500 Received: from [138.72.25.187] by dishes.pixar.com with smtp (Smail3.1.28.1 #15) id m0ueAmS-0000fhC; Wed, 10 Jul 96 18:43 PDT X-Sender: alex@dishes.pixar.com Message-Id: In-Reply-To: Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Date: Wed, 10 Jul 1996 18:43:09 -0700 To: sc-users@bga.com From: Alex Stahl <---@---.---> Subject: Re: MIDI Out? Sender: owner-sc-users@bga.com Precedence: bulk Reply-To: sc-users@bga.com >Krms(input) is fast and probably suffices for things that don't have to happen >sample by sample. in.(Lin).asFloat (or as whatever) will get you one >sample value at a time. > >James, does that yield one value per frame or sub-frame? (yes, I could >figure this out....) In returns a signal, which is defined as a subframe buffer... but I don't understand how coercing a signal to a float makes sense. in.Lin.asFloat works, but what is the value returned, one sample plucked from the end of the buffer? How useful is that? From sc-users-owner@bga.com Wed Jul 10 20:51:25 1996 Received: (from daemon@localhost) by zoom.bga.com (8.6.12/8.6.12) id UAA02828 for sc-users-outgoing; Wed, 10 Jul 1996 20:51:25 -0500 Received: from dishes.pixar.com (dishes.pixar.com [138.72.20.78]) by zoom.bga.com (8.6.12/8.6.12) with SMTP id UAA02816 for ; Wed, 10 Jul 1996 20:51:21 -0500 Received: from [138.72.25.187] by dishes.pixar.com with smtp (Smail3.1.28.1 #15) id m0ueAuW-0000fhC; Wed, 10 Jul 96 18:51 PDT X-Sender: alex@dishes.pixar.com Message-Id: In-Reply-To: References: Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Date: Wed, 10 Jul 1996 18:51:30 -0700 To: sc-users@bga.com From: Alex Stahl <---@---.---> Subject: oops.typo Sender: owner-sc-users@bga.com Precedence: bulk Reply-To: sc-users@bga.com >in.Lin.asFloat works, oops, that should have read Lin.in.asFloat well.oh -Alex "Verbing weirds words" Stahl From sc-users-owner@bga.com Wed Jul 10 21:19:15 1996 Received: (from daemon@localhost) by zoom.bga.com (8.6.12/8.6.12) id VAA06091 for sc-users-outgoing; Wed, 10 Jul 1996 21:19:15 -0500 Received: from clyde.as.utexas.edu (clyde.as.utexas.edu [128.83.129.156]) by zoom.bga.com (8.6.12/8.6.12) with ESMTP id VAA06057 for ; Wed, 10 Jul 1996 21:19:07 -0500 Received: from [128.83.204.31] (slip-2-15.ots.utexas.edu [128.83.204.31]) by clyde.as.utexas.edu (8.6.11/2.01) with SMTP id VAA07922 for ; Wed, 10 Jul 1996 21:22:04 -0500 Date: Wed, 10 Jul 1996 21:22:04 -0500 Message-Id: Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" To: sc-users@bga.com From: james@clyde.as.utexas.edu (James McCartney) Subject: Re: MIDI Out? Sender: owner-sc-users@bga.com Precedence: bulk Reply-To: sc-users@bga.com At 6:43 PM 7/10/96, Alex Stahl wrote: >>Krms(input) is fast and probably suffices for things that don't have to happen >>sample by sample. in.(Lin).asFloat (or as whatever) will get you one >>sample value at a time. >> >>James, does that yield one value per frame or sub-frame? (yes, I could >>figure this out....) > >In returns a signal, which is defined as a subframe buffer... but I don't >understand how coercing a signal to a float makes sense. >in.Lin.asFloat works, but what is the value returned, one sample plucked >from the end of the buffer? yes. >How useful is that? It would only make sense if you wanted to convert A-rate signals to K-rate. I'm not sure where that would be needed. --- james mccartney james@clyde.as.utexas.edu james@lcsaudio.com If you have a PowerMac check out SuperCollider, a real time synth program: ftp://mirror.apple.com//mirrors/Info-Mac.Archive/gst/snd/super-collider-demo.hqx From sc-users-owner@bga.com Tue Jul 16 14:14:53 1996 Received: (from daemon@localhost) by zoom.bga.com (8.6.12/8.6.12) id NAA29943 for sc-users-outgoing; Tue, 16 Jul 1996 13:07:45 -0500 Received: from giga.bga.com (root@giga.realtime.net [205.238.128.46]) by zoom.bga.com (8.6.12/8.6.12) with ESMTP id NAA29919 for ; Tue, 16 Jul 1996 13:07:31 -0500 Received: from crl.dec.com (crl.dec.com [192.58.206.2]) by giga.bga.com (8.6.12/8.6.12) with SMTP id NAA18224 for ; Tue, 16 Jul 1996 13:07:16 -0500 Received: by crl.dec.com; id AA20411; Tue, 16 Jul 96 14:05:33 -0400 X-Sender: Eirikur@mosaic.lkg.dec.com Message-Id: Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Date: Tue, 16 Jul 1996 14:10:07 -0400 To: From: Eirikur Hallgrimsson <---@---.---> Subject: Compression Sender: owner-sc-users@bga.com Precedence: bulk Reply-To: sc-users@bga.com I wrote a quick compressor last night, but again, it seems to require a builtin in order to work correctly. I did: Xraw = (Xrms.value(in(Rin))); Xindb = Xraw.ampdb; Xfactor = (Xindb.neg).dbamp; In the .a DSP function: { (in(Lin) *! Xfactor).out(L); (in(Rin) *! 1).out(R); }.dspAdd; It has the effect of coercing the output to zero db, but the feedback is delayed, and fixed per frame. It's pretty close to working, but you get lot of clicks. I think the priniciple is interesting and maybe someone else will be inspired by it. It sounds plenty nasty, if you are looking for grundge. Eirikur Eirikur Hallgrimsson eh@ranger.enet.dec.com Generic Epistemologist "Came into sci.archaeology.mental via 56k twisted pair down the Ogam Corridor in year five before millennium. Found it replete with loonies. Must cancel subscription to 'Proto-Celtic Chronicle and Sarsen'." -- Al B. Wesolowsky From sc-users-owner@bga.com Tue Jul 16 14:31:55 1996 Received: (from daemon@localhost) by zoom.bga.com (8.6.12/8.6.12) id OAA15214 for sc-users-outgoing; Tue, 16 Jul 1996 14:31:55 -0500 Received: from dishes.pixar.com (dishes.pixar.com [138.72.20.78]) by zoom.bga.com (8.6.12/8.6.12) with SMTP id OAA15191 for ; Tue, 16 Jul 1996 14:31:47 -0500 Received: from [138.72.25.187] by dishes.pixar.com with smtp (Smail3.1.28.1 #15) id m0ugFqR-0002qrC; Tue, 16 Jul 96 12:31 PDT X-Sender: alex@dishes.pixar.com Message-Id: In-Reply-To: Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Date: Tue, 16 Jul 1996 12:31:59 -0700 To: sc-users@bga.com From: Alex Stahl <---@---.---> Subject: Re: Compression Sender: owner-sc-users@bga.com Precedence: bulk Reply-To: sc-users@bga.com >I wrote a quick compressor last night >Xraw = (Xrms.value(in(Rin))); > >Xindb = Xraw.ampdb; > >Xfactor = (Xindb.neg).dbamp; > >In the .a DSP function: > >{ (in(Lin) *! Xfactor).out(L); (in(Rin) *! 1).out(R); }.dspAdd; > >It has the effect of coercing the output to zero db, but the feedback is >delayed, and fixed per frame. It's pretty close to working, but you get >lot of clicks. Perhaps you could delay the audio to match the control signal and lag filter the control signal to reduce clicks. Also a lookup table on Xfactor could be useful for adjusting the threshold and "knee". Alex From sc-users-owner@bga.com Tue Jul 16 14:54:54 1996 Received: (from daemon@localhost) by zoom.bga.com (8.6.12/8.6.12) id OAA19170 for sc-users-outgoing; Tue, 16 Jul 1996 14:54:54 -0500 Received: from clyde.as.utexas.edu (clyde.as.utexas.edu [128.83.129.156]) by zoom.bga.com (8.6.12/8.6.12) with ESMTP id OAA19162 for ; Tue, 16 Jul 1996 14:54:51 -0500 Received: from [128.83.111.83] (slip-28-3.ots.utexas.edu [128.83.111.83]) by clyde.as.utexas.edu (8.6.11/2.01) with SMTP id OAA25601 for ; Tue, 16 Jul 1996 14:57:49 -0500 Date: Tue, 16 Jul 1996 14:57:49 -0500 Message-Id: Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" To: sc-users@bga.com From: james@clyde.as.utexas.edu (James McCartney) Subject: Re: Compression Sender: owner-sc-users@bga.com Precedence: bulk Reply-To: sc-users@bga.com At 2:10 PM 7/16/96, Eirikur Hallgrimsson wrote: >I wrote a quick compressor last night, but again, it seems to require a >builtin in order to work correctly. > > > >I did: > >Xraw = (Xrms.value(in(Rin))); > >Xindb = Xraw.ampdb; > >Xfactor = (Xindb.neg).dbamp; > >In the .a DSP function: > >{ (in(Lin) *! Xfactor).out(L); (in(Rin) *! 1).out(R); }.dspAdd; > >It has the effect of coercing the output to zero db, but the feedback is >delayed, and fixed per frame. It's pretty close to working, but you get >lot of clicks. >I think the priniciple is interesting and maybe someone else will be >inspired by it. >It sounds plenty nasty, if you are looking for grundge. > >Eirikur > >Eirikur Hallgrimsson eh@ranger.enet.dec.com Generic Epistemologist Could you post the whole patch? I can't make sense of what you've got there. in(Rin) will not work properly outside of the dsp function, so I'm not sure what you're doing. I was going to suggest: (* DO NOT TRY THIS! *) start { vcaL = Again; -- Again sets the RMS amplitude of a signal vcaR = Again; { vcaL.value(in(Lin), 1.0).out(L); vcaR.value(in(Rin), 1.0).out(R); }.dspAdd; } but I notice that Again crashes. I have fixed this and will upload an updater very soon. --- james mccartney james@clyde.as.utexas.edu james@lcsaudio.com If you have a PowerMac check out SuperCollider, a real time synth program: ftp://mirror.apple.com//mirrors/Info-Mac.Archive/gst/snd/super-collider-demo.hqx From sc-users-owner@bga.com Tue Jul 16 15:10:07 1996 Received: (from daemon@localhost) by zoom.bga.com (8.6.12/8.6.12) id PAA22133 for sc-users-outgoing; Tue, 16 Jul 1996 15:10:07 -0500 Received: from dishes.pixar.com (dishes.pixar.com [138.72.20.78]) by zoom.bga.com (8.6.12/8.6.12) with SMTP id PAA22064 for ; Tue, 16 Jul 1996 15:09:50 -0500 Received: from [138.72.25.187] by dishes.pixar.com with smtp (Smail3.1.28.1 #15) id m0ugGRI-0002qrC; Tue, 16 Jul 96 13:09 PDT X-Sender: alex@dishes.pixar.com Message-Id: In-Reply-To: Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Date: Tue, 16 Jul 1996 13:10:04 -0700 To: sc-users@bga.com From: Alex Stahl <---@---.---> Subject: Re: Compression Sender: owner-sc-users@bga.com Precedence: bulk Reply-To: sc-users@bga.com > vcaL = Again; -- Again sets the RMS amplitude of a signal Again will set the rms amplitude, not the gain? Meaning that it incorporates a level measurement of the input? Fantastic. The documentation mixes gain and amplitude, I wasn't sure about this before. Some similar (non-realtime) dsp code we're working on here does this but has a variable "strength" parameter which scales the amount of gain change applied. It helps with avoiding noise floor pumping and so on, as long as you're working on that module I thought I'd mention it. Alex From sc-users-owner@bga.com Tue Jul 16 15:37:02 1996 Received: (from daemon@localhost) by zoom.bga.com (8.6.12/8.6.12) id PAA26499 for sc-users-outgoing; Tue, 16 Jul 1996 15:37:02 -0500 Received: from clyde.as.utexas.edu (clyde.as.utexas.edu [128.83.129.156]) by zoom.bga.com (8.6.12/8.6.12) with ESMTP id PAA26465 for ; Tue, 16 Jul 1996 15:36:52 -0500 Received: from [128.83.111.83] (slip-28-3.ots.utexas.edu [128.83.111.83]) by clyde.as.utexas.edu (8.6.11/2.01) with SMTP id PAA25766 for ; Tue, 16 Jul 1996 15:39:54 -0500 Date: Tue, 16 Jul 1996 15:39:54 -0500 Message-Id: Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" To: sc-users@bga.com From: james@clyde.as.utexas.edu (James McCartney) Subject: Re: Compression Sender: owner-sc-users@bga.com Precedence: bulk Reply-To: sc-users@bga.com At 1:10 PM 7/16/96, Alex Stahl wrote: >> vcaL = Again; -- Again sets the RMS amplitude of a signal > >Again will set the rms amplitude, not the gain? Meaning that it >incorporates a level measurement of the input? Fantastic. Yes. >The >documentation mixes gain and amplitude, I wasn't sure about this before. 'gain' is CSound's name for the function. > >Some similar (non-realtime) dsp code we're working on here does this but >has a variable "strength" parameter which scales the amount of gain change >applied. It helps with avoiding noise floor pumping and so on, as long as >you're working on that module I thought I'd mention it. I've added a max_boost parameter so that you can limit the amount you boost low level signals. --- james mccartney james@clyde.as.utexas.edu james@lcsaudio.com If you have a PowerMac check out SuperCollider, a real time synth program: ftp://mirror.apple.com//mirrors/Info-Mac.Archive/gst/snd/super-collider-demo.hqx From sc-users-owner@bga.com Wed Jul 17 10:55:48 1996 Received: (from daemon@localhost) by zoom.bga.com (8.6.12/8.6.12) id KAA10537 for sc-users-outgoing; Wed, 17 Jul 1996 10:55:48 -0500 Received: from crl.dec.com (crl.dec.com [192.58.206.2]) by zoom.bga.com (8.6.12/8.6.12) with SMTP id KAA10520 for ; Wed, 17 Jul 1996 10:55:44 -0500 Received: by crl.dec.com; id AA17197; Wed, 17 Jul 96 11:51:15 -0400 X-Sender: Eirikur@mosaic.lkg.dec.com Message-Id: Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Date: Wed, 17 Jul 1996 11:55:45 -0400 To: From: Eirikur Hallgrimsson <---@---.---> Subject: Re: Compression (ugly duckling code) Sender: owner-sc-users@bga.com Precedence: bulk Reply-To: sc-users@bga.com -- This is an unpretty hack derived from a previous effort. Kind of a "can I do this" thing. -- Hack compressor (first attempt) Eirikur, July 1996 defaudioin Lin Rin; defaudioout L R; deftable t1; static compFactor; init { } start { -- Left is compressed, Right is straight through. Math on Right is to prevent phase delay, -- I'm not sure if it is needed. { (in(Lin) *! compFactor).out(L); (in(Rin) *! 1).out(R); }.dspAdd; doit; } doit { Xrms = Krms(in(Lin)); -- Create a Krms envelope follower Xraw = (Xrms.value(in(Lin))); -- Get the RMS value Xindb = Xraw.ampdb; Xfactor = (Xindb.neg).dbamp; --[Xindb, Xfactor, compFactor].post; compFactor = Xfactor; -- I was scaling by multiplying by a -1 to 1 slider, but it wasn't really useful. [0.001, thisFunc].sched; } Eirikur Hallgrimsson eh@ranger.enet.dec.com Generic Epistemologist "Came into sci.archaeology.mental via 56k twisted pair down the Ogam Corridor in year five before millennium. Found it replete with loonies. Must cancel subscription to 'Proto-Celtic Chronicle and Sarsen'." -- Al B. Wesolowsky From sc-users-owner@bga.com Wed Jul 17 12:27:05 1996 Received: (from daemon@localhost) by zoom.bga.com (8.6.12/8.6.12) id MAA26836 for sc-users-outgoing; Wed, 17 Jul 1996 12:27:05 -0500 Received: from clyde.as.utexas.edu (clyde.as.utexas.edu [128.83.129.156]) by zoom.bga.com (8.6.12/8.6.12) with ESMTP id MAA26815 for ; Wed, 17 Jul 1996 12:27:00 -0500 Received: from [128.83.111.127] (slip-30-15.ots.utexas.edu [128.83.111.127]) by clyde.as.utexas.edu (8.6.11/2.01) with SMTP id MAA28429 for ; Wed, 17 Jul 1996 12:29:59 -0500 Date: Wed, 17 Jul 1996 12:29:59 -0500 Message-Id: Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" To: sc-users@bga.com From: james@clyde.as.utexas.edu (James McCartney) Subject: Re: Compression (ugly duckling code) Sender: owner-sc-users@bga.com Precedence: bulk Reply-To: sc-users@bga.com At 11:55 AM 7/17/96, Eirikur Hallgrimsson wrote: >-- This is an unpretty hack derived from a previous effort. Kind of a "can >I do this" thing. I'll comment on it. >start { >-- Left is compressed, Right is straight through. Math on Right is to >prevent phase delay, >-- I'm not sure if it is needed. >{ (in(Lin) *! compFactor).out(L); (in(Rin) *! 1).out(R); }.dspAdd; You do not need the (in(Rin) *! 1). Adding operators doesn't cause a phase delay. Everything is synchronous. > >doit; > >} > > >doit { >Xrms = Krms(in(Lin)); -- Create a Krms envelope follower in(Lin) is a function which should only be run inside the dsp stage function. You should not use it when creating synth functions. > >Xraw = (Xrms.value(in(Lin))); -- Get the RMS value Likewise you should not evaluate synthesis functions outside of the dsp stage function. Only when you are in the dsp function do you have access to the audio streams. > [0.001, thisFunc].sched; The main loop of SC looks like: tick() { do any scheduled functions; run any dsp functions for stage 0; run any dsp functions for stage 1; run any dsp functions for stage 2; run any dsp functions for stage 3; } only the dsp functions can get to the audio. scheduled functions are for setting up events to start dsp functions running. (or stop them). --- james mccartney james@clyde.as.utexas.edu james@lcsaudio.com If you have a PowerMac check out SuperCollider, a real time synth program: ftp://mirror.apple.com//mirrors/Info-Mac.Archive/gst/snd/super-collider-demo.hqx From sc-users-owner@bga.com Thu Jul 18 10:04:59 1996 Received: (from daemon@localhost) by zoom.bga.com (8.6.12/8.6.12) id DAA21071 for sc-users-outgoing; Thu, 18 Jul 1996 03:29:34 -0500 Received: from maelzel.ircam.fr (maelzel.ircam.fr [129.102.1.10]) by zoom.bga.com (8.6.12/8.6.12) with ESMTP id DAA20935 for ; Thu, 18 Jul 1996 03:29:11 -0500 Received: from hildegard.ircam.fr (hildegard.ircam.fr [129.102.144.17]) by maelzel.ircam.fr (8.7.5/jtpda-5.2/ircam) with ESMTP id KAA13607 for ; Thu, 18 Jul 1996 10:28:31 +0200 (MET DST) Received: from [129.102.145.33] (mac-pedago-studio-assist.ircam.fr [129.102.145.33]) by hildegard.ircam.fr (8.7.5/jtpda-5.2/ircam) with SMTP id KAA11439 for ; Thu, 18 Jul 1996 10:29:06 +0200 (METDST) Message-Id: Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" X-Mailer: Eudora F1.5.1 Date: Thu, 18 Jul 1996 10:31:13 +0100 To: sc-users@bga.com From: Richard.Dudas@ircam.fr (dudas) Subject: macintosh, macintosh Sender: owner-sc-users@bga.com Precedence: bulk Reply-To: sc-users@bga.com Dear sc users, I'm thinking of finally upgrading to a powerMac in the near future and would like some advice from those who may have had practical experience with different models, and their audio capabilities. How do the clones work with DSP...do they offer any advantages? ... how about the Daystar with 4 PPC chips?... etc... I've been advised to stay away from the 8100 series, but it seems that the 8500s and 8600s are ok... I don't want the SC-users newsgroup to become a macintosh gossip forum, so if anyone has any interesting info/advice, please contact me directly at: dudas@ircam.fr Thanks, -Richard From sc-users-owner@bga.com Thu Jul 18 10:37:38 1996 Received: (from daemon@localhost) by zoom.bga.com (8.6.12/8.6.12) id KAA23742 for sc-users-outgoing; Thu, 18 Jul 1996 10:37:38 -0500 Received: from crl.dec.com (crl.dec.com [192.58.206.2]) by zoom.bga.com (8.6.12/8.6.12) with SMTP id KAA23707 for ; Thu, 18 Jul 1996 10:37:26 -0500 Received: by crl.dec.com; id AA10976; Thu, 18 Jul 96 11:33:16 -0400 X-Sender: Eirikur@mosaic.lkg.dec.com Message-Id: Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Date: Thu, 18 Jul 1996 11:35:32 -0400 To: From: Eirikur Hallgrimsson <---@---.---> Subject: Re: macintosh, macintosh Sender: owner-sc-users@bga.com Precedence: bulk Reply-To: sc-users@bga.com Actually, I've found the 7100 (should be available at a good price) to work fine. It does have much less CPU power than the 9500 I have at work, but my 9500 has never been reliable. Eirikur Eirikur Hallgrimsson eh@ranger.enet.dec.com Generic Epistemologist "Came into sci.archaeology.mental via 56k twisted pair down the Ogam Corridor in year five before millennium. Found it replete with loonies. Must cancel subscription to 'Proto-Celtic Chronicle and Sarsen'." -- Al B. Wesolowsky From sc-users-owner@bga.com Thu Jul 18 10:50:55 1996 Received: (from daemon@localhost) by zoom.bga.com (8.6.12/8.6.12) id KAA25917 for sc-users-outgoing; Thu, 18 Jul 1996 10:50:55 -0500 Received: from clyde.as.utexas.edu (clyde.as.utexas.edu [128.83.129.156]) by zoom.bga.com (8.6.12/8.6.12) with ESMTP id KAA25876 for ; Thu, 18 Jul 1996 10:50:42 -0500 Received: from [128.83.112.40] (slip-36-8.ots.utexas.edu [128.83.112.40]) by clyde.as.utexas.edu (8.6.11/2.01) with SMTP id KAA02340 for ; Thu, 18 Jul 1996 10:53:45 -0500 Date: Thu, 18 Jul 1996 10:53:45 -0500 Message-Id: Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" To: sc-users@bga.com From: james@clyde.as.utexas.edu (James McCartney) Subject: Re: macintosh, macintosh Sender: owner-sc-users@bga.com Precedence: bulk Reply-To: sc-users@bga.com At 11:35 AM 7/18/96, Eirikur Hallgrimsson wrote: >Actually, I've found the 7100 (should be available at a good price) to work >fine. It does have much less CPU power than the 9500 I have at work, but >my 9500 has never been reliable. Does your 7100 have a cache card? It improves speed quite a bit. --- james mccartney james@clyde.as.utexas.edu james@lcsaudio.com If you have a PowerMac check out SuperCollider, a real time synth program: ftp://mirror.apple.com//mirrors/Info-Mac.Archive/gst/snd/super-collider-demo.hqx From sc-users-owner@bga.com Thu Jul 18 11:04:46 1996 Received: (from daemon@localhost) by zoom.bga.com (8.6.12/8.6.12) id LAA28066 for sc-users-outgoing; Thu, 18 Jul 1996 11:04:46 -0500 Received: from dishes.pixar.com (dishes.pixar.com [138.72.20.78]) by zoom.bga.com (8.6.12/8.6.12) with SMTP id LAA28051 for ; Thu, 18 Jul 1996 11:04:38 -0500 Received: from [138.72.25.187] by dishes.pixar.com with smtp (Smail3.1.28.1 #15) id m0ugvZ6-0006i3C; Thu, 18 Jul 96 09:04 PDT X-Sender: alex@dishes.pixar.com Message-Id: Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Date: Thu, 18 Jul 1996 09:05:13 -0700 To: dudas@ircam.fr From: Alex Stahl <---@---.---> Subject: Re: macintosh, macintosh Cc: sc-users@bga.com Sender: owner-sc-users@bga.com Precedence: bulk Reply-To: sc-users@bga.com I have been using an 8100/80 for a couple years, with no major complaints. I have not done systematic comparisions with newer machines, but I can say that SuperCollider, Max, Audiomedia II and many of the common sound editors and analyzers work quite well. 5600x and audio I/O hardware (read: digidesign) for PCI macs is new enough that the hardware is still buggy in my limited recent experience, if that matters to you. I believe that the only multiprocessor support planned for SC in the near future would be a BeBox port. I was advised to get plenty of RAM (56M); that's even better advice with current pricing. The internal analog converters are just OK, as seems true of any PC. Alex >Dear sc users, > >I'm thinking of finally upgrading to a powerMac in the near future and >would like some advice from those who may have had practical experience >with different models, and their audio capabilities. How do the clones >work with DSP...do they offer any advantages? ... how about the Daystar >with 4 PPC chips?... etc... > >I've been advised to stay away from the 8100 series, but it seems that the >8500s and 8600s are ok... > >I don't want the SC-users newsgroup to become a macintosh gossip forum, so >if anyone has any interesting info/advice, please contact me directly at: > >dudas@ircam.fr > >Thanks, > >-Richard From sc-users-owner@bga.com Thu Jul 18 11:50:47 1996 Received: (from daemon@localhost) by zoom.bga.com (8.6.12/8.6.12) id LAA05533 for sc-users-outgoing; Thu, 18 Jul 1996 11:50:47 -0500 Received: from tango.ccmrc.ucsb.edu (ccmrc.ucsb.edu [128.111.92.40]) by zoom.bga.com (8.6.12/8.6.12) with SMTP id LAA05521 for ; Thu, 18 Jul 1996 11:50:41 -0500 Received: by tango.ccmrc.ucsb.edu (4.1/SMI-4.1) id AA02772; Thu, 18 Jul 96 09:50:37 PDT From: stp@create.ucsb.edu (Stephen Travis Pope) Message-Id: <9607181650.AA02772@tango.ccmrc.ucsb.edu> Date: Thursday, 18 Jul 96 9:48:55 am Subject: Re: macintosh, macintosh In-Reply-To: Richard.Dudas@ircam.fr (dudas)'s letter of: 96 Jul 18 To: sc-users@bga.com Fonts: 75 1 Sender: owner-sc-users@bga.com Precedence: bulk Reply-To: sc-users@bga.com We have multiple 7200 and 7500 models, and are very happy with them. stp ___Stephen Travis Pope, Center for Research in Electronic Art Technology ___(CREATE), Dept. of Music, U. of California, Santa Barbara (UCSB) ___Editor, Computer Music Journal (CMJ), MIT Press ___stp@create.ucsb.edu http://www.create.ucsb.edu/~stp/ From sc-users-owner@bga.com Thu Jul 18 12:12:51 1996 Received: (from daemon@localhost) by zoom.bga.com (8.6.12/8.6.12) id MAA09645 for sc-users-outgoing; Thu, 18 Jul 1996 12:12:51 -0500 Received: from clyde.as.utexas.edu (clyde.as.utexas.edu [128.83.129.156]) by zoom.bga.com (8.6.12/8.6.12) with ESMTP id MAA09549 for ; Thu, 18 Jul 1996 12:12:20 -0500 Received: from [128.83.112.6] (slip-34-6.ots.utexas.edu [128.83.112.6]) by clyde.as.utexas.edu (8.6.11/2.01) with SMTP id MAA02826; Thu, 18 Jul 1996 12:15:23 -0500 Date: Thu, 18 Jul 1996 12:15:23 -0500 Message-Id: Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" To: sc-users@bga.com From: james@clyde.as.utexas.edu (James McCartney) Subject: Re: macintosh, macintosh Cc: sc-users@bga.com Sender: owner-sc-users@bga.com Precedence: bulk Reply-To: sc-users@bga.com At 9:05 AM 7/18/96, Alex Stahl wrote: >I believe that the only multiprocessor support planned for SC in the near >future would be a BeBox port. I will be porting SC to the BeBox at some point, hopefully soon. I am writing software on the BeBox full time for Level Control Systems. I am very excited about this platform. I think it has the potential to take the place that the NeXT occupied in computer music. Coming from the Mac, I find the BeBox much much easier to program. Last night I went to a Be demo here in Austin and Jon Watte of Metrowerks showed a simple demo app that will come with the next Codewarrior release for the BeBox (with source), which is a sample editor with plug in filters, and multi-track layout & playback program. Total size of the executable: 44K. Took him 3 days to write. the Be home page is http://www.be.com --- james mccartney james@clyde.as.utexas.edu james@lcsaudio.com If you have a PowerMac check out SuperCollider, a real time synth program: ftp://mirror.apple.com//mirrors/Info-Mac.Archive/gst/snd/super-collider-demo.hqx From sc-users-owner@bga.com Thu Jul 18 12:16:28 1996 Received: (from daemon@localhost) by zoom.bga.com (8.6.12/8.6.12) id MAA10245 for sc-users-outgoing; Thu, 18 Jul 1996 12:16:28 -0500 Received: from maelzel.ircam.fr (maelzel.ircam.fr [129.102.1.10]) by zoom.bga.com (8.6.12/8.6.12) with ESMTP id MAA10201 for ; Thu, 18 Jul 1996 12:16:11 -0500 Received: from hildegard.ircam.fr (hildegard.ircam.fr [129.102.144.17]) by maelzel.ircam.fr (8.7.5/jtpda-5.2/ircam) with ESMTP id TAA16899 for ; Thu, 18 Jul 1996 19:15:32 +0200 (MET DST) Received: from [129.102.145.33] (mac-pedago-studio-assist.ircam.fr [129.102.145.33]) by hildegard.ircam.fr (8.7.5/jtpda-5.2/ircam) with SMTP id TAA12626 for ; Thu, 18 Jul 1996 19:16:06 +0200 (METDST) Message-Id: Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" X-Mailer: Eudora F1.5.1 Date: Thu, 18 Jul 1996 19:18:13 +0100 To: sc-users@bga.com From: Richard.Dudas@ircam.fr (dudas) Subject: max and supercollider Sender: owner-sc-users@bga.com Precedence: bulk Reply-To: sc-users@bga.com Dear SC users, I just tested out the new version of SuperCollider (1.1b4) in overdrive mode with Max sending notes out to the IAC bus. AND IT WORKED!!!!!! I was trying out tutorial no. 8, on an 8100/80 here at work (with the standard 4MB allocated to SC and 8MB to Max). I lowered the frame size to 1024 samples, in order to minimize the delay, and only had a serious crash once when I tried to lower the frame size to 512 and the sub frame size to 256... here, I'll try it again just to test it out... nope, no crashes this time, but the computer was amost completely frozen up. Let's face it, though... it's a big cpu hog to run them both at once. The program (tutorial 8) uses around 1-7% of the cpu (with no midi coming in, and thus no sound generated) when SC is not in overdrive, and anywhere from 45-50% when in overdrive (again, with neither midi nor sound). It's just nice to know that these two programs are compatible when sharing the same computer. (max may also be put into overdrive without problems) -Richard From sc-users-owner@bga.com Thu Jul 18 14:35:21 1996 Received: (from daemon@localhost) by zoom.bga.com (8.6.12/8.6.12) id OAA03671 for sc-users-outgoing; Thu, 18 Jul 1996 14:35:21 -0500 Received: from dishes.pixar.com (dishes.pixar.com [138.72.20.78]) by zoom.bga.com (8.6.12/8.6.12) with SMTP id OAA03641 for ; Thu, 18 Jul 1996 14:35:12 -0500 Received: from [138.72.25.187] by dishes.pixar.com with smtp (Smail3.1.28.1 #15) id m0ugyqo-0000WGC; Thu, 18 Jul 96 12:35 PDT X-Sender: alex@dishes.pixar.com Message-Id: In-Reply-To: Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Date: Thu, 18 Jul 1996 12:35:44 -0700 To: sc-users@bga.com From: Alex Stahl <---@---.---> Subject: Re: max and supercollider Sender: owner-sc-users@bga.com Precedence: bulk Reply-To: sc-users@bga.com >I will be porting SC to the BeBox at some point, hopefully soon. >I am very excited about this platform. I think it has the potential >to take the place that the NeXT occupied in computer music. + >I just tested out the new version of SuperCollider (1.1b4) in overdrive >mode with Max sending notes out to the IAC bus. AND IT WORKED!!!!!! = Then all we'll need is BeMax...if you're porting LCS to BeBox aren't you sort of doing that anyway? From sc-users-owner@bga.com Thu Jul 18 14:46:59 1996 Received: (from daemon@localhost) by zoom.bga.com (8.6.12/8.6.12) id OAA05767 for sc-users-outgoing; Thu, 18 Jul 1996 14:46:59 -0500 Received: from clyde.as.utexas.edu (clyde.as.utexas.edu [128.83.129.156]) by zoom.bga.com (8.6.12/8.6.12) with ESMTP id OAA05751 for ; Thu, 18 Jul 1996 14:46:50 -0500 Received: from [128.83.111.48] (slip-25-16.ots.utexas.edu [128.83.111.48]) by clyde.as.utexas.edu (8.6.11/2.01) with SMTP id OAA03533 for ; Thu, 18 Jul 1996 14:46:08 -0500 Date: Thu, 18 Jul 1996 14:46:08 -0500 Message-Id: Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" To: sc-users@bga.com From: james@clyde.as.utexas.edu (James McCartney) Subject: Re: max and supercollider Sender: owner-sc-users@bga.com Precedence: bulk Reply-To: sc-users@bga.com At 12:35 PM 7/18/96, Alex Stahl wrote: >Then all we'll need is BeMax...if you're porting LCS to BeBox aren't you >sort of doing that anyway? No, the new LCS is a ground up rewrite in C++. However a MAX clone shouldn't be too hard. Eventually I'd like something like MAX but with SuperCollider/Pyrite integrated and: * real GC'ed objects over the wires * wiring compiled to byte code rather than represented by data structures, enabling quick dynamic instantiation of patches. This I think will be a while.. --- james mccartney james@clyde.as.utexas.edu james@lcsaudio.com If you have a PowerMac check out SuperCollider, a real time synth program: ftp://mirror.apple.com//mirrors/Info-Mac.Archive/gst/snd/super-collider-demo.hqx From sc-users-owner@bga.com Thu Jul 18 17:05:39 1996 Received: (from daemon@localhost) by zoom.bga.com (8.6.12/8.6.12) id PAA13857 for sc-users-outgoing; Thu, 18 Jul 1996 15:39:00 -0500 Received: from fht.com ([206.169.34.3]) by zoom.bga.com (8.6.12/8.6.12) with ESMTP id PAA13715 for ; Thu, 18 Jul 1996 15:38:15 -0500 Received: from [206.169.34.4] by fht.com with SMTP (Apple Internet Mail Server 1.0); Thu, 18 Jul 1996 13:33:54 -0700 X-Sender: m@206.169.34.3 Message-Id: Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Date: Thu, 18 Jul 1996 13:38:59 -0800 To: sc-users@bga.com From: m@fht.com (M 5tevens) Subject: Re: macintosh, macintosh Cc: sc-users@bga.com Sender: owner-sc-users@bga.com Precedence: bulk Reply-To: sc-users@bga.com At 12:15 PM 7/18/96, James McCartney wrote: >I will be porting SC to the BeBox at some point, hopefully soon. >I am writing software on the BeBox full time for Level Control Systems. >I am very excited about this platform. I think it has the potential >to take the place that the NeXT occupied in computer music. >Coming from the Mac, I find the BeBox much much easier to program. I'm quite interested in the BeBox myself. Is anything in the works for it along the lines of sequencing and sample editing? I'm not exactly seeing developers lining up to port their software to it just yet. Is there any way to get it to run Mac stuff? --------------------------| V0ID IF DETACHED |--------------------------- 'cynic: a blackguard, whose faulty vision sees things as they are, not as they should be.' - A.G. Bierce 'I am convinced that within a century coffee, tea, and tobacco will be no longer used. Alcohol, however, will still be used. It is not a stimulant, but a veritable elixir of life.' - Nikolai Tesla ------------------------------------------------------------------------- || //| //| M 5tevens Lead Sound Designer 415.882.1730 Voice || //|| //|| Foley Hi-Tech 415.882.1733 Fax ||// ||// || 185 Berry Street 415.882.1735 BBS ||/ ||/ || m@fht.com San Francrisco, CA 94107 http://www.fht.com ------------------------------------------------------------------------- some information missing / damaged / incomplete ------------------------------------------------------------------------- From sc-users-owner@bga.com Thu Jul 18 17:22:47 1996 Received: (from daemon@localhost) by zoom.bga.com (8.6.12/8.6.12) id PAA13862 for sc-users-outgoing; Thu, 18 Jul 1996 15:39:02 -0500 Received: from fht.com ([206.169.34.3]) by zoom.bga.com (8.6.12/8.6.12) with ESMTP id PAA13714 for ; Thu, 18 Jul 1996 15:38:15 -0500 Received: from [206.169.34.4] by fht.com with SMTP (Apple Internet Mail Server 1.0); Thu, 18 Jul 1996 13:33:54 -0700 X-Sender: m@206.169.34.3 Message-Id: Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Date: Thu, 18 Jul 1996 13:38:59 -0800 To: sc-users@bga.com From: m@fht.com (M 5tevens) Subject: Re: macintosh, macintosh Cc: sc-users@bga.com Sender: owner-sc-users@bga.com Precedence: bulk Reply-To: sc-users@bga.com At 12:15 PM 7/18/96, James McCartney wrote: >I will be porting SC to the BeBox at some point, hopefully soon. >I am writing software on the BeBox full time for Level Control Systems. >I am very excited about this platform. I think it has the potential >to take the place that the NeXT occupied in computer music. >Coming from the Mac, I find the BeBox much much easier to program. I'm quite interested in the BeBox myself. Is anything in the works for it along the lines of sequencing and sample editing? I'm not exactly seeing developers lining up to port their software to it just yet. Is there any way to get it to run Mac stuff? --------------------------| V0ID IF DETACHED |--------------------------- 'cynic: a blackguard, whose faulty vision sees things as they are, not as they should be.' - A.G. Bierce 'I am convinced that within a century coffee, tea, and tobacco will be no longer used. Alcohol, however, will still be used. It is not a stimulant, but a veritable elixir of life.' - Nikolai Tesla ------------------------------------------------------------------------- || //| //| M 5tevens Lead Sound Designer 415.882.1730 Voice || //|| //|| Foley Hi-Tech 415.882.1733 Fax ||// ||// || 185 Berry Street 415.882.1735 BBS ||/ ||/ || m@fht.com San Francrisco, CA 94107 http://www.fht.com ------------------------------------------------------------------------- some information missing / damaged / incomplete ------------------------------------------------------------------------- From sc-users-owner@bga.com Sat Jul 20 14:35:06 1996 Received: (from daemon@localhost) by zoom.bga.com (8.6.12/8.6.12) id OAA22271 for sc-users-outgoing; Sat, 20 Jul 1996 14:35:06 -0500 Received: from lunar.eclipse.net (root@lunar.eclipse.net [205.197.48.9]) by zoom.bga.com (8.6.12/8.6.12) with ESMTP id OAA22237 for ; Sat, 20 Jul 1996 14:34:57 -0500 Received: from [205.197.49.35] (so1-35.eclipse.net [205.197.49.35]) by lunar.eclipse.net (8.6.12/8.6.12) with ESMTP id PAA24956 for ; Sat, 20 Jul 1996 15:34:53 -0400 X-Sender: kmistove@lunar.eclipse.net (Unverified) Message-Id: Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Date: Sat, 20 Jul 1996 15:32:59 -0500 To: sc-users@bga.com From: Ken Mistove <---@---.---> Subject: SC with Digidesign Sound Drivers Sender: owner-sc-users@bga.com Precedence: bulk Reply-To: sc-users@bga.com The following is meant for James M., but perhaps some other SC users may have a similar problem and/or know a solution. Hi James, I recently purchased an Audiomedia III card for digital audio in my PowerMac 7500. Digidesign has a software extension which allows it's card to be both the input and output for Sound Manager (you probably know all of this already). I don't expect you to support Digi's hardware or software, but I have a problem that you might be able to shed some light on. When I open a patch in SC that uses audio input (while using the AMIII card as both input and output) I get the following error in Super Collider - "SPBOpenDevice error: -277". Is this something that you are aware of and can fix in Super Collider? I remember helping you with a problem when Sound Manager wasn't releasing itself back to the system (you sent me alpha version 1.1x1 as a temporary fix). Maybe this is a similar problem. I do admit that the Digi drivers I am using are the latest beta version (1.41x3 - for PCI Macs) and have heard of many problems with official versions. I have had no problems with the output. I know the input on the card works. The app "Simple Sound" records from the card just fine. I would love to use the AMIII for input to SC. Any help you can give me will be greatly appreciated. Thanks. Ken Mistove kmistove@eclipse.net http://www.eclipse.net/~kmistove/ From sc-users-owner@bga.com Sat Jul 20 14:59:56 1996 Received: (from daemon@localhost) by zoom.bga.com (8.6.12/8.6.12) id OAA24825 for sc-users-outgoing; Sat, 20 Jul 1996 14:59:56 -0500 Received: from clyde.as.utexas.edu (clyde.as.utexas.edu [128.83.129.156]) by zoom.bga.com (8.6.12/8.6.12) with ESMTP id OAA24806 for ; Sat, 20 Jul 1996 14:59:49 -0500 Received: from [128.83.111.88] (slip-28-8.ots.utexas.edu [128.83.111.88]) by clyde.as.utexas.edu (8.6.11/2.01) with SMTP id OAA09071 for ; Sat, 20 Jul 1996 14:59:08 -0500 Date: Sat, 20 Jul 1996 14:59:08 -0500 Message-Id: Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" To: sc-users@bga.com From: james@clyde.as.utexas.edu (James McCartney) Subject: Re: SC with Digidesign Sound Drivers Sender: owner-sc-users@bga.com Precedence: bulk Reply-To: sc-users@bga.com At 3:32 PM 7/20/96, Ken Mistove wrote: >Hi James, > >I recently purchased an Audiomedia III card for digital audio in my >PowerMac 7500. Digidesign has a software extension which allows it's card >to be both the input and output for Sound Manager (you probably know all of >this already). I don't expect you to support Digi's hardware or software, >but I have a problem that you might be able to shed some light on. When I >open a patch in SC that uses audio input (while using the AMIII card as >both input and output) I get the following error in Super Collider - >"SPBOpenDevice error: -277". > >Is this something that you are aware of and can fix in Super Collider? I >remember helping you with a problem when Sound Manager wasn't releasing >itself back to the system (you sent me alpha version 1.1x1 as a temporary >fix). Maybe this is a similar problem. This error, which is usually preceeded an error setting siContinuous, has been fixed in version 1.1b4. Apple has a bug in their sound input driver on PCI Macs which doesn't turn off the sound input when you close a sound channel. So it had to be turned off explicitly. An updater to 1.1b4 is available at the ftp site: --- james mccartney james@clyde.as.utexas.edu james@lcsaudio.com If you have a PowerMac check out SuperCollider, a real time synth program: ftp://mirror.apple.com//mirrors/Info-Mac.Archive/gst/snd/super-collider-demo.hqx From sc-users-owner@bga.com Tue Jul 23 04:51:13 1996 Received: (from daemon@localhost) by zoom.bga.com (8.6.12/8.6.12) id EAA09401 for sc-users-outgoing; Tue, 23 Jul 1996 04:51:13 -0500 Received: from mail1.sirius.com (mail1.sirius.com [205.134.253.131]) by zoom.bga.com (8.6.12/8.6.12) with ESMTP id EAA09392 for ; Tue, 23 Jul 1996 04:51:10 -0500 Received: from [205.134.227.20] (ppp020-sf1.sirius.com [205.134.227.20]) by mail1.sirius.com (8.6.12/960710) with SMTP id CAA24073 for ; Tue, 23 Jul 1996 02:50:50 -0700 Date: Tue, 23 Jul 1996 02:50:50 -0700 Message-Id: Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" To: sc-users@bga.com From: ear@sirius.com (jhno) Subject: SC: coupla questions Sender: owner-sc-users@bga.com Precedence: bulk Reply-To: sc-users@bga.com Hi folks, I can't seem to figure out the simple process of recording audio in to a buffer. I assume you need to use Abufwr? I have tried as many combinations as I can think of, including: Abufwr(in(Lin)); Abufwr(Lin); or rec=Abufwr(testbuf); rec.value(in(Lin)); None of these compile... so how do I record audio into a buffer? I wish there was an example on this... Also, why does this work: instr1 { filt1 = Arlpf(0, 0.5); { (filt1.(in(Lin),1000)).out(L); }.dspAdd(1); ...while this sounds screwed up: instr1 { { (Arlpf.(in(Lin),1000)).out(L); }.dspAdd(1); ...and this doesn't compile at all: instr1 { { Arlpf(in(Lin),1000).out(L); }.dspAdd(1); } Any insight would be appreciated... I will eventually reciprocate with fantastic contributions to the SC public domain library... :) thanks, jhno () )) ( ((( )) ) ))))) ( )((()) ( ( )) ( ) ) ( ((( ) (()( (() delicate ear ear@sirius.com san francisco, ca http://www.sirius.com/~ear From sc-users-owner@bga.com Tue Jul 23 10:12:16 1996 Received: (from daemon@localhost) by zoom.bga.com (8.6.12/8.6.12) id KAA10205 for sc-users-outgoing; Tue, 23 Jul 1996 10:12:16 -0500 Received: from clyde.as.utexas.edu (clyde.as.utexas.edu [128.83.129.156]) by zoom.bga.com (8.6.12/8.6.12) with ESMTP id KAA10168 for ; Tue, 23 Jul 1996 10:12:08 -0500 Received: from [128.83.128.86] (slip-17-6.ots.utexas.edu [128.83.128.86]) by clyde.as.utexas.edu (8.6.11/2.01) with SMTP id KAA16404 for ; Tue, 23 Jul 1996 10:11:23 -0500 Date: Tue, 23 Jul 1996 10:11:23 -0500 Message-Id: Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" To: sc-users@bga.com From: james@clyde.as.utexas.edu (James McCartney) Subject: Re: SC: coupla questions Sender: owner-sc-users@bga.com Precedence: bulk Reply-To: sc-users@bga.com At 2:50 AM 7/23/96, jhno wrote: >Hi folks, > >I can't seem to figure out the simple process of recording audio in to a >buffer. > >I assume you need to use Abufwr? I have tried as many combinations as I can >think of, including: > >Abufwr(in(Lin)); >Abufwr(Lin); > >or > >rec=Abufwr(testbuf); >rec.value(in(Lin)); > >None of these compile... so how do I record audio into a buffer? I wish >there was an example on this... All the signal processing functions which begin with capital letters such as Abufwr, Arlpf, etc, you can think of as constructors for a class. They return an 'object' or 'function' or 'closure', which will do the processing. So when you call: rec = Abufwr(testbuf); 'rec' now holds a function which can write audio into a buffer. Abufwr, or any other function beginning with a captial letter, cannot do any processing itself. In order to evaluate the function every control period to process audio, you need to be executing inside of a dsp task. so you need to write something like the following: defaudioout L R; defaudioin Lin, Rin; defaudiobuf testbuf; instr1 { rec = Abufwr(testbuf); -- instantiate a dsp object { rec.value(in(Lin)); -- evaluate it. }.dspAdd(1); } I could have written for the inner function: { value(rec, in(Lin)); -- evaluate it. }.dspAdd(1); > >Also, why does this work: > >instr1 { > filt1 = Arlpf(0, 0.5); > { > (filt1.(in(Lin),1000)).out(L); > }.dspAdd(1); Everything is done correctly above. The filter object is instantiated, a dsp function is created which evaluates the filter object each control period. >instr1 { > { > (Arlpf.(in(Lin),1000)).out(L); > }.dspAdd(1); this is the equivalent of writing: instr1 { { value(Arlpf(), in(Lin), 1000).out(L); }.dspAdd(1); because x.(a) is the same as: x.value(a) is the same as: value(x, a) you have value(Arlpf, in(Lin), 1000) Arlpf is a built in function so the above is evaluating Arlpf then applying the returned function to the args each control period. In other words you are instantiating a new audio processing function each control period, which results in no continuity of sound. > >...and this doesn't compile at all: > >instr1 { > { > Arlpf(in(Lin),1000).out(L); > }.dspAdd(1); >} This compiles fine for me. You will get an error when you run it though because in(Lin) is not an audiobuf. In the manual the functions Abufwr and Arlpf have their arguments listed AND the arguments for the returned function. There is also the question of whether you really want Abufwr. Recording into a buffer is a one shot deal and should be triggered by some event such as pressing a button or MIDI key. If you want to do continuous processing you need to do something else depending on what you're trying to do. Abufwr is for writing to random locations in a buffer, if you want to record the whole buffer you should use Arecord. Also, shoot, I just found a bug in Abufwr, so use Arecord instead. here's a test patch: (* be sure to turn on 'In from Sound Mgr' *) defaudioout L R; defaudioin Lin Rin; defaudiobuf testbuf; init { testbuf.allocAudio(40000); -- allocate buffer } start { rec = Arecord(testbuf, `dspKill); -- instantiate recorder { rec.(in(Lin)); }.dspAdd(1); } This will run just long enough to record the buffer and then quit I will upload an updater which fixes Again and Abufwr later today. --- james mccartney james@clyde.as.utexas.edu james@lcsaudio.com If you have a PowerMac check out SuperCollider, a real time synth program: ftp://mirror.apple.com//mirrors/Info-Mac.Archive/gst/snd/super-collider-demo.hqx From sc-users-owner@bga.com Tue Jul 23 10:30:29 1996 Received: (from daemon@localhost) by zoom.bga.com (8.6.12/8.6.12) id KAA12760 for sc-users-outgoing; Tue, 23 Jul 1996 10:30:29 -0500 Received: from dishes.pixar.com (dishes.pixar.com [138.72.20.78]) by zoom.bga.com (8.6.12/8.6.12) with SMTP id KAA12750 for ; Tue, 23 Jul 1996 10:30:26 -0500 Received: from [138.72.25.187] by dishes.pixar.com with smtp (Smail3.1.28.1 #15) id m0uijPl-0001E0C; Tue, 23 Jul 96 08:30 PDT X-Sender: alex@dishes.pixar.com Message-Id: In-Reply-To: Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Date: Tue, 23 Jul 1996 08:30:34 -0700 To: sc-users@bga.com From: Alex Stahl <---@---.---> Subject: frames Sender: owner-sc-users@bga.com Precedence: bulk Reply-To: sc-users@bga.com James, Would you mind defining further the terminology "Make a closure from a frame" and "context of the activation frame" as used in the SC functions closure and context (p.107) ? thanks, Alex From sc-users-owner@bga.com Wed Jul 24 01:41:09 1996 Received: (from daemon@localhost) by zoom.bga.com (8.6.12/8.6.12) id BAA22967 for sc-users-outgoing; Wed, 24 Jul 1996 01:41:09 -0500 Received: from clyde.as.utexas.edu (clyde.as.utexas.edu [128.83.129.156]) by zoom.bga.com (8.6.12/8.6.12) with ESMTP id BAA22944 for ; Wed, 24 Jul 1996 01:41:01 -0500 Received: from [128.83.111.131] (slip-31-3.ots.utexas.edu [128.83.111.131]) by clyde.as.utexas.edu (8.6.11/2.01) with SMTP id BAA18618 for ; Wed, 24 Jul 1996 01:40:13 -0500 Date: Wed, 24 Jul 1996 01:40:13 -0500 Message-Id: Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" To: sc-users@bga.com From: james@clyde.as.utexas.edu (James McCartney) Subject: Re: frames Sender: owner-sc-users@bga.com Precedence: bulk Reply-To: sc-users@bga.com At 8:30 AM 7/23/96, Alex Stahl wrote: >James, > >Would you mind defining further the terminology "Make a closure from a >frame" and "context of the activation frame" as used in the SC functions >closure and context (p.107) ? "frame" here means a function's activation frame, that is, all its arguments' values and local variables' values. "context" refers to the activation frame of the function which created the current function. You can recover a callable closure from an activation frame. Sheesh, you guys are 3 for 3. 'context' has a bug as well.. It'll be in the update.. So the following won't work until you get the fix: For example if you want to call the function that defined a function you can do this: weird { 'weird'.post; ^{ 'weirder'.post; ^thisFunc.context.closure.value; } } init { z = weird; -- posts 'weird' & returns a function y = value(z); -- posts 'weirder' then 'weird' and returns a function value(y); -- posts 'weirder' then 'weird' and returns a function } 'thisFunc' returns a closure on the current function. 'thisFunc.context' returns the defining function's activation frame. 'thisFunc.context.closure' makes a closure (callable function) from the frame. 'thisFunc.context.closure.value' calls the closure. the functions here are pretty esoteric and should not really be necessary for most normal use. I put them in because they were possible and useful for my debugging. But 'context' didn't get updated since Pyrite so it doesn't work in the new virtual machine.. --- james mccartney james@clyde.as.utexas.edu james@lcsaudio.com If you have a PowerMac check out SuperCollider, a real time synth program: ftp://mirror.apple.com//mirrors/Info-Mac.Archive/gst/snd/super-collider-demo.hqx From sc-users-owner@bga.com Wed Jul 24 16:40:27 1996 Received: (from daemon@localhost) by zoom.bga.com (8.6.12/8.6.12) id QAA14899 for sc-users-outgoing; Wed, 24 Jul 1996 16:40:27 -0500 Received: from crl.dec.com (crl.dec.com [192.58.206.2]) by zoom.bga.com (8.6.12/8.6.12) with SMTP id QAA14859 for ; Wed, 24 Jul 1996 16:40:18 -0500 Received: by crl.dec.com; id AA26719; Wed, 24 Jul 96 17:33:31 -0400 X-Sender: Eirikur@mosaic.lkg.dec.com Message-Id: Mime-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Date: Wed, 24 Jul 1996 17:39:01 -0400 To: From: Eirikur Hallgrimsson <---@---.---> Subject: Binaural Beat mind machine Sender: owner-sc-users@bga.com Precedence: bulk Reply-To: sc-users@bga.com I sent the whole file to James for the FTP site. I'd like to flash (or perhaps fade-in-out) between bright and dark, as much of the screen as possible -- Binaural Beat (Mind Machine) program by Eir=EDkur, July 1996 -- Listen via headphones. The beat you hear is virtual, created in the brai= n. defaudioout L R; -- define left and right channels start { updater(); -- Track the UI, and display current pitch and beat values -- flasher(); -- Someday this will flash at the beat rate oscL =3D Asinosc(300, 0); -- create a sine oscillator oscR =3D Asinosc(300, 0); -- create a sine oscillator { oscL.value(1.getItemValue + (2.getItemValue/2)).out(L); -- left goes high oscR.value(1.getItemValue - (2.getItemValue/2)).out(R); -- right goes low }.dspAdd(1); } -- UI item 1 is a slider, 10-2000, step .01 -- UI item 2 is a slider, 0-30, step .01 -- UI item 3 is a string display of base frequency -- UI item 4 is a string display of beat frequency updater { 4.setItemString(2.getItemValue.asString); -- Display beat frequency 3.setItemString(1.getItemValue); -- Display base frequency [1,thisFunc].sched; } flasher { savePort =3D getPort; guiPort.setPort; -- newRect(5.itemRect).bevelIn(100,newColor(0, 0, 0)); -- (5.itemRect).eraseRect; savePort.setPort; [0.1,thisFunc].sched; } Eirikur Hallgrimsson eh@ranger.enet.dec.com Generic Epistemologist "Came into sci.archaeology.mental via 56k twisted pair down the Ogam Corridor in year five before millennium. Found it replete with loonies. Must cancel subscription to 'Proto-Celtic Chronicle and Sarsen'." -- Al B. Wesolowsky From sc-users-owner@bga.com Wed Jul 24 17:00:27 1996 Received: (from daemon@localhost) by zoom.bga.com (8.6.12/8.6.12) id RAA18894 for sc-users-outgoing; Wed, 24 Jul 1996 17:00:27 -0500 Received: from clyde.as.utexas.edu (clyde.as.utexas.edu [128.83.129.156]) by zoom.bga.com (8.6.12/8.6.12) with ESMTP id RAA18877 for ; Wed, 24 Jul 1996 17:00:22 -0500 Received: from [128.83.253.15] (slip-61-15.ots.utexas.edu [128.83.253.15]) by clyde.as.utexas.edu (8.6.11/2.01) with SMTP id QAA21472 for ; Wed, 24 Jul 1996 16:59:45 -0500 Date: Wed, 24 Jul 1996 16:59:45 -0500 Message-Id: Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" To: sc-users@bga.com From: james@clyde.as.utexas.edu (James McCartney) Subject: Re: Binaural Beat mind machine Sender: owner-sc-users@bga.com Precedence: bulk Reply-To: sc-users@bga.com This will make it flash: flasher { static oddeven = 0; savePort = getPort; guiPort.setPort; if oddeven then newColor(0, 0, 0).foreColor; 5.itemRect.paintRect; else newColor(65535, 65535, 65535).foreColor; 5.itemRect.paintRect; end savePort.setPort; oddeven = 1 - oddeven; [0.1,thisFunc].sched; } But it will never flash at the beat rate because processing is done in bursts ahead of time. So there will be lurching and pausing. --- james mccartney james@clyde.as.utexas.edu james@lcsaudio.com If you have a PowerMac check out SuperCollider, a real time synth program: ftp://mirror.apple.com//mirrors/Info-Mac.Archive/gst/snd/super-collider-demo.hqx From sc-users-owner@bga.com Thu Jul 25 13:02:43 1996 Received: (from daemon@localhost) by zoom.bga.com (8.6.12/8.6.12) id NAA04736 for sc-users-outgoing; Thu, 25 Jul 1996 13:02:43 -0500 Received: from clyde.as.utexas.edu (clyde.as.utexas.edu [128.83.129.156]) by zoom.bga.com (8.6.12/8.6.12) with ESMTP id NAA04723 for ; Thu, 25 Jul 1996 13:02:40 -0500 Received: from [128.83.111.74] (slip-27-10.ots.utexas.edu [128.83.111.74]) by clyde.as.utexas.edu (8.6.11/2.01) with SMTP id NAA23913 for ; Thu, 25 Jul 1996 13:02:02 -0500 Date: Thu, 25 Jul 1996 13:02:02 -0500 Message-Id: Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" To: sc-users@bga.com From: james@clyde.as.utexas.edu (James McCartney) Subject: 1.1b5 updater Sender: owner-sc-users@bga.com Precedence: bulk Reply-To: sc-users@bga.com Last night I put an updater to 1.1b5 on the ftp site. This version fixes: Again(), Abufwr(), context() Again now has a single parameter max_boost which is the maximum value a signal will be multiplied by when boosting the gain. The default value for max_boost is 10.0 (+20dB). -- I also posted Eirikur Hallgrimsson's binaural beat patch with a slight mod by me to make it flash (though not at the proper rate). --- james mccartney james@clyde.as.utexas.edu james@lcsaudio.com If you have a PowerMac check out SuperCollider, a real time synth program: ftp://mirror.apple.com//mirrors/Info-Mac.Archive/gst/snd/super-collider-demo.hqx From sc-users-owner@bga.com Tue Jul 30 15:01:39 1996 Received: (from daemon@localhost) by zoom.bga.com (8.6.12/8.6.12) id PAA14775 for sc-users-outgoing; Tue, 30 Jul 1996 15:01:39 -0500 Received: from crl.dec.com (crl.dec.com [192.58.206.2]) by zoom.bga.com (8.6.12/8.6.12) with SMTP id PAA14755 for ; Tue, 30 Jul 1996 15:01:32 -0500 Received: by crl.dec.com; id AA10480; Tue, 30 Jul 96 15:56:15 -0400 X-Sender: Eirikur@ranger.lkg.dec.com Message-Id: Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Date: Tue, 30 Jul 1996 16:00:08 -0400 To: From: Eirikur Hallgrimsson <---@---.---> Subject: Binaural beat flashing Sender: owner-sc-users@bga.com Precedence: bulk Reply-To: sc-users@bga.com In case anyone is interested: I've actually gotten Binaural Beat to flash very satisfactorily. At a subframe of 64 and a frame of 1024, I don't get synch problems or sound glitches. That's on a 9500/132, where I'm seeing under 10% of the CPU being used even at 30 CPS flash rates, for a playing-card sized flasher rectangle. Flashing most of the screen got me up into the 16% region and looked ugly above pretty low flash rates. Yes, you can use SuperCollider instead of sound and light goggles :-) Eirikur Eirikur Hallgrimsson eh@ranger.enet.dec.com Generic Epistemologist "Came into sci.archaeology.mental via 56k twisted pair down the Ogam Corridor in year five before millennium. Found it replete with loonies. Must cancel subscription to 'Proto-Celtic Chronicle and Sarsen'." -- Al B. Wesolowsky From sc-users-owner@bga.com Tue Jul 30 19:16:54 1996 Received: (from daemon@localhost) by zoom.bga.com (8.6.12/8.6.12) id TAA24483 for sc-users-outgoing; Tue, 30 Jul 1996 19:16:54 -0500 Received: from clyde.as.utexas.edu (clyde.as.utexas.edu [128.83.129.156]) by zoom.bga.com (8.6.12/8.6.12) with ESMTP id TAA24464 for ; Tue, 30 Jul 1996 19:16:46 -0500 Received: from [128.83.204.63] (slip-4-15.ots.utexas.edu [128.83.204.63]) by clyde.as.utexas.edu (8.6.11/2.01) with SMTP id TAA08955 for ; Tue, 30 Jul 1996 19:16:04 -0500 Date: Tue, 30 Jul 1996 19:16:04 -0500 Message-Id: Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" To: sc-users@bga.com From: james@clyde.as.utexas.edu (James McCartney) Subject: ICMC & my schedule etc. Sender: owner-sc-users@bga.com Precedence: bulk Reply-To: sc-users@bga.com I will be leaving home from August 5 to August 25, so will have only sporadic net contact during that period. I will be in LA for 12 days working on LCS stuff, then off to Hong Kong for ICMC. If any of you are going to be at ICMC, I would like to meet you. I will be doing a poster paper on SuperCollider: Friday August 23 13:30 - 15:30 Poster Session 6, 5th floor P715 SuperCollider, a New Real-time Synthesis Language --- In other news, future stuff : I have been doing some work on streams. Every unit generator in SuperCollider is a stream function which, when evaluated produces the next buffer of samples. What I am doing now is providing support so that you can specify your entire piece as an audio stream. Rather than your instrument functions using dspAdd, your instrument function will create a function that when evaluated returns the next buffer of samples. When a stream comes to an end it returns the symbol 'end'. For example: MyInstr { arg freq amp; osc = Aoscilia(t1, freq); env = Atransient(t2, 0.7, amp, 0, 'end'); ^{ ^osc.value(\,\,env.value) } } MyInstr returns a function that produces sound buffers until the Atransient envelope finishes, at which time it returns 'end'. All unit generators have been changed so that when they receive 'end' as an amplitude argument, or in the case of sound modifiers like filters if they receive 'end' as the signal argument, they will return 'end' themselves. The thing that is cool about this is that MyInstr is now a function just like Aoscil since it works in the same way, returning a buffer each time it is evaluated. So your instrument functions become sound 'macros'. All built in unit generators can now also be reset. This lets you start a sound over again. You can support reset in your own instruments as well. All closures now have a reset flag that can be set, tested, and cleared. In the above example, if you create a stream using MyInstr, then once it reaches the end it will return 'end' forever. In order to have it start over you must call reset on each of its streams: MyInstr { arg freq amp=0.4; osc = Aoscilia(t1, freq); env = Atransient(t2, 0.7, amp, 0, 'end'); ^{ if isReset then -- check reset flag clearReset; -- clear it osc.reset; -- reset oscillator env.reset; -- reset envelope end ^osc.value(\,\,env.value) } } OK what does this do for you? Now you can use this instrument in one of the pattern stream functions. Sseq is a function that creates a stream which is a sequence of the streams in its list. seq = Sseq([ MyInstr(100,0.1), MyInstr(200,0.2) ] 2 ); The above line creates a stream which plays MyInstr at 100 Hz until it ends and then plays MyInstr at 200 Hz until it ends and then repeats a second time. So seq is now a unit generator of a rather fancy sort that could itself be filtered, or have other further processing done to it. In order for the sequence to repeat it has to be able to reset the sounds so it can replay them, which is why I had to support reset. Another thing I have added is a function: saveAudio(buffer, filename) so you can write a function which will mass produce samples like this: defaudiobuf buf; init { -- put batch command in the user menu : addMenuCmd("Run a Batch/B", `batch); } batch { buf.allocAudio(0.7 * sr); -- allocate 0.7 seconds of audio writer = Arecord(buf); -- create a buffer recorder filename = getStringFromUser("my sound", "Sound File Name :"); for i=0; i<10; i=i+1 do -- not a very interesting patch, just for example: instr = MyInstr(800.0.rand); -- create a new instrument writer.reset; -- restart recorder buf.waveFill(0.0); -- zero out buffer do result = writer.value(instr.value); -- record sound end until result == \end; -- record until stream ends buf.saveAudio(filename $ "." $ i); -- save it buf.playWave; -- audition the sound end.for } I will be adding more functions to the pattern stream library since there will be a lot more uses for them now. --- james mccartney james@clyde.as.utexas.edu james@lcsaudio.com If you have a PowerMac check out SuperCollider, a real time synth program: ftp://mirror.apple.com//mirrors/Info-Mac.Archive/gst/snd/super-collider-demo.hqx