From: owner-sc-users-digest@lists.io.com (sc-users-digest)
To: sc-users-digest@lists.io.com
Subject: sc-users-digest V1 #198
Reply-To: sc-users
Sender: owner-sc-users-digest@lists.io.com
Errors-To: owner-sc-users-digest@lists.io.com
Precedence: bulk
sc-users-digest Tuesday, November 7 2000 Volume 01 : Number 198
----------------------------------------------------------------------
Date: Sun, 05 Nov 2000 15:41:15 -0600
From: James McCartney <---@---.--->
Subject: Re: scanFiles
on 11/5/00 3:18 PM, Klaus Kessner at kkessner@netcologne.de wrote:
> on Thu, 12 Oct 2000 James McCartney wrote:
>
>> In version 3, this will list files (not just sound files though) :
>>
>> d = Directory(":Sounds");
>> d.scanFiles({ arg entry; entry.name.postln; });
>
>
> is there any chance to get sth like this goin' in sc2?
>
version 2 will only be bugfixed. New features will be in version 3.
- --- james mccartney james@audiosynth.com
SuperCollider - a real time synthesis programming language for the PowerMac.
------------------------------
Date: Mon, 06 Nov 2000 00:20:12 +0100
From: Klaus Kessner <---@---.--->
Subject: Re: scanFiles
> version 2 will only be bugfixed. New features will be in version 3.
schade.
------------------------------
Date: Tue, 7 Nov 2000 13:39:06 +1100
From: Tim Kreger <---@---.--->
Subject: Job Opportunty : Australia :ACAT Positions
<=
flushleft>Helvetica28L;56L;8=
4L;112L;140L;168L;196L;224L;252L;280L;308L;336L;Here is the ad =
for some new ACAT positions. Please forward to any lists, newsgroups or =
people you think are appropriate. Note the short deadline!!!!!
INSTITUTE OF THE ARTS=20
AUSTRALIAN CENTRE FOR ARTS AND TECHNOLOGY=20
ASSOCIATE LECTURERS/LECTURERS (LEVEL A/B)=20
COMPUTER ANIMATION/MULTIMEDIA/DIGITAL VIDEO=20
Salary: Associate Lecturer $35,494 - $47,444 pa=20
=A0Lecturer $49,835 - $58,798 pa=20
Ref: ITA 31.10.1=20
ACAT is a centre for the teaching, research, recording and publishing of =
time-based arts made with new technologies.=A0=A0 Through the Centre, =
the Institute offers undergraduate and postgraduate computer animation, =
interactive multimedia, electroacoustic music and digital arts.=20
A restructure of the Centre has created opportunities for 2 full-time or =
fractional positions in these areas for a fixed term contract of 3 =
years.=A0=A0 The successful applicants will be required to teach =
practical and theoretical aspects of animation, interactive multimedia, =
digital video or computer music with an emphasis on artistic =
collaboration involving the interaction of music and the visual arts.=20
Applicants will have an established reputation as practising artists and =
possess graduate qualifications and/or experience in a relevant =
discipline.=A0=A0 Familiarity with a broad range of teaching methods and =
tertiary teaching experience would be an advantage.=20
Appointment: The appointments will commence in February 2001=20
Enquiries: Julie Fraser, Executive Officer, ACAT on (02) 6249 5640 or =
email:=A0 info@acat.anu.edu.au=20
Contact: Further particulars and selection criteria must be obtained =
before applying from tel: (02) 6249 5707, email:=A0 =
Personnel.ITA@anu.edu.au=20
Closing date: 24 November 2000=20
Tim Kreger EMail: =
Tim.Kreger@anu.edu.au
Acting Head
Lecturer in Computer Music Ph: 61-6-249-5642
Australian Centre for the Fax: 61-6-247-0229
Arts and Technology Mobile: 61-0415-164426
SNail: =
GPO Box 804,
=
Canberra, ACT
2601 Australia
=
1A1A,1A1A,FFFFhttp://www.anu.edu.au/ITA/A=
CAT =
------------------------------
Date: Mon, 6 Nov 2000 20:55:04 -0800 (PST)
From: Chad Kirby <---@---.--->
Subject: anti-slope?
(
scope({
var sloper;
sloper = { arg slope, execfreq, init=0.0, max=1.0, mul=1.0,
add=0.0;
var t, last;
execfreq = execfreq ? (Synth.sampleRate/10);
t = execfreq.reciprocal;
last = init;
Sequencer.ar({ last = (last +
(t.poll*slope.poll))%max.poll;
last * mul.poll + add.poll},
Impulse.ar(execfreq))
};
sloper.value( 0.5 )
// sloper.value( Line.kr( 0.25pi,pi, 60), max: 2pi )
})
)
Is there some ugen that does something like this already? The idea is to
get a control value that varies continuously according to the slope I
supply. So, in the example above, sloper goes from 0 to 1 every 2 seconds
forever. I couldn't think of an easier way to accomplish this (though you
can replicate simple cases with LFSaw, it gets harder when you start
modulating the slope), is there one? I was trying to figure out how to get
a control to pan a sound around in a circle forever (0-2pi at a given rate
over and over), and came up with this. Better was to do it? Thanks.
Chad Kirby // Technical Coordinator for Digital Arts // CARTAH
ckirby@u.washington.edu // 206.295.3592
------------------------------
Date: Tue, 07 Nov 2000 00:12:30 -0600
From: James McCartney <---@---.--->
Subject: Re: anti-slope?
frequency of the ramp equals slope over maximum value.
This solution also works for negative slopes.
(
scope({
var sloper;
sloper = { arg slope, init=0.0, max=1.0, mul=1.0, add=0.0;
var halfRange, out;
halfRange = max * 0.5;
out = LFSaw.ar(slope / max, halfRange, init);
out = out.wrap2(halfRange) + halfRange;
out * mul + add;
};
//sloper.value( 0.5, 0.25 )
sloper.value( Line.kr( 0.25pi,pi, 60), max: 2pi )
});
)
If you don't really need the init argument it becomes simpler.
(
scope({
var sloper;
sloper = { arg slope, max=1.0, mul=1.0, add=0.0;
var halfRange, out;
halfRange = max * 0.5;
out = LFSaw.ar(slope / max, halfRange, halfRange);
out * mul + add;
};
//sloper.value( 0.5, 0.25 )
sloper.value( Line.kr( 0.25pi,pi, 60), max: 2pi )
});
)
on 11/6/00 10:55 PM, Chad Kirby at ckirby@u.washington.edu wrote:
> (
> scope({
> var sloper;
> sloper = { arg slope, execfreq, init=0.0, max=1.0, mul=1.0,
> add=0.0;
> var t, last;
> execfreq = execfreq ? (Synth.sampleRate/10);
> t = execfreq.reciprocal;
> last = init;
> Sequencer.ar({ last = (last +
> (t.poll*slope.poll))%max.poll;
> last * mul.poll + add.poll},
> Impulse.ar(execfreq))
> };
> sloper.value( 0.5 )
> // sloper.value( Line.kr( 0.25pi,pi, 60), max: 2pi )
> })
> )
>
> Is there some ugen that does something like this already? The idea is to
> get a control value that varies continuously according to the slope I
> supply. So, in the example above, sloper goes from 0 to 1 every 2 seconds
> forever. I couldn't think of an easier way to accomplish this (though you
> can replicate simple cases with LFSaw, it gets harder when you start
> modulating the slope), is there one? I was trying to figure out how to get
> a control to pan a sound around in a circle forever (0-2pi at a given rate
> over and over), and came up with this. Better was to do it? Thanks.
>
> Chad Kirby // Technical Coordinator for Digital Arts // CARTAH
> ckirby@u.washington.edu // 206.295.3592
>
- --- james mccartney james@audiosynth.com
SuperCollider - a real time synthesis programming language for the PowerMac.
------------------------------
Date: Tue, 07 Nov 2000 00:18:46 -0600
From: James McCartney <---@---.--->
Subject: Re: anti-slope?
on 11/6/00 10:55 PM, Chad Kirby at ckirby@u.washington.edu wrote:
> I was trying to figure out how to get
> a control to pan a sound around in a circle forever (0-2pi at a given rate
> over and over)
A note, just in case:
PanAz takes values from -1 to +1 and not 0 to 2pi.
This is so that LFSaw can be used directly as a circular pan control.
- --- james mccartney james@audiosynth.com
SuperCollider - a real time synthesis programming language for the PowerMac.
------------------------------
Date: Tue, 7 Nov 2000 07:39:59 -0800 (PST)
From: "Michael P. Whyte" <---@---.--->
Subject: Pgeom
Ok. Math problem for you.
This seems really easy and should be a similar equation to figuring out interest rates, but I sold
all my college finance books as i never wanted to see them again...
I want to know what the equation is for determining the duration of time it takes for a Pgeom
to calculate it's values if it is assigned to be the duration of a protoevent.
Or maybe a Pgeom like object whose third arg is time instead of number of calculations?
thanks,
__________________________________________________
Do You Yahoo!?
Thousands of Stores. Millions of Products. All in one Place.
http://shopping.yahoo.com/
------------------------------
Date: Tue, 07 Nov 2000 10:02:57 -0600
From: James McCartney <---@---.--->
Subject: Re: Pgeom
on 11/7/00 9:39 AM, Michael P. Whyte at matrix6k@yahoo.com wrote:
> but I sold
> all my college finance books as i never wanted to see them again...
Those who do not learn math are doomed to repeat it..
Do you want to know:
1. Given a growth rate and starting value, how many iters it takes to reach
a certain value?
B. Given a growth rate and starting value, how many iters it takes for the
sum of the results to reach a certain value?
iii. Given a certain result value and a number of iterations, what should
the growth rate be?
Fourth: Given a certain sum of the results and a number of iterations, what
should the growth rate be?
- --- james mccartney james@audiosynth.com
SuperCollider - a real time synthesis programming language for the PowerMac.
------------------------------
Date: Tue, 7 Nov 2000 08:15:06 -0800 (PST)
From: Chad Kirby <---@---.--->
Subject: Re: anti-slope?
On Tue, 7 Nov 2000 at 00:12, James McCartney wrote:
> frequency of the ramp equals slope over maximum value.
> This solution also works for negative slopes.
Wow, I never even considered what LFSaw would do with a negative freq.
Didn't even cross my mind. Thanks for enlightening me, that's a much more
elegant way of going about it.
Chad Kirby // Technical Coordinator for Digital Arts // CARTAH
ckirby@u.washington.edu // 206.295.3592
------------------------------
Date: Tue, 7 Nov 2000 09:12:20 -0800 (PST)
From: "Michael P. Whyte" <---@---.--->
Subject: Re: Pgeom
I am using Pgeom to give durations within pbind.
I want to know, for example, Pgeom(1, 0.9, ?) in order
for it to last exactly six seconds, or whatever I deem necessary.
With the stuff i'm doing, the first argument is usually determined by the preceeding note value,
which is usually given by a previous Pseq or Prand. This restricts me to changing
the two last arguments to make this "drum roll" fit into a quarter note space.
i could write a program that would take the values and add them together, determining the total
time, and then tweak the arguments (tedious) or,
I could find an interest formula and simply figure out the time instead of figuring out the
interest rates, which is more commonly done. say, $5000, at 2.9% is how many years instead of
$5000 for 3 years is "x" amount of interest.
seems like simple exponential math, but math is not my forte. honestly, i never thought i'd need
a financial formula for music. looks like i'll be paying a visit to the UIC bookstore today...
- --- James McCartney wrote:
> on 11/7/00 9:39 AM, Michael P. Whyte at matrix6k@yahoo.com wrote:
>
> > but I sold
> > all my college finance books as i never wanted to see them again...
>
> Those who do not learn math are doomed to repeat it..
>
> Do you want to know:
>
> 1. Given a growth rate and starting value, how many iters it takes to reach
> a certain value?
>
> B. Given a growth rate and starting value, how many iters it takes for the
> sum of the results to reach a certain value?
>
> iii. Given a certain result value and a number of iterations, what should
> the growth rate be?
>
> Fourth: Given a certain sum of the results and a number of iterations, what
> should the growth rate be?
>
>
>
> --- james mccartney james@audiosynth.com
> SuperCollider - a real time synthesis programming language for the PowerMac.
>
>
>
__________________________________________________
Do You Yahoo!?
Thousands of Stores. Millions of Products. All in one Place.
http://shopping.yahoo.com/
------------------------------
Date: Tue, 07 Nov 2000 19:27:56 +0200
From: Hairi <---@---.--->
Subject: hardware
hi james ,
in view of sc 3 also :
is the double processor G4 "double as powerfull" in terms
of supercollider performance ( number of .ar ugens ..) ?
What is the most "powerful" processor for sc today ?
I have to upgrade from my 8600/250 and need advice .
Thanks
Hairi
------------------------------
Date: Tue, 07 Nov 2000 19:28:39 +0200
From: Hairi <---@---.--->
Subject: hardware
hi james ,
in view of sc 3 also :
is the double processor G4 "double as powerfull" in terms
of supercollider performance ( number of .ar ugens ..) ?
What is the most "powerful" processor for sc today ?
I have to upgrade from my 8600/250 and need advice .
Thanks
Hairi
------------------------------
Date: Tue, 07 Nov 2000 11:25:38 -0600
From: James McCartney <---@---.--->
Subject: Re: Pgeom
on 11/7/00 11:12 AM, Michael P. Whyte at matrix6k@yahoo.com wrote:
> I am using Pgeom to give durations within pbind.
>
> I want to know, for example, Pgeom(1, 0.9, ?) in order
> for it to last exactly six seconds, or whatever I deem necessary.
There may not be an integer value of iterations that makes that possible.
You may have to adjust the growth rate.
You are asking question number B in my previous email.
> Do you want to know:
>
> 1. Given a growth rate and starting value, how many iters it takes to reach
> a certain value?
problem:
start * pow(grow, iters) = end. find iters.
solution:
pow(grow, iters) = end / start. divide by start.
iters * log(grow) = log(end / start). take natural logs.
iters = log(end / start) / log(grow). divide by log(grow)
iters might not be an integer value!
>
> B. Given a growth rate and starting value, how many iters it takes for the
> sum of the results to reach a certain value?
..I just now figured this formula out experimentally.. bombs out if grow=1
sum(i=1,iters. of pow(grow,i)) = (pow(grow,iters) - 1) / (grow - 1)
problem:
start * ((pow(grow,iters) - 1) / (grow - 1)) = sum. find iters.
solution:
(pow(grow,iters) - 1) / (grow - 1) = sum / start. divide by start.
pow(grow,iters) - 1 = (grow - 1) * sum / start. mult by (grow - 1)
pow(grow,iters) = 1 + (grow - 1) * sum / start. add 1.
iters * log(grow) = log(1 + (grow - 1) * sum / start). take natural log.
iters = log(1 + (grow - 1) * sum / start) / log(grow). divide by log(grow).
iters might not be an integer value!
> iii. Given a certain result value and a number of iterations, what should
> the growth rate be?
problem:
start * pow(grow, iters) = end. find grow.
solution:
pow(grow, iters) = end / start. divide by start.
iters * log(grow) = log(end / start). take natural logs.
log(grow) = log(end / start) / iters. divide by iters.
grow = exp(log(end / start) / iters). exponentiate.
> Fourth: Given a certain sum of the results and a number of iterations, what
> should the growth rate be?
problem:
start * ((pow(grow,iters) - 1) / (grow - 1)) = sum. find grow.
solution:
(pow(grow,iters) - 1) / (grow - 1) = sum / start. divide by start.
hmm this one gets more involved.. I'll leave it for now..
- --- james mccartney james@audiosynth.com
SuperCollider - a real time synthesis programming language for the PowerMac.
------------------------------
Date: Tue, 07 Nov 2000 11:39:38 -0600
From: James McCartney <---@---.--->
Subject: Re: Pgeom
on 11/7/00 11:25 AM, James McCartney at asynth@io.com wrote:
>
> ..I just now figured this formula out experimentally.. bombs out if grow=1
> sum(i=1,iters. of pow(grow,i)) = (pow(grow,iters) - 1) / (grow - 1)
except it should be:
sum(i=0,iters-1. of pow(grow,i)) = (pow(grow,iters) - 1) / (grow - 1)
The solutions are ok.
- --- james mccartney james@audiosynth.com
SuperCollider - a real time synthesis programming language for the PowerMac.
------------------------------
Date: Tue, 7 Nov 2000 11:14:23 -0800 (PST)
From: "Michael P. Whyte" <---@---.--->
Subject: Re: Pgeom
wow. That's it.
Thank you; this is very helpful.
(i'm still going to replenish my supply of mathematic reading materials. :)
- -mike
- --- James McCartney wrote:
> on 11/7/00 11:12 AM, Michael P. Whyte at matrix6k@yahoo.com wrote:
>
> > I am using Pgeom to give durations within pbind.
> >
> > I want to know, for example, Pgeom(1, 0.9, ?) in order
> > for it to last exactly six seconds, or whatever I deem necessary.
>
> There may not be an integer value of iterations that makes that possible.
> You may have to adjust the growth rate.
>
> You are asking question number B in my previous email.
>
> > Do you want to know:
> >
> > 1. Given a growth rate and starting value, how many iters it takes to reach
> > a certain value?
>
> problem:
> start * pow(grow, iters) = end. find iters.
>
> solution:
> pow(grow, iters) = end / start. divide by start.
> iters * log(grow) = log(end / start). take natural logs.
> iters = log(end / start) / log(grow). divide by log(grow)
>
> iters might not be an integer value!
>
> >
> > B. Given a growth rate and starting value, how many iters it takes for the
> > sum of the results to reach a certain value?
>
>
> ..I just now figured this formula out experimentally.. bombs out if grow=1
> sum(i=1,iters. of pow(grow,i)) = (pow(grow,iters) - 1) / (grow - 1)
>
> problem:
> start * ((pow(grow,iters) - 1) / (grow - 1)) = sum. find iters.
>
> solution:
> (pow(grow,iters) - 1) / (grow - 1) = sum / start. divide by start.
> pow(grow,iters) - 1 = (grow - 1) * sum / start. mult by (grow - 1)
> pow(grow,iters) = 1 + (grow - 1) * sum / start. add 1.
> iters * log(grow) = log(1 + (grow - 1) * sum / start). take natural log.
> iters = log(1 + (grow - 1) * sum / start) / log(grow). divide by log(grow).
>
> iters might not be an integer value!
>
>
> > iii. Given a certain result value and a number of iterations, what should
> > the growth rate be?
>
> problem:
> start * pow(grow, iters) = end. find grow.
>
> solution:
> pow(grow, iters) = end / start. divide by start.
> iters * log(grow) = log(end / start). take natural logs.
> log(grow) = log(end / start) / iters. divide by iters.
> grow = exp(log(end / start) / iters). exponentiate.
>
> > Fourth: Given a certain sum of the results and a number of iterations, what
> > should the growth rate be?
>
> problem:
> start * ((pow(grow,iters) - 1) / (grow - 1)) = sum. find grow.
>
> solution:
> (pow(grow,iters) - 1) / (grow - 1) = sum / start. divide by start.
>
> hmm this one gets more involved.. I'll leave it for now..
>
>
> --- james mccartney james@audiosynth.com
> SuperCollider - a real time synthesis programming language for the PowerMac.
>
>
>
__________________________________________________
Do You Yahoo!?
Thousands of Stores. Millions of Products. All in one Place.
http://shopping.yahoo.com/
------------------------------
Date: Wed, 08 Nov 2000 08:37:30 +1100
From: newton armstrong <---@---.--->
Subject: replace
is there an equivalent to the Pyrite replace (list of values at index)
method in
SC? i can add it myself pretty easily, but i'm wondering if i've
overlooked something that's already there.
- -------------------------------------------------------------------------
This email server is running an evaluation copy of the MailShield anti-
spam software. Please contact your email administrator if you have any
questions about this message. MailShield product info: www.mailshield.com
------------------------------
Date: Wed, 08 Nov 2000 09:25:54 +1100
From: newton armstrong <---@---.--->
Subject: Re: replace
please disregard that last message. i mistakenly thought that the put method
was identical to insert, which of course it isn't. put does the job just
fine.
newton armstrong wrote:
> is there an equivalent to the Pyrite replace (list of values at index)
> method in
> SC? i can add it myself pretty easily, but i'm wondering if i've
> overlooked something that's already there.
- -------------------------------------------------------------------------
This email server is running an evaluation copy of the MailShield anti-
spam software. Please contact your email administrator if you have any
questions about this message. MailShield product info: www.mailshield.com
------------------------------
End of sc-users-digest V1 #198
******************************