All of lore.kernel.org
 help / color / mirror / Atom feed
* PCM API questions
@ 2002-06-23  3:41 Joshua Haberman
  2002-06-24 12:39 ` Takashi Iwai
  0 siblings, 1 reply; 14+ messages in thread
From: Joshua Haberman @ 2002-06-23  3:41 UTC (permalink / raw)
  To: alsa-devel

Hello all!

I am writing a PortAudio implementation for ALSA.  PortAudio is designed
to present a single API that cross-platform applications can use on many
different platforms.

I have some questions I hope you can answer for me.

1.  Is there any reason to choose anything other than mmap mode for
transfer?  Are there some cards that don't support it?

2.  How is device selection designed to work with ALSA?  My experience
with ALSA has been very confusing in this regard.  I recall reading at
least once that ALSA is not designed to have applications enumerate all
the devices; that the correct way is to use ~/.asoundrc to define a
hardware device and then supply that name to applications.  But is there
anything more sophisticated an application can do than to just present
the user with a text box?

3.  I'm not sure how to approach the latency-related software and
hardware parameters.  PortAudio will soon be able to run in either
callback mode or blocking mode, and it is intended that the user be able
to provide hints to the implementation about what kind of latency it
wants.

The mechanism for setting latency in PortAudio is in a state of flux, but
at the moment the PortAudio implementation is provided with these
parameters:

    framesPerCallback -- max number of frames to pass to the user callback,
        when running in callback mode
    numberOfBuffers
    latencyInFrames

These are only guidelines to the driver, not commands, but I'd still like
to do the best possible approximation.  I'm thinking of doing something
like this:

    snd_pcm_hw_params_set_period_time( MIN(latencyInFrames, framesPerCallback) )
    snd_pcm_hw_params_set_periods( numberOfBuffers )
    /* buffer size is implicit from the above two */

    snd_pcm_sw_params_set_avail_min( MIN(latencyInFrames, framesPerCallback) )

As you can probably tell, I'm murky on the interaction between the
avail_min software parameter and the period_time hardware parameter.
Clarifications welcome.  :-)

I think that's it for now.

Josh


-------------------------------------------------------
Sponsored by:
ThinkGeek at http://www.ThinkGeek.com/

^ permalink raw reply	[flat|nested] 14+ messages in thread

end of thread, other threads:[~2002-06-25 13:53 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2002-06-23  3:41 PCM API questions Joshua Haberman
2002-06-24 12:39 ` Takashi Iwai
2002-06-24 12:49   ` Paul Davis
2002-06-24 13:01     ` Takashi Iwai
2002-06-24 14:17       ` Paul Davis
2002-06-24 15:18         ` Fred Gleason
2002-06-24 16:13         ` Takashi Iwai
2002-06-24 16:57         ` Joshua Haberman
2002-06-24 21:14           ` Paul Davis
2002-06-25  1:12             ` Jaroslav Kysela
2002-06-25  6:04               ` Joshua Haberman
2002-06-25 13:53                 ` Jaroslav Kysela
2002-06-25  7:11   ` Joshua Haberman
2002-06-25 10:36     ` Takashi Iwai

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.