[linux-audio-dev] Which API to use for simple clients?

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

Subject: [linux-audio-dev] Which API to use for simple clients?
From: Nick Ing-Simmons (nick_AT_ing-simmons.net)
Date: Fri Jan 02 2004 - 20:15:12 EET


I have two Audio related projects that need updating.

1. "rsynth" formant based text-to-speech synthesis

2. Audio::* Perl modules.

Both have existing /dev/dsp style backends at present, which have been working
fine. But recently (SuSE 9.0 install?) when run under ALSA emulation of
/dev/dsp they both started producing segfaults - "after program had exited",
(neither valgrind nor gdb can give any info on the fault).

So I decided it was time to do a native ALSA backend(s).
I have rsynth backend working, and perl Audio:: one almost working.
But before going forward I would like to solicit opinions on what
is the "right" API to use.

The Linux audio world seems to be in a state of flux with these options
(please tell me if I missed any):

1. Venerable OSS stuff
   - Widely available :-)
   - Some cards have quasi or truely commecial drivers rather than
     free / opensource ones :-(
   - emulation via ALSA (at least as shipped by SuSE) seems broken :-(

2. ALSA
   - Reasonably widely available :-|, and improving
   - Opensource :-)
   - Documentation is lacking :-(
     Everything hinges on the
     "Configuration Space" concept, but I can't find an explanation of
     how that works. This is the sticking point with perl code - I can't find
     how to change the sample rate / channels, so _seems_ I need to
     close and re-open.

3. JACK
   - Gets lots of excited "this is cool" kind of coverage :-)
   - realtime :-)
   - Callback style not ideal for speech synthesis or play-from-file
     of my simple apps. complex :-(
    
4. Enlightenment Sound Demon
   - Seems to be used by KDE etc.
   - haven't looked into it further.

5. Network Audio System
   - Works on many platforms Linux/Solaris/X Terminals :-)
   - X-like "imake" style rather than configure :-(
   - Linux version still seems to be based on OSS - so recurse ;-)

6. Presumably there is some kind of telephony API as well, for sending
   sound to incomming phone calls via modem / ISDN

Complexity and callbacks don't scare me - I do perl/Tk after all!
But this is a 2nd-string project so I don't want to do a lot of
complex stuff for an API that is vanishing - I would rather either
use a simple stable interface, or pitch in and help on the "comming"
complex API.

Suggestions anyone? (I just subscribed to both lists - so reply to your
favourite list.)

  

 


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

This archive was generated by hypermail 2b28 : Fri Jan 02 2004 - 20:18:07 EET