# Ecosystem

# @soundworks/core

The core of the framework is principally dedicated to:

  • WebSocket communications
  • Distributed state management
  • Plugin hosting

Note

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

→ documentation (opens new window)
→ github (opens new window)
→ npm (opens new window)

# Plugins

soundworks/core functionalities can be extended by installing plugins. Here is a list of available plugins so far:

# @soundworks/plugin-audio-buffer-loader

soundworks plugin for loading and managing audio buffers and related JSON data. Currently limited to .mp3, .wav or .json formats to enforce browser compatibility and support (meaning support for Safari...)

npm install @soundworks/plugin-audio-buffer-loader --save 

→ github (opens new window)
→ npm (opens new window)
→ example (opens new window)
→ example (w/ filesystem) (opens new window)

# @soundworks/plugin-checkin

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 

→ github (opens new window)
→ npm (opens new window)
→ example (opens new window)

# @soundworks/plugin-filesystem

soundworks plugin to parse and watch directories and distribute their content to all clients in real-time.

npm install @soundworks/plugin-filesystem --save 

→ github (opens new window)
→ npm (opens new window)
→ example (opens new window)

# @soundworks/plugin-logger

soundworks plugin dedicated to recording arbitrarily from any node of the network into plain old files.

npm install @soundworks/plugin-logger --save 

→ github (opens new window)
→ npm (opens new window)
→ example (opens new window)

# @soundworks/plugin-platform

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 

→ github (opens new window)
→ npm (opens new window)
→ example (opens new window)
→ example (w/ devicemotion) (opens new window)

# @soundworks/plugin-position

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 

→ github (opens new window)
→ npm (opens new window)
→ example (opens new window)

# @soundworks/plugin-scripting

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 

→ github (opens new window)
→ npm (opens new window)
→ example (opens new window)

# @soundworks/plugin-sync

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 

→ github (opens new window)
→ npm (opens new window)
→ example (opens new window)

# soundworks-template

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

→ github (opens new window)

Additionally to the @soundworks/core package, the template installs and uses the @soundworks/template-build and @soundworks/template-helpers to simplify a set of common tasks.

# @soundworks/template-build

Build scripts of the soundworks-template

npm install --save @soundworks/template-build

→ github (opens new window)
→ npm (opens new window)

# @soundworks/template-helpers

Set of common helpers (init views, etc.) for applications based on the soundworks-template

npm install --save @soundworks/template-helpers

→ github (opens new window)
→ npm (opens new window)

{Sound Music Movement} Interaction Team - STMS-LAB