Skip to content

Latest commit

 

History

20 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Vertere - MIDI to MP3 Converter — 合唱練習用音源自動生成ツール

合唱の各パート(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ヘルスチェック

使い方

  1. .mid / .midi ファイルをドラッグ&ドロップ(複数可)
  2. トラックごとに Part / Instrument を確認
  3. 必要ならパート名と背景音量を調整
  4. 🎵 練習音源を生成 を押して ZIP をダウンロード

ライセンス

ソースコード: MIT License

サードパーティリソース

  • 楽器音源サンプル: FluidR3_GM by Frank Wen (Creative Commons Attribution 3.0 License)

音量とミックスの仕様

Vertere は、合唱練習に最適な音量バランスを自動計算して出力します。

パート別音源のバランス

出力対象のパート(主役)を 100% とし、それ以外の背景パート(他声部や伴奏)を指定した「主役以外の音量(デフォルト50%)」に自動で下げてミックスします。 複数トラックがある場合でも、カテゴリーごと(声部・ピアノ・打楽器)の総音量が指定パーセントになるように、トラック数で均等に割り算されて調整されます。

全体音源(All)のバランス

すべてのパートが含まれる「All」ファイルでは、声部・ピアノ・打楽器の各カテゴリーが 1 : 1 : 1 の均等なバランスになるように自動ミックスされます。

ピーク正規化(ノーマライズ)

最終的なMP3を出力する直前に、波形全体を解析し全体の最大音量が適切なレベル(約 -1dBFS)になるように自動で音量を引き上げ(正規化し)ます。 これにより、伴奏の有無や背景音量の設定に関わらず、すべての生成ファイルが小さすぎず・割れない最適な音量で出力されます。

Releases

Packages

Contributors

Languages