合唱の各パート(Soprano / Alto / Tenor / Bass / Piano)が強調された練習用MP3を、MIDIファイルから自動生成するWebアプリケーションです。
- 🎵 MIDIアップロード — 総譜でもパート別でも対応
- 🎤 パート割り当て — トラックごとにパート名を設定
- 🎹 楽器選択 — クラリネット・ピアノ・ウッドブロックから選択
- 🏷️ パート名カスタマイズ — 出力ファイル名・進捗表示に反映
- 🔊 音量バランス — 主役パート以外の音量を自由に調整
- 📦 ZIP一括ダウンロード — 全パートのMP3をまとめてダウンロード
- ♻️ 再ダウンロード導線 — 完了後はワンクリックで同一ZIPを再取得
- 🌐 完全クライアントサイド — サーバー不要、GitHub Pagesで動作
| 領域 | 技術 |
|---|---|
| ビルド | Vite + TypeScript |
| MIDI解析 | @tonejs/midi |
| 音声合成 | Tone.js + OfflineAudioContext |
| 楽器音源 | gleitz/midi-js-soundfonts (フリー) |
| MP3エンコード | @breezystack/lamejs (Web Worker) |
| ZIP生成 | JSZip |
npm install
npm run dev # 開発サーバー
npm run build # プロダクションビルド
npm run test # テスト実行
npm run test:e2e # E2Eスモークテスト(自動でdev server起動)
npm run check:prod # 公開URLヘルスチェック.mid/.midiファイルをドラッグ&ドロップ(複数可)- トラックごとに Part / Instrument を確認
- 必要ならパート名と背景音量を調整
🎵 練習音源を生成を押して ZIP をダウンロード
ソースコード: MIT License
- 楽器音源サンプル: FluidR3_GM by Frank Wen (Creative Commons Attribution 3.0 License)
Vertere は、合唱練習に最適な音量バランスを自動計算して出力します。
出力対象のパート(主役)を 100% とし、それ以外の背景パート(他声部や伴奏)を指定した「主役以外の音量(デフォルト50%)」に自動で下げてミックスします。
複数トラックがある場合でも、カテゴリーごと(声部・ピアノ・打楽器)の総音量が指定パーセントになるように、トラック数で均等に割り算されて調整されます。
すべてのパートが含まれる「All」ファイルでは、声部・ピアノ・打楽器の各カテゴリーが 1 : 1 : 1 の均等なバランスになるように自動ミックスされます。
最終的なMP3を出力する直前に、波形全体を解析し全体の最大音量が適切なレベル(約 -1dBFS)になるように自動で音量を引き上げ(正規化し)ます。 これにより、伴奏の有無や背景音量の設定に関わらず、すべての生成ファイルが小さすぎず・割れない最適な音量で出力されます。