[LAU] Sound from/to custom ADC/DAC

Paul Davis paul at linuxaudiosystems.com
Sun Mar 11 14:42:15 CET 2018


More than one clock for digital audio is always bad.

If you have more than one clock, you *must* resample.

JACK clockmaster has nothing to do with the sample clock. It relates to
control over a shared position along an (abstract) timeline (e.g. in a DAW)

"freerunning" mode is not relevant, this is a mode in which JACK is
disconnected from all realtime I/O hardware. Maybe you can violate these
semantics and maybe it will work, but that is absolutely not the intent.


On Sun, Mar 11, 2018 at 9:35 AM, pepijn de vos <pepijndevos at gmail.com>
wrote:

> Hello,
>
> For a university project we're building a custom audio system with our own
> input and amplifier.
> We will most likely use an FPGA that communicates sound data over SPI to a
> Raspberry Pi.
> On the Raspberry Pi the sound can be further processed by for example
> Sonic Pi.
>
> Sonic Pi uses SuperCollider which uses JACK which uses ALSA.
> At some point in this chain we need to be able to interface with our FPGA.
>
> Initially I thought it would be easy to write a JACK client, and it is.
> The problem with that seems to be that JACK is in control of the sampling
> rate.
> So if I read data from the FPGA into a buffer and the clocks drift, I get
> overruns or underruns.
>
> I found a few potential solutions.
> What alsa_in and alsa_out do is resample between the two clocks. Maybe a
> bit of work, but definitely works.
> There is some business about clockmaster in JACK, which seems to be
> something different, but maybe I don't understand it.
> There is a freerunning mode, which makes it OK to do IO in the callback.
> I'm not sure if this plays well with SuperCollider. It seems that in this
> case the processing is directly driven by how fast I get data from the
> FPGA, which is what I want.
>
> If all of the above turns out to be bad ideas, I need to look at a
> different location in the chain.
> It would make sense to write an ALSA driver for what is pretty much a
> custom sound card.
> However, it seems that writing an ALSA driver is orders of magnitudes more
> complex than registering a callback with JACK.
>
> Any ideas what would be the easiest way to get sound from our FPGA into
> SuperCollider and back?
>
> Regards,
> Pepijn de Vos
>
> _______________________________________________
> Linux-audio-user mailing list
> Linux-audio-user at lists.linuxaudio.org
> https://lists.linuxaudio.org/listinfo/linux-audio-user
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.linuxaudio.org/archives/linux-audio-user/attachments/20180311/c85513e1/attachment.html>


More information about the Linux-audio-user mailing list