Hi.
I've been sinking lots of time in trying to get ALSA to work with a
SGTL5000 (Teensy Audio Adapter) in Raspbian on a Raspberry Pi 3. I have the
complete documentation for how to manually set up the audio chip, and
sufficient documentation on how to manually set up the Pi's ARM I2S
peripheral. The ALSA solution is generalized for any kind of hardware you
could want, is something I don't really want to know, at all, in my life,
and seems just far too complex when I have detailed guides for both the
audio chip and the CPU. The one combination of ALSA platform, machine and
codec drivers that I've managed to get sound from plays more than 2x too
fast and will not open with JACK.
So, I'm reading about the JACK API, wondering about simply writing a C
program to configure and write to the Pi's built-in I2S FIFOs, without even
telling ALSA that I'm doing it; but I see that all JACK clients should use
callback functions. Still, audio input from JACK into a program using the
API is a regular thing, right? So how complicated might it be to set up
such a client that gets audio input from JACK and writes that to the chip's
I2S FIFO? My timing will be controlled by the audio chip, the Pi chip will
be a slave to it. So as long as my program writes to the transmit FIFO fast
enough, and waits if the FIFO is full, I think I don't need to worry about
synchronizing JACK exactly to the audio chip's clock... right?
I'm just a little fuzzy on this timing part.
Thanks for any clarification.
-Chuckk
--
http://www.badmuthahubbard.com