Programming Field

Easy SMFtoWAV: SMF→WAV簡易変換

SMFファイル(MIDIファイル)を単純な波形で再生したものをWAVEファイルに変換します。

※ お使いのブラウザーでは利用できません。(Microsoft Edge、または最新のMozilla Firefox / Google Chromeで動作します。)

(以前のバージョン → Easy SMFtoWAV ver. 0.9.9)

メイン画面

SMFファイル: (not loaded)
(停止中) 初期化中... 準備中... 0% 再生しています 0:00
ボリューム: (0.50)
出力設定: 経過時点から 経過時点まで
その他設定
[1/2] SMFデータから波形を生成中… (% 生成完了 (長さ: )) キャンセル [2/2] エクスポートの準備中… (長さ: 0:00, % 完了) エクスポートの準備ができました: 開く キャンセル (長さ: 0:00)
※ 保存するには「開く」リンクに対して「リンク先を保存」する必要がある場合があります。
※ 生成したデータは保存してからでないと開くことができない場合があります。

使い方

  • 「SMFファイル」に変換したいSMFファイル(MIDIファイル)を指定します。横の「開く」ボタンでお使いのコンピューター/ストレージに保存されているファイルを選択します。
  • 必要に応じでサウンドフォントを指定します。「サウンドフォント設定」から設定を行います。
    • サウンドフォントを指定しない場合は矩形波で波形を生成して変換します。またこの際、リズムパートはノイズ音が利用されます。
    • サウンドフォントを指定した場合はファイル内の音色を用いて波形を生成して変換します。サウンドフォントの内容によっては音飛びが発生する可能性があります(変換時は処理速度に影響があります)。
    • サウンドフォント設定は本サイト内の他のページと共通で使用されます。
  • 「ループポイント設定」を行うと、データ内にループポイントを埋め込みます。
    • 「小節」はSMFファイルにおける小節(の先頭)、「秒」は実時間を表します。また、「経過時点」はその長さが経過した直後を表し、「2小節経過時点」であれば先頭から2小節経過したタイミング(3小節目の先頭)を表します。
    • 「経過時点まで」のフィールドを「-1」などの負の数にするとデータの末尾をループの終了点に設定します。
    • ループポイントは再生ソフトウェアが対応している場合にのみ使用されます。
  • 「詳細設定」では変換時のサンプルレートの変更などが可能です。
    • 「詳細設定」の「ループ再生」をチェックすると、曲データの指定区間を指定回数だけループさせることができます。波形生成に対しても、繰り返し後の曲が波形として生成されます。
      • 「ループ開始位置」「ループ終了位置」には曲の小節番号(0が最初)を指定します。空白にした場合はそれぞれ先頭・末尾として扱います。
      • 「ループ回数」は指定区間の末尾に到達したときに何回区間の先頭に戻すかを指定します。再生時のみ、0を指定すると無限ループ再生します。
      • 「ループ終了時のフェードアウト時間」を指定すると、指定回数ループしたらもう1回ループしつつフェードアウトします。そのフェードアウトにかける時間を秒数で指定します。未指定の場合は4秒になります。
      • 「ループ終了時のフェードアウト開始時間」は、フェードアウトする場合にフェードアウトを何秒遅らすかを指定します。未指定の場合は0秒(遅らせない)になります。

その他

  • 再生中・変換中はお使いのデバイスの負荷が高くなる可能性があります。
    • 再生前・変換前に「出力データ生成間隔」を大きく設定することで負荷が下がる可能性がありますが、再生時に音飛びしたり、変換時に余計に時間がかかったりする場合があります。
  • 「プリレンダリング秒数」を大きくすると再生中の音飛びを軽減/抑制することができますが、メモリを消費するため負荷が高くなる可能性があります。
  • 「再生時にAudioWorkletを使用」は対応しているブラウザーでのみ利用できますが、環境によっては音飛びする可能性があります。
  • 変換したデータはSMFファイルの休符を含めた長さで切り落とされるため、末尾の余韻がなくなる場合があります。
  • 変換のデータ生成に Blob などを利用しています。
  • このページは変換・再生処理に「js-synthesizer」および「js-sequencer」「libfluidsynth」(Emscripten 版)を使用しています。
  • このページで作成されたデータに関しては、本サイト(および管理人)は一切関与いたしません。このページ自体は無償・商用問わず自由に利用していただけますが、データの生成に利用するデータ(SMFファイルやサウンドフォント)に権利や利用制限等がある場合は、それらの利用等に関する許諾を得るなどの必要がある場合があります。
  • 既定のサウンドフォントである「Simple.sf2」については管理人が作成していますが、完全フリーの素材とし、利用・改変・再配布時の許諾や権利表記および作者名表記等は不要とします(本サイト外で無償・商用問わず自由に利用していただいて問題ありません)。ただし、その利用(改変や再配布等も含む)については一切の責任を負いません。

更新履歴

  • 2024/12/31 [ver 0.13.0] - SMFの再生・波形生成を指定位置で指定回数だけループして再生・生成する設定を追加
  • 2019/01/06 [ver 0.12.0] - 内部エンジンの再更新、サウンドフォントを同時に複数利用できるように改良・本サイト内で共通化、MIDIチャンネル16をドラムパート扱いとできる設定を追加
  • 2018/12/01 [ver 0.11.2] - 内部エンジンの更新、生成データおよび「Simple.sf2」に関する利用等について記述を追加
  • 2018/11/14 [ver 0.11.1] - 再生データがプリレンダリング時間より短い場合に再生されない問題を修正
  • 2018/11/13 [ver 0.11.0] - 内部処理のメイン部分をWeb Workerに移動、プリレンダリングによるパフォーマンス調整などの追加
  • 2018/11/03 [ver 0.10.1] - 内部エンジンを js-synthesizerlibfluidsynth (Emscripten 版) の利用に変更
  • 2017/10/10 [ver 0.9.9] - ボリューム設定を追加、解析エンジンの更新(ピッチベンド等が正しく動作していなかったのを修正)
  • 2017/10/05 [ver 0.9.8] - ループポイントの設定に対応、AIFF形式の出力に誤りがあったのを修正
  • 2017/10/04 [ver 0.9.7] - 各種ライブラリ修正によって動作しなくなっていたのを修正、出力データの長さをSMFファイルから計算するように修正、OfflineAudioContext.suspend が使用できないブラウザー用に処理を修正
  • 2017/02/26 [ver 0.9.6] - 解析エンジンの更新(MIDI Format 0 タイプのファイルが正しく読み込めていなかったのを修正)
  • 2017/02/25 [ver 0.9.5] - 矩形波利用時の減衰とドラムのエミュレート機能の追加、解析エンジンの調整
  • 2017/02/16 [ver 0.9.4] - プログレス表示や並行処理の修正
  • 2017/02/14 [ver 0.9.3] - 解析エンジンの更新(ホールドに対応、Attack/Decay/Sustain/Releaseの計算方法の修正)
  • 2017/02/14 [ver 0.9.2] - AIFF形式の出力に対応
  • 2017/02/14 [ver 0.9.1] - 解析エンジンの更新(ピッチベンドに対応)
  • 2017/02/12 [ver 0.9] - 初期版