Can the audiostreamer buffer size be read when it is set to Auto with an ASIO driver?

25 vues (au cours des 30 derniers jours)
Glenn Kubota
Glenn Kubota le 12 Déc 2025 à 0:44
Commenté : Jimmy Lapierre il y a environ 24 heures
In the new 'audiostreamer' object (introduced in R2025a), the DeviceBufferSize can be set to "auto", for which the documentation says "For ASIO, it is generally fixed by the device (see asiosettings)". Is there any way of reading back what buffer size it has gotten from the ASIO driver? That would be very useful in optimizing my code

Réponses (1)

Ayush
Ayush le 15 Déc 2025 à 8:11
Modifié(e) : Ayush le 15 Déc 2025 à 8:14
Hi Glenn,
I understand you want to know how to determine the actual buffer size being used by the "audiostreamer" object when set to "auto" with an ASIO driver.
To do this, you should first check which ASIO devices are available on your system by running the following command:
>> devices = audiostreamer.getAudioDevices()
Once you know the exact device name, you can use MATLAB’s ASIO settings functionality to query the current buffer size that the device is using. This buffer size is determined by the ASIO driver and is what audiostreamer will use in "auto" mode. The buffer size information can be accessed through the "asiosettings" command interface in MATLAB.
You can refer the following document to know more about audio I/O buffering:
Hope this helps!
  5 commentaires
Glenn Kubota
Glenn Kubota il y a environ 24 heures
Yes, I am using the callback options. I guess that I can infer what the buffer size size is by looking at NumRecorderSamples a few times and assume that the buffer size is the smallest number that I read. It seems like quite an indirect way of doing things though. It would require me to run some audio data with no output to find out the buffer size before I start my actual audio processing.
By the way, in testing this, I discovered a really strange issue with my Komplete Audio 6 ASIO driver. In the asiosettings for that driver, I can view the buffer size, but whenever my MATLAB code starts playing audio with 'play' or 'playrec', I see the buffer size displayed has incremented to the next size up (i.e. doubled in size). After running my code a few times, the buffer size eventually reaches 2048, which is the largest setting, and it stays there. I don't see this behavior with a couple other ASIO drivers, so maybe it's a Komplete Audio bug? Weird! If someone else has a Komplete Audio soundcard, maybe they can test it.
Jimmy Lapierre
Jimmy Lapierre il y a environ 24 heures
Hi Glenn, I have recently seen the doubling issue. It happens with some brands but not others, so I suspect it's a device driver issue, but we found a way to avoid the problem with a change on our end. This will ship in 26a and a 25b update.

Connectez-vous pour commenter.

Catégories

En savoir plus sur Audio I/O and Waveform Generation dans Help Center et File Exchange

Produits


Version

R2025b

Community Treasure Hunt

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

Start Hunting!

Translated by