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

Reply via email to