Re: [LAU] Sound from/to custom ADC/DAC

From: Paul Davis <paul@email-addr-hidden>
Date: Sun Mar 11 2018 - 15:42:15 EET

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@email-addr-hidden>
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@email-addr-hidden
> https://lists.linuxaudio.org/listinfo/linux-audio-user
>
>

_______________________________________________
Linux-audio-user mailing list
Linux-audio-user@lists.linuxaudio.org
https://lists.linuxaudio.org/listinfo/linux-audio-user
Received on Mon Jun 18 21:48:58 2018

This archive was generated by hypermail 2.1.8 : Mon Jun 18 2018 - 21:48:59 EEST