2009-07-26 4 views

答えて

8

あなたは何らかの形でオープンソースである、Timidityとのインタフェースに試みることができる:

登録TiMidity ++は、ソフトウェア・シンセサイザーです。 MIDIファイルをPCM波形データに変換して再生することができます。それにデジタル楽器のデータファイルと一緒にMIDIデータを与え、それをリアルタイムで合成して再生します。サウンドを再生するだけでなく、生成された波形をさまざまなオーディオファイル形式でハードディスクに保存することもできます。

FluidSynthは、同じような文脈で、より最近更新のオープンソースプロジェクトである:

FluidSynthはSoundFontの2仕様に基づいてリアルタイムソフトウェアシンセサイザーです。

this listのサイトからいくつかの無料のSoundFonts(これらのシンセサイザでMIDIファイルをレンダリングするために使用される実際のPCMデータ)をダウンロードできます。

+0

ニースのリンク、Jacob。 –

+0

ありがとう、それが戻って方法を発見した。このリストのサウンドフォントでうまくいきます:http://en.wikipedia.org/wiki/SoundFont#Free_SoundFont_downloads – Jacob

+0

ヤコブ、これらのリンクの素晴らしい作品です。彼らが役に立つと確信しています。私は特にTiMidity ++の機能が好きです: 'ネットワーク経由でリモートMIDIファイルを再生する'あなたはどこに.exeファイルがあるのか​​知っていますか?私はいつもリンカのC++アプリケーションを構成するときに困惑します(私は素晴らしいC++プログラマーではありません) – vondip

8

MIDI files音だけでなく、音符とコントローラーの情報だけを含んでいます。 MIDIファイルからサウンドを取得するには、音楽シンセサイザーまたはサンプラーを介してファイルを渡す必要があります。これにより、ノートとコントローラーの情報が実際のサウンドに変換されます。

これは、特定のMIDIファイルに特定のサウンドがないことを実際に意味します。 MIDIファイルをオーディオに変換した結果のサウンドは、シンセサイザまたはサンプルライブラリの品質、および変換を実行するために選択されたサウンドによって異なります。

多くのサウンドカードには、MIDIファイルからサウンドを生成する機能があります。多くのMIDIファイルはGeneral MIDI specificationという標準に従っているので、これを行うことができます。 General MIDI Specificationは、特定の楽器の割り当てをマッピングするための標準化された方法を提供します。 MIDIファイルがこの規格に準拠している場合は、General MIDIサウンドジェネレーターで再生し、スネアドラムがスネアドラムのように鳴り、トランペットに似ていないことを期待してください。

Cakewalkのような洗練された音楽制作パッケージをお持ちの場合は、MIDIファイルを読み込んでオンボードサウンドライブラリを使用してサウンドファイルをレンダリングします。リアルタイム(つまり、サウンドカードを介してサウンドを再生し、出力をキャプチャする必要はありません)。

私は何を言おうとしているのでしょうか、これには多くの可動部分があります。これを行うためのコードやクラスモジュールはありません。

+0

私は銀色の上にmidiファイルを再生できるようにしたい、私はあまりにも多くのexpactingですか? – vondip

+0

私はあなたがシルバーライトでそれを再生するためにWAVにMIDIを変換する必要はないと思う。 SilverlightがネイティブにMIDIファイルを処理できない場合は、WindowsのマルチメディアAPIを使用してMIDIファイルを再生できます。 – MusiGenesis

+0

どうすればいいですか? Silverlightの環境が私の​​アクセスを妨げています。 WindowsマルチメディアAPIにcom参照を追加するにはどうすればよいですか? – vondip

0

これを行うために購入できるプログラムがいくつかあります(google "WAVに変換する")が、これを行う一般公開されている.Netコードを見たことはありません(これらのプログラム.NETで書かれていますが、ソースコードは利用できません)。

私は市販のMIDI-to-WAVコンバータを使用しているオンラインフレンドを持っていますが、それは.Netにはないため、オープンソースではありません。 Robert Harveyが言及したように、これは基本的には独自のソフトウェアシンセサイザー(自分の心の後の仕事)を書くことを基本とするため、これは単純な作業ではありません。

関連する問題