Csound Csound-dev Csound-tekno Search About

Re: realtime polyphony

Date1999-05-20 08:04
FromTobias Kunze
SubjectRe: realtime polyphony
> Doesn't this also depend on how directly a sound card can be
> "approached".  I know in Windows there is all this crap (called layers)
> you have to deal with, which DirectX tries to deal with.  And we now
> have DMA, which is nothing new of course, and which is another more
> direct road to your devices.  Unix is probably much better at that
> (i.e., accessing devices directly) and Linux should be, I presume.  Has
> anyone any experience with BeOs in this regard?  

I presume it's a mixture of 

  - compiler specificy: the SGI -Ofast= option tunes the 
    optimization exactly to the processor I'm running on as opposed
    to gcc, which is much more broadly processor "architecture"-oriented;
    without optimization my Indy maxes out at about 30 oscillators (!)
  - bus transfer rates: SGIs need high-bandwidth buses for video streaming,
    whereas your garden variety Intel motherboard runs on 33 MHz,
    no matter what speed the CPU is clocked at--at least last time
    I checked.
  - secondary cache for data and instructions
  - primary instruction cache
  - processor architecture: the MIPS is 64 bits wide, whereas the 
    Pentium is still a 32-bit processor
  - registers: i forgot how many registers a Pentium has, but the old
    r4k MIPS series have some 36-odd 64-bit all-purpose registers
  - audio subsystem integration: the IRIX audio driver runs at a
    very high priority and passes some processing on to an audio 
    DSP controller, so no time is wasted making the CPU copy buffers;
    on the other hand, audio buffers are *ring buffers* on the SGI
    (as opposed to double buffering schemes), which increase the 
    overhead a bit if im not mistaken.

Most of the performance gain depends on the compiler, though.