High latency for audio use on a Raspberry Pi using Simulink

6 Ansichten (letzte 30 Tage)
Amadeus
Amadeus am 24 Nov. 2014
Beantwortet: Dong-uk Hyon am 1 Mär. 2018
Hi everybody!
For a student project we decided to build test hardware for musical instrument effects. As base we decided to go for a Raspberry Pi with some peripheral equipment installed. We've programed the hardware just using Simulink with their tools and libraries. Everything works fine but we do have a huge latency with our audio signal.
Even when we try to put the signal through without effects, the latency is half a second long.
Do you have any ideas why?
Does the Raspberry Pi compute on its own or is all data just sent via ethernet?
How do I reduce buffer sizes?
Thanks for your help!
Regards, Amadeus

Antworten (3)

Tom Haelvoet
Tom Haelvoet am 8 Okt. 2016
Bearbeitet: Tom Haelvoet am 8 Okt. 2016
Hi all,
The latency can be reduced from within Simulink after performing the following steps:
1. Drag & drop an ALSA Audio Playback block into your model.
2. Jump to the Library (CTRL+L) and unlock it.
3. Edit the mask (CTRL+M) of the ALSA Audio Playback block.
4. Navigate to Parameters & Dialog, Select Que duration & check the Visible flag.
5. Lock & save the library.
The Queue duration should now be visible and ready to be modified.
FYI: Tested with a Focusrite 2i2 (Device name = 'plughw:1.0') and a Queue duration of 50ms
  1 Kommentar
Amadeus
Amadeus am 13 Dez. 2016
Thank you very much!
That helped indeed.
It is better to get some help lately than have none. It works so much better now!
Regards, Amadeus

Melden Sie sich an, um zu kommentieren.


Murat Belge
Murat Belge am 10 Dez. 2014
The ALSA Audio Playback block uses and audio buffer size of 0.5 seconds of data. You can not change this parameter unless you modify the source file (MW_alsa_audio.c). This parameter determines the latency.
It is very hard to achieve real-time, low-latency audio in Linux. If you reduce the audio buffer size, you might observe stutter / interruptions in the audio.

Dong-uk Hyon
Dong-uk Hyon am 1 Mär. 2018
Hi,
On top of Tom's answer above, I am also carrying out audio experiments using Raspberry Pi and have found lowering the ALSA frame sample size down will significantly reduce the latency.
I found these settings by double clicking on the ALSA audio capture block. The default frame size for me was 4410 (N), by reducing this value you will find a better response of your system. I managed to go down to 10, and the delay is just about noticeable by audio.
Info found here: https://uk.mathworks.com/help/dsp/ug/sample-and-frame-based-concepts.html#bso3wxr-1
Kind regards, Don

Kategorien

Mehr zu Raspberry Pi Hardware finden Sie in Help Center und File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by