A collection of custom synthesizers and effects made with the Web Audio API
upcast // hsl // living in the mouth // edge customer // &&gift // await promise // n-stop designer // assembly expression // peach address // target equals blank // stack // community infinite // from stone // lotus ampersand
- the "Piece Page Template" Release is a complete HTML/JS template for creating music in the same manner as in the pieces at the links above (to use, write your code in "runPatch()" in "script.js", and then run "index.html" in any browser)
- since many of the files included in the template are specific to my own workflow, files containing synthesizers, effects, and utilities used directly for audio generation are detailed below (doc and API coming soon)
- a collection of custom processing, control, synthesis, and interface objects shared by all pieces made with this library
BUFFERS
- a pair of commonly used buffers - one that generates a constant value (since the Web Audio API's ConstantSourceNode is not supported by a number of browsers), and another that outputs noise
CV NODES
- 8 objects for creating parameter control signals (control voltages) such as Envelopes and LFOs.
EFFECTS
- 14 objects for processing audio signals, including custom filters, delays and time-based effects, and waveshapers.
INSTRUMENTS
- 13 objects for synthesizing audio signals - some based on existing synthesizer architectures such as the Yamaha DX7 and Moog MiniMoog, others custom-built and unique to this library.
MULTI OBJECTS
- 11 objects which provide an interface for quickly loading multiple objects of the same type (i.e. MultiBuffer, MultiOsc, MultiPan, etc.)
MY NODES
- 12 custom interfaces for Web Audio API nodes (i.e. MyOsc, MyDelay, MyGain)
PRESETS
- 3 objects for storing commonly used configurations of certain nodes (BufferPreset, ConvolverPreset, EnvelopePreset)
- file for rapid prototyping and management of the instruments and effects being built for a specific piece
Effect
- object within which to design signal-processing chains, which are stored as methods
Instrument
- object within which to design signal-generating chains, which are stored as methods
- commonly used functions and values for algorithmic composition and value generation
Arrays
- functions for generating and operating on arrays
Graphing
- functions for printing the contents of a buffer as a graph in the brower console
MIDI to Frequency
- function that returns a frequency in Hertz for a specified MIDI value
Randoms
- functions that return random values within a specified range
Sequence
- object with a variety of methods for generating sequences of values (additive, exponential, random, etc.)
Tuner
- function that returns an array containing the MIDI values of a scale specified by mode and tonic as arguments
Values
- global variables for easy access to common musical values like tuning ratios