The one of the drawbacks of the MATLAB (built-in) sound function is its incapability of smooth playback of multiple soundbites. When multiple soundbites are played back-to-back, there are unavoidable pauses between them. AFAIK, the Mathwork's only solution to uninterrupted continuous sound playback is to use DAQ Toolbox ($$$).
jAudio class enables the uninterrupted sound playback by directly interfacing with Java Sound APIs. The sound samples are queued to the internal buffer when "play"ed, allowing smooth playback of multiple soundbites.
jAudio class is fully documented. Users are referred to the help text for the class usage (it includes an example code.)
Also, to demonstrate its capability, a GUI demo (jaudio_demo.m) is included in the submission. The GUI has a (one-octave+) piano keyboard (C4-E5) that can be played either by clicking left mouse button on the piano keys on the GUI or pressing the bottom two rows of the PC keyboard keys. Multiple notes can be played simultaneously, although the total number of simultaneous notes playable depends on the OS.
Each note is a pure sinusoidal tone, generated at 8-kHz sampling rate. The internal buffer is 50 ms long and is filled by a pair of timer and jAudio objects.
Kesh Ikuma (2022). jAudio: Buffered Sound Class (https://www.mathworks.com/matlabcentral/fileexchange/28394-jaudio-buffered-sound-class), MATLAB Central File Exchange. Retrieved .
MATLAB Release Compatibility
Platform CompatibilityWindows macOS Linux
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!Start Hunting!