From: owner-sc-users-digest@lists.io.com (sc-users-digest) To: sc-users-digest@lists.io.com Subject: sc-users-digest V1 #36 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 Friday, April 23 1999 Volume 01 : Number 036 ---------------------------------------------------------------------- Date: Sun, 11 Apr 1999 20:38:31 -0500 From: jacob mandell <---@---.---> Subject: Writing to disk & Saving Waveforms Hello, Two things I can't figure out... 1) How do you save a sound to disk and listen/modify (w/gui or midi) at the same time? in 1.x this was very easy, you just highlight both "sound output" and "write to disk" in the menu. In v2.1.2 this simple function is quite a pain having to rewrite the patch as synth.write and to add '16 bit big endian unsigned' types of things. I miss this very handy feature of 1.x!!! In 2.1.2, is there any way to enable both soundout *and* write to disk at the same time? synth.write disables sound output. Sorry if there is an obvious solution... 2) Is it possible to save a waveform created with the "modify..." menu as text? Again, in version 1.x this is very easy since a waveform is an object separate from the program text. I appreciate the transportability of all-text patches in 2.x but is there any way to save a waveform that was created graphically (either as text or a raw file that can be reloaded)? Thanks, Jake - ------Jake Mandell------ http://www.primedeep.com info :: disco :: samples ------------------------------ Date: Mon, 12 Apr 1999 11:33:50 +0100 From: finer@easynet.co.uk Subject: powerbook and a microphone/pulsar 1.Technical question : Trying to find the best, smallest stereo mic to plug into a powerbooks mini jack line in - any recommendations welcome 2. Looking for info/patches re pulsar synthesis - not quite sure what it is but it sounds good (the name) ! Cheers, Jem ------------------------------ Date: Mon, 12 Apr 1999 08:08:27 -0600 From: antiorp@tezcat.com Subject: Re: powerbook and a microphone/pulsar >Trying to find the best, smallest stereo mic to plug into a powerbooks >mini jack line in - > >any recommendations welcome zmlzt adptr >2. Looking for info/patches re pulsar synthesis - not quite sure what it is >but it sounds good (the name) ! prec!z. ma!z pulsar synthesis rezultat = sounds 1 \ man! || ||9|| [p-un_kT-pr_o-T–k_oL] Ø f Ø Ø Ø 3 || herausgegeben vøm !nternat!onalen !nst!tut f:ur ordnung |+| d!sz!pl!n : / / m9ndfukc.com e | | +---------- | | \\----------------+ | | e ------------------------------ Date: Mon, 12 Apr 1999 15:48:09 -0500 (CDT) From: "AUDIOSYNTH.COM" <---@---.---> Subject: Re: Writing to disk & Saving Waveforms Use Synth.record On Sun, 11 Apr 1999, jacob mandell wrote: > Hello, > > Two things I can't figure out... > > 1) How do you save a sound to disk and listen/modify (w/gui or midi) at the > same time? in 1.x this was very easy, you just highlight both "sound > output" and "write to disk" in the menu. In v2.1.2 this simple function is > quite a pain having to rewrite the patch as synth.write and to add '16 bit > big endian unsigned' types of things. I miss this very handy feature of > 1.x!!! In 2.1.2, is there any way to enable both soundout *and* write to > disk at the same time? synth.write disables sound output. Sorry if there is > an obvious solution... > > 2) Is it possible to save a waveform created with the "modify..." menu as > text? Again, in version 1.x this is very easy since a waveform is an object > separate from the program text. I appreciate the transportability of > all-text patches in 2.x but is there any way to save a waveform that was > created graphically (either as text or a raw file that can be reloaded)? > > Thanks, > > Jake > > ------Jake Mandell------ > http://www.primedeep.com > info :: disco :: samples > ------------------------------ Date: Mon, 12 Apr 1999 18:25:27 -0400 From: "crucial" <---@---.---> Subject: Re: Writing to disk & Saving Waveforms I also use a special simple class : add this to Synth.sc *recordOrPlay { arg ugenGraphFunc, duration, pathName, headerFormat = 'AIFF', sampleFormat = '16 big endian signed'; if(pathName.isNil,{^this.play(ugenGraphFunc)}); ^this.record(ugenGraphFunc, duration,":SoundFiles:" ++ pathName,headerFormat, sampleFormat); } This sets up defaults as I like them and also allows you to simply write : Synth.recordOrPlay({ whatever etc. sounds and stuff } // , 680, "trakname" ) And thus you only have to uncomment that single line to turn record on or off, and it always goes to SoundFiles. __________________________________________ :\\_______ http://crucial-systems.com __________________________________________ :\\_______ ------------------------------ Date: Mon, 12 Apr 1999 18:37:58 -0500 From: rkuivila@mail.wesleyan.edu Subject: Re: Writing to disk & Saving Waveforms Hi James, It appears that there is some kind of scaling bug in MIDIPitchBend... The help file demo throws pitch above the range of hearing unless the bend is taken all the way down. RJK ------------------------------ Date: Mon, 12 Apr 1999 18:38:03 -0400 From: "crucial" <---@---.---> Subject: [sc] idea for a gui 'playing field' In looking a bit at MSP, it seems to me that certain kinds of experimentation are easily enough done with that kind of virtual modular synth interface, though I think used in all cases it is very limiting. Entirely graphical systems annoy me, but certain quick patch and repatch experimentations are very fluid in that framework. As a thought, it might be possible to offer that in SC where these graphical objects and their behaviours can be defined in code, and then an interface with cabling, routing etc. can be instantiated and then we get to fiddle with it. Obviously certain issues regarding in which memory space the interface resides (you wouldn't want it to disappear every time you stop play). The ability to write tight little sections of code or to define modules fresh for each composition would make it a very powerful way to use the benefits of that kind of patching, without becoming slave to doing every little structure with the little buggers. With the newer (and soon to come) patching capabilities of SC, the implementation might not be too much of a stretch. On another note, I have gone back and done some stuff with my sampler, and I have to say MIDI still has a few more days in the sun ;) I got some very rich granular synthesis by overloading the midi bandwith and modulating parameters with controllers. Any chance of getting midi out on SC ? That would be immensely powerful. __________________________________________ :\\_______ http://crucial-systems.com __________________________________________ :\\_______ ------------------------------ Date: Mon, 12 Apr 1999 22:18:26 -0500 From: rkuivila@mail.wesleyan.edu Subject: Re: MIDI I would like to put my vote in for MIDI output as well. It would be very helpful in all sorts of situations. RJK ------------------------------ Date: Tue, 13 Apr 1999 12:52:22 +1000 From: Garth Paine <---@---.---> Subject: Re: MIDI >I would like to put my vote in for MIDI output as well. It would be very >helpful in all sorts of situations. yeh yeh yeh - I agree - if you have a multi-port interface (ie MidiTime Piece II) then you use it to send stuff to different applications in a show, hence being able to specify the in port and the out port becomes important. I am often controlling lights, and video playback and other sound processes interactivly and simultaneously during a show, so MIDI data managment is really important. So James, any chance of being able to add an argument to the MIDI stuff specifying the OMS port. Cheers, Garth See information about my new immersive interactive sound installations http://creativeaccess.com.au/~garth/ ,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,. . Composer, Sound Designer .. Interactives Designer ... Interactive Installation Artist .... Exhibition Consultant .,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,., ------------------------------ Date: Wed, 14 Apr 1999 14:09:20 -0700 (PDT) From: Richard Karpen <---@---.---> Subject: k-rate Is there a way, as in Csound, to set the control rate. I'd like to be able to update arithmetic expressions at the sampling rate to make a series of filters from scratch. Is this at all possible in SC? I'm assuming that a line like ay1 = 0.99922900 * (ain - ay1) + ax1; for example, will be updated at the control rate. I'd like to do this at the sampling rate. Thanks. Richard Karpen ------------------------------ Date: Wed, 14 Apr 1999 17:26:22 -0400 From: "Colby N. Leider" <---@---.---> Subject: Re: k-rate From within a Synth, you can set the block size: Synth.blocksize = 1; Colby On Wed, 14 Apr 1999, Richard Karpen wrote: > > Is there a way, as in Csound, to set the control rate. I'd like to be > able to update arithmetic expressions at the sampling rate to make > a series of filters from scratch. Is this at all possible in SC? I'm > assuming that a line like > > ay1 = 0.99922900 * (ain - ay1) + ax1; > > for example, will be updated at the control rate. I'd like to do this at > the sampling rate. > > Thanks. > > Richard Karpen > > > ------------------------------ Date: Wed, 14 Apr 1999 17:33:04 -0400 From: "Colby N. Leider" <---@---.---> Subject: Re: k-rate There's a typo in my last response. Here's an example: ( Synth.play({ arg synth; synth.blockSize = 1; FSinOsc.ar(440); }); ) Colby On Wed, 14 Apr 1999, Richard Karpen wrote: > > Is there a way, as in Csound, to set the control rate. I'd like to be > able to update arithmetic expressions at the sampling rate to make > a series of filters from scratch. Is this at all possible in SC? I'm > assuming that a line like > > ay1 = 0.99922900 * (ain - ay1) + ax1; > > for example, will be updated at the control rate. I'd like to do this at > the sampling rate. > > Thanks. > > Richard Karpen > > > ------------------------------ Date: Wed, 14 Apr 1999 18:54:46 -0500 From: linksb <---@---.---> Subject: [none] unsubscribe ------------------------------ Date: Thu, 15 Apr 1999 11:15:35 -0700 From: Mark Polishook <---@---.---> Subject: wacom pen speed question James, Is there a way in SC to measure the speed of a pen stroke over a given increment on a Wacom tab? My goal is (1) to map long fast strokes to rapid successions of low pitches and (2) to map long slow strokes to slow successions of high pitches. In MAX, I could do this by connecting the mod wheel to a timer object and then mapping the time between each value generated by the mod wheel (with appropriate scaling) to pitch. If the above were possible as a uGen, I'm thinking it might look something like this: TabletSpeed.ar( increment, 'millimeters' ) So if increment size was 4 millimeters, a long, continuous pen stroke would output a new time value for each successive increment...and the timing values could then be mapped to frequency or whatever. - -mark Mark ------------------------------ Date: Thu, 15 Apr 1999 13:34:37 -0500 (CDT) From: "AUDIOSYNTH.COM" <---@---.---> Subject: Re: wacom pen speed question You can use the Slope ugen to get the speed of the pen in units per second. Then if you need to get the value at a particular time you can poll it. On Thu, 15 Apr 1999, Mark Polishook wrote: > James, > > Is there a way in SC to measure the speed of a pen stroke over a given > increment on a Wacom tab? ------------------------------ Date: Thu, 15 Apr 1999 15:32:35 -0400 From: Gary Nelson <---@---.---> Subject: Pan2 "not a ugen" We have been fiddling with your granulate input patch. We are trying several methods of postprocessing on the granulated signal. The first three of the lines below produced expected output. (We only do one at a time commenting the others out. When we use that last one we get an error message saying that the synth output was not a ugen. Any suggestions? granulated; Resonz.ar(granulated, XLine.kr(1000, 8000, 20), 0.05) RLPF.ar(granulated, SinOsc.kr(1,0,4000,10000), 0.2) Pan2.ar(granulated, FSinOsc.kr(2), 0.3) Gary Nelson Oberlin College ------------------------------ Date: Thu, 15 Apr 1999 15:05:05 -0500 (CDT) From: "AUDIOSYNTH.COM" <---@---.---> Subject: Re: Pan2 "not a ugen" You are getting an error because you are trying to output a Pan of something that is already stereo and are creating a 2 level array. If granulated is a multi channel array then putting a Pan2 on it will generate an embedded list [[a,b],[c,d]] which is not a legal output. If you wanted to pan the two channels separately you should do something like this: # left, right = granulated; // separate the two channels Pan2.ar(left, ...) + Pan2.ar(right, ...); // pan each separately On Thu, 15 Apr 1999, Gary Nelson wrote: > We have been fiddling with your granulate input patch. We are trying > several methods of postprocessing on the granulated signal. The first three > of the lines below produced expected output. (We only do one at a time > commenting the others out. When we use that last one we get an error > message saying that the synth output was not a ugen. Any suggestions? > > granulated; > Resonz.ar(granulated, XLine.kr(1000, 8000, 20), 0.05) > RLPF.ar(granulated, SinOsc.kr(1,0,4000,10000), 0.2) > Pan2.ar(granulated, FSinOsc.kr(2), 0.3) ------------------------------ Date: Thu, 15 Apr 1999 15:23:53 -0500 (CDT) From: "AUDIOSYNTH.COM" <---@---.---> Subject: Re: Pan2 "not a ugen" On Thu, 15 Apr 1999, AUDIOSYNTH.COM wrote: > # left, right = granulated; // separate the two channels > > Pan2.ar(left, ...) + Pan2.ar(right, ...); // pan each separately > Another way to do this: Say that granulated is an array but you don't know how many channels granulated is and you want to pan all of the channels to a stereo mix. Mix.ar( Pan2.ar( granulated, ... ) ) Pan2.ar(granulated, ...) expands to a 2 level array: [[L1, R1], [L2, R2], ... ] Mix.ar mixes it to a single pair [L, R] ------------------------------ Date: Thu, 15 Apr 1999 19:55:27 -0600 From: "David Cottle" <---@---.---> Subject: Overload/MouseX regions (mildly urgent) Hi, I've been experimenting with declaring regions on the screen and activating an event when the mouse enters the field. There are two patches that seem to overload momentarily when the mouse enters the field. Once it locked up the program. I've paired down the code to the two offending units. Any idea what is wrong? I was hoping to have this ready for an informal concert tomorrow night. ( var zone; // a function to create rectangular zones: zone = { arg func, boundsRect, x, y; Pause.ar(func, (x >= boundsRect.left) * (x < boundsRect.right) * (y >= boundsRect.top) * (y < boundsRect.bottom)) }; Synth.scope({ var mx, my; mx = MouseX.kr; my = MouseY.kr; Mix.ar([ zone.value({ Spawn.ar( { var env; env = Env.perc( 0.5, //Attack 0.8, //Decay 0.3 //Peak (volume) ); Pan2.ar( SinOsc.ar( LFSaw.ar(200,200,LFNoise0.ar(50,200,400)+1000.0.rand), //frequency 0, EnvGen.ar(env) //Use env to control "mul" ), SinOsc.ar(12,5,10,1) //pan position; values betwen -1 and 1 ) }, 2, //channels 1 //next event ) }, Rect.new(0, 0, 0.48, 0.5) , mx, my), zone.value({ Spawn.ar( { var env; env = Env.perc( 0.05, 0.001, 0.4 ); Pan2.ar( SinOsc.ar( #[130,200,270,2555,3555,500,1500,2300,666,440,777,877].choose, 0, EnvGen.ar( env ) ), 0 ) }, 2, 0.1 //channels, next event ) }, Rect.new(0.53, 0, 1, 0.5) , mx, my) ]); }, 0.1) ) - -- ><><><><><><><><><><><> David Cottle composition, notation, contra lime@uiuc.edu ------------------------------ Date: Fri, 16 Apr 1999 10:41:00 -0400 (EDT) From: rkuivila@mail.wesleyan.edu Subject: GUIUtils in version 2.1.2 Hi all, There is a small bug in GUIUtils that breaks the use of the Lib menu. Inside the "source" directory of GUIUtils, the definition of the class Function (found in the file Function.sc) needs the following lines added: fftScope { ^Synth.fftScope(this) } // Library menu support libMenuAction { arg names; this.value(names) } // Pattern support next { arg inval; ^this.value(inval) } // embedInStream { arg inval; // ^this.value(inval).yield; // } transformEvent { arg event; ^this.value(event) } (These are just new features in SC2.1.2 that were not synchronized with the modified version of the source used by GUIUtils.) RJK ------------------------------ Date: Sat, 17 Apr 1999 11:26:41 -0600 From: James McCartney <---@---.---> Subject: Re: Overload/MouseX regions (mildly urgent) At 7:55 PM -0600 4/15/99, David Cottle wrote: >Hi, > >I've been experimenting with declaring regions on the screen and activating >an event when the mouse enters the field. There are two patches that seem >to overload momentarily when the mouse enters the field. Once it locked up >the program. I've paired down the code to the two offending units. Any >idea what is wrong? > >I was hoping to have this ready for an informal concert tomorrow night. Sorry I just got back from a week in California. The problem is a bug in Pause. What was happening is that the tempo base was not being set up properly so that each time the Spawn was unpaused it tried to catch up instead of having its beat clock resumed where it left off. --- james mccartney james@audiosynth.com http://www.audiosynth.com If you have a PowerMac check out SuperCollider2, a real time synth program: ------------------------------ Date: Sat, 17 Apr 1999 15:51:19 -0600 From: "David Cottle" <---@---.---> Subject: Re: Overload/MouseX regions (mildly urgent) Hi, >>I was hoping to have this ready for an informal concert tomorrow night. > > Sorry I just got back from a week in California. No problem, I just used non-spawn examples for that station. It was quite a success. People were pretty impressed. I've talked about modifying the format of electroacoustic music for some time; from a concert setting to an exhibit format, where the works are loaded up on individual machines and people move around the room. On of the reasons is in a concert situation you don't get the perspective that the sounds are organic. This format made it obvious that the examples were different every time you played them and that the audience member can interact with the patches. > The problem is a bug in Pause. What was happening is that > the tempo base was not being set up properly so that each I figured as much. Let me know when there is a fix. While I'm on line, I remember a new feature that allowed you to use the keyboard and can't remember what it was called or where it is in the documentation. ------------------------------ Date: Mon, 19 Apr 1999 14:35:49 -0600 From: James McCartney <---@---.---> Subject: version 2.1.3 available Version 2.1.3 is now available via ftp: BinHex : ftp://www.audiosynth.com/pub/updates/SC2.1.3.sea.hqx MacBinary (smaller) : ftp://www.audiosynth.com/pub/updates/SC2.1.3.sea.bin Changes in Version 2.1.3 ControlIn has been replaced by Plug. Plug is the same as ControlIn but has audio rate method 'ar' and can be dynamically patched to UGens. See the "plug test" example file. ControlIn is retained as a subclass of Plug for compatibility. A bug in Pause would cause problems when unpausing a Spawn. PanAz used to pop when Spawned. LFSaw now works with negative frequencies. --- james mccartney james@audiosynth.com http://www.audiosynth.com If you have a PowerMac check out SuperCollider2, a real time synth program: ------------------------------ Date: Mon, 19 Apr 1999 14:37:25 -0600 From: James McCartney <---@---.---> Subject: Re: Overload/MouseX regions (mildly urgent) At 3:51 PM -0600 4/17/99, David Cottle wrote: >While I'm on line, I remember a new feature that allowed you to use the >keyboard and can't remember what it was called or where it is in the >documentation. In 2.1.2 was added this: 'keyDownAction' instance variable was added to View. See gui examples file. --- james mccartney james@audiosynth.com http://www.audiosynth.com If you have a PowerMac check out SuperCollider2, a real time synth program: ------------------------------ Date: Mon, 19 Apr 1999 16:38:41 -0700 From: Mark Polishook <---@---.---> Subject: conserving CPU? James, If I make two rapid passes on the x axis with the mouse, the code below quickly overwhelms my CPU. I understand why this is (too many synths) and could shorten some of the envelopes or lower some of the other variables to alleviate this. But I'm hoping that maybe some other CPU-conserving solution is hand I've tried appending .steal and .release to the very end of Synth.play to shorten and/or turn off envelopes but this doesn't seem to help. Other than a faster machine, can you suggest anything? Thanks in advance, Mark - ------ ( Synth.play( { var distance, velocity, time, sig; x = MouseX.kr(0, 1000); y = MouseY.kr(1000, 0); distance = hypot(x, y); velocity = Slope.kr(distance); t = Wavetable.sineFill(512, 1/[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]); v = Wavetable.sineFill(512, 1/[1, 2, 3, 4, 5, 6, 7, 8, 9, 10], Array.fill( 10, {2pi.rand} )); sig = TSpawn.ar({ e = Env.perc(0.01, [1, 1, 1, 1, 2, 2, 2, 3, 3, 5].choose); time = distance.poll.abs / velocity.poll; EnvGen.ar( e, COsc2.ar( table1: t, table2: v, freq: time * MouseY.kr(101, 97), beats: 0.2.rrand(5), mul: 0.1 ) ) }, numChannels: 1, trig: MouseX.kr(0, 80) % 1 > 0.1 ); DelayL.ar(sig, [1, 2], [1, 2], LFNoise2.kr([3, 5], 0.4, 0.6), add: sig) }) ) ------------------------------ Date: Mon, 19 Apr 1999 17:40:32 -0700 From: "kf.Oe" <---@---.---> Subject: audiomedia III 2.1.3 version is broken on our computer which has an audiomedia III card. In the audio setup the audiomedia option is grey. Is there someplace else that I set this up. thanks, ken. ------------------------------ Date: Mon, 19 Apr 1999 19:52:07 -0600 From: James McCartney <---@---.---> Subject: Re: audiomedia III At 6:40 PM -0600 4/19/99, kf.Oe wrote: >2.1.3 version is broken on our >computer which has an audiomedia III >card. In the audio setup the audiomedia >option is grey. Is there someplace >else that I set this up. > >thanks, ken. This sounds like you do not have the most recent Digi software installed. ftp://ftp.digidesign.com/pub/support/digi/mac/dae-dsi/DaeDsi_3.41.sea.bin ftp://ftp.digidesign.com/pub/support/digi/mac/SndDrv/SoundDrivers142.sea.hqx I have been doing nearly all of my testing using the Audiomedia III so I know it does work. --- james mccartney james@audiosynth.com http://www.audiosynth.com If you have a PowerMac check out SuperCollider2, a real time synth program: ------------------------------ Date: Mon, 19 Apr 1999 20:10:23 -0600 From: James McCartney <---@---.---> Subject: Re: conserving CPU? At 5:38 PM -0600 4/19/99, Mark Polishook wrote: >James, > >If I make two rapid passes on the x axis with the mouse, the code below >quickly overwhelms my CPU. I understand why this is (too many synths) >and could shorten some of the envelopes or lower some of the other >variables to alleviate this. But I'm hoping that maybe some other >CPU-conserving solution is hand > >I've tried appending .steal and .release to the very end of Synth.play >to shorten and/or turn off envelopes but this doesn't seem to help. > >Other than a faster machine, can you suggest anything? Well there is supposed to be a voice stealing feature but I never tested it for TSpawn, so I notice there is a slight glitch. Here's how to do it. ( Synth.play( { var distance, velocity, time, sig; x = MouseX.kr(0, 1000); y = MouseY.kr(1000, 0); distance = hypot(x, y); velocity = Slope.kr(distance); t = Wavetable.sineFill(512, 1/[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]); v = Wavetable.sineFill(512, 1/[1, 2, 3, 4, 5, 6, 7, 8, 9, 10], Array.fill( 10, {2pi.rand} )); sig = TSpawn.ar({ e = Env.perc(0.01, #[1, 1, 1, 1, 2, 2, 2, 3, 3, 5].choose); time = distance.poll.abs / velocity.poll; EnvGen.ar( e, COsc2.ar( table1: t, table2: v, freq: time * MouseY.kr(101, 97), beats: 0.2.rrand(5), mul: 0.1 ) ) }, numChannels: 1, trig: MouseX.kr(0, 80) % 1 > 0.1 ); sig.source.maxVoices = 12; // set tspawn's maximum voices before stealing DelayL.ar(sig, [1, 2], [1, 2], LFNoise2.kr([3, 5], 0.4, 0.6), add: sig) }) ) --- james mccartney james@audiosynth.com http://www.audiosynth.com If you have a PowerMac check out SuperCollider2, a real time synth program: ------------------------------ Date: Mon, 19 Apr 1999 21:16:00 -0500 From: rkuivila@mail.wesleyan.edu Subject: Audio Setup... problem Hi James, We are running SuperCollider on a 7100/80 with a Sonnet G3 card. Everything works beautifully except the Audio Setup... dialog. It hangs before the dialog draws completely. Any ideas? RJK ------------------------------ Date: Mon, 19 Apr 1999 19:58:19 -0700 From: Mark Polishook <---@---.---> Subject: Re: conserving CPU? James, Thanks for lead to .maxVoices! > At 5:38 PM -0600 4/19/99, Mark Polishook wrote: > >James, > > > >If I make two rapid passes on the x axis with the mouse, the code > below > >quickly overwhelms my CPU. I understand why this is (too many synths) > > >and could shorten some of the envelopes or lower some of the other > >variables to alleviate this. But I'm hoping that maybe some other > >CPU-conserving solution is hand > > > >I've tried appending .steal and .release to the very end of > Synth.play > >to shorten and/or turn off envelopes but this doesn't seem to help. > > > >Other than a faster machine, can you suggest anything? > > Well there is supposed to be a voice stealing feature but I never > tested it for TSpawn, so I notice there is a slight glitch. > Here's how to do it. > > ( > Synth.play( > { > var distance, velocity, time, sig; > > x = MouseX.kr(0, 1000); > y = MouseY.kr(1000, 0); > distance = hypot(x, y); > velocity = Slope.kr(distance); > t = Wavetable.sineFill(512, 1/[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]); > v = Wavetable.sineFill(512, 1/[1, 2, 3, 4, 5, 6, 7, 8, 9, 10], > Array.fill( 10, {2pi.rand} )); > > sig = TSpawn.ar({ > e = Env.perc(0.01, #[1, 1, 1, 1, 2, 2, 2, 3, 3, 5].choose); > time = distance.poll.abs / velocity.poll; > EnvGen.ar( > e, > COsc2.ar( > table1: t, > table2: v, > freq: time * MouseY.kr(101, 97), > beats: 0.2.rrand(5), > mul: 0.1 > ) > ) > }, > numChannels: 1, > trig: MouseX.kr(0, 80) % 1 > 0.1 > ); > > sig.source.maxVoices = 12; // set tspawn's maximum voices before > stealing > > DelayL.ar(sig, [1, 2], [1, 2], LFNoise2.kr([3, 5], 0.4, 0.6), add: > sig) > }) > ) > > > --- james mccartney james@audiosynth.com > http://www.audiosynth.com > If you have a PowerMac check out SuperCollider2, a real time synth > program: > - -- * * * * * * * * Mark Polishook Assistant Professor of Composition Music Department Central Washington University Ellensburg, WA 98926 tel.: 509-963-1245 fax: 509-963-1239 e-mail: polishoo@cwu.edu http://www.cwu.edu/~music/composition ------------------------------ Date: Tue, 20 Apr 1999 11:17:26 -0600 From: James McCartney <---@---.---> Subject: Re: conserving CPU? At 8:10 PM -0600 4/19/99, James McCartney wrote: >Well there is supposed to be a voice stealing feature but I never >tested it for TSpawn, so I notice there is a slight glitch. The glitching goes away if the envelope is changed to control rate. I keep seeing people use the mul input of an audio rate envelope to scale their signal. It is much more efficient to use a control rate envelope and put the envelope in someone else's mul input. ( Synth.play( { var distance, velocity, time, sig; x = MouseX.kr(0, 1000); y = MouseY.kr(1000, 0); distance = hypot(x, y); velocity = Slope.kr(distance); t = Wavetable.sineFill(512, 1/[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]); v = Wavetable.sineFill(512, 1/[1, 2, 3, 4, 5, 6, 7, 8, 9, 10], Array.fill( 10, {2pi.rand} )); sig = TSpawn.ar({ e = Env.perc(0.01, #[1, 1, 1, 1, 2, 2, 2, 3, 3, 5].choose, 0.1); time = distance.poll.abs / velocity.poll; COsc2.ar( table1: t, table2: v, freq: time * MouseY.kr(101, 97), beats: 0.2.rrand(5), mul: EnvGen.kr(e) ) }, numChannels: 1, trig: MouseX.kr(0, 80) % 1 > 0.1 ); sig.source.maxVoices = 12; DelayL.ar(sig, [1, 2], [1, 2], LFNoise2.kr([3, 5], 0.4, 0.6), add: sig) }) ) --- james mccartney james@audiosynth.com http://www.audiosynth.com If you have a PowerMac check out SuperCollider2, a real time synth program: < ------------------------------ Date: Tue, 20 Apr 1999 11:30:32 -0600 From: James McCartney <---@---.---> Subject: literal arrays Evaluate these to see why you should try and use literal arrays whenever you can. { [1, 1, 1, 1, 2, 2, 2, 3, 3, 5] }.def.dumpByteCodes; BYTECODES: (40) 0 06 19 PushSpecialClass 'Array' 2 FE 0A PushPosInt 10 4 C2 00 SendSpecialMsg 'new' 6 64 PushSpecialValue 1 7 C2 08 SendSpecialMsg 'add' 9 64 PushSpecialValue 1 10 C2 08 SendSpecialMsg 'add' 12 64 PushSpecialValue 1 13 C2 08 SendSpecialMsg 'add' 15 64 PushSpecialValue 1 16 C2 08 SendSpecialMsg 'add' 18 65 PushSpecialValue 2 19 C2 08 SendSpecialMsg 'add' 21 65 PushSpecialValue 2 22 C2 08 SendSpecialMsg 'add' 24 65 PushSpecialValue 2 25 C2 08 SendSpecialMsg 'add' 27 FE 03 PushPosInt 3 29 C2 08 SendSpecialMsg 'add' 31 FE 03 PushPosInt 3 33 C2 08 SendSpecialMsg 'add' 35 FE 05 PushPosInt 5 37 C2 08 SendSpecialMsg 'add' 39 F2 BlockReturn { #[1, 1, 1, 1, 2, 2, 2, 3, 3, 5] }.def.dumpByteCodes; BYTECODES: (2) 0 40 PushLiteral instance of Array (013AB524, size=10, set=04) 1 F2 BlockReturn If you want to modify an array or if you need to have nonliterals in an array then you can't use a literal array. --- james mccartney james@audiosynth.com http://www.audiosynth.com If you have a PowerMac check out SuperCollider2, a real time synth program: < ------------------------------ Date: Tue, 20 Apr 1999 12:06:50 -0700 From: csz@wco.com (Carter Scholz) Subject: soundfile header query I've noticed some erratic behavior in the way Synth.write writes soundfile headers. I believe this has persisted through a couple of revisions. //////////////// Synth.write({ SinOsc.ar(440,0,1); }, 5, "test" ); /* The first time, or after running the subsequent example, this writes a 5 second mono 44k AIFF file with a header that shows 10 seconds. Run again, the header is correct. */ Synth.write({ Pan2.ar( SinOsc.ar(440,0,1), 0, 1); }, 5, "test" ); /* The first time, or after running the previous example, this writes a 5 second stereo 44k AIFF file with a header that shows 2.5 seconds. Run again, the header is correct. */ //////////////// In each case the correct amount of data is written; only the header is sometimes wrong. Am I missing something? Is there a fix for this? ------------------------------ Date: Thu, 22 Apr 1999 09:00:49 -0700 From: Mark Polishook <---@---.---> Subject: video in James, A few of my students are connecting a camcorder to a video card, processing the input throught Eric Singer's VideoIn Max object and then passing the signal (through MIDI) to another computer to control SC. Is there a chance that SC can/will be able to use a video signal directly (bypassing Max) for control purposes? - -mark ------------------------------ Date: Thu, 22 Apr 1999 11:31:24 -0600 From: James McCartney <---@---.---> Subject: Re: video in At 10:00 AM -0600 4/22/99, Mark Polishook wrote: >James, > >A few of my students are connecting a camcorder to a video card, >processing the input throught Eric Singer's VideoIn Max object and then >passing the signal (through MIDI) to another computer to control SC. > >Is there a chance that SC can/will be able to use a video signal >directly (bypassing Max) for control purposes? > >-mark no. There is already enough stuff to cover doing audio synthesis well. I'd rather do one thing well than many things sort-of-OK. You probably don't want to process video and synthesize audio on the same machine anyway (unless you're running BeOS on a MP machine). --- james mccartney james@audiosynth.com http://www.audiosynth.com If you have a PowerMac check out SuperCollider2, a real time synth program: ------------------------------ Date: Thu, 22 Apr 1999 11:03:21 -0600 From: "David Cottle" <---@---.---> Subject: Re: video in Hi, > A few of my students are connecting a camcorder to a video card, > processing the input throught Eric Singer's VideoIn Max object and then > passing the signal (through MIDI) to another computer to control SC. I've had a project like this in the back of my mind for some time. Would you be willing to share the details of this project? ------------------------------ Date: Thu, 22 Apr 1999 19:40:08 +0100 From: Arie van Schutterhoef <---@---.---> Subject: Re: subscribe userlist Dear James, I was wondering whether people can subscribe to the sc-userlist, without being a registered user? Arie van Schutterhoef <<<<<<<<<<<<<<<<<<<<<<<<<-////||\\\\->>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Arie van Schutterhoef artistic director Schreck Ensemble # -laboratory for live electro-acoustic music- # The Netherlands e-mail:arsche@stad.dsl.nl http://www.xs4all.nl/~schreck/ Tel: 00-31-71-5612287 Fax: 00-31-70-3859268 <<<<<<<<<<<<<<<<<<<<<<<<<-////||\\\\->>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> ------------------------------ Date: Thu, 22 Apr 1999 13:17:32 -0600 From: James McCartney <---@---.---> Subject: Re: subscribe userlist At 12:40 PM -0600 4/22/99, Arie van Schutterhoef wrote: >Dear James, > >I was wondering whether people can subscribe to >the sc-userlist, without being a registered >user? > >Arie van Schutterhoef Yes but they have to undergo hazing initiation rites.. --- james mccartney james@audiosynth.com http://www.audiosynth.com If you have a PowerMac check out SuperCollider2, a real time synth program: ------------------------------ Date: Thu, 22 Apr 1999 23:05:15 +0100 From: Arie van Schutterhoef <---@---.---> Subject: Re: subscribe userlist >At 12:40 PM -0600 4/22/99, Arie van Schutterhoef wrote: >>Dear James, >> >>I was wondering whether people can subscribe to >>the sc-userlist, without being a registered >>user? > >Yes but they have to undergo hazing initiation rites.. Dear James, Thanks for your response. >At 12:40 PM -0600 4/22/99, Arie van Schutterhoef wrote: >>Dear James, >> >>I was wondering whether people can subscribe to >>the sc-userlist, without being a registered >>user? > >Yes but they have to undergo hazing initiation rites.. - -What sort do you have in mind? Arie van Schutterhoef <<<<<<<<<<<<<<<<<<<<<<<<<-////||\\\\->>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Arie van Schutterhoef artistic director Schreck Ensemble # -laboratory for live electro-acoustic music- # The Netherlands e-mail:arsche@stad.dsl.nl http://www.xs4all.nl/~schreck/ Tel: 00-31-71-5612287 Fax: 00-31-70-3859268 <<<<<<<<<<<<<<<<<<<<<<<<<-////||\\\\->>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> ------------------------------ Date: Fri, 23 Apr 1999 12:16:54 +0200 From: staffan@medialab.ericsson.se (Staffan Liljegren) Subject: Re: video in I think James is right . It is probably a lot easier to do audio on one/several machines running SC2 and then do video/3d processing on a MP PC. Then You can tie it together with MIDI. This is what we are trying to do. - -Staffan | From owner-sc-users@lists.io.com Thu Apr 22 18:35 MET 1999 | | At 10:00 AM -0600 4/22/99, Mark Polishook wrote: | >James, | > | >A few of my students are connecting a camcorder to a video card, | >processing the input throught Eric Singer's VideoIn Max object and then | >passing the signal (through MIDI) to another computer to control SC. | > | >Is there a chance that SC can/will be able to use a video signal | >directly (bypassing Max) for control purposes? | > | >-mark | | no. There is already enough stuff to cover doing audio synthesis well. | I'd rather do one thing well than many things sort-of-OK. | | You probably don't want to process video and synthesize audio | on the same machine anyway (unless you're running BeOS on a MP machine). | | | --- james mccartney james@audiosynth.com http://www.audiosynth.com | If you have a PowerMac check out SuperCollider2, a real time synth program: | | | | | | ------------------------------ Date: Fri, 23 Apr 1999 18:01:23 -0700 From: "Garry Kling" <---@---.---> Subject: Re: video in Sure, I would be perfectly willing to share the nuts and bolts. But there really aren't that many details to be shared at this stage.It is quite simple, really. I'm using 1 computer with MAX to process the Video, and sending messages via MIDI to a second computer running Supercollider with a realtime sound input from a horn player. Basically I'll just be improvising in front of the video camera to manipulate things like reverb, delay, or PitchShift, anything I want. The guts of the project are centered around Eric Singer's VideoIn object in MAX, which is freely distributed at his website which is oddly enough: www.ericsinger.com the object gives you many ways of arranging the video data, you can either measure motion, or the absolute grayscale content. The input is divided into a grid of any resolution you desire, and can be polled at any rate you want. (all limited by your processor, of course) You can make only selected zones active, and output the data in indexed or unindexed form. You just unpack the data, and use the output from each zone for whatever you want. The resolution of the Video, and the scaling/mapping of the output can also be customized to any range with a resolution of 256 steps. You are probably familiar with the object, but in case you don't, it'll give you a good idea of the object's power. Here's the problem: from what Eric has told me, it needs an older version of Quicktime, and the FAT object doesn't work very well anyway. It does work rather well on a 68k machine, a FAST 68k machine. The VideoIn that I bought for my powerbook (Capsure PC card) needs zoomed video and Quicktime 3.0, so it doesn't work at the moment. Eric is, however working on the bugs in the FAT version, but he doesn't know when he'll get around to it. I'm sure whatever is wrong is pretty minor, but from the looks of it, he is really busy. He has a lot of other cool Objects he's been working on for years. If I were a Computer Scientist with time on my hands (right.) I'd try and do something with Video in myself, but I'm an undergraduate composer who still has to go to English class, so I can't. I have a friend who is a computer scientist, but he doesn't really want to touch the quicktime api's just yet. Due to his education, he also isn't very handy with things Macintosh. It's been pretty frustrating to work with a Quadra 610 at 25 mhz, but that's life. Just to keep the thing running I have to hook up metros to constantly pause/unpause the thing. Anyhow, I just Unpack the data, do what I want to do with it and map it to a couple of controllers, and just do the MIDIController.kr thing, and the world is my Oyster. I blush when I see how easy it is, but thank god it is! By the way, if you know of anyone else who has done work with live Video and/or movement and computer music, let me know so I can check it out. There aren't many books under the subject heading. I know there were people around doing it a few years ago with dancers, infrared sensors and laser beams etc., but what I saw of it wasn't too compelling. It was kind of like when Therimen made a dance floor - "None of the dancers could carry a tune!" Again, this is real expensive and hardware based stuff, something they may do at IRCAM or something. The closest I've come is Marek Choloniewski's light sensor pieces, as well as a few other examples. There must be alot of people doing things with the iCube, but that's just a little to rich for my blood, and I haven't seen many projects on the internet that use it. Anyhow, anything you may know would be great. Well, I apologize for the bloat in my reply to such a terse inquiry. I'm really having a lot of fun with this project. It's really easy with multimedia to just end up with a computerized "happening" where everything that goes on is really unrelated and confusing. (which can be good) But tools like VideoIn and Supercollider are great for glueing these ideas together. I'm glad there is some interest in my project, I look forward to completing it. I'll be sure to let you know if there are any revolutionary developements. If you have any specific questions, please feel free to contact me. Thank you for your interest, and I wish you the best of luck in your endeavours. Regards, Garry Kling klingg@cwu.edu <<< "David Cottle" 4/22 10:15a >>> Hi, > A few of my students are connecting a camcorder to a video card, > processing the input throught Eric Singer's VideoIn Max object and then > passing the signal (through MIDI) to another computer to control SC. I've had a project like this in the back of my mind for some time. Would you be willing to share the details of this project? ------------------------------ End of sc-users-digest V1 #36 *****************************