Hi John, For audio rate systems, Fons (Cced..) has a proposed architecture.
GNU Radio Audio sink (libalsa) --> "default" ALSA device (loopback) --> Pulseaudio (using libalsa) --> actual audio hardware For Pulseaudio, a Jack backend exists, so you could configure your Pulse audio to do Audio Sink -> "default" ALSA device -> Pulseaudio -> Jack -> resampling incl. DLL -> ... http://kokkinizita.linuxaudio.org/papers/adapt-resamp.pdf On Wed, Jun 7, 2017 at 11:15 PM, John Ackermann N8UR <j...@febo.com> wrote: > Hi Biju -- > > I was mainly asking whether Benny had a proof of concept for his suggested > approach. I understand about resamplers. > > The thought in my mind, though I don't know if I have the skills to > implement it, is a block placed immediately before the audio sink that > provides a buffer and measures whether it is filling or emptying over > time. That information drives a feedback loop that adjusts a rational > resampler on the input side of the buffer to keep the buffer level > constant, thus correcting for clock errors. As shown in terrible ASCII art: > > Nominal 1:1 > Audio-rate samples --> Rational Resampler --> Buffer --> Audio Sink > ^ v > | | > ^----------------< > (Adjust Int/Dec values to > maintain buffer at 50% full) > > I know that block doesn't currently exist, but might be an awfully useful > thing to have. > > John > ---- > On 06/07/2017 12:23 PM, Biju Ravindran wrote: > >> Hi John, >> >> I'm not aware of any gnu radio blocks available for audio synchronization. >> >> However, you're asking about resampling: Well, resamplers do exist :) ! >> >> We've got a totally different problem, though: To resample properly, >> >> you'd need to know (or better: estimate) the clock error. >> >> >> >> On Wed, Jun 7, 2017 at 2:47 AM, John Ackermann N8UR <j...@febo.com >> <mailto:j...@febo.com>> wrote: >> >> Hi Benny -- >> >> As I mentioned in another message, I'm struggling with the RF-audio >> interface now. Do you have any example code for your suggestion >> that I might play with (in my mind, the idea would be an "audio >> synchronizer" block that would take input at the nominal audio rate >> and output at the actual rate, correcting for clock error to keep >> the stream flowing smoothly). >> >> If a prototype exists, I'd be happy to plug it into my current app >> to see what happens. >> >> John >> ---- >> >> >> On 06/06/2017 12:02 PM, Benny Alexandar wrote: >> >> Hi Luca, >> >> >> Nice to see your progress so far. Once you have the >> DAB receiver audio listening in place, I would >> suggest to have an audio synchronization for continuous >> playback without any buffer overflow or under-runs. >> >> DAB+ audio super frame length is 120ms according to DAB+ >> standard (ETSI TS 102 563). Each audio super frame is >> carried in five consecutive logical DAB frames. >> Which means 120ms of audio is mapped to 5 DAB frames. >> >> If I add a timestamp at the receiver when the first DAB frame >> sample arrives, I can check the max latency when it comes to >> audio renderer, I mean after buffering to adjust the variable >> decoding time of compressed audio. >> >> t_D = t_A - t_B , >> where, >> t_A = time at audio out >> t_B = time at input baseband sample. >> t_D = maximum system delay. >> >> The difficulty is to estimate the slow clock drift correctly >> and separate it from the short-time channel/decoding jitter. >> >> Add a delay to buffer audio at audio out, say D, which is larger >> than max system delay. Whenever the audio reaches audio out, >> check the >> delay to separate the clock drift. >> >> drift = t_D - D >> >> Please let me know if you need any more details. >> >> -ben >> >> >> >> >> >> >> >> >> >> >> >> ------------------------------------------------------------ >> ------------ >> *From:* Discuss-gnuradio >> <discuss-gnuradio-bounces+ben.alex=outlook....@gnu.org >> <mailto:outlook....@gnu.org>> on behalf of >> Moritz Luca Schmid <luca.moritz.sch...@gmail.com >> <mailto:luca.moritz.sch...@gmail.com>> >> *Sent:* Friday, May 26, 2017 6:19:31 PM >> *To:* GNURadio Discussion List >> *Subject:* [Discuss-gnuradio] [GSoC 17] DAB: updates of the week >> >> >> Hi everyone, >> >> I just published my latest updates of my DAB project in a new >> blog post >> <https://dabtransceiver.wordpress.com/ >> <https://dabtransceiver.wordpress.com/>>. >> >> This week, I created a source block for the Fast Information >> Channel and >> started to build a reception chain for the Main Service Channel >> (where >> the audio data is transmitted). >> >> Read more about it in my post. >> >> >> Cheers >> >> Luca >> >> >> >> _______________________________________________ >> Discuss-gnuradio mailing list >> Discuss-gnuradio@gnu.org <mailto:Discuss-gnuradio@gnu.org> >> https://lists.gnu.org/mailman/listinfo/discuss-gnuradio >> <https://lists.gnu.org/mailman/listinfo/discuss-gnuradio> >> >> >> _______________________________________________ >> Discuss-gnuradio mailing list >> Discuss-gnuradio@gnu.org <mailto:Discuss-gnuradio@gnu.org> >> https://lists.gnu.org/mailman/listinfo/discuss-gnuradio >> <https://lists.gnu.org/mailman/listinfo/discuss-gnuradio> >> >> >> >> >> -- >> Regards, >> Biju Ravindran >> > -- Regards, Biju Ravindran
_______________________________________________ Discuss-gnuradio mailing list Discuss-gnuradio@gnu.org https://lists.gnu.org/mailman/listinfo/discuss-gnuradio