Git Product home page Git Product logo

Soundstage

Soundstage is an object model for Web Audio processing graphs. It provides an API for creating, manipulating and observing graphs, a sequencing engine for event record and playback, and a JSONify-able structure for import and export of Soundstage projects.

Warning
Soundstage is currently undergoing a reworking after a bit of a hiatus. It likely will frustrate you. The aim on this pass is to write a full test suite and documentation, then it will be less frustrating.

Developing Soundstage

Clone the Soundstage repo and its dependency repos into one location.

git clone [email protected]:soundio/soundstage.git
git clone [email protected]:stephband/fn.git
git clone [email protected]:stephband/midi.git

That location may now be served. Soundstage can be imported unbuilt into an html document for testing. Import it with DEBUG messages turned on:

<script>
    window.DEBUG = true;
</script>

<script type="module">
    import Soundstage from './soundstage/module.js'
    // Do something with Soundstage ...
</script>

Build Soundstage

The build process requires Deno to be installed.

Build the Soundstage module to the build/ directory:

cd soundstage/
make modules

The built version includes dependencies and does not require dependency repos to be served alongside the Soundstage repo. Also, DEBUG messages are disabled. It can be imported into an html document:

<script type="module">
    import Soundstage from './soundstage/build/soundstage.js'
    // Do something with Soundstage ...
</script>

Build documentation

Build documentation found in code comments to markdown files in docs/:

make docs

Running tests

Tests run in a browser. Navigate to soundstage/test.html.

Note
Many tests are run against unbuilt files. A server must be serving the dependency repos and the soundstage repo from the same location.

The soundstage/test.html page is also used to run tests in Chrome, FireFox and Safari via Github Actions / Selenium. Test results can be seen at github.com/soundio/soundstage/actions/.

Add a test

To add a test:

  • Create a JS module in tests/
  • Import that module in test.html

Please refer to existing tests for examples. Tests are currently run using a minimal runner function with the signature test(name, expectedValues, fn).

sound.io's Projects

gendy icon gendy

A Web Audio stochastic synthesis module

music icon music

A library of functions for analysing music.

recorderjs icon recorderjs

A plugin for recording/exporting the output of Web Audio API nodes

scribe icon scribe

Music notator. Takes JSON, outputs SVG.

sound.io icon sound.io

Report Bugs and request features for sound.io

soundstage icon soundstage

A graph object model and sequencing engine for the Web Audio API

svguitar icon svguitar

Create beautiful SVG guitar chord charts

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.