ランダムに生成されたシンセでMIDIからMP3への自動変換

私は自動的にMP3に変換する必要がある400,000のMIDIを持っています。私はMIDIが波形を定義していないことを知っています。また、MIDIをDAWにインポートしてシンセを個々のトラックにマッピングできるので、これを自動的に行うことも可能です。私はこれを行う方法を探してきました。各MIDIは、ランダムに生成されたシンセを各トラックにマッピングする必要があります。

私はSoundFontを見てきましたが、それらを作成する方法や、自動的に生成する方法やMIDIに自動的に適用する方法はわかりません。

誰でもMIDIトラックにマッピングできるシンセを作成するためのツールやSDK、またはプログラムでSoundFontを生成して適用する方法について知っていますか?もしそうでなければ、私にこれを可能にするツールに関連する低レベルのステップを誰かが理解していますか?私はこれを成功させるための道具を探しました。もし私が関わっている部分を理解すれば、これを行うための何かを書くことができたかもしれませんが、私は何を見上げるべきかも知らないでしょう。

助けていただければ幸いです。

ベストアンサー

OK、ここにはいくつかの質問がありますが、それぞれにはそれぞれ難しいものがあります。

MIDIからMP3への変換

Assuming you want to go MIDI -> SF2 -> MP3, the Timidity++ source code would
be a good starting point. Timidity++ “can play MIDI files by
converting them into PCM waveform data”. A recent fork of
Timidity++
can be found on Github.

MP3 に変換するには、追加のツールが必要です。 LAME はここでは良い出発点です。
TimidityとLAMEをつなげば、MIDIからSF2を経由してMP3に行くことができます。このスクリプトは、独自のアプリケーションを作成せずにこれを達成する方法を示しています。

for file in *.mid do
    timidity $file -Ow -o - | lame - $file.mp3
done

ランダム合成

ランダムに生成されたシンセに関係するあなたの質問のもう1つの要素は、上記のアプローチによって簡単に対処できません。質問を正しく理解していれば、次のことをしたいと思っています:

  • 合成のいくつかの部分が無作為化されているところでいくつかの音を合成する
  • 再生のために各MIDIチャンネルに割り当てるサウンドをランダムに選択する

SF2 is a
primarily sample-based format
, and would introduce unnecessary
complexity if you essentially want to play random synths via MIDI
and save the output to an audio file.

あなたの問題に対処するために、私はSF2の手順をスキップし、 Synthesis ToolKit
のようなオーディオ処理フレームワークを見てみることをお勧めしますSTK)。
STKはMIDIファイルとサウンド合成を読み込むことができます。オーディオバッファにLAMEを使用してMP3変換できます。

コメントする

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です