基本用法 — 单音与和弦

点击下方任意按钮,即可聆听 ChiptuneSynth 的实际效果。每个示例都展示了 API 的核心功能。

波形
1. 单音 — 不同的波形
const synth = new ChiptuneSynth();
await synth.init();

// Square wave on Lead (track 0)
synth.playNote(440, 0, 0.5);

// Triangle on Bass (track 1)
synth.playNoteByName('C', 3, 1, 0.5);

// Sawtooth on FX (track 3)
synth.tracks[3].type = 'sawtooth';
synth.playNote(330, 3, 0.5);
2. 和弦 — 播放多条音轨
// C major across 3 tracks simultaneously
synth.playNoteByName('C', 4, 0, 1.0);  // Root
synth.playNoteByName('E', 4, 1, 1.0);  // Third
synth.playNoteByName('G', 4, 3, 1.0);  // Fifth
3. 齐奏 — 厚实且微调的声部
// 8-voice super-saw with stereo spread
synth.tracks[0].type = 'sawtooth';
synth.tracks[0].unisonVoices = 8;
synth.tracks[0].unisonDetune = 25;
synth.tracks[0].unisonSpread = 80;
synth.envelopes[0] = { attack: 0.2, decay: 0.3, sustain: 0.7, release: 1.0 };

synth.playNoteByName('E', 4, 0, 2.0);
4. LFO — 颤音与颤音
// LFO1: Vibrato (pitch modulation)
synth.vibrato[0] = { rate: 5, depth: 12 };

// LFO2: Filter modulation
synth.tracks[0].filterEnabled = true;
synth.tracks[0].filterCutoff = 1000;
synth.tracks[0].lfoFilterRate = 3;
synth.tracks[0].lfoFilterDepth = 2000;

// LFO3: Tremolo (amplitude modulation)
synth.tracks[0].tremoloRate = 6;
synth.tracks[0].tremoloDepth = 50;
8Binami 提供支持