A spatial sound and synthesis library for audio game development and experience design.
This is experimental and under active development. Use at your own risk.
syngen provides a light wrapper around the Web Audio API for building synths and positioning them as props on a three-dimensional binaural soundstage. Its event loop fires each frame to update props and core systems. Additional utilities provide tools for engineering custom systems that hook into its API to deliver rich experiences.
Please download or clone this repository, or install with your favorite package manager:
npm install syngen
From there you might require('syngen')
or include dist/syngen.min.js
.
This library must be used within a browser environment so it can access the window
object.
It can be imported or required as a UMD module, or accessed from the syngen
global.
This example demonstrates how to define a prop and instantiate one on the soundstage:
const prototype = syngen.prop.base.invent({
onConstruct: function () {
this.synth = syngen.audio.synth.createSimple({
frequency: syngen.utility.midiToFrequency(60),
gain: syngen.utility.fromDb(-6),
}).connect(this.output)
},
onDestroy: function () {
this.synth.stop()
},
})
const instance = syngen.props.create(prototype)
Please browse the example
directory or the projects below for more elaborate real-world examples.
- Audo – Endless audio racing game
- Auraboros – Endless audio bullet hell
- Bladius – Gladiatory slasher with deckbuilding
- Chimera – Stochastic music explorer
- E.X.O. – Exoskeletal exoplanet explorer
- Kaleidophone – Relaxing generative audio toy
- S.E.A. – Chill watercraft simulator
- Wurmus – Endless snake-like game of tag
- soundStrider – Psychedelic audio exploration game
- API Documentation
- syngen-template - Template for audio game development
To get started, please clone this repository:
git clone https://github.com/nicross/syngen.git
Then use npm to install the required dependencies
npm install
Common tasks have been automated with Gulp:
gulp dist
gulp docs
gulp build
gulp watch