Embeddable audio examples for Obsidian music guides
π Live URL: https://jornado.github.io/soundplayer/
Supports chords, scales, intervals, drums, synths, effects, rhythm, and more. Works on iPhone, iPad, and desktop.
Use this iframe format to embed interactive players in your guides:
<iframe src="https://jornado.github.io/soundplayer/?chord=Cmaj7&compact" width="280" height="160" style="border:none;border-radius:12px;"></iframe>π C Major 7 Β· π D minor Β· π F# sus2 Β· π Bb7 Β· π Am9 Β· π Cmaj9 Β· π Dm7b5 Β· π G7#9
π I-V-vi-IV Β· π ii-V-I Β· π I-vi-IV-V Β· π vi-IV-I-V Β· π Slow Β· π Fast
π C Major Β· π A Minor Β· π D Dorian Β· π E Phrygian Β· π F Lydian Β· π G Mixolydian Β· π B Locrian Β· π A Harmonic Minor Β· π C Melodic Minor Β· π A Pentatonic Β· π A Minor Pentatonic Β· π E Blues Β· π Chromatic Β· π Whole Tone
π Unison Β· π Minor 2nd Β· π Major 2nd Β· π Minor 3rd Β· π Major 3rd Β· π Perfect 4th Β· π Tritone Β· π Perfect 5th Β· π Minor 6th Β· π Major 6th Β· π Minor 7th Β· π Major 7th Β· π Octave
Kit: π₯ Kick Β· π₯ 808 Β· π₯ Snare Β· π₯ Clap Β· π₯ Rim Β· π₯ Tom Β· π₯ Low Tom
Cymbals: π Hi-Hat Β· π Open Hat Β· π Crash
Percussion: πͺ Shaker Β· πͺ Tambourine Β· π Cowbell Β· πΊ Triangle Β· πͺ Conga Β· πͺ Low Conga Β· πͺ Bongo Β· πͺ Low Bongo Β· πͺ΅ Woodblock Β· π΅ Maracas Β· π΅ Guiro
π₯ Four on Floor Β· π₯ Breakbeat Β· π₯ Trap Β· π₯ Rock Β· π₯ Disco Β· π₯ DnB Β· π₯ Half-time
π₯ Basic Rock Β· π₯ Syncopated Β· π₯ 2-Bar Β· π₯ House
Beat notation: 1 = beat 1, 1.5 = 8th note, 1.25 = 16th note. Shorthand: 16ths, 8ths, 4ths, offbeat, backbeat
Bass: πΉ Reese Β· πΉ Sub Β· πΉ 808 Β· πΉ Wobble Β· πΉ FM Bass Β· πΉ 303 Acid
Lead: πΉ Supersaw Β· πΉ Lead Β· πΉ Pluck Β· πΉ Bell
Pad: πΉ Pad Β· πΉ Organ Β· πΉ Strings Β· πΉ Brass
π₯ Riser Β· π₯ Downlifter Β· π₯ Impact Β· π₯ Boom Β· π₯ Sweep
γ°οΈ Sine Β· β¬ Square Β· π Sawtooth Β· πΊ Triangle Β· π Compare All
π» Low-Pass Β· πΊ High-Pass Β· β Band-Pass Β· β Notch Β· π Compare All
Sweeps: π LP Up Β· π LP Down Β· π HP Up Β· π HP Down
πΈ Pluck Β· πΉ Pad Β· πΊ Brass Β· π₯ Perc Β· π» Strings Β· πΉ Organ Β· π Compare All
Custom: A=0.5 D=0.3 S=0.4 R=0.8 Β· A=0.01 D=0.2 S=0 R=0.3 Β· A=1 D=0.5 S=0.8 R=2
π³ Tremolo Slow Β· π³ Tremolo Fast Β· γ°οΈ Vibrato Β· π Filter Wobble
Shapes: shape=sine (smooth), shape=square (gate), shape=triangle (linear), shape=saw (ramp)
π Fundamental Β· π Odd (Square) Β· π All (Saw) Β· π Even Only
π₯ Clean Β· π₯ Warm Β· π₯ Driven Β· π₯ Distorted
π 16-bit Β· π 12-bit Β· π 8-bit Β· π 6-bit Β· π 4-bit
πΉ 3 Voices Β· πΉ 5 Voices Β· πΉ 7 Voices Β· πΉ 9 Voices
π¨ Subtle Β· π¨ Breathy Β· π¨ Textured Β· π¨ Noisy
π Room Β· ποΈ Hall Β· π Plate Β· βͺ Cathedral
π 8th Β· π Quarter Β· π 16th Β· π Dotted 8th Β· π Long Feedback
π Subtle Β· π Lush Β· π Thick
π Slow Β· π Medium Β· π Fast Β· π Jet
β¬ οΈ Hard Left Β· β¬ οΈ Left Β· βΊοΈ Center Β· β‘οΈ Right Β· β‘οΈ Hard Right
π 4 Beats Β· π 8 Beats Β· π Slow Β· π Fast
π Bell (8:1) Β· πΊ Brass (2:1) Β· πΈ Metallic (3:1) Β· πΉ E.Piano (1:1) Β· π Harsh (5:1)
ποΈ Low (200Hz) Β· ποΈ Mid (440Hz) Β· ποΈ High (800Hz) Β· ποΈ Extreme (1500Hz)
π Slow Β· π Medium Β· π Fast Β· π Thin Β· π Wide
π£οΈ "Ah" Β· π£οΈ "Eh" Β· π£οΈ "Ee" Β· π£οΈ "Oh" Β· π£οΈ "Oo"
π― 60 BPM Β· π― 80 BPM Β· π― 100 BPM Β· π― 120 BPM Β· π― 140 BPM Β· π― 160 BPM
4/4 Β· 3/4 Waltz Β· 2/4 March Β· 6/8 Compound Β· 5/4 Β· 7/8 Β· 9/8 Β· 12/8
3:2 Hemiola Β· 4:3 Β· 5:4 Β· 5:3 Β· 7:4
Straight Β· Light Β· Medium Β· Jazz Β· Heavy Shuffle
C Major: Root Β· 1st Inv Β· 2nd Inv
Dm7: Root Β· 1st Inv Β· 2nd Inv Β· 3rd Inv
I-vi-IV-V Β· ii-V-I Β· I-IV-vi-V Β· vi-IV-I-V Β· I-V-vi-iii-IV
Full Circle (12) Β· 7 Steps Β· 5 Steps Β· From G Β· From F
C Modes Β· D Modes Β· E Modes Β· G Modes Β· A Modes
β¬οΈ Up Β· β¬οΈ Down Β·
πΉ Acid 303 Β· π House Β· πΈ Funk Β· πͺ© Disco
π΅ Pentatonic Β· π· Blues Β· πΊ Jazz Β· πΉ Trance
π» Lo-Fi Β· π Synthwave Β· β‘ Techno Β· π Ambient Β· π₯ Dubstep Β· π House Β· π« Trap Β· π₯ DnB
| Param | Values | Example |
|---|---|---|
chord |
Any chord name | Cmaj7, Dm, F#sus2, Bb7 |
octave |
2-6 | 4 (default) |
Supported chord types:
| Category | Types |
|---|---|
| Triads | maj, min/m, dim, aug, sus2, sus4, 5/power |
| 7th | maj7, 7/dom7, min7/m7, dim7, m7b5/hdim7, mmaj7, aug7, 7sus4 |
| Extended | maj9, 9, m9, add9, madd9, 6, m6, 6/9, m6/9 |
maj11, 11, m11, maj13, 13, m13 |
|
| Altered | 7b9, 7#9, 7b5, 7#11, 7b13, 7alt, 7#5#9, 7b5b9 |
| Other | quartal, quintal |
| Param | Values | Example |
|---|---|---|
scale |
Scale name | dorian, blues, pentatonic |
root |
Root note | C, F#, Bb |
octave |
2-6 | 4 (default) |
Supported scales:
major/ionian, minor/aeolian, dorian, phrygian, lydian, mixolydian, locrian, harmonic-minor, melodic-minor, pentatonic, minor-pentatonic, blues, chromatic, whole-tone
| Param | Values | Example |
|---|---|---|
interval |
Interval name | tritone, perfect-5th |
root |
Root note | C, G |
Supported intervals:
unison, minor-2nd, major-2nd, minor-3rd, major-3rd, perfect-4th, tritone, perfect-5th, minor-6th, major-6th, minor-7th, major-7th, octave
| Category | Values |
|---|---|
| Kit | kick, 808, snare, clap, rim |
| Cymbals | hihat, openhat, crash |
| Shakers | shaker, tamb, maracas, guiro |
| Bells | cowbell, triangle, woodblock |
| Toms | tom, tomlow, conga, congalow, bongo, bongolow |
| Param | Values | BPM | Description |
|---|---|---|---|
pattern |
four-on-floor |
120 | House/Techno classic |
breakbeat |
100 | Syncopated funk | |
trap |
140 | Hi-hat rolls | |
rock |
110 | Classic rock | |
disco |
118 | Open hi-hat groove | |
dnb |
174 | Fast jungle | |
halftime |
140 | Slow, heavy feel |
| Param | Values | Description |
|---|---|---|
bars |
1-4 |
Number of bars (default: 1) |
bpm |
60-200 |
Tempo (default: 120) |
kick |
Beat numbers | Kick drum hits |
snare |
Beat numbers | Snare hits |
hihat |
Beat numbers or shorthand | Hi-hat hits |
openhat |
Beat numbers | Open hi-hat hits |
clap |
Beat numbers | Clap hits |
808 |
Beat numbers | 808 kick hits |
crash |
Beat numbers | Crash cymbal |
rim |
Beat numbers | Rim shot |
tom |
Beat numbers | Tom hit |
beats |
Compact format | All drums in one param |
Beat number format:
1= beat 1 (downbeat)1.5= 8th note after beat 11.25= first 16th note after beat 11.75= third 16th note after beat 12,4= beats 2 and 4
Shorthand values:
16ths= all 16th notes8ths= all 8th notes4ths= quarter notesoffbeat= offbeats (1.5, 2.5, etc.)backbeat= beats 2 and 4 of each bar
Compact format:
beats=kick:1,3|snare:2,4|hihat:8ths
| Param | Values | Description |
|---|---|---|
synth |
supersaw |
Detuned saws (trance/EDM) |
reese |
Detuned bass (DnB/dubstep) | |
acid303 |
TB-303 style (acid/techno) | |
bass808 |
TR-808 bass (hip-hop/trap) | |
sub |
Pure sine sub bass | |
wobble |
LFO modulated bass | |
fmbass |
FM synthesis bass | |
pluck |
Plucked string | |
pad |
Soft sustained | |
lead |
Square wave melody | |
organ |
Sustained organ tone | |
strings |
Slow attack string pad | |
brass |
Brass stab sound | |
bell |
FM bell/chime | |
note |
Note + octave | C3, E1, G4 |
| Param | Values | Description |
|---|---|---|
fx |
riser |
2-bar noise build |
sweep |
4-bar filter sweep | |
downlifter |
Falling noise sweep | |
impact |
Downbeat hit | |
boom |
Low sub impact |
| Param | Values | Description |
|---|---|---|
wave |
sine |
Pure tone, no harmonics |
square |
Hollow, odd harmonics | |
saw/sawtooth |
Bright, all harmonics | |
triangle |
Soft, odd harmonics | |
pulse |
Variable width square | |
note |
Note + octave | C4, A3 (default: C4) |
| Param | Values | Description |
|---|---|---|
filter |
lowpass |
Cuts high frequencies |
highpass |
Cuts low frequencies | |
bandpass |
Keeps band around cutoff | |
notch |
Removes band at cutoff | |
cutoff |
20-20000 |
Filter frequency in Hz |
res |
0-20 |
Resonance/Q factor |
| Param | Values | Description |
|---|---|---|
sweep |
Filter type | lowpass, highpass, etc. |
from |
Hz | Starting frequency |
to |
Hz | Ending frequency |
| Param | Values | Description |
|---|---|---|
envelope |
pluck |
Fast attack, no sustain |
pad |
Slow attack, long release | |
organ |
Instant attack, full sustain | |
strings |
Medium attack, sustain | |
brass |
Quick attack, medium sustain | |
perc |
Instant attack, quick decay | |
custom |
Use a/d/s/r params | |
a |
0.001-2 |
Attack time (seconds) |
d |
0.001-2 |
Decay time (seconds) |
s |
0-1 |
Sustain level |
r |
0.001-3 |
Release time (seconds) |
| Param | Values | Description |
|---|---|---|
lfo |
tremolo |
Volume modulation |
vibrato |
Pitch modulation | |
filter |
Filter cutoff mod | |
shape |
sine, square, triangle, saw |
LFO waveform |
rate |
0.1-20 |
Speed in Hz |
depth |
0-1 |
Modulation amount |
| Param | Values | Description |
|---|---|---|
harmonics |
Comma-separated | Amplitude of each harmonic |
Example: 1,0.5,0.33,0.25 |
Fundamental + overtones |
| Param | Values | Description |
|---|---|---|
drive |
0-1 |
Saturation/distortion amount (0.2=warm, 0.5=driven, 0.8=distorted) |
bitcrush |
4-16 |
Bit depth for lo-fi effect (4=crushed, 8=lo-fi, 12=subtle) |
unison |
1-9 |
Number of stacked voices (more=fuller) |
detune |
0-1 |
Detune spread between unison voices (0.3 typical) |
noise |
0-1 |
Noise layer amount (0.2=breathy, 0.5=textured, 0.8=noisy) |
wave |
Waveform type | Base wave for effects (default: sawtooth) |
note |
Note + octave | Pitch to play (default: C3) |
| Param | Values | Description |
|---|---|---|
reverb |
room, hall, plate, cathedral |
Reverb type (adds space/depth) |
delay |
8n, 4n, 16n, etc. |
Delay time (rhythmic notation) |
feedback |
0-0.9 |
Delay feedback amount |
chorus |
0-1 |
Chorus depth (0.3=subtle, 0.6=lush, 0.9=thick) |
phaser |
0.1-5 |
Phaser rate in Hz (0.3=slow, 1=medium, 3=fast) |
pan |
0-1 |
Stereo position (0=left, 0.5=center, 1=right) |
sidechain |
2-16 |
Number of pumping beats |
bpm |
60-200 |
Tempo for sidechain effect |
| Param | Values | Description |
|---|---|---|
fm |
Any value | Enable FM synthesis mode |
ratio |
0.5-16 |
Carrier:modulator frequency ratio |
mod |
0-20 |
Modulation index (higher=more harmonics) |
ringmod |
100-2000 |
Ring modulator frequency in Hz |
pwm |
0.1-0.9 |
Initial pulse width |
rate |
0.1-10 |
PWM modulation rate in Hz |
formant |
a, e, i, o, u |
Vowel formant synthesis |
| Param | Values | Description |
|---|---|---|
metronome |
40-240 |
BPM for metronome clicks |
beats |
1-32 |
Number of clicks to play |
accent |
2-8 |
Accent every N beats (default: 4) |
timesig |
4/4, 3/4, 6/8, 5/4, 7/8, etc. |
Time signature to demonstrate |
poly |
3:2, 4:3, 5:4, 5:3, 7:4 |
Polyrhythm to demonstrate |
swing |
0-1 |
Swing amount (0=straight, 0.5=medium, 0.8=heavy shuffle) |
bars |
1-4 |
Number of bars to play |
| Param | Values | Description |
|---|---|---|
chord + inversion |
1, 2, 3 |
Chord inversion (1st, 2nd, 3rd) |
voicelead |
Chord progression | Smooth voice leading demo (e.g., C,Am,F,G) |
circle |
fifths |
Circle of fifths progression |
start |
Note name | Starting key for circle (default: C) |
steps |
1-12 |
How many keys around the circle |
| Param | Values | Description |
|---|---|---|
arp |
up, down, updown, downup, random |
Arpeggio pattern |
chord |
Chord name | Chord to arpeggiate (e.g., Cm7) |
rate |
4, 8, 16, 32 |
Note rate (default: 8 = 8th notes) |
octaves |
1-3 |
Octave range for arpeggio |
| Param | Values | Description |
|---|---|---|
bassline |
acid, house, funk, disco |
Bassline pattern style |
root |
Note name | Root note (default: C) |
octave |
1-3 |
Bass octave (default: 2) |
| Param | Values | Description |
|---|---|---|
melody |
pentatonic, blues, jazz, trance |
Melodic phrase style |
root |
Note name | Starting note (default: C) |
octave |
3-5 |
Melody octave (default: 4) |
| Param | Values | Description |
|---|---|---|
genre |
lofi |
Lo-fi: bitcrushed triangle, slow BPM |
synthwave |
Synthwave: chorused saw, delay | |
techno |
Techno: aggressive saw, fast | |
ambient |
Ambient: slow sine, lots of reverb | |
dubstep |
Dubstep: driven saw, bitcrush | |
house |
House: chorused saw, 124 BPM | |
trap |
Trap: square wave, 140 BPM | |
dnb |
Drum & Bass: driven saw, 174 BPM |
| Param | Values | Shows |
|---|---|---|
compare |
waves |
4 waveforms side-by-side |
filters |
4 filter types | |
envelopes |
4 envelope presets | |
modes |
7 church modes (use with root=) |
| Param | Effect |
|---|---|
compact |
Minimal UI for embeds |
The **Cmaj7** chord [π](https://jornado.github.io/soundplayer/?chord=Cmaj7) has a dreamy quality.## Audio Examples
| Sound | Link |
|-------|------|
| Cmaj7 | [π Play](https://jornado.github.io/soundplayer/?chord=Cmaj7) |
| Dorian | [π Play](https://jornado.github.io/soundplayer/?scale=dorian&root=D) |
| 808 Kick | [π Play](https://jornado.github.io/soundplayer/?drum=808) |<iframe src="https://jornado.github.io/soundplayer/?chord=Dm7&compact" width="280" height="160" style="border:none;border-radius:12px;"></iframe>- Uses Tone.js for synthesis
- No server required β runs in browser
- Audio starts on tap/click (iOS requirement)
- Auto-detects iframe for compact mode
- All sounds are synthesized (no samples needed)
The codebase is organized into separate modules for maintainability:
chord-player/
βββ index.html # Minimal HTML, loads all modules
βββ styles.css # All CSS styles
βββ data.js # Chord types, scales, intervals, patterns, helpers
βββ instruments.js # Tone.js instrument definitions
βββ visualizations.js # Canvas drawing (waveforms, filters, envelopes)
βββ ui.js # DOM manipulation, piano, drum grid, animations
βββ playback.js # Basic playback functions (chords, drums, synths)
βββ effects.js # Advanced synthesis with effects chain
βββ router.js # URL parameter parsing and initialization
βββ README.md # Documentation
data.js (no deps)
instruments.js β Tone.js
visualizations.js (no deps)
ui.js β data.js
playback.js β instruments.js, ui.js, data.js
effects.js β instruments.js, ui.js, visualizations.js
router.js β all modules
- New chord type: Add to
CHORD_TYPESindata.js - New scale: Add to
SCALE_TYPESindata.js - New drum pattern: Add to
DRUM_PATTERNSindata.js - New time signature: Add to
TIME_SIGNATURESindata.js - New polyrhythm: Add to
POLYRHYTHMSindata.js - New arpeggio pattern: Add to
ARP_PATTERNSindata.js - New bassline: Add to
BASSLINE_PATTERNSindata.js - New melody phrase: Add to
MELODY_PHRASESindata.js - New genre preset: Add to
GENRE_PRESETSindata.js - New vowel formant: Add to
FORMANTSindata.js - New instrument: Add to
initAudio()ininstruments.js - New effect: Add to
effects.jsand handle inrouter.js - New URL parameter: Add case in
init()inrouter.js