sc-users-digest Monday, November 23 1998 Volume 01 : Number 014 ---------------------------------------------------------------------- Date: Tue, 17 Nov 1998 02:23:58 -0500 From: Landon Rose <---@---.---> Subject: Re: Freq envelope for filters James- Maybe like this: ( e = Env.new([40,6000,1000,3350,40],[5,2,5,2],'linear'); { a = AudioIn.ar( 1,2); d = EnvGen.ar(e,1, 0, 1, 0, 1); c = RLPF.ar(a,d, 0.1, 0.2); c }.scope(0.3); ) Is this indeed creating a one-time filter with a sweep of frequencies based on an envelope? Is this an effecient way to do this? Is there a way to do this from a table? Landon ------------------------------ Date: Tue, 17 Nov 1998 01:46:55 -0600 From: James McCartney <---@---.---> Subject: Re: Freq envelope for filters At 1:23 AM -0600 11/17/98, Landon Rose wrote: >James- > Maybe like this: Did you try the example I gave? >( >e = Env.new([40,6000,1000,3350,40],[5,2,5,2],'linear'); >{ > a = AudioIn.ar( 1,2); > d = EnvGen.ar(e,1, 0, 1, 0, 1); > c = RLPF.ar(a,d, 0.1, 0.2); > c > >}.scope(0.3); >) > Should be: a = AudioIn.ar([1, 2]); in order to get two channels. I prefer to make my envelopes over arbitrary units and then scale it to the frequencies I want rather than write the envelope to the specific frequencies, but either way is fine it doesn't really matter. This is redundant: > c = RLPF.ar(a,d, 0.1, 0.2); > c You only need to write: RLPF.ar(a,d, 0.1, 0.2); >Is this indeed creating a one-time filter with a sweep of frequencies based >on an envelope? Yes. >Is this an effecient way to do this? RLPF only responds at control rate, so you should write EnvGen.kr rather than EnvGen.ar. >Is there a way to do this from a table? Yes, you can use Osc1. EnvGen is more efficient though. --- james mccartney james@audiosynth.com http://www.audiosynth.com If you have a PowerMac check out SuperCollider2, a real time synth program: ------------------------------ Date: Tue, 17 Nov 1998 23:22:41 +1100 From: ggerrard <---@---.---> Subject: newbie I am newbie. Just got SC2 today. Where can I access an archive of emails for this group, to kinda orient myself. - --------------- Graeme Gerrard Resonant Multimedia ph. 03 9525 7869 mob 0419 396 754 "Somebody's been putting something in my food to make me paranoid." - PKD ------------------------------ Date: Tue, 17 Nov 1998 11:14:12 -0500 From: Landon Rose <---@---.---> Subject: Re: Freq envelope for filters >Did you try the example I gave? Sorry, I thought that was the other example I sent to you! That's what I get for checking my email at 1:30 AM. Yes, I see that I was confused by the multiplier arg and the levelScale arg in EnvGen. thought levelScale applied to the signal not the envelope values. >Should be: > > a = AudioIn.ar([1, 2]); > >in order to get two channels. once again, sloppy code on my part! Last night I didn't even notice that Scope showed one channel, not two. > >I prefer to make my envelopes over arbitrary units and then scale >it to the frequencies I want rather than write the envelope to the >specific frequencies, but either way is fine it doesn't really matter. this was actually my reason for using Amplitude.kr because of misunderstanding function of levelScale in EnvGen. > >This is redundant: > >> c = RLPF.ar(a,d, 0.1, 0.2); >> c > > >You only need to write: > > RLPF.ar(a,d, 0.1, 0.2); I have been getting in the habit of giving each ugen a var name as I go along because I am usually enclosing THAT ugen inside another, like Mix or Pan or comparing it to a bypassed AudioIn signal. I will try in the future to send you cleaner self-contained examples, rather than code with pieces of flotsam! > >RLPF only responds at control rate, so you should write EnvGen.kr rather >than EnvGen.ar. At some point I got an error message when I used EnvGen.kr with RPLF so I thought it would only work at audio rate. Still learning how to decipher those error messages! ( I don't think I saved the example) Thanks Landon ------------------------------ Date: Wed, 18 Nov 1998 15:42:49 -0500 (EST) From: "Colby N. Leider" <---@---.---> Subject: dumb question does anyone see the problem with this? sometimes it works for a little bit and then clicks, other times it just produces a click followed by silence. if i take out the enclosing OverlapTexture, it works fine. ( c = 12; Synth.play({ OverlapTexture.ar({ var s, z, y; s = HPF.ar(Integrator.ar(LPF.ar(Resonz.ar(Dust.ar([MouseX.kr(0.2, 5), MouseX.kr(0.21, 7)]), 400, 0.4), 12000), 0.99), 200); z = DelayN.ar(s, 0.048); y = Mix.ar(CombL.ar(z, 0.1, Array.fill(c, {7.rand / (1000 * 5.rand2)}, 0.05, 0.05), 3)); 4.do({ y = AllpassN.ar(y, 0.050, [0.050.rand,0.050.rand], 2) }); y }, 5, 3, 2, 2) }); ) thanks, colby Colby Leider Department of Music Princeton University Princeton, NJ 08544 (609) 258-4252 ------------------------------ Date: Wed, 18 Nov 1998 15:42:45 -0600 From: James McCartney <---@---.---> Subject: Re: dumb question At 2:42 PM -0600 11/18/98, Colby N. Leider wrote: > y = Mix.ar(CombL.ar(z, 0.1, Array.fill(c, {7.rand >/ (1000 * 5.rand2)}, 0.05, 0.05), 3)); The trouble is here: Array.fill(c, {7.rand / (1000 * 5.rand2)}, 0.05, 0.05) First of all the 0.05, 0.05 arguments don't do anything, Array.fill only takes 2 arguments. But the main thing is that Comb does not like zero or negative delay times and certainly not infinite or not-a-number delay times which are all generated frequently by the above. 5.rand2 generates a random integer from -5 to +5 including zero which is not a good thing to have in the denominator. 7.rand generates values from 0 to 6. Comb does not like a zero delay time. When I change it the following it works. : Array.fill(c, { (7.rand + 1) / (1000 * (5.rand + 1)) }); Hey cool patch, Colby. Also an efficiency note: Since MouseX always produces the same values, you should move it outside of the OverlapTexture so that you aren't spawning redundant copies of it. Synth.play({ m = [ MouseX.kr(0.2, 5), MouseX.kr(0.21, 7) ]; OverlapTexture.ar({ ..... Dust.ar(m), --- james mccartney james@audiosynth.com http://www.audiosynth.com If you have a PowerMac check out SuperCollider2, a real time synth program: < ------------------------------ Date: Thu, 19 Nov 1998 00:48:29 +0100 From: Staffan Liljegren <---@---.---> Subject: Structure question Hi, A did this last night in a hurry, because it was late and before I rewrite it I would like to know : - - I want to have this general scheduling structure, but I get the feeling that I have tangled to many levels of Spawn and ends up with quirks between them. Can this be fixed with better Env's or other means ? - - I also think that I should perhaps aim towards having scheduling (spawn etc) orthogonal to instrument functions (ie 'pitch' and 'all'). Is this a good idea and how do You achieve a Any other comments are also appreciated ! - -Staffan Liljegren Ericsson Media Lab ( // Bonatschi Fest - Sorry , but I was reading "Der ZalenTeufel", by Hans Magnus // Enzensberger (something like "The Number Devil") with my daughter last night. // She asked me what You can do with these "bonatschi" numbers besides counting // rabbits. We talked about proportions in art and architecture and I also mentioned // use of "bonatschis" in some modern music (eg Bartok's) // After that I started fiddling around with SC2 (Yes, I am starting to get into // algorithmic composition and I realise that doing this is like playing "Stairway // to Heaven" on a guitar gear shop, but ...) // Staffan Liljegren, 981116, staffan@medialab.ericsson.se var pitch, all, bons, root, octs = #[12,24], fib = #[0,1,2,3,5,8,13], ots = #[0,2,4,6,7,9,10,11], scales, durs = #[0.166,0.333, 0.666], e,e2; root = 12.rand; scales = [fib, ots]; e = Env.linen(2,16,2,0.8); e2 = Env.linen(1,3,1,0.8); pitch = { arg scale; var duration; duration = durs.choose; Spawn.ar({ arg spawn, i, synth; var pitch; // "bonatsch" pitch and amplitude pitch = (root + octs.choose + 36 + scale.choose).midicps; spawn.nextTime = duration = durs.choose; Mix.ar(SinOsc.ar([pitch*0.99,pitch, pitch*1.01], 0, Line.kr(0.02 + fib.choose * 0.02,0,duration))) }, 1) }; all = { arg scale; var duration; duration = (scale.choose +1)/3; Spawn.ar({ arg spawn, i, synth; var pitch; // "bonatsch" pitch, amplitude and duration. Use golden mean in // fm cf and index pitch = (root + octs.choose + 36 + scale.choose).midicps; spawn.nextTime = duration = (scale.choose +1)/3; Mix.ar(PMOsc.ar(pitch, pitch * [1.616,1.618,1.620], 1.618, 0, Line.kr((scale.choose * 0.008 + 0.008),0,duration))) }, 1) }; // merge the functions 'pitch' and 'all' later bons = [pitch, all]; Synth.play({ // meander into bonatschi forest, gentle tone, simple rythm. // "bonatsched" pitches and amplitudes ([pitch.value(fib), pitch.value(fib)] + Cycle.ar([{ Spawn.ar({ // rest for a while nil }, 2, 10, 1) },{ Spawn.ar({ // add harsh melody with "bonatsched" rythm as well [all.value(fib), all.value(fib)] * EnvGen.ar(e) }, 2, 20, 1) },{ Spawn.ar({ // Bartokian contrast with the overtone scale of the root [all.value(ots), all.value(ots)] * EnvGen.ar(e) }, 2, 20, 1) },{ Spawn.ar({ // A large austere and confused bonatschi cluster [Mix.ar(Array.fill(2, {all.value(scales.choose)} )), Mix.ar(Array.fill(2, {all.value(scales.choose)} ))] * EnvGen.ar(e2) }, 2, 5, 4) }], 2, nil, 1) ) * EnvGen.ar(Env.linen(10,55,15, 0.9)) }) ) ------------------------------ Date: Wed, 18 Nov 1998 18:56:02 -0600 From: James McCartney <---@---.---> Subject: Re: Structure question At 5:48 PM -0600 11/18/98, Staffan Liljegren wrote: >Hi, > >A did this last night in a hurry, because it was late and before I >rewrite it I would like to know : >- I want to have this general scheduling structure, but I get the > feeling that I have tangled to many levels of Spawn and ends up > with quirks between them. Can this be fixed with better Env's or > other means ? >- I also think that I should perhaps aim towards having scheduling > (spawn etc) orthogonal to instrument functions (ie 'pitch' and 'all'). > Is this a good idea and how do You achieve a > The way to do scheduling is via the Synth 'sched' method and the methods that use it like repeat. TSpawn and sched work well together. I may write classes to wrap around sched in order to represent tasks as objects. I need to think about this more. In the next version you can schedule in beats or seconds and have multiple tempo bases. All synths spawned from a tempo base will keep in exact sync while tempo is varied. > Ericsson Media Lab BTW are you one of those using Erlang? --- james mccartney james@audiosynth.com http://www.audiosynth.com If you have a PowerMac check out SuperCollider2, a real time synth program: ------------------------------ Date: Wed, 18 Nov 1998 20:38:10 -0600 From: James McCartney <---@---.---> Subject: Re: dumb question At 2:42 PM -0600 11/18/98, Colby N. Leider wrote: A couple more notes.. A) I don't know if >Dust.ar([MouseX.kr(0.2, 5), MouseX.kr(0.21, 7)]) is having the effect think it is. You wind up with a 2 channel excitation in the 's' variable. When this gets plugged into Comb, Comb also has an array of 12 delay times. So the even numbered combs get paired with s.at(0) and the odd numbered combs get paired with s.at(1). Then these all get mixed to one channel by Mix. That mono mix then goes into the parallel chain of allpass delays. B) > z = DelayN.ar(s, 0.048); Since you never mix the input of this delay with anything, this only causes an overall delay in the sound and hence has no audible effect. C) I rewrote this for fun and made a few changes. Since the double MouseX thing was creating in effect two voices I removed one, halved the number of combs and then boosted the overlap desity from 2 to 4. This will give the same number of combs overall. Since the allpass delays give sort of an overall effect to the sound, I moved them outside the OverlapTexture, and made the OverlapTexture have only one output channel - the Mix output. I played around with some of the parameter values.. ( // prepared piano(?) - submitted by Colby Leider // modified by JMc Synth.play({ var a, c, z; c = 6; // number of combs a = 6; // number of allpasses m = MouseX.kr(0.1, 4, 'exponential'); z = OverlapTexture.ar({ var y; y = Dust.ar(m, 0.4); y = Resonz.ar(y, 400, 0.4); y = LPF.ar(y, 12000); y = Integrator.ar(y, 0.99); y = HPF.ar(y, 200); // sure you got enough filtering going on there, Colby?? y = Mix.arFill(c, { CombL.ar( y, 0.1, ((7.rand + 1) / (8.rand + 1)) * 0.001, 5 ); }); }, 5, 3, 4, 1); 4.do({ z = AllpassN.ar(z, 0.040, [0.040.rand,0.040.rand], 10) }); z }); ) --- james mccartney james@audiosynth.com http://www.audiosynth.com If you have a PowerMac check out SuperCollider2, a real time synth program: < ------------------------------ Date: Wed, 18 Nov 1998 23:08:57 +0000 From: Colby Leider <---@---.---> Subject: Re: dumb question no such thing as too much filtering!!! James McCartney wrote: > y = Resonz.ar(y, 400, 0.4); > y = LPF.ar(y, 12000); > y = Integrator.ar(y, 0.99); > y = HPF.ar(y, 200); > // sure you got enough filtering going on there, Colby?? ------------------------------ Date: Thu, 19 Nov 1998 05:44:10 +0100 From: "Iannis Zannos" <---@---.---> Subject: Re: dumb question - ---------- >From: James McCartney <---@---.---> >To: sc-users@lists.io.com >Subject: Re: dumb question >Date: Thu, 19 Nov 1998 3:38 AM > >At 2:42 PM -0600 11/18/98, Colby N. Leider wrote: > >A couple more notes.. > ... > // sure you got enough filtering going on there, Colby?? > > y = Mix.arFill(c, { Sure you copy-pasted everything there? I cannot find a method "arFill". Could not reconstruct the missing part, is there something going on with an unreleased version here? Iannis Zannos SIM Tiergartenstr. 1, D-10785 Berlin, Germany Fax: +49 30 25481172 ------------------------------ Date: Thu, 19 Nov 1998 00:07:54 +0000 From: Colby Leider <---@---.---> Subject: Re: dumb question this seems to do the trick... - --- ( // prepared just piano - submitted by Colby Leider // modified by JMc // modified by colby Synth.scope({ var a, c, z; c = 6; // number of combs a = 6; // number of allpasses m = MouseX.kr(0.1, 4, 'exponential'); z = OverlapTexture.ar({ var y; y = Dust.ar(m, 0.4); y = Resonz.ar(y, 400, 0.4); y = Integrator.ar(y, 0.99); y = BPF.ar(y, 400 * (4.rand + 1), 2); y = Mix.ar( Array.fill( c, { CombL.ar( y, 0.1, ((7.rand + 1) / (8.rand + 1)) * 0.001, 5 ) } ); ) }, 5, 3, 4, 1); 4.do({ z = AllpassN.ar(z, 0.040, [0.040.rand,0.040.rand], 10) }); z }); ) Iannis Zannos wrote: > > ---------- > >From: James McCartney <---@---.---> > >To: sc-users@lists.io.com > >Subject: Re: dumb question > >Date: Thu, 19 Nov 1998 3:38 AM > > > > >At 2:42 PM -0600 11/18/98, Colby N. Leider wrote: > > > >A couple more notes.. > > > ... > > // sure you got enough filtering going on there, Colby?? > > > > y = Mix.arFill(c, { > > Sure you copy-pasted everything there? > I cannot find a method "arFill". > Could not reconstruct the missing part, is > there something going on with an unreleased version here? > > Iannis Zannos > SIM > Tiergartenstr. 1, > D-10785 Berlin, Germany > Fax: +49 30 25481172 ------------------------------ Date: Thu, 19 Nov 1998 06:11:39 +0100 From: "Iannis Zannos" <---@---.---> Subject: PMWander / TSpawn ar trigger, compiling GUIUtils >From: James McCartney <---@---.---> >Date: Sat, 14 Nov 1998 2:39 PM > >At 11:41 AM -0600 11/9/98, Iannis Zannos wrote: >> >>Alberto de Campo >>sent me the solution to the PM wander problem: >>I need to use Impulse.kr instead of Impulse.ar, >>because Impulse.ar produces a trigger that is >>too short for TSpawn, and is therefore sometimes >>missed. (Were you aware of that?...) >>My code is now corrected accordingly. > >TSpawn is fixed now. > Do you mean TSpawn can now be triggered by ".ar" impulses as well as ".kr" ones? By the way, thanks for offering to look into the compiling problem with GUIUtils. This seems to have put people off trying out this contribution - I myself cannot see what is going on there with changing the root compiling directory. It should be fixed in the next release - or I have already a new README file with installation instructions to supply for people to compile by putting GUIUtils alias in Default Library folder. Best Iannis Zannos SIM Tiergartenstr. 1, D-10785 Berlin, Germany Fax: +49 30 25481172 ------------------------------ Date: Thu, 19 Nov 1998 01:18:12 -0600 From: James McCartney <---@---.---> Subject: Re: PMWander / TSpawn ar trigger, compiling GUIUtils At 11:11 PM -0600 11/18/98, Iannis Zannos wrote: >>TSpawn is fixed now. >> > >Do you mean TSpawn can now be triggered by >".ar" impulses as well as ".kr" ones? Yes. It was supposed to originally but in a number of situations it failed. > >By the way, thanks for offering to look into >the compiling problem with GUIUtils. This >seems to have put people off trying out this >contribution The problem is that the modified classes must be in a higher level folder than Common. In order to get it to compile correctly move the files in Modified Common Classes up one level so that they are in the parent folder to the alias to Common. Then they should properly override the Common classes. As it is they are in an ambiguous relationship. --- james mccartney james@audiosynth.com http://www.audiosynth.com If you have a PowerMac check out SuperCollider2, a real time synth program: ------------------------------ Date: Thu, 19 Nov 1998 01:19:41 -0600 From: James McCartney <---@---.---> Subject: Re: dumb question > a = 6; // number of allpasses ... > 4.do({ I goofed on these two lines. Should be: a = 4; // number of allpasses ... a.do({ --- james mccartney james@audiosynth.com http://www.audiosynth.com If you have a PowerMac check out SuperCollider2, a real time synth program: ------------------------------ Date: Thu, 19 Nov 1998 01:21:00 -0600 From: James McCartney <---@---.---> Subject: Re: dumb question At 10:44 PM -0600 11/18/98, Iannis Zannos wrote: >---------- >>From: James McCartney <---@---.---> >>To: sc-users@lists.io.com >>Subject: Re: dumb question >>Date: Thu, 19 Nov 1998 3:38 AM >> > >>At 2:42 PM -0600 11/18/98, Colby N. Leider wrote: >> >>A couple more notes.. >> >... >> // sure you got enough filtering going on there, Colby?? >> >> y = Mix.arFill(c, { > >Sure you copy-pasted everything there? >I cannot find a method "arFill". >Could not reconstruct the missing part, is >there something going on with an unreleased version here? Oops sorry! In 2.0d29 there will be a Mix.arFill(n, {...}) method which is shorthand for Mix.ar(Array.fill(n, {...})) --- james mccartney james@audiosynth.com http://www.audiosynth.com If you have a PowerMac check out SuperCollider2, a real time synth program: ------------------------------ Date: Thu, 19 Nov 1998 23:46:12 -0600 From: "David Cottle" <---@---.---> Subject: SC as part of electro-acoustic course Hi, Is anyone using SC as part of a electro-acoustic music course and would you be willing to share your materials? ------------------------------ Date: Fri, 20 Nov 1998 02:20:46 -0600 From: James McCartney <---@---.---> Subject: Wacom support in version 2d29 I just finished adding Wacom tablet support. The following subclasses of ExternalControlSource have been added: TabletX, TabletY, TabletZ, TabletXTilt, TabletYTilt, TabletPressure, TabletProximity. Not all tools support all controls. The Pen does not do Z for example. Z is really controlled by a wheel on the Wacom 4D mouse. TabletProximity works like a gate, not a continuous control. Support for tool buttons and defining zones are other obvious things to add. Having x, y, tilt and pressure makes for a pretty expressive controller. --- james mccartney james@audiosynth.com http://www.audiosynth.com If you have a PowerMac check out SuperCollider2, a real time synth program: ------------------------------ Date: Fri, 20 Nov 1998 02:24:08 -0600 From: James McCartney <---@---.---> Subject: [Fwd] Re: SC as part of electro-acoustic course >Date: Thu, 19 Nov 1998 23:53:22 -0800 >From: Alberto de Campo <---@---.---> >Reply-To: alberto@limbo.create.ucsb.edu >To: sc-users@lists.io.com >Subject: Re: SC as part of electro-acoustic course > >David Cottle wrote: > >> Hi, >> >> Is anyone using SC as part of a electro-acoustic music course and would you >> be willing to share your materials? > > Hello David, >I am currently working on something like a tutorial for SC that would start >really simple. >I can mail you the first draft when I have maybe 15-20 usable files together >in an organized way. As soon as I am happy enough with them, I'll also mail >them to James. > >I hope to be ready for a first test version in a few days, so till then, >Alberto > ------------------------------ Date: Fri, 20 Nov 1998 10:47:58 +0100 From: staffan@medialab.ericsson.se (Staffan Liljegren) Subject: Re: Wacom support in version 2d29 Fun ! Have You tried this with the PLC-300 Flat LCD Tablet ? It would be fun to have dynamic (2d/3d) graphics object on the flat screen that would then be controlled by the pen through SC. How much graphics will be in Sc2 and what enhancements are You planning ? - -Staffan Liljegren | From owner-sc-users@lists.io.com Fri Nov 20 09:26 MET 1998 | | | I just finished adding Wacom tablet support. The following subclasses | of ExternalControlSource have been added: | | TabletX, TabletY, TabletZ, TabletXTilt, TabletYTilt, TabletPressure, | TabletProximity. | | Not all tools support all controls. The Pen does not do Z for example. | Z is really controlled by a wheel on the Wacom 4D mouse. | TabletProximity works like a gate, not a continuous control. | Support for tool buttons and defining zones are other obvious things to add. | | Having x, y, tilt and pressure makes for a pretty expressive controller. | | | --- james mccartney james@audiosynth.com http://www.audiosynth.com | If you have a PowerMac check out SuperCollider2, a real time synth program: | | | | | | ------------------------------ Date: Fri, 20 Nov 1998 16:06:51 +0100 From: "Iannis Zannos" <---@---.---> Subject: Re: Wacom support in version 2d29 - ---------- >From: staffan@medialab.ericsson.se (Staffan Liljegren) >To: sc-users@lists.io.com >Subject: Re: Wacom support in version 2d29 >Date: Fri, 20 Nov 1998 10:47 AM > >Fun ! > >Have You tried this with the PLC-300 Flat LCD Tablet ? >It would be fun to have dynamic (2d/3d) graphics object >on the flat screen that would then be controlled by >the pen through SC. > >How much graphics will be in Sc2 and what enhancements are >You planning ? While leaving it to James to answer your question I would like to point out some alternative parallel plans that exist in the direction of 3D animation for SC: At ICMC98 there were some papers relating both to the graphic tablets and to a new system for sound control data communication developed at CNMAT and called "Open Sound Control". This looks very promising because it is really open, very simple and generic, and modules in C have been released to the public domain by Matt Wright (http://cnmat.CNMAT.Berkeley.EDU/~matt/) to help developers provide this protocol to their own devices. Details: http://cnmat.CNMAT.Berkeley.EDU/OpenSoundControl/ http://cnmat.CNMAT.Berkeley.EDU/CAST/SynthControl/ Plans exist to connect SC to other environments for 3D animation via Open Sound Control. here at SIM we are most interested in DIVE, a Swedish project in Distributed Interactive Virtual Environments http://www.sics.se/dive/dive.html which is apparently in use in CREATE (Santa Barbara) http://www.create.ucsb.edu/ We are just starting an installation of DIVE here in preparation for SC to get OSC. Preliminary schedule for starting work on a connection is around end of February. If interest exist elsewhere it may be possible to join forces and also to try out interactive animation+sound over internet. Regards, Iannis Zannos SIM Tiergartenstr. 1, D-10785 Berlin, Germany Fax: +49 30 25481172 ------------------------------ Date: Fri, 20 Nov 1998 10:18:38 -0600 From: James McCartney <---@---.---> Subject: Re: Wacom support in version 2d29 At 3:47 AM -0600 11/20/98, Staffan Liljegren wrote: >Fun ! > >Have You tried this with the PLC-300 Flat LCD Tablet ? Will you buy me one? ;-) They're about $3000 US I think.. >It would be fun to have dynamic (2d/3d) graphics object >on the flat screen that would then be controlled by >the pen through SC. > >How much graphics will be in Sc2 and what enhancements are >You planning ? The same unit generator architecture could be adapted to do graphics. However at least for the near future I intend to focus mainly on sound and musical structure and leave graphics as something you might do over Open Sound Control. --- james mccartney james@audiosynth.com http://www.audiosynth.com If you have a PowerMac check out SuperCollider2, a real time synth program: ------------------------------ Date: Fri, 20 Nov 1998 11:35:52 -0400 From: rkuivila@wesleyan.edu Subject: Re: Wacom support in version 2d29 Thanks! RJK >I just finished adding Wacom tablet support. The following subclasses >of ExternalControlSource have been added: > >TabletX, TabletY, TabletZ, TabletXTilt, TabletYTilt, TabletPressure, >TabletProximity. > >Not all tools support all controls. The Pen does not do Z for example. >Z is really controlled by a wheel on the Wacom 4D mouse. >TabletProximity works like a gate, not a continuous control. >Support for tool buttons and defining zones are other obvious things to add. > >Having x, y, tilt and pressure makes for a pretty expressive controller. > > > --- james mccartney james@audiosynth.com http://www.audiosynth.com >If you have a PowerMac check out SuperCollider2, a real time synth program: > ------------------------------ Date: Fri, 20 Nov 1998 18:13:39 +0100 From: "Iannis Zannos" <---@---.---> Subject: Re: Wacom support in version 2d29 - ---------- >From: James McCartney <---@---.---> >To: sc-users@lists.io.com >Subject: Re: Wacom support in version 2d29 >Date: Fri, 20 Nov 1998 5:18 PM > >At 3:47 AM -0600 11/20/98, Staffan Liljegren wrote: >>Fun ! >> >>Have You tried this with the PLC-300 Flat LCD Tablet ? > >Will you buy me one? ;-) They're about $3000 US I think.. Interested in this. How does the Wacom compare to the PLC? Can you please post a www address for finding more about PLC? Thanks Iannis Zannos SIM Tiergartenstr. 1, D-10785 Berlin, Germany Fax: +49 30 25481172 > ------------------------------ Date: Fri, 20 Nov 1998 12:05:44 -0600 From: antiorp@tezcat.com (=cw4t7abs) Subject: Re: Wacom support in version 2d29 >>At 3:47 AM -0600 11/20/98, Staffan Liljegren wrote: >>>Fun ! >>> >>>Have You tried this with the PLC-300 Flat LCD Tablet ? >> >>Will you buy me one? ;-) They're about $3000 US I think.. >Interested in this. How does the Wacom compare to >the PLC? Can you please post a www address for >finding more about PLC? http://home.netscape.com/home/internet-search.html ------------------------------ Date: Fri, 20 Nov 1998 12:07:07 -0600 From: James McCartney <---@---.---> Subject: Re: Wacom support in version 2d29 At 11:13 AM -0600 11/20/98, Iannis Zannos wrote: >Interested in this. How does the Wacom compare to >the PLC? Can you please post a www address for >finding more about PLC? It is also a Wacom product. http://www.wacom.com/productinfo/pl300.html --- james mccartney james@audiosynth.com http://www.audiosynth.com If you have a PowerMac check out SuperCollider2, a real time synth program: ------------------------------ Date: Fri, 20 Nov 1998 20:06:42 +0100 From: Staffan Liljegren <---@---.---> Subject: Re: Wacom support in version 2d29 Iannis, Yes I knew about those projects already. You also have Stephen (stephen ?) Popes DRIVE project which is described at www.create.ucsb.edu/drive/ (which also uses DIVE from SICS, which was created by my friends Lennart Fahlen and Olof Hagsand). So perhaps You should talk to Stephen before You do anything with DiVE. Iannis. You also have some people at MIT ML doing an OpenGL-CSOUND application (sorry but the name slipped). But I seriously don't think that true VR envs are that exciting as general controllers or as the contrrolled env. I think it is more important with juxtapositions of video/audio (people), 3d graphics (manipulated objects) and distribution (several persons that can participate in a collaborative interactive performance. That is what we are pursuing right now. I have actually ordered a PLC300, but we haven't received it yet. But I will try to keep You updated on its usability - -Staffan L Iannis Zannos wrote: > >Fun ! > > > >Have You tried this with the PLC-300 Flat LCD Tablet ? > >It would be fun to have dynamic (2d/3d) graphics object > >on the flat screen that would then be controlled by > >the pen through SC. > > > >How much graphics will be in Sc2 and what enhancements are > >You planning ? > > While leaving it to James to answer your question I would like > to point out some alternative parallel plans that exist in the > direction of 3D animation for SC: > > At ICMC98 there were some papers relating both to the graphic > tablets and to a new system for sound control data communication > developed at CNMAT and called "Open Sound Control". This looks > very promising because it is really open, very simple and generic, > and modules in C have been released to the public domain by > Matt Wright (http://cnmat.CNMAT.Berkeley.EDU/~matt/) > to help developers provide this protocol to their own devices. > Details: > http://cnmat.CNMAT.Berkeley.EDU/OpenSoundControl/ > http://cnmat.CNMAT.Berkeley.EDU/CAST/SynthControl/ > > Plans exist to connect SC to other environments > for 3D animation via Open Sound Control. > here at SIM we are most interested in DIVE, > a Swedish project in Distributed Interactive Virtual Environments > http://www.sics.se/dive/dive.html > which is apparently in use in CREATE (Santa Barbara) > http://www.create.ucsb.edu/ > > We are just starting an installation of DIVE here > in preparation for SC to get OSC. > Preliminary schedule for starting work on a connection > is around end of February. If interest exist elsewhere > it may be possible to join forces and also to try out > interactive animation+sound over internet. > > Regards, > > Iannis Zannos > SIM > Tiergartenstr. 1, > D-10785 Berlin, Germany > Fax: +49 30 25481172 ------------------------------ Date: Fri, 20 Nov 1998 16:09:24 -0800 From: "kf.Oe" <---@---.---> Subject: Re: Wacom support in version 2d29 >But I seriously don't think that true VR envs are that exciting as >general controllers couldn't let this one pass.... it depends on how you map environment parameters to SC parameters (infinite). We haven't connected DIVE to SC. But we have used VRML to SC. We had to use max (via the telnet object) to parse the data, then went through IAC (OMS) to SC. So we await with anticipation the support of OSC! If DIVE ever supports VRML 2.0 (even partially) it may be of interest again. Until then, it will ever be a cartoon world. (sorry for the public frustration) ken fields. - -- Kenneth Fields Research/Teaching Asst. CREATE Center for Research in Electronic Art Technology Music Department University of California at Santa Barbara Santa Barbara, CA 93106 http://www.create.ucsb.edu/~ken ------------------------------ Date: Fri, 20 Nov 1998 18:32:35 -0600 From: antiorp@tezcat.com (=cw4t7abs) Subject: Re: Wacom support in version 2d29 >If DIVE ever supports VRML 2.0 (even partially) it may be >of interest again. Until then, it will ever be a cartoon >world. (sorry for the public frustration) + 4 dzat mattr much ov akadem!a = kartoon* veLt spasz az well *humanz kom to! regard kartoonz = !n zom mannr !nfer!or 2 zellekt addtl mattr =_? ------------------------------ Date: Fri, 20 Nov 1998 21:51:49 -0400 From: kbabb@escape.com (Kenneth N Babb) Subject: MouseChimes ( // MouseChimes //mouse movement along the X axis controls panning //mouse movement along the Y axis controls density // higher density toward the bottom of the screen //Move mouse around slowly and freely for Chimes var e; e = Env.perc(0.09, 2.1, 0.5, -12); Synth.play({ TSpawn.ar({ var combosc; combosc = CombN.ar( FSinOsc.ar( 3500+3000.0.rand, FSinOsc.kr(XLine.kr(10, 6, 1), 0.25,0.5) ), 0.2, 0.2, 1)* EnvGen.kr(Env.perc(4.0, 2.1, 1.5, -3)); Pan2.ar(combosc* EnvGen.kr(e), ControlIn.kr(MouseX.new(-1, 1,'linear') ) ) }, 2, nil , Dust.kr(MouseY.kr(0.1, 3.0+4.0.rand, 'linear')) , 2.5 ) }) ) *************************************************************** ( // MouseChimes // Dry var e; e = Env.perc(0.01, 1, 0.5, -12); Synth.play({ TSpawn.ar({ Pan2.ar( FSinOsc.ar( 3500+3000.0.rand, FSinOsc.kr(XLine.kr(10, 6, 1), 0.25,0.5)) , ControlIn.kr(MouseX.new(-1, 1,'linear')) ) * // multiply by an envelope is necessary to make the sound end EnvGen.kr(e)}, 2, nil , Dust.kr(MouseY.kr(0.1, 10, 'linear')) , 0.5 ) }) ) ------------------------------ Date: Mon, 23 Nov 1998 21:22:20 +1100 From: ggerrard <---@---.---> Subject: SC->ADAT Having just started with SC, I am in at the deep end and looking for some basic help. I have a Korg 1212 i/o and an ADAT XT. I want to send 8 channels from SC to the ADAT, (using the ADAT basically as a set of 8 DACs, with an option to record), and monitor directly to 8 separate powered monitors, via a mixer. Well, I can't get it to happen, and am seeking an example SC file and some tips. Will the Multichannel example instrument suffice? How do you set up the 1212 i/o? Is there a trick to getting this to work? Any advice at all would be appreciated. - --------------- Graeme Gerrard Resonant Multimedia ph. 03 9525 7869 mob 0419 396 754 "Somebody's been putting something in my food to make me paranoid." - PKD ------------------------------ Date: Mon, 23 Nov 1998 14:24:20 +0100 From: "Iannis Zannos" <---@---.---> Subject: Re: SC->ADAT - ---------- >From: ggerrard <---@---.---> >To: >Subject: SC->ADAT >Date: Mon, 23 Nov 1998 11:22 AM > >I have a Korg 1212 i/o and an ADAT XT. I want to send 8 channels from SC >to the ADAT, >(using the ADAT basically as a set of 8 DACs, with an option to record), >and monitor directly to 8 separate powered monitors, via a mixer. Which mixer do you use and how do you configure it to send the 8 channels out separately? Any additional effects or mixing you intend to do? Would be interested to hear about this if its not a trade secret... >Well, I can't get it to happen, and am seeking an example SC file and >some tips. Getting the Korg 1212 to work with SC should be very easy - see below. Perhaps describe more precisely what does not "happen" for you. Do you get output from the analog port, but none from the digital, or you get no output at all? Could it be a jitter problem? I had to send my card to Korg technical support for a modification, because my A16 DACs by CreamWare were muting the output due to this jitter. The modification was free of charge - its a known problem. >Will the Multichannel example instrument suffice? Its the only one present at the moment, I think, with additional interesting code by James in the GUI Utils main file (contributions:GUIUtils:ZLibMain.sc Quote: hardwareSetup { if (Synth.hardwareName == 'Korg', { // I want the analog ports mapped to channels 1 & 2 Synth.setOutputRouting([1, 2, 3, 4, 5, 6, 7, 8, 1, 2, 1, 2]); Synth.setInputRouting([9, 10, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]); },{ Synth.normalRouting; }); } >How do you set up the 1212 i/o? For basic setup use the File->Audio Setup... menu and Dialog. Set Hardware to Korg 1212, and clock depending on your configuration. It should work if you have set up the Korg using the Korg Utility software that comes with the card. (For code see above - you will only need to use hardwareSetup if you want to change the default routing) >Is there a trick to getting this to work? None unless you consider the above to be tricks ;-) I tested SC-Korg with a regular Alesis ADAT (dont remember the model) and with Studer DACs, it worked fine with both. Best, Iannis Zannos SIM Tiergartenstr. 1, D-10785 Berlin, Germany Fax: +49 30 25481172 ------------------------------ Date: Mon, 23 Nov 1998 15:36:59 +0100 From: "Iannis Zannos" <---@---.---> Subject: DIVE limitations, Goals, Approach, alternatives? Staffan and Ken, thanks for responding. I think the question of approach as well as tools is important when breaking new grounds in distributed, 3D coupled audio interaction. IMO there is rather little work around and the topic is still at an "analysis and specification" stage. I understand Kens frustrations with DIVE: "it will ever be a cartoon world. (sorry for the public frustration)" - that was my impression from the web pages visited. Yet it is the distributed and the interactive aspect that is of primary interest here. And as Staffan points out, "true VR envs" - in other words, realistic ones? - are not the main requirement here. Staffan, what do you mean by: >But I seriously don't think that true VR envs are that exciting as general >controllers or as the contrrolled env. Do you mean a) visual realism or high-resolution is not substantial for the quality of a controller/environment? b) Controllers should be general, i.e. generic, rather simple so as to be easily adaptable to individual needs, abstract so as to be non-specific? c) Work should focus on existing generic controllers (i.e. graphic tablet, mouse) and on refining the controlled environment (i.e. SC programs, other systems) rather than on 3D VR environments? Do you mean to say (a) that DIVE will do the job because it can provide the required general 3D objects for control and interaction, and more realism is not important here, or on the contrary (b) that DIVE is not so suitable for research in computer music interactive systems because its goals are too much VR and thus impose technical limitations or practical difficulties in working with real-time audio? >I think it is more important with juxtapositions of >video/audio (people), 3d graphics (manipulated objects) and distribution >(several persons that can participate in a collaborative interactive performance. Same interests here, except we are reluctant to address the video/audio streaming technical issues and would rather start work first with simple purely synthetic 3d objects as virtual sound sources or "general controllers". Are you suggesting to look elsewhere for more suitable tools (Open GL?) and/or do most of the 3D programming "on foot"? It may be sufficient for ad-hoc, single-user applications and sure is the most efficient solutions - but I would be reluctant to do any distributed work without a good distributed database server for world modeling - such as I believe DIVE provides. Any feasible low-budget alternatives you can suggest (short of a Cray or multiprocessor SGI with high-end graphics engine please)? Iannis Zannos SIM Tiergartenstr. 1, D-10785 Berlin, Germany Fax: +49 30 25481172 ------------------------------ End of sc-users-digest V1 #14 *****************************