The core of the framework is principally dedicated to:
- WebSocket communications
- Distributed state management
- Plugin hosting
Most of the time you won't need to install
soundworks manually, as the application template already takes care of that.
npm install --save @soundworks/core
soundworks/core functionalities can be extended by installing plugins. Here is a list of available plugins so far:
soundworks plugin for loading and managing audio buffers and related JSON data. Currently limited to
.json formats to enforce browser compatibility and support (meaning support for Safari...)
npm install @soundworks/plugin-audio-buffer-loader --save
soundworks plugin for assigning a ticket (unique index) to the client among the available ones. The number of available tickets can be limited and tickets can be associated with additional data.
npm install @soundworks/plugin-checkin --save
soundworks plugin to parse and watch directories and distribute their content to all clients in real-time.
npm install @soundworks/plugin-filesystem --save
soundworks plugin dedicated to recording arbitrarily from any node of the network into plain old files.
npm install @soundworks/plugin-logger --save
soundworks plugin that checks the availability of features required by the application, and their initialisation. It also provides an entry point for features that may require a user gesture (e.g. clicking on the screen to resume an audio context). The plugin can also be used to simply add a splash screen to the application.
npm install @soundworks/plugin-platform --save
soundworks plugin for locating people in an area. In the
soundworks-template default views, the plugin is associated with an initialization screen where people are asked to provide their position on a map.
npm install @soundworks/plugin-position --save
soundworks plugin for runtime scripting. The plugin allows to define an entry point of the application that enables the end user to modify the behavior of the distributed application at runtime, following an end-user programming strategy.
npm install @soundworks/plugin-scripting --save
soundworks plugin for synchronizing arbitrary clocks across devices. The plugin is basically a wrapper around the @ircam/sync (opens new window) library.
npm install @soundworks/plugin-sync --save
Project template for developing
soundworks applications. The template provides a clean code base to start developing an application.
git clone https://github.com/collective-soundworks/soundworks-template.git my-application cd my-application rm -Rf .git npm install npm run dev
Additionally to the
@soundworks/core package, the template installs and uses the
@soundworks/template-helpers to simplify a set of common tasks.
Build scripts of the
npm install --save @soundworks/template-build
Set of common helpers (init views, etc.) for applications based on the
npm install --save @soundworks/template-helpers