Csound Csound-dev Csound-tekno Search About

[Csnd] -B and -b things

Date2008-12-16 03:03
FromTobiah
Subject[Csnd] -B and -b things
For a time, I could not figure out why I could not get decent
low-latency real-time performance out of csound.  I've experienced great performance
before, on lesser machines.  The current one is a ~2GHz Core 2 Duo
running 32/64 bit Kubuntu (dual-boot).

The real-time kernel did not help.  I finally found out that it was
due to my choice of values for the -B and -b flags.  I'm not sure where
I acquired the notion now, but I had it in my head that -b should be
one half of -B.  With this arrangement, I had to set -B up to something
like 8192 (I also thought they should be a ^2), which was far larger than
what would be acceptable for real-time performance.

At one point, I omitted both flags, and I got very nice performance.
The defaults for Linux are documented as -B1024 -b256.  As it turns out,
as long as I keep -b at 1/4 of -B, the real-time performance works
quite well.  I found that I could go as small as -B 128 -b 32, with no problems.
With a simple instrument, I can easily play over 100 notes at once (think
pedal down on the MIDI keyboard) with a calculated 3ms latency (isn't that
right for a 44100 sr with a 128 sample buffer?).
If I try say, -B1024 -b1024, I get bad 'underruns' before I even touch a key. 

It's hard to ask a specific question here.  I would just like to
hear a full explanation as to the meaning and differences between
these flags, and as to any insight into what I might have been experiencing.
I've read the manual entries for these flags, but I'm left wanting a better
explanation.

The soundcard is an Echo Mia Midi.

It seems that there is always a dog barking annoyingly in my neighborhood
within earshot.  I'm in a tract up in the hills above the coast somewhere
in Southern California.

Thanks,

Tobiah

Command line:

     sudo csound\
                        -+rtaudio=alsa\
                        -+rtmidi=alsa\
                        -o dac\
                        -d\
                        --midi-device=hw:0,0\
                        -B 128 -b 32 --sched\
                        --midi-key-cps=5\
                        --midi-velocity-amp=4\
                        orc sco


Orc:

sr       = 44100
ksmps    = 1
nchnls   = 2

instr 1

        ifront          init            .01
        iback           init            4

        aenv            linsegr         0, ifront, p4, iback, 0, .3, 0

        asigl           oscil           aenv, p5, 1
        asigr           oscil           aenv, p5 + 1, 1
                        outs            asigl, asigr
endin



Date2008-12-16 21:55
Fromjoachim
Subject[Csnd] Re: -B and -b things
I found this manual page very useful:
http://www.csounds.com/manual/html/UsingOptimizing.html
	joachim


Am 16.12.2008 um 04:03 schrieb Tobiah:

> For a time, I could not figure out why I could not get decent
> low-latency real-time performance out of csound.  I've experienced  
> great performance
> before, on lesser machines.  The current one is a ~2GHz Core 2 Duo
> running 32/64 bit Kubuntu (dual-boot).
>
> The real-time kernel did not help.  I finally found out that it was
> due to my choice of values for the -B and -b flags.  I'm not sure  
> where
> I acquired the notion now, but I had it in my head that -b should be
> one half of -B.  With this arrangement, I had to set -B up to  
> something
> like 8192 (I also thought they should be a ^2), which was far larger  
> than
> what would be acceptable for real-time performance.
>
> At one point, I omitted both flags, and I got very nice performance.
> The defaults for Linux are documented as -B1024 -b256.  As it turns  
> out,
> as long as I keep -b at 1/4 of -B, the real-time performance works
> quite well.  I found that I could go as small as -B 128 -b 32, with  
> no problems.
> With a simple instrument, I can easily play over 100 notes at once  
> (think
> pedal down on the MIDI keyboard) with a calculated 3ms latency  
> (isn't that
> right for a 44100 sr with a 128 sample buffer?).
> If I try say, -B1024 -b1024, I get bad 'underruns' before I even  
> touch a key.
> It's hard to ask a specific question here.  I would just like to
> hear a full explanation as to the meaning and differences between
> these flags, and as to any insight into what I might have been  
> experiencing.
> I've read the manual entries for these flags, but I'm left wanting a  
> better
> explanation.
>
> The soundcard is an Echo Mia Midi.
>
> It seems that there is always a dog barking annoyingly in my  
> neighborhood
> within earshot.  I'm in a tract up in the hills above the coast  
> somewhere
> in Southern California.
>
> Thanks,
>
> Tobiah
>
> Command line:
>
>    sudo csound\
>                       -+rtaudio=alsa\
>                       -+rtmidi=alsa\
>                       -o dac\
>                       -d\
>                       --midi-device=hw:0,0\
>                       -B 128 -b 32 --sched\
>                       --midi-key-cps=5\
>                       --midi-velocity-amp=4\
>                       orc sco
>
>
> Orc:
>
> sr       = 44100
> ksmps    = 1
> nchnls   = 2
>
> instr 1
>
>       ifront          init            .01
>       iback           init            4
>
>       aenv            linsegr         0, ifront, p4, iback, 0, .3, 0
>
>       asigl           oscil           aenv, p5, 1
>       asigr           oscil           aenv, p5 + 1, 1
>                       outs            asigl, asigr
> endin
>
>
>
>
> Send bugs reports to this list.
> To unsubscribe, send email sympa@lists.bath.ac.uk with body  
> "unsubscribe csound"


Date2008-12-17 01:26
FromTobiah
Subject[Csnd] Re: Re: -B and -b things
joachim wrote:
> I found this manual page very useful:
> http://www.csounds.com/manual/html/UsingOptimizing.html
>     joachim

Thanks.

Now, my soundcard is capable of 24 bit.  Does that mean
that I should use the 3/2 -B/-b ratio, even when I'm
calculating 16 integers?

I tried -B48 -b32, and it ran beautifully using
a two oscil stereo orchestra at 44100 with ksmps=1.
If I calculate properly, thats about 1ms latency,
which, again, if my math is right, is something
like how long it takes for sound to travel a foot.
So moving my speakers another foot away would cause
as much latency as I'm getting through csound.

I can get up to around 170 voices going this way
with no glitch.  This is the 32 bit kubuntu as
well.  I was seeing a 30% increase in speed with
the 64 bit version at least with disk rendering, 
but the system would freeze periodically.

So moving my speakers another foot away would cause
as much latency as I'm getting through csound.

I'll have to try it with a complex orchestra.