From: James Courtier-Dutton <James@superbug.demon.co.uk>
To: Paul Davis <paul@linuxaudiosystems.com>
Cc: Florian Bomers <Florian.Bomers@sun.com>,
alsa-devel@lists.sourceforge.net
Subject: Re: smix plugin available?
Date: Wed, 27 Nov 2002 12:06:10 +1100 [thread overview]
Message-ID: <3DE41A82.6030608@superbug.demon.co.uk> (raw)
In-Reply-To: <E18Goo5-0008Ma-00@sc8-sf-list1.sourceforge.net>
Paul Davis wrote:
>
>
>>>the APIs that are used to write almost all audio software code in
>>>production these days all use a callback model.
>>>
>>>
>>Sorry for questioning this statement. Of course we all don't have any statisti
>>cal data but
>>you miss what I see as the majority of applications that use audio devices:
>>
>>1) games
>>2) media players
>>3) GUI sounds (i.e. accessibility)
>>
>>
>
>this is a fair point. i apologize. i have my head so far inside the
>"audio software for musicians" box that i tend to fail to see such
>applications :)
>
>however, the very fact that the applications developers of such
>programs really don't know much (if anything) about audio programming,
>and probably don't want to know much about it either, suggests that an
>API like ALSA which exposes the full HAL is probably a mistake. again,
>i consider PortAudio a vastly preferable solution.
>
>
>
I would like to point out that a "callback" api would work just as well
as an open/write/close api for
1) games
2) media players
3) GUI sounds (i.e. accessibility)
I have to agree with Paul on the fact that a "callback" approach is really the ONLY real option.
Here is my reasoning: -
1) My perspective is from "(2) Media players" and not "Pro-Audio"
2) Sound Hardware tends to have very small buffers.
3) For nice sounding audio, these buffers should never run dry. I.E. No XRUNs.
4) A open/write/close api will never ever be able to guarantee no XRUNs, as it has no control on when it will get scheduling time to do the next write.
5) With a "callback" approach, the kernel would be notified by the sound hardware that it was ready for new samples, the kernel could then adjust the scheduler, so that the "callback" function was called ASAP.
The "callback" function then only has to decide which samples to give. If the "callback" function could receive a "delay" value from the sound hardware at each callback, a media player would then have all the information it needed to do full audio/video sync.
6) I don't need "sample sync", but I do NEED "callback" based api to provide me with "no XRUNs".
Summary: -
The only way to cure XRUN problems is with a "callback" based api.
All application that currently use open/write/close apis, can just as easily use a "callback" api.
Cheers
James
-------------------------------------------------------
This SF.net email is sponsored by: Get the new Palm Tungsten T
handheld. Power & Color in a compact size!
http://ads.sourceforge.net/cgi-bin/redirect.pl?palm0002en
next prev parent reply other threads:[~2002-11-27 1:06 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2002-11-26 1:16 smix plugin available? Mark Swanson
2002-11-26 3:19 ` Paul Davis
2002-11-26 3:54 ` Mark Swanson
2002-11-26 4:13 ` Paul Davis
2002-11-26 8:13 ` Frans Ketelaars
2002-11-26 12:33 ` Mark Swanson
2002-11-26 19:32 ` Florian Bomers
2002-11-26 23:11 ` Paul Davis
2002-11-27 0:54 ` Florian Bomers
2002-11-27 1:06 ` James Courtier-Dutton [this message]
2002-11-27 9:29 ` Jaroslav Kysela
2002-11-27 11:36 ` tomasz motylewski
2002-11-27 13:21 ` James Courtier-Dutton
2002-11-27 13:53 ` Paul Davis
2002-11-27 14:24 ` Jaroslav Kysela
2002-11-27 13:07 ` Avoiding xruns... was " James Courtier-Dutton
2002-11-27 13:55 ` Paul Davis
2002-11-27 13:42 ` Paul Davis
2002-11-27 15:21 ` Kai Vehmanen
2002-11-27 16:26 ` Jaroslav Kysela
2002-11-27 13:45 ` Paul Davis
2002-11-27 14:39 ` Jaroslav Kysela
[not found] <20021127135012.7B5A559D353@kerberos.suse.cz>
2002-11-27 14:43 ` Jaroslav Kysela
2002-11-27 15:04 ` Paul Davis
[not found] <200211271350.OAA22613@mail.bodensee.com>
2002-11-27 15:47 ` tomasz motylewski
2002-11-28 13:50 ` Paul Davis
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=3DE41A82.6030608@superbug.demon.co.uk \
--to=james@superbug.demon.co.uk \
--cc=Florian.Bomers@sun.com \
--cc=alsa-devel@lists.sourceforge.net \
--cc=paul@linuxaudiosystems.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.