// FM synthesis — DX7-style frequency modulation. // Run: node examples/fm-synthesis.js 440 2 5 3s // Run: node examples/fm-synthesis.js carrier=440 ratio=2 index=5 -d 3s // Keys: ←/→ ±0.5 ratio · ↑/↓ ±1 index · q quit import { AudioContext } from 'web-audio-api' import { init } from './graphs/fm-synthesis.js' import { args, num, sec, keys, status, clearLine, pausedTag, help } from './utils.js' help({ description: 'explore DX7-style frequency modulation synthesis', usage: ['', '[carrier] [ratio] [index] [duration]', 'carrier=440 ratio=2 index=5 dur=3s'], options: [ ['carrier=', 'carrier frequency (default: 440)'], ['ratio=', 'modulator/carrier frequency ratio (default: 2)'], ['index=', 'modulation index (default: 5)'], ['-d, --duration