Alsa-Devel Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: Clemens Ladisch <clemens@ladisch.de>
To: Rob Janssen <pe1chl@amsat.org>, alsa-devel@alsa-project.org
Subject: Re: Control the exact moment of output
Date: Tue, 29 Apr 2014 09:50:53 +0200	[thread overview]
Message-ID: <535F59DD.2080207@ladisch.de> (raw)
In-Reply-To: <5352BEA0.3050807@amsat.org>

Rob Janssen wrote:
> For a distributed system that requires synchronized output I would like to determine
> the exact moment when output samples are sent, preferably within +/- 1 sample time.
>
> Is this possible within the ALSA API?

In theory, yes; snd_pcm_delay() should take these latencies into account.

In practice, there is no hardware where this value is accurate.  Drivers with
large latencies (e.g., USB) report their internal queues, but nobody bothers
for the small delays (about 10 samples) in the DMA controllers and DACs.

> Are some types of soundcard more suitable than others for this purpose?

PCI(e) cards have lower latencies, but if you configure two USB devices
with the same parameters, the driver's queues will have the same length.

> And are there soundcards available where the sample clock can somehow be
> locked to system time or an external 10MHz/1PPS reference?

Some cards can be locked to an S/PDIF input or to a word clock from another
sound card.  This does not work for physically separated outputs; you'd have
to measure the clock differences and do dynamic resampling.


Regards,
Clemens

  reply	other threads:[~2014-04-29  7:50 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-04-19 18:21 Control the exact moment of output Rob Janssen
2014-04-29  7:50 ` Clemens Ladisch [this message]
2014-04-29  8:25   ` Rob Janssen
2014-04-30  6:43     ` Patrick Shirkey
2014-04-30  8:11       ` Rob Janssen

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=535F59DD.2080207@ladisch.de \
    --to=clemens@ladisch.de \
    --cc=alsa-devel@alsa-project.org \
    --cc=pe1chl@amsat.org \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox