Re: [linux-audio-dev] Still I cannot understand why...

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

Subject: Re: [linux-audio-dev] Still I cannot understand why...
From: Anders Torger (torger_AT_ludd.luth.se)
Date: Tue Dec 18 2001 - 02:10:22 EET


On Monday 17 December 2001 23.59, you wrote:
> Btw. OSS follows the original unix idea and POSIX rule of "everything is a
> file" very well. It works with open()/read()/write()/close() as the other
> devices do. And it's controlled via ioctl() as it should.

In my pet software BruteFIR I used to do this (yes ALSA 0.9 supports this way
of operation too). Then I wanted to read and write audio to a 26 channel
sound card, and suddenly using reads and writes on file descriptors wasn't
feasible anymore. Changing to using native ALSA calls for audio data transfer
was simple, and I could still use the file descriptors in my select calls.

In ALSA you can actually have both worlds. And although I also have found it
a bit annoying that the ALSA 0.9 API has been changing over the development
time (I had to use ALSA 0.6/0.9 since 0.5 and OSS doesn't support enough
features for my software), I have full understanding for it. It is a
development API, and that must be allowed to improve. What the ALSA team has
done is simply to use the power of open source in their standardisation, they
released early and thus have got feedback from other developers using the API
early on. I think this has helped to make the API better, which now has been
reasonable stable for quite a long time. ALSA is the most powerful sound card
API I have seen, and I am glad that it is.

> Windows is good example of total API mess where there is different API for
> all the different twinkles, different error codes, etc. And I think it as
> Bad Thing(tm). It's platform where you have to write two hundred lines of
> code, call fifty functions and fill twenty large structures just to get
> single sample out of soundcard and then the thing goes *boom*...

The problem with ALSA now as I see it is the lack of documentation. If you
want to do simple things, it is simple, but it is relatively hard to find out
how to do it anyway. Doing complex things is always complex to do. I don't
think it is bad that ALSA allows complex things to be done, even though it
means that there will be lots of more functions and structures in the API.
You don't need to use them for the simple things anyway.

/Anders


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

This archive was generated by hypermail 2b28 : Tue Dec 18 2001 - 02:04:48 EET