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 Access

Efficiently access a variety of audio file formats within MATLAB

Sound File Access and Performance

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:

    Used to read and write a variety of uncompressed file formats including AU, WAV, AIFF, and W64, as well as the compressed open formats FLAC and OGG
    Used to read and decode MP3 files
    Used to encode and write MP3 files

Fast and Long-Term Spectrograms

Efficient and flexible spectrogram and long term spectrogram computations

Fast Long-Term Spectrograms

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 Automation

Making large-scale analysis possible

Automatic Detection

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.


Versatility through adaptability

Simple Extensibility

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:

  • Signal Filters
  • Image Filters
  • Detectors
  • Measurements
  • Annotations
  • Actions
  • Widgets

Simple Uniform GUI Development

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.

  • 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.