Skip to content
/ audio-orchestration Public template

Template application and library for multi-device audio experiences made with Audio Orchestrator.

License

Unknown, GPL-3.0 licenses found

Licenses found

Unknown
LICENSE
GPL-3.0
COPYING
Notifications You must be signed in to change notification settings

bbc/audio-orchestration

Repository files navigation

Audio Orchestration

Create immersive and interactive audio experiences for multiple synchronised devices.

Audio device orchestration is the concept of using multiple connected devices to play back an audio experience. This repository holds an open source template application and libraries that handle the key components of an orchestrated audio system (pairing, synchronisation, and audio playback).

Components

Components of this project: the template, core, bbcat-js, cloud-sync-client code in this repository, the cloud-sync server they use to communicate, and the media and metadata produced with the Audio Orchestrator tool.

We provide a template application which can easily be extended to customise the user interface. It uses our core library for managing the connected devices, synchronisation, and audio rendering. This in turn uses our internal helper libraries: bbcat-js (audio streaming) and cloud-sync-client (connection to the synchronisation server).

The Cloud-Sync server source code is published separately on GitHub. You can start working with the template using the experimental peerJS synchronisation adapter, but you may want to set up a Cloud-Sync server for production use. Further information on switching synchronisation backends can be found in the template Readme file.

The Audio Orchestrator production tool

Our Audio Orchestrator production tool for authoring metadata and packaging media for use with the template and core library is freely available on request from BBC MakerBox.

The Audio Orchestrator documentation includes a list of experiences made with these tools and instructions for using a custom template built using this repository.

Usage

Ensure you have Node.js installed, including npm version 7 or higher (earlier versions of npm do not have the workspaces functionality used in this repository).

node -v # e.g. v16.13.0
npm -v # e.g. 8.1.0

Start your project by downloading a copy of this repository, either by using the Download as ZIP button on GitHub, or by using degit.

mkdir my-project
cd my-project
npx degit bbc/audio-orchestration

Install the dependencies, then build all the packages once (the -ws flag tells npm to run the build command for each package).

npm install
npm run build -ws

Then you can, for example, start a development server for the template, which will use the other packages you've just built.

cd packages/template
npm run dev

See the template documentation for how to configure a Cloud-Sync server, if the experimental peer-to-peer synchronisation adapter does not meet your needs.

Advanced usage

If you need to use the core library outside of a custom template based on this repositoy, you may also install our pre-built packages by specifying the GitHub Package Registry for the @bbc scope in an .npmrc file for your project.

echo "@bbc:registry=https://npm.pkg.github.com" >> .npmrc
npm add @bbc/audio-orchestration-core

License

The majority of our components (template, core, and bbcat-js) are licensed under the GPLv3 license. The cloud-sync-client is licensed under the Apache 2.0 license. See the LICENSE file in each package directory for the specific licensing terms and copyright information.

If you are modifying the software to create your experience you may have to make your source code modifications available under the terms of the GPL license.

You may contact BBC R&D to discuss alternative licensing options. (Please note, the BBC is under no obligation to offer alternative terms.)

Contributing

Please contact the authors by raising a GitHub issue. A contributor licence agreement may be applicable.

About

Template application and library for multi-device audio experiences made with Audio Orchestrator.

Resources

License

Unknown, GPL-3.0 licenses found

Licenses found

Unknown
LICENSE
GPL-3.0
COPYING

Stars

Watchers

Forks

Packages 4