[linux-audio-dev] Newbie

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

Subject: [linux-audio-dev] Newbie
From: MOULET Xavier CNET/DMR/ISS (xavier.moulet_AT_cnet.francetelecom.fr)
Date: ke loka   20 1999 - 05:44:19 EDT


Hi David & all,

I used to want to write a complete audio linux thing and when it came down
to the architecture of the audio core, it all boiled down to the same
conclusions as you did .. then i checked your mailing list and your
excellent and great project. Wow. I'm impressed.

As a matter of fact, koobase is now Brahms (for the links of the web page)

I just joined the list and am impressed of the level of the discussion.
I think great things are gonna happen here.

May I ask a few question ? Maybe the thing I will write have already been
discussed, maybe it would be worth reading.I take the chance. Sorry for any
inconvenience/dumb question.

1) Is there a draft of the API/architecture ... Is there a FAQ ?

 (Following to be read if answer to 1 is No/No ;^) )

2) I understood it would be only a CORE engine, a la (esd (which actually is
a mixer), the aRts core, or more accurately Be Media ? (I checked the Be
BOOK, here are excellent ideas to get inspired by ...). Just a thing ..
would it be coded in C ? C++ ? COBOL ?

3) Do you really intend to rewrite ALL the ALSA drivers ? isn't it a too
hard task ?

4) I think it would be a good thing to have a unique type Id for the streams
with subtypes ? To be extremely generic, why not think about a tree /
attributes scheme (in a string).
(eg. : /audio/timedomain/?depth=16&voices=2&Fs=44100 or
/video/mpeg4/?dummy=1&i_dunno_anything_about_mpeg4=5 for a MPEG4 video
stream , MP3 streams would fit into /audio/freqdomain/...)

A node would check about the input type by checking (ie with a regexp-style
constraint string) the strings of the type to be checked . (ex :
/audio/timedomain/AIFF/?depth=[16|8]&voices=* for a driver to match the
audio streams of 16 or 8 bits and any number of voices)

5) just came in where it was about resampling : I dont't think (cubic or
not) interpolation is a good idea. When it comes to interpolation, when you
use a ploynomial interpolation, you make some nonlinear computation. Thus,
you DISTORT your signal. A better way is to
a) lowpass the signal with Fs (TO-BE Sampling Frequency)
b) downsample the signal

OR

a) add some ZEROES between the samples to upsample the signal (there you
don't change the spectrum of your signal, then
b) lowpass the signal to cut the frequencies above the OLD sampling
Frequency.

Thus, you have NO LOSS (at all, I MEAN).

There may be ways to make some rational quantification (eg. 4/7)

Maybe you can have a look at the DSP FAQ which surely explains it better
than I do. Of course it may be _very_ time consuming, but for a final mix,
who cares ?

6) Another Idea that I had is that we need several levels of libraries / API
:
- Common DSP things (resampling, file loading (AudioFile / Custom ...) ,
fast mixing, FFTs (maybe by using FFTW)
- A "node manager api" (like a window manager)
- Some example/basic plugins (and, first of all and most important, a
DO-NOTHING plugin to make a TEMPLATE of simple plugins)
- and, finally, a connexion with some kind of media players or higher
levels.

7) Do you support (or plan to support) multiple time references (eg
different sound cards --> different clocks)? It can be handled with a
general time reference (64 bit to be _very_ precise, and the fact that every
clock should be able to convert itself to&from thsi ref. clock time, which
wouldn't exist by itself, only in a reference basis between clocks)

8) Of course I would like to help the project, but can you tell me : who is
working on the project ? Do you have a timeline ? when did it start (The
rt-linux thing, not the amiga ?)
I could be a little help in programming, and maybe a better help in DSP (I
passed all my exams of DSP...). My personnal goal is to make a Gnome/GTK+
virtual studio & arranger studio, and i am lloking for an ausio core : I
think I found what i need, and I would participate at this one instead of
building my own.


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

This archive was generated by hypermail 2b28 : pe maalis 10 2000 - 07:27:59 EST