Here are a few of the most notable core features. Reading sounds of any format, rapidly computing long-term spectrograms, generating GUI code - some of these practically deserve recognition as separate projects because they add so much to the MATLAB environment.
Improved Audio File AccessEfficiently access a variety of audio file formats within MATLAB
XBAT handles most standard non-propietary file formats, so your sound data will most likely require no conversion. However, XBAT provides tools to convert data between compressed and uncompressed file formats to take advantage of compression and performance tradeoffs. Further, if your recordings are stored in a custom file format you can extend XBAT to transparently support it.
XBAT significantly extends and improves the performance of audio file format access within MATLAB. This is done through the use of various open-source C libraries and provides access to a variety of uncompressed formats including AIFF, AU, W64 and WAV, as well as access to the compressed formats FLAC, OGG, and MP3. Reading AU- and WAV-format files is also two to three times faster than the built-in MATLAB reading functions.
Once you've "added" sounds to XBAT, they are all read using the same simple set of commands. you can even use these utilities from the command line for your own projects, or just for doing some quick experimentation.
In addition, XBAT transparently handles collections of sequential files. If your recording spans multiple files, the need only be organized in ascending alphanumeric order, and they will be read as a single contiguous source.
Efficient access to the extended range of audio file formats is achieved through MEX interface functions and command-line utilities that use:
Fast and Long-Term SpectrogramsEfficient and flexible spectrogram and long term spectrogram computations
Whether you are opening a few-second-long file with a single bird call, or are browsing months of underwater recordings to analyze boat traffic, XBAT quickly computes spectrograms using a highly-optimized computing engine. This is most notable in the case of extremely long sounds, where we can often compute a 24-hour spectrogram in fractions of a minute!
- XBAT achieves high-performance spectrogram computation using the open-source library FFTW, and some C-language wrapper code that uses the MATLAB MEX interface.
Interactive Detection and AutomationMaking large-scale analysis possible
XBAT includes a sophisticated yet easy-to-use data template detector, which can greatly reduce the work required to find relevant events. Just select a sound clip on the spectrogram display and XBAT can automatically find and log other sounds like it using a spectrogram correlation based search.
The detection system is interactive. In active detection mode, you can preview the results of the current detector settings on the current page. Even non-technical users are able to tune the detector to suit their needs.
In addition, XBAT automates the process of measuring each event. You need only choose a measurement — XBAT will measure each event, and store the results in the log. Measurements help with the validation process, and can serve as the building blocks for sophisticated statistical analyses like classification.
ExtensionsVersatility through adaptability
- Signal Filters
- Image Filters
For each processing stage, XBAT gives access to the pertinent data and parameters through a clean programming interface. For example, a the core of a filter extension is just a matlab function that takes an input matrix,
X, and a parameter structure, and returns an output of the same size,
Y. You need only declare valid parameter ranges and types (e.g. real number or integer) and the system will generate an appropriate UI.
The XBAT system allows you to quickly prototype and test new algorithms or visualizations, all while maintaining a consistent look and feel and simple user interface. The important processing stages are extension points:
GUI programming in MATLAB is notoriously tricky. XBAT simplifies the process by providing an elegant columnar layout manager, supporting a limited but extremely useful set of control types. This means that algorithm developers can concentrate on algorithms, but still produce extensions that are ready to be used by non-technical analysts.