anouar-bm/wam-plugins

★ 0Forks 0JavaScriptGitHub ↗Compare

README

wam-plugins

Web Audio Module (WAM 2.0) plugins, self-hosted on GitHub Pages so they don't break when an upstream host changes or disappears.

Plugins

Browse and test all 231 plugins live at anouar-bm.github.io/wam-plugins.

Featured

Plugin index.js
Pro54 — Prophet-5-style synth (dual osc, resonant filter, LFO, poly-mod, 73 params, ~140 factory presets) community/Pro54/index.js

Generated from cmajor-lang/cmajor examples/patches/Pro54 via cmaj generate --target=wam.

Community (58 plugins)

Mirrored build output of boourns/wam-community (built with boourns/burns-audio-wam as a dependency), under community/. Sequencer Party (25) and Wimmics (33).

Plugin index.js GUI test page
Audio Input burns-audio/audio_input/index.js screenshot
Audio Track burns-audio/audio_track/index.js screenshot
ButterChurn burns-audio/video_butterchurn/index.js screenshot
DRM-16 DrumComputer burns-audio/drumsampler/index.js screenshot
DSI OB-6 Editor burns-audio/ob6_editor/index.js screenshot
Envelope Follower burns-audio/envmod/index.js screenshot
Function Sequencer burns-audio/functionseq/index.js screenshot
ISF Video Shader burns-audio/video_isf/index.js screenshot
MIDI Debugger burns-audio/midi_debug/index.js screenshot
MIDI Input burns-audio/midi_input/index.js screenshot
MIDI Output burns-audio/midi_output/index.js screenshot
Microkorg Editor burns-audio/microkorg_editor/index.js screenshot
Microverb burns-audio/reverb/index.js screenshot
Piano Roll burns-audio/pianoroll/index.js screenshot
Randomizer burns-audio/randomizer/index.js screenshot
Roland JX-3p Editor burns-audio/jx3p_editor/index.js screenshot
Simple Delay burns-audio/delay/index.js screenshot
Simple Distortion burns-audio/distortion/index.js screenshot
Simple EQ burns-audio/simpleEQ/index.js screenshot
Soundfont Player burns-audio/soundfont/index.js screenshot
Spectrum: Modal burns-audio/modal/index.js screenshot
Step Sequencer burns-audio/stepmod/index.js screenshot
Synth-101 burns-audio/synth101/index.js screenshot
ThreeJS Video Generator burns-audio/video_threejs/index.js screenshot
Video Input burns-audio/video_input/index.js screenshot
Big Muff wimmics/BigMuff/index.js screenshot
Blipper wimmics/blipper/index.js screenshot
Csound Pitch Shifter wimmics/csoundPitchShifter/dist/index.js screenshot
DeathGate wimmics/deathgate/index.js screenshot
DistoMachine wimmics/disto_machine/src/index.js screenshot
DualPitchShifter wimmics/DualPitchShifter/index.js screenshot
GraphicEqualizer wimmics/graphicEqualizer/index.js screenshot
Grey Hole wimmics/greyhole/index.js screenshot
KBVerb wimmics/kbverb/index.js screenshot
KppDistorder wimmics/kppdistorder/index.js screenshot
KppFuzz wimmics/Kpp_fuzz/index.js screenshot
LiveGain wimmics/SRVisualizers/dist/livegain/index.js screenshot
OSCTube wimmics/OscTube/index.js screenshot
OWLShimmer wimmics/OwlShimmer/index.js screenshot
Oscilloscope wimmics/SRVisualizers/dist/oscilloscope/index.js screenshot
Overdriverix wimmics/OverdriveRix/index.js screenshot
OwlDirty wimmics/OwlDirty/index.js screenshot
Pedalboard WAC2022 wimmics/PedalBoard-WAC2022/src/index.js screenshot
PingPongDelay wimmics/pingpongdelay/dist/index.js screenshot
QuadraFuzz wimmics/quadrafuzz/dist/index.js screenshot
React Pedalboard wimmics/pedalboard/dist/index.js screenshot
SmoothDelay wimmics/SmoothDelay/index.js screenshot
Spectrogram wimmics/SRVisualizers/dist/spectrogram/index.js screenshot
Spectroscope wimmics/SRVisualizers/dist/spectroscope/index.js screenshot
Stereo Enhancer wimmics/StereoEnhancer/index.js screenshot
StereoFreqShifter wimmics/StereoFreqShifter/index.js screenshot
StonePhaser wimmics/stonephaser/index.js screenshot
SweetWah wimmics/sweetWah/index.js screenshot
TS9 Overdrive wimmics/TS9_Overdrive/index.js screenshot
Temper wimmics/temper/index.js screenshot
ThruZeroFlanger wimmics/ThruZeroFlanger/index.js screenshot
Vox Amp 30 wimmics/GuitarAmpSim60s/index.js screenshot
WeirdPhaser wimmics/WeirdPhaser/index.js screenshot

Faustide (172)

Real Faust DSP examples from GRAME/faustide, each compiled to wasm and wrapped as a WAM2 module with the actual @shren/faust-ui widget GUI and a vendored @webaudiomodules/sdk-parammgr so MIDI/automation routes through a real WAM host (otherPlugin.audioNode.connectEvents(...)), under community/faustide/. Built with scripts/build-all-faustide-examples.mjs; see scripts/template/entry.ts for the WAM2 wrapper.

Full index with names, categories, and paths: community/plugins.json

Using a plugin in a WAM host

Point your host at the index.js URL, e.g.:

const [pluginFactory] = await import("https://anouar-bm.github.io/wam-plugins/community/Pro54/index.js");
const plugin = await pluginFactory.createInstance(hostGroupId, audioContext);

// community plugin, e.g. burns-audio/distortion:
const [distortionFactory] = await import("https://anouar-bm.github.io/wam-plugins/community/burns-audio/distortion/index.js");

Adding a new plugin

Cmajor-based:

cmaj generate --target=wam path/to/Thing.cmajorpatch --output=Thing/
git add Thing && git commit -m "Add Thing WAM build" && git push

Refreshing the community mirror:

# in a clone of boourns/wam-community
yarn install && node ./tools/build.js
cp -R dist/plugins/. path/to/wam-plugins/community/
cp dist/plugins.json path/to/wam-plugins/community/plugins.json
git add community && git commit -m "Update community plugin mirror" && git push

Pages serves straight from main at repo root, so any new Thing/index.js becomes live at https://anouar-bm.github.io/wam-plugins/Thing/index.js right after the push.

Contributors

anouar-bm

Issues