Audio Definition Model Software

Research Paper

Download
Published: 2 November 2015

Abstract

The Audio Definition Model is an ITU specification of metadata that can be used to describe object-based audio, scene-based audio and channel-based audio. It can be included in BWF WAVE files or used as a streaming format in production environments.

Audio Definition Model

ITU-R BS.2076 Audio Definition Model - Metadata specification

ITU-R BS.2088 Specification of the BW64 - A long-form file format for audio data files with metadata in broadcasting

Example files using this format can be found here

BBC Audio Toolbox

<br> The BBC Audio Toolbox is a suite of C++ libraries for manipulating object-based audio and ADM based BWF files. <br><br> <b>Please note IMPORTANT library changes below in the Deprecated Libraries section.</b> <br><br> All the libraries have the following licence: <br> <hr> <br> Copyright (c) 2015 British Broadcasting Corporation

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

Additionally, the BBC requests that improvements and fixes made to the Software are sent to the BBC for incorporation into the publicly available versions. <br> <hr> <br>

Source Code

<br> Please note <b>IMPORTANT</b> library changes below in the Deprecated Libraries section. <br><br> bbcat-base Base library for the BBC Audio Toolbox <br><br> bbcat-dsp DSP library for the BBC Audio Toolbox <br><br> bbcat-adm Audio Definition Model handling library for the BBC Audio Toolbox <br><br> bbcat-fileio File I/O library for the BBC Audio Toolbox <br><br> All libraries can be built on Mac OSX, Linux and <b>Windows</b> 64-bit architectures. Each library relies on those above so all libraries must be built and installed. See the README file in each library for instructions. bbcat-fileio contains several example programs to read and write ADM based BWF files in the examples/ folder.<br> <br> For all architectures, building using <b>CMake</b> is now supported. On Windows this allows building using <b>Visual Studio</b> and produces libraries for statically linking <b>only</b>. <b>IMPORTANT</b>: Care must be taken when linking statically to ensure all parts of the libraries are included, please see the examples for more information.<br> <br> autotools can still be used on OSX and Linux but this will be <b>deprecated</b> in favour of CMake in a future release.<br> <br>

Examples

<br> Some of the examples (in bbcat-fileio/examples):<br> <br> create-adm.cpp - example code for creating an ADM (in XML form) WITHOUT using a RIFF file<br> <br> read-adm-bwf.cpp - example code for reading the displaying parts of the ADM and then accessing the sample data of one of the ADM audio objects<br> <br> write-adm-bwf.cpp - example code for creation of a simple ADM<br> <br> write-separate-adm.cpp - example code for creation of a simple ADM and then writing the CHNA and AXML chunks to a RIFF file<br> <br> udp-demo.cpp - example of using UDP port, threading and a lock-free buffer<br> <br>

Deprecated Libraries

<br> The following libraries have been <b>deprecated</b> and replaced by bbcat-adm and bbcat-fileio above - they will still work but will <b>not</b> be updated: <br><br> bbcat-control Control library for the BBC Audio Toolbox <br><br> bbcat-audioobjects Audio objects library for the BBC Audio Toolbox <br><br> bbcat-adm provides pure Audio Definition Model data handling facilities without any file reading or writing, that is now provided by bbcat-fileio. <br><br> Crucially, the API's have not changed - the classes and filenames are as they were, just their location has changed. <br><br> For example: <br> bbcat-control/AudioObjectParameters.h is now bbcat-adm/AudioObjectParameters.h <br> bbcat-audioobjects/ADMData.h is now bbcat-adm/ADMData.h <br> bbcat-audioobjects/RIFFFile.h is now bbcat-fileio/RIFFFile.h <br> bbcat-audioobjects/TinyXMLADMData.h is now bbcat-fileio/TinyXMLADMData.h <br>

Python

<br> The Python code has now been <b>deprecated</b> in favour of the C++ code above.<br> <br>

Contact

<br> Please email audio@rd.bbc.co.uk if you have any questions or queries.

White Paper copyright

© BBC. All rights reserved. Except as provided below, no part of a White Paper may be reproduced in any material form (including photocopying or storing it in any medium by electronic means) without the prior written permission of BBC Research except in accordance with the provisions of the (UK) Copyright, Designs and Patents Act 1988.

The BBC grants permission to individuals and organisations to make copies of any White Paper as a complete document (including the copyright notice) for their own internal use. No copies may be published, distributed or made available to third parties whether by paper, electronic or other means without the BBC's prior written permission.

Authors

  • David Marston (BEng)

    David Marston (BEng)

    Senior R&D Engineer

Rebuild Page

The page will automatically reload. You may need to reload again if the build takes longer than expected.

Useful links

Theme toggler

Select a theme and theme mode and click "Load theme" to load in your theme combination.

Theme:
Theme Mode: