[ecasound] edi-15, smart selection of buffering params

New Message Reply About this list Date view Thread view Subject view Author view Other groups

Subject: [ecasound] edi-15, smart selection of buffering params
From: Kai Vehmanen (k_AT_eca.cx)
Date: Fri Oct 05 2001 - 09:15:10 EEST


I just commmitted the first implementation of edi-15 to the CVS. The
initial results look good, although it turned out to be a much bigger
project than I expected.

Anyway, the two primary goals have been met:

1) Compatibility with older versions. You might need to retune
   your defaults when upgrading, but otherwise all features and
   options work as before.
2) In majority of cases, ecasound is able to pick the
   optimal parameters based on the current chainsetup and
   environment.

Now to the working principle. Basicly ecasound maintains three separate
sets of buffering-related parameters. The individual params are
buffersize (-b), raise-priority and schedpriority-level (-r:X),
double-buffering (-z:db,x) and internal buffering (-z:intbuf).

The three data sets are:
- defaults values from ~/.ecasoundrc (separate defaults for
  'nonrt', 'rt' and 'rtlowlatency' buffering modes)
- override values given by user (command-line options, ECI/EIAM commands)
- contents of the selected chainsetup

When it's time to connect a chainsetup, ecasound does the following:
- picks the optimal buffering mode for the chainsetup; this
  can be overridden with the new -B options (for instance '-B:nonrt')
- takes the default values from the chosen bmode
- overrides individual params (if any)

And that's it! :) So for most peopple the new system should be completely
transparent (no need to give -r, -b, -z:db, etc). At the same time there's
even more flexibility for tuning performance params than with current
stable ecasound release.

One difficult step is still ahead: tuning the default values. At the
moment, bmode specific defaults are:

-B:nonrt
        -b:1024 -r:-1 -z:nodb -z:intbuf
-B:rt
        -b:1024 -r -z:db -z:intbuf
-B:rtlowlatency
        -b:256 -r -z:db -z:nointbuf

In '-B:auto' mode (which is the default), 'nonrt' is selected if there are
no realtime inputs or outputs (/dev/dsp, alsa, rtnull). If there are
rt objects and current process has root priviledges, 'rtlowlatency' is
selected. And in other cases it's 'rt'.

-- 
 http://www.eca.cx
 Audio software for Linux!

-- To unsubscribe send message 'unsubscribe' in the body of the message to <ecasound-list-request_AT_wakkanet.fi>.


New Message Reply About this list Date view Thread view Subject view Author view Other groups

This archive was generated by hypermail 2b28 : Fri Oct 05 2001 - 09:12:28 EEST