|
Thanks, Andres; you spotted the
problem.
I changed the first $DEPTH code line
to:
if
($DEPTH == 0) || (p1 > 1) goto skip and CPU usage declined to a reasonable
range: between 30-40%.
What was different in my other .csd was that the
code for instr 1 was separate from the others, and only instr 1 included the
event spawning.
Again, many thanks.
Art Hunkins
----- Original Message -----
Sent: Wednesday, August 27, 2008 2:44
PM
Subject: [Csnd] Re: Re: Re: Help Request:
Excessive CPU Usage
Hi Art, The problem is you spawn a new instance of the
reverb instrument with every voice. Maybe you can turnon the reverb instrument
using turnon2, and get rid of the event_i line. I think this is the
problem. Cheers, Andrés
On Wed, Aug 27, 2008 at 11:40 AM, Art Hunkins <abhunkin@uncg.edu> wrote:
Thanks,
Steven.
Yes, of course, you're correct.
The same problem
remains, however, with the correction made.
(I gather that in csound
"=" may act like "==" in such evalation cases.)
Art
Hunkins
----- Original Message ----- From: "Steven Yi" <stevenyi@gmail.com> To: <csound@lists.bath.ac.uk> Sent: Wednesday, August 27,
2008 12:24 PM Subject: [Csnd] Re: Help Request: Excessive CPU Usage
HI
Art,
I didn't get to take a deep look, butr shouldn't the code
read:
$DEPTH == 0
and
p1 ==
1
?
steven
On Wed, Aug 27, 2008 at 9:20 AM, Art
Hunkins <abhunkin@uncg.edu> wrote:
I've
a problem with the .csd below. The $DEPTH macro (0 or 1) either
routes output additionally through a global reverb (i17, reverbsc) or
not. CPU usage with $DEPTH = 0 (no reverb) is 20%; with reverb
($DEPTH = 1) it is a whopping 80% (with occasional audio breakup).
This is far too much of a "reverb premium" - even processing 15
voices.
A comparable .csd, which does the same with 7 (also
always on) voices uses 15% CPU without reverb, 20% with reverb. This
is the kind of premium (33%) that I expect.
Question: what is
causing the excessive CPU usage below when $DEPTH = 1?
The issue
is crucial because this is one of a series of .csd's I intend
to convert to Activities soon for the OLPC
project.
Incidentally, you can run this without MIDI controller
as long as at least one MIDI input device is in your system. All
voices are active at all times, so CPU usage is
constant.
Thanks for any and all insight.
Art
Hunkins
; ON THE SIXTH DAY: Family (2008) for realtime
Csound5 - by Arthur B. Hunkins ; Sixth-Fam.csd - requires MIDI
device with 16
pots/sliders
<CsoundSynthesizer> <CsOptions>
-odac0
-m0d -M0 --expression-opt -b128 -B2048
-+raw_controller_mode=1
</CsOptions> <CsInstruments>
#define
CHAN #1# ; 0 = CC7, CHAN 1-16 #define CTRL1 #20# ; bank 1 - 1st # (of
8); valid = 0 - 120 #define CTRL2 #28# ; bank 2 - 1st # (of 8); valid
= 0 - 120 #define DEPTH #0# ; 1 = depth; 0 = no depth #define
SRATE #44100# ; SampleRATE choices: 44100, 48000
sr
= $SRATE ksmps = 10 nchnls = 2
seed 0
ga1 init 0 ga2
init 0 gkpan init .5 gkperc init 0
instr 1, 2,
3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16
if $DEPTH = 0 goto skip event_i "i", 17, 0,
3600 skip: indx =
p1 - 1 imult tab_i indx, 3 imult
= imult * 55 ictrl =
(p1 > 8? $CTRL2 + indx - 8: $CTRL1
+ indx) kamp2 ctrl7 ($CHAN > 0? $CHAN:
indx + 1), ($CHAN > 0? ictrl: 7), 0, 1 kamp table
kamp2 * 512, 1 kamp port
kamp, .01 kmod2 rspline 1.4, 2,
1.5, 2.5 kmod rspline (p1 > 1? .85:
.89), 1, 25, 30 kfreq jspline (p1 > 12? .2:
.25), 1, 2 kpw jspline p7, 1, 2 kfmod
lfo p4, imult aout
vco2 p4 * kamp * kmod * kmod2, imult + (p1
> 1? kfreq: 0) + (p1 > 12? kfmod: 0), p5, p6 + kpw ktrig
trigger kamp2, .01, 0 if
ktrig == 0 goto skip2 krand rnd31 .5,
.7 krand = (p1 > 1?
krand: 0) if ($DEPTH = 0) || (p1 = 1) goto
skip2 kdepth unirand .9 kdepth =
(p1 > 1? kdepth:
0) skip2: a1,a2,a3,a4 pan aout, .5 + (kamp2 * krand), 1, 2,
1 if ($DEPTH = 0) || (p1 = 1) goto skip3 ga1
= ga1 + (a1 *
kdepth) ga2 = ga2 +
(a2 * kdepth) a1a =
a1 * (1 - kdepth) a2a =
a2 * (1 - kdepth) outs
a1a - (.2 * a2a), a2a - (.2 * a1a) goto
fin skip3: outs a1 - (.2
* a2), a2 - (.2 * a1)
fin: endin
instr 17
aL, aR reverbsc ga1, ga2, .95,
800, sr, .25 outs aL * .4,
aR * .4
ga1 = 0 ga2 =
0
endin
</CsInstruments>
<CsScore>
f1
0 512 16 1 511 2.2 1000 f2 0 8193 7 0 8193 1 f3 0 16 -2 1 2 3 5 7
8 9 10 1 2 3 4 5 6 7 8 i1 0 3600 3000 4 .5 .015 0 i2 0 3600 1700 4
.6 .02 0 i3 0 3600 1600 4 .7 .02 0 i4 0 3600 1200 4 .8 .017
0 i5 0 3600 700 4 .9 .014 0 i6 0 3600 700 4 .95 .01 0 i7 0 3600
400 2 .5 .02 0 i8 0 3600 400 2 .6 .02 0 i9 0 3600 750 2 .7 .02
0 i10 0 3600 950 2 .8 .02 0 i11 0 3600 950 2 .9 .017 0 i12 0
3600 1000 2 .95 .014 0 i13 0 3600 1500 4 .6 .02 i14 0 3600 1500 4
.7 .02 i15 0 3600 1300 4 .8 .02 i16 0 3600 1450 4 .9
.02
e
</CsScore> </CsoundSynthesizer>
Send
bugs reports to this list. To unsubscribe, send email sympa@lists.bath.ac.uk with body
"unsubscribe csound"
Send bugs reports to
this list. To unsubscribe, send email sympa@lists.bath.ac.uk with body "unsubscribe csound"
Send bugs reports to this list. To
unsubscribe, send email sympa@lists.bath.ac.uk with body "unsubscribe
csound" --
Andrés |