Noodler
A modular, framework-agnostic music toolkit for web applications
Interactive Board
Touch or click the board below to play notes. Slide horizontally for pitch bend.
Bend:
0
cents
View Code
<noodler-board
scale="A pentatonic-minor"
waveform="sine"
effects="delay,vibrato"
theme="dark"
bend-mode="dynamic"
></noodler-board>
Scale API
Generate scales and see note frequencies.
View Code
import { generateScale } from 'noodler/scale';
const scale = generateScale({
root: 'A',
type: 'pentatonic-minor',
octave: 4
});
scale.notes.forEach(note => {
console.log(`${note.name}: ${note.frequency.toFixed(2)} Hz`);
});
Synth API
Play notes with different waveforms and effects.
View Code
import { Synth } from 'noodler/audio';
const synth = new Synth({ waveform: 'sawtooth' });
synth.toggleDelay(true);
synth.noteOn(0, 440); // Play A4
synth.noteOff(0); // Release note
synth.destroy(); // Cleanup
Backing Track
Create rhythm patterns with chord progressions.
120
View Code
import { BackingTrack } from 'noodler/audio';
const ctx = new AudioContext();
const backing = new BackingTrack(ctx, {
tempo: 120,
style: 'blues',
instrument: 'bass',
chords: ['I', 'IV', 'V', 'I']
});
backing.play();
backing.stop();
backing.destroy();