見出し画像

midiファイルをwavファイルに変換するサービスを作りました

初稿 2022/09/19

概要

midiファイルをオーディオファイルに変換するツールは沢山ありますが、ファイル内のトラック(楽器)ごとに変換して保存できるwebサービスが見当たりませんでした。そこで、midiファイルのトラックごとにwindowsのデフォルト音源より迫力のある音でオーディオファイルに変換できるwebサービスを作りました。このサービスは以下のurlから利用できます。
https://app.midi2wav.e4net.site/


  • 利用にあたっては、

    • 現段階では無料で利用可能です

    • アップロードされたmidiファイルは保存していません

    • アクセス数を見る目的でGoogle Analyticsを入れています




背景


近年、筆者は次のような状況にありました

  • midiエディタでたまに音楽を作っているが、CubaseやCakewalkのようなDAWを使うほどではない

  • windowsのデフォルト音源(Microsoft GS Wavetable Synth)より迫力のある音源を使いたい

  • midiファイルのトラックごとにオーディオ化して、波形データとして細かい編集を加えたい


特に課題となるのは最後の2点です。midiファイルを、

1. Microsoft GS Wavetable Synthより迫力のある音に変換できる
2. トラックごとにオーディオ化できる

これを解決するサービスが見当たらないようなので、自分の課題を解決するために自作することにしました。


先行手法

midiをオーディオに変換できるツールは山ほどあります。webサービスだけ一部を紹介します。

Online Converter

  • ファイル変換サイトOnlineConverter.com のmidi変換機能

  • 最大ファイルサイズは入力200MB, 出力1GB, 実行時間制限は30分

  • すべてのトラックが結合されて1ファイルとして出力される


ZAMZAR

  • ファイル変換サイトZAMZARのmidi変換機能

  • アカウントなしでの最大ファイルサイズは入力50MB, 上限は24hに2ファイルまで。有料プランあり。

  • すべてのトラックが結合されて1ファイルとして出力される


FreeConvert

  • ファイル変換サイトFreeConvertのmidi変換機能

  • コーデック, フェードイン, フェードアウト, 変換対象時間 等の設定が可能

  • Web APIもある(無料プランではweb版とAPIあわせて変換25回/日まで)

  • すべてのトラックが結合されて1ファイルとして出力される


bear audio

  • メディアファイル変換サービスbear audioのmidi変換機能

  • 設定でwavやogg等に変換できる。サンプリングレート等の設定も可能

  • 最大ファイルサイズは入力50MB, 無料版は回数制限あり

  • すべてのトラックが結合されて1ファイルとして出力される


方法

サービスのコアとなるmidiファイルの変換には pretty_midi (Colin Raffel and Daniel P. W. Ellis, 2014)というツールを使っています。

課題の解決

要件となる2点を再掲します。midiファイルを、

1. Microsoft GS Wavetable Synthより迫力のある音に変換できる
2. トラックごとにオーディオ化できる

1点目はGeneralUser GS 1.471 (S. Christian Collins, 2017)を使うことで解決しました。迫力があるかどうかは主観ですが、色々な記事で紹介されており認知のある音源だと思います。

2点目はpretty_midiが提供する機能でmidiファイルをトラックごとに変換できるため、それで解決しました。

細かい内容は後でQiita等に書くかもしれません。

使い方

  • midiファイルをアップロードすると、ファイル内の各トラックごとにwavファイルを生成します。生成したwavファイルを1つの.zipにまとめてダウンロードできます。

  • 現時点ではPCのみ想定しています(スマホで動作するかはわかりません)


midiファイルをドラッグ&ドロップするか、ファイル選択ボタンで選択
選択できたら送信ボタンを押す
変換中にキャンセルボタンを押すと変換が中止される。この後ダウンロードボタンを押すと、それまでに変換できたトラックだけダウンロードできる
変換終了後、ダウンロードボタンが押せるようになる。押下すると各トラックのwavファイルが入った.zipファイルがダウンロードされる


制限など


  • 利用について

    • 現段階では無料で利用可能です

    • アップロードされたmidiファイルは保存していません

    • アクセス数を見る目的でGoogle Analyticsを入れています

  • 性能について

    • 変換中に15分経過すると自動で中止されます

    • 1MB以上のファイルはアップロードできません

    • 変換後のwavファイルのサンプリング周波数は44,100Hzです

    • 現段階では変換に結構時間がかかります。midiファイルの作り込みにもよりますが、30KB(3分, 14トラック)のmidiファイルで3分くらいかかります。


まだ色々バグがあると思います。もしバグを発見された際はご報告いただけると幸いです。

参考記事



この記事が気に入ったらサポートをしてみませんか?