[ecasound] buffer overruns

From: Matthew Becker <matt_becker@email-addr-hidden>
Date: Wed Jul 12 2006 - 00:55:17 EEST

Hi List,

I read an old thread where Kai ported ecasound to the ipaq (familiar distro) back in 2002. I wanted to do the same, to use my ipaq 2215 as a simple multitrack recorder (recording track at a time, maybe be able to hear two other tracks at least at the same time, no effects).

I'm getting buffer overruns, and before i do anything like try to patch kernel, any list suggestions? I read that patching the familiar kernel with low latency isn't very clean.. i'm willing to try if necessary but i'd hope for an easier way.

here's one attempt with ecasound:

root@email-addr-hidden:~/ecasound-2.4.4/ecasound# ecasound -i:/dev/dsp -o test.wav

********************************************************************************

* ecasound v2.4.4 (C) 1997-2005 Kai Vehmanen and others

********************************************************************************

(eca-resources) WARNING: Global resource file '/usr/local/share/ecasound/ecasoundrc' not available! Ecasound may not function properly!

[* Session created *]

[* Chainsetup created (cmdline) *]

(eca-resources) WARNING: Global resource file '/usr/local/share/ecasound/ecasoundrc' not available! Ecasound may not function properly!

(eca-chainsetup) WARNING: Unable to read global resources. May result in incorrect behaviour.

[* Connecting chainsetup *]

(eca-chainsetup) 'rt' buffering mode selected.

(eca-chainsetup) Audio object "/dev/dsp", mode "read".

(audio-io) Format: s16_le, channels 2, srate 44100, interleaved.

(eca-chainsetup) Audio object "test.wav", mode "read/write".

(audio-io) Format: s16_le, channels 2, srate 44100, interleaved.

[* Chainsetup connected *]

(eca-control-objects) Connected chainsetup: "command-line-setup".

[* Controller/Starting batch processing *]

[* Engine init - Driver start *]

(eca-engine) Using realtime-scheduling (SCHED_FIFO:50).

(audioio-db-client) WARNING: Overrun in writing to "test.wav". Trying to recover.

(audioio-db-client) WARNING: Overrun in writing to "test.wav". Trying to recover.

(audioio-db-client) WARNING: Overrun in writing to "test.wav". Trying to recover.

[* Controller/Processing stopped (cond) *]

[* Engine exiting *]

(eca-control-objects) Disconnecting chainsetup: "command-line-setup".

[* Chainsetup disconnected *]

(audioio-db-client) There were total 3 xruns.

That recording was about 10 seconds.. xruns begin after about 3 seconds. This is with the 2.6.16 familiar kernel.

Her'es another attempt (i tried some more settings frome here - http://eca.cx/ecasound-list/2005/04/0038.html, it doesn't seem to help much)

root@email-addr-hidden:~/ecasound-2.4.4/ecasound# ecasound -z:db,500000 -r -b:8092 -z:intbuf -i /dev/dsp -o foo.wav

********************************************************************************

* ecasound v2.4.4 (C) 1997-2005 Kai Vehmanen and others

********************************************************************************

(eca-resources) WARNING: Global resource file '/usr/local/share/ecasound/ecasoundrc' not available! Ecasound may not function properly!

[* Session created *]

[* Chainsetup created (cmdline) *]

(eca-resources) WARNING: Global resource file '/usr/local/share/ecasound/ecasoundrc' not available! Ecasound may not function properly!

(eca-chainsetup) WARNING: Unable to read global resources. May result in incorrect behaviour.

(eca-chainsetup-parser) Using double-buffer of 500000 sample frames.

(eca-chainsetup-parser) Raised-priority mode enabled. (prio:50)

(eca-chainsetup-parser) Setting buffersize to (samples) 8092.

(eca-chainsetup-parser) Enabling extra buffering on realtime devices.

[* Connecting chainsetup *]

(eca-chainsetup) 'rt' buffering mode selected.

(eca-chainsetup) Audio object "/dev/dsp", mode "read".

(audio-io) Format: s16_le, channels 2, srate 44100, interleaved.

(eca-chainsetup) Audio object "foo.wav", mode "read/write".

(audio-io) Format: s16_le, channels 2, srate 44100, interleaved.

[* Chainsetup connected *]

(eca-control-objects) Connected chainsetup: "command-line-setup".

[* Controller/Starting batch processing *]

[* Engine init - Driver start *]

(eca-engine) Using realtime-scheduling (SCHED_FIFO:50).

(audioio-db-client) WARNING: Overrun in writing to "foo.wav". Trying to recover.

(audioio-db-server) wait_for_full failed

(audioio-db-client) WARNING: Overrun in writing to "foo.wav". Trying to recover.

(audioio-db-server) wait_for_full failed

(audioio-db-client) WARNING: Overrun in writing to "foo.wav". Trying to recover.

[* Controller/Processing stopped (cond) *]

(audioio-db-server) wait_for_full failed

[* Engine exiting *]

(eca-control-objects) Disconnecting chainsetup: "command-line-setup".

[* Controller/Batch processing finished *]

this one actually didn't start producing xruns until about 17 seconds into the recording, so a bigger improvement. I don't have a hard disk (recording to SD card) so i'm not sure if running hdparm would be of any use.

cheers,

Matt Becker

_______________________________________________
Join Excite! - http://www.excite.com
The most personalized portal on the Web!

-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
Ecasound-list mailing list
Ecasound-list@email-addr-hidden
https://lists.sourceforge.net/lists/listinfo/ecasound-list
Received on Wed Jul 12 04:15:01 2006

This archive was generated by hypermail 2.1.8 : Wed Jul 12 2006 - 04:15:01 EEST