2010年01月22日

DominoとTiMidity++をつないでサウンドフォントを使う

■前置き■
・一通り書き終えました(2010/6/4、進捗率100%)。
・最後の項目は別の記事に書きました。
http://hanihoni.seesaa.net/article/152083573.html
・Windows XPでの話です。
・いくつものサイトさんの紹介及び、引用をさせた頂いています。問題がありましたらお手数ですがコメントにてお知らせ下さい。対処いたします。

パソコン内臓のMSGS(Microsoft GS Wavetable SW Synth)ではなくて、もっといい音源を使ってみたいなと思うようになった時に、フリーでいくなら、多分「YAMAHAのS-YXG50」、「VSTプラグイン」、「サウンドフォント」の3つが選択肢になると思います。
私は、DominoとTiMidity++をつないでサウンドフォントを使おうと思って導入しました。
その際に苦労した点と、どの解説サイトさんを参考にしたかの紹介をしようと思います。また、それらをもとに、「なぜそように設定すればよいのか、何を理解すれば導入・設定の方法がわかるようになるか」ということも分かる範囲・想像できる範囲でメモしておこうと思います(私としてはこちらが主目的です)。
間違っていることもあるかと思います。


■本題■
記事が長いので、概要を書きます。

*************************概要*************************

●TiMidity++自体について
・TiMidity++のバージョンについての説明
・MIDIプレーヤ、MIDIドライバとは何か
・TiMidity++ドライバとtimwg32.exeの違い

●サウンドフォントの用意・cfgファイルの用意について
・サウンドフォント紹介サイトの紹介
・cfgファイルとは何か
・cfgファイル作成法の解説サイトの紹介
----------------------------------
ここまでクリア出来れば、TiMidity++から、自分が用意したサウンドフォントの音をとりあえず鳴らせらるようになる。
----------------------------------

●twsyng.exeと仮想MIDIケーブルの利用について
・twsyng.exe+仮想MIDIケーブルの必要性
・twsyng.exeとは何か
・仮想MIDIケーブルとは何か
・MidiYokeとtwsyng.exeのインストール・操作・設定方法

----------------------------------
ここまでクリア出来れば、DominoとTiMidity++をつないでサウンドフォントの音をとりあえず鳴らせらるようになる。
----------------------------------

●Dominoの定義ファイル
・定義ファイルとは何か
・サウンドフォントに合わせた定義ファイルの作成法

●サウンドフォントをもっと使いこなすために
・複数のサウンドフォントを組み合わせて使う方法
(別記事に書きました)http://hanihoni.seesaa.net/article/152083573.html

******************************************************

ここから個別に説明していきます。
●TiMidity++自体について
・TiMidity++のバージョンについての説明

まず、バージョンがいくつもある件です。TiMidity++だけを語り尽くすスレ@wiki(http://www15.atwiki.jp/timidity/のTiMidityバイナリのページによると、少なくとも9種類はあるようです。他の解説サイトさんだと、
・TiMidity本家(出雲氏バージョン)
 http://www.onicos.com/staff/iz/timidity/index-jp.html
・本家(SourceForge)
 http://timidity.sourceforge.net/index.html.ja
・TiMidity++ windows synthesizer(TWSYNTH)や最新のWin32版
 http://sourceforge.jp/projects/twsynth/releases/#16599
・Saito氏バージョン
 http://timidity.s11.xrea.com/
の4つのどれかで説明されているものが多いようです。
インストールの大まかな流れはどのバージョンでも大体同じようです。ただし、インストールした後のtimidityフォルダ(インストールすると自動で作られるフォルダ、Cドライブ直下に作られることが多い)の中身が違います。とりあえず音を鳴らすことを目的とした場合、自分でいじる必要があるのはサウンドフォントファイル(あるいはパッチファイル)とcfgファイルです。これらの置き場所の違いには注意が必要ですが、その他の違いは無視して構わないと思います。私はどれがよいかはよくわかりませんが、更新日時が最も新しいということでTiMidity++ windows synthesizer(TWSYNTH)や最新のWin32版のサイトから「TiMidity-CVS081206_setup_JPN.exe」を利用しました。

今回はhttp://twsynth.sourceforge.jp/を参考にさせて頂いて、これに沿ってインストールして設定するものとします。インストールに関してはこのサイトの2-(3)WindowsがTiMidityを使うように設定する (2000/XP)あたりまでです。

・MIDIプレーヤ、MIDIドライバとは何か
TiMidity++をインストールすると、大きく分けて2種類の方法でサウンドフォントを鳴らすことが出来るようになります。それはTiMidity++をMIDIドライバとして用いる方法と、TiMidity++をMIDIプレーヤとして用いる方法の2種類です。
この違いを理解するために、いったんTiMidity++から離れて、一般的なMIDI音源とMIDIプレーヤの関係と、MIDIドライバとは何かということについてを書きます。

まず、一般的なMIDI音源とMIDIプレーヤの関係について説明します
イメージしやすくする為の準備として、MIDIファイルの鳴る仕組みを実際の楽器(例えばピアノ)の演奏に例えておきます。
MIDIファイルは楽譜に、MIDIプレーヤはピアニストに、MIDI音源はピアノに大体対応します。
同じ楽譜を弾く場合でも弾くピアノが違えば音が違うように、同じMIDIファイルを再生する場合でもMIDI音源が変われば音色が変わります。
ただし、ピアノの演奏についてはピアニストによって、演奏は異なり、さらに同じピアニストでも毎回違う演奏になりますが、MIDIプレーヤはソフトによる違いや再生するごとに違いが出ることはありません(多分)。

この例えを使って「MIDIプレーヤでMIDIファイルを再生して音を鳴らす」ということを説明してみましょう。
MIDIプレーヤは、例としてwindows media playerとします。
windows media playerはMIDIファイル(=楽譜)を読むことはできます。ただし、windows media player自体にはMIDI音源(=ピアノ)がありません。なので、本来、MIDIファイルとwindows media playerだけでは音をならすことができません。
しかし実際にMIDIファイルを再生してみると音が鳴ります。なぜか。
実は、windows media player自体にはMIDI音源はありませんが、windows XPというOS上にMIDI音源が用意されているからです。windows media playerはOS上に用意されているMIDI音源を借りてきて音を鳴らしています。

一般的なMIDI音源とMIDIプレーヤの関係については以上です。

続いてMIDIドライバとは何かということについて説明します。
音源をどこから借りてくるかという話です。どこから音源を借りることができるかによって、MIDIプレーヤは2種類に分けられます。
一つ目はMIDIの再生に優れたプレーヤです。これらは、どこにあるどのMIDI音源を借りてくるかということを自由に決めることができます。MIDIシーケンサ等も同様です。
二つめはMIDIの再生に優れていないプレーヤです。これらは、どこにあるどのMIDI音源を借りてくるかということを自由に決めることができません。
ではどうするかというと、このようなプレーヤ向けに、MIDIファイルを再生するときに標準で使うMIDI音源がOSによって予め、用意され決められています。どこにあるどのMIDI音源を借りてくるかということを自由に決めることができないプレーヤは全てOSによって用意された音源を借りることになります。windows media playerはその例です。他にもゲームで使われるMIDIファイルの再生や、ウェブサイトで公開されているMIDIファイルをブラウザでの再生する場合なども、OSによって決められたものになる場合が多いです。
この、「MIDIファイルを再生するときに標準で使うMIDI音源としてOSによって決められているMIDI音源」のことをMIDIドライバといいます(多分)。

MIDIドライバとしてどのMIDI音源を用いるかはコントロールパネルで指定できます。
コントロールパネルから「サウンドとオーディオデバイス」を開き、オーディオタブを選択すると、図のように表示されると思います。「音の再生」、「録音」、「MIDI音楽の再生」の3つについて既定のデバイスが表示されています。「MIDI音楽の再生」で選択されているものが、OS上に用意されている音源(=MIDIドライバ)です。MIDIドライバとして用いることができる音源が一つしかなければ変更はできません。

MIDIドライバについては以上です。

・TiMidity++ドライバとtimwg32.exeの違い
これをふまえてTiMidity++の説明に戻ります。TiMidity++をMIDIドライバとして用いる方法と、Timidity++をMIDIプレーヤとして用いる方法の2種類があると書きました。これは、ドライバとして使うことがきるソフト(TiMidity++ Driver)と、MIDIプレーヤとして使うことがるソフト(timw32g.exe)が2つインストールされているという意味です。(正確にはこのほかにもtwsyng.exeというソフト等もインストールされています。後に使いますが現時点では説明略)
TiMidity++のMIDIプレーヤ(timw32g.exe)は音源としてサウンドフォントと呼ばれるものを使うことができるプレーヤです。windows media playerのようにOSによって用意されたものを借りる必要がありません。ただし、このMIDIプレーヤは少し特殊で、音源としてサウンドフォントであれば自由に指定して用いることができますが、サウンドフォント以外の他の音源(SC-88proとかMU-2000とか)を自由に使うことはできません。


さて、MIDIドライバとMIDIプレーヤの違いを実感するために、いくつかの方法でMIDIファイルを再生して確かめてみましょう。

コントロールパネルから「サウンドとオーディオデバイス」を開き、オーディオタブを選択します。「MIDI音楽の再生」で選択されているものがOSによって用意され決められた音源(=MIDIドライバ)であることは先ほど述べました。ここでは、「Microsoft GS Wavetable SW Synth(MSGSと略す)」か「TiMidity++ドライバ」が選択肢としてあると思います。

1.まずはOSによって用意され決められた音源(=MIDIドライバ)として、MSGSを選択してOKを押して下さい。
a.その状態でMIDIファイルをwindows media playerで再生してみてください。windows media playerは音源としてOSによって用意され決められた音源(=MIDIドライバ)しか使えません。なので音色はMSGSの音色で再生されると思います。

b.その状態でMIDIファイルをTiMidity++のMIDIプレーヤであるtimw32.exeで再生してみてください。(timw32.exeはデフォルトのインストールだとc:¥timidityにあるはずです)先ほど書いた通り、timw32.exeはwindows media playerとは違って、サウンドフォントファイルと呼ばれる音源を用いることができます。なので、この場合はMSGSの音色ではなく、指定されたサウンドフォントの音色で再生されるはずです(インストールの際に自動で指定されている)。

2.次にOSによって用意され決められた音源(=MIDIドライバ)として、TiMdity++のMIDIドライバ(TiMidity++ドライバ)を選択してOKを押して下さい。
c.その状態でMIDIファイルをwindows media playerで再生してみてください。windows media playerは音源としてOSによって用意され決められた音源(=MIDIドライバ)しか使えません。今回はTiMidity++ドライバが選択されていますので、TiMidity++ドライバで指定されたサウンドフォントの音色で再生されるはずです(インストールの際に自動で指定されている)。

d.その状態でMIDIファイルをTiMidity++のMIDIプレーヤであるtimw32.exeで再生してみてください。この場合はb.と全く同じ理由で、b.と同じ音色で再生されるはずです。

a〜dによって、windows media playerでは、再生される音色はOSによって用意され決められた音源(=MIDIドライバ)に左右されるのに対し、timw32.exeでは、再生される音色はOSによって用意され決められた音源(=MIDIドライバ)に左右されないということが分かります。
MIDIドライバとしてのTiMidity++の働きと、MIDIプレーヤとしてのTiMidity++の働きの違いが実感できたでしょうか。


今回紹介させて頂いたサイトに限らず、解説を読んでいる時に、MIDIドライバについてのものなのか、MIDIプレーヤについてのものなのかということを意識すると、より理解しやすくなると思います。
例えば
http://twsynth.sourceforge.jp/
1-(1)TiMidityのインストール方法のページhttp://twsynth.sourceforge.jp/install.html
「3.立ち上がったtimw32g.exeにお手持ちのmidiファイルをドラッグ&ドロップして音がでれば成功です。」とあるのはTiMidity++のMIDIプレーヤがきちんと動作するかということを確認しています。

2-(3)WindowsがTiMidityを使うように設定する (2000/XP)のページhttp://twsynth.sourceforge.jp/use_windows.htmlではTiMidity++のMIDIドライバをOSの標準のMIDI音源として指定する方法が説明されています。


●サウンドフォントの用意・cfgファイルの用意について
・サウンドフォント紹介サイトの紹介

TiMidity++のインストール、サウンドフォントファイルの用意についてはそれほど難しくないと思います。

サウンドフォントを紹介しているサイトは検索すればたくさん見つかりますが、参考までに2つ紹介します。
・外出先で音楽作成
http://trade2.cocolog-nifty.com/sound/sound.html

・Todays Sound Font
http://musf.ifdef.jp/sf/Todays_Sound_Font.html

・cfgファイルとは何か
続いてcfgファイルについて説明します。
用意したサウンドフォントの音色を使う為には、cfgファイル(コンフィグファイル)というものも合わせて用意する必要があります。cfgファイルとは、大雑把にいえばTiMidity++でどのサウンドフォントファイルを使うかということを指定するためのものです。次にもう少し詳しく述べます。
TiMidity++を使えば音色を換えることができると説明しました。音色自体はTiMidity++本体ではなくサウンドフォントに記録されています。TiMidity++はサウンドフォントを読み込んでそのサウンドフォントに記録されている音色を鳴らしています。なのでTiMidity++を使うときにはどのサウンドフォントを読み込むかを指定する必要があります。(TiMidity++本体とあるのはMIDIドライバ(=TiMidity++ドライバ)もしくはMIDIプレーヤ(=timw32g.exe)のことを意味します。これから述べる関係はTiMidity++のMIDIドライバとMIDIプレーヤのどちらにも当てはまります)
この指定の方法が少し複雑です。例えば、文書作成アプリケーションソフトのwordを使って、ワードファイルを読み込む時と比較して説明します。wordを使って、ワードファイルを読み込む時は、「ファイル-開く」として、マウス操作をするだけで直接目的のファイルを読み込むことができます。
しかし、TiMidity++はwordの「ファイル-開く」というように、直接読み込むサウンドフォントを指定することができません。TiMidity++では、「どのサウンドフォントを読み込むか」という情報はTiMidity++本体ファイルとは別の、専用ファイルに書くことが決まりになっています。それがcfgファイルです。TiMidity++は音を鳴らす際に、まずcfgファイルを読み込んで「どのサウンドフォントを使うか」という情報を受け取り、そこに指定されたサウンドフォントの音色を読み込んでいるのです。
以上がcfgファイルがどんなものかという説明です。cfgファイルは中身がそれほど難しいものではないので、慣れてくれば自分で(あるいはツールを使って)好きなように書きかえることが可能になります。(cfgファイルには他にも役割があるようですが、私はあまり詳しくは知りません)

1つ大事な注意点があります。それはTiMidity++のMIDIドライバ(=TiMidity++ドライバ)とMIDIプレーヤ(=timw32g.exe)はそれぞれ別々にcfgファイルが必要という点です。自分がMIDIドライバ用のcfgファイルを用意しているのか、MIDIプレーヤ用のcfgファイルを用意しているのか注意が必要です。また、他の解説サイトさんでcfgファイルの作り方の説明を読むときも、MIDIドライバ用のcfgファイルの作り方を説明しているのか、MIDIプレーヤ用のcfgファイルの作り方を説明しているのか注意が必要です(共通する部分は多いですが)。ちなみにTiMidity++ドライバとtimw32g.exeで別々のcfgファイルが必要ということは、それぞれ別のサウンドフォントを読み込こむようにすることも可能ということでもあります。

cfgファイルに関して注意する点がもういくつかあります。こちらはさほど重要ではないです。
まず1点目。cfgファイルは一つだけではなくて複数用意しておくことができるという点です。
続いて2点目、先ほどTiMidity++はどのサウンドフォントを読み込むかを直接指定することはできないと説明しました。しかしそのかわりTiMidity++はどのcfgファイルを読み込むかを選ぶことができます。wordの例のように直接指定をすることができます。
この2点を利用すれば、AというサウンドフォントとBというサウンドフォントを使い分けたいという場合、一つのcfgファイルの中身をいちいち書きかえるのではなくて、「Aというサウンドフォントを読み込むように書かれたcfgファイル」と、「Bというサンドフォントを読み込むように書かれたもうひとつ別のcfgファイル」を用意しておいて、TiMidity++が読み込むcfgファイルを都度切り替えてやればいいことになります。

注意点は以上です。

・cfgファイル作成法の解説サイトの紹介
cfgファイルの用意の仕方についてはたくさんの解説サイトさんがあり非常にありがたいです。私が調べた限りでは3種類位の方法があります。それぞれの方法とれについて解説してあるサイトを紹介します。
1.TiMidity++MIDIプレーヤからcfgファイルを編集する方法、
http://twsynth.sourceforge.jp/の3.さらに進んだ使い方のページ
こちらのサイトの方法はMIDIプレーヤ(=timw32g.exe)用のcfgファイルの変更方法です。

http://www.geocities.jp/srmdp424/index.htmlの先に進む>soundfont+α>SoundFontの交換方法(TiMidity++編)あたり
こちらのサイトの方法は、基本的にはMIDIドライバ(=TiMidity++ドライバ)用のcfgファイルの変更方法です。timw32g.exe用についてはページの下部に補足があります。

2.どこかから適切なcfgファイルを拾ってくる方法、
http://bluewing.usamimi.info/のトップページ -> TiMidity 関連 -> TiMidity 導入解説のページの「音を鳴らせてみよう編」の部分
こちらのサイトの方法はMIDIプレーヤ(=timw32g.exe)用のcfgファイルの変更方法です。
※cfgファイルの中の

dir c:¥TiMidity
dir c:¥TiMidity¥soundfont

とある部分の書き換えは、サイトでも説明されていますが自分の環境に合わせて書く必要があります。例えばTiMidity++本体(timw32g.exe)がC:¥Program Files¥timidityに、サウンドフォントファイルがC:¥sf2にあるなら

dir C:¥Program Files¥timidity
dir C:¥sf2

と書き換えます。ここで書いた場所と一致さえしていれば、サウンドフォントファイルを置く場所はどこでもいいです(多分)。
(このようなあるファイルが存在する場所を示すものを「パス」といいます。この言葉を使うと、今の作業は「TiMidity++本体(timw32g.exe)のパスとサウンドフォントファイルのパスを書く」作業といえます)
また、私が試した限りでは、フォルダの区切りを表す記号は「¥」と「/」のどちらでもよいみたいです。

3.cfgforsfやCreateCFGというソフトを使ってcfgファイルを作成する方法
http://www.geocities.jp/srmdp424/index.htmlの先に進む>soundfont+α>CFGEditorの使い方(TiMidity++用y)
こちらのサイトの方法はMIDIプレーヤ(=timw32g.exe)用のcfgファイルの変更方法です。
慣れると非常に便利です。余裕が出てきたら導入することをお勧めします。

どの方法でも大丈夫です。とにかく自分が用意したサウンドフォントでTiMidity++が音を鳴らせるように頑張ってください。


●twsyng.exeと仮想MIDIケーブルの利用について
・twsyng.exe+仮想MIDIケーブルの必要性

TiMidity++で意図したサウンドフォントで音を鳴らすことができるようになったとして、次はDominoの音源としてTiMidity++が読み込んだサウンドフォントを使うことを目指します。
Dominoの操作については、マニュアルに詳しく書かれていますし、
・初心者になるための耳コピMIDI講座
http://mimikopi.nomaki.jp/
このサイトさんでも非常に詳しく説明されています。

本題に入る前に、一旦Dominoと音源の関係について書きます。
DominoはMIDIシーケンサで作曲をするためのソフトですが、音を鳴らすという機能のみに注目すれば、Dominoと音源との関係は、MIDIプレーヤと音源との関係とほとんど同じです。「MIDIファイル(=楽譜)を読み取り、音源(=楽器)の音を出す」です。(Dominoの場合は、正確には作曲中はdmsという専用の形式のファイルを使いますがイメージとしては同じです)
また、windows media player等とは違い、OSによって指定されている音源とは無関係に、音源を指定することができます。MIDIシーケンサは基本的に使用する音源を指定できます。
この関係がイメージできれば、Dominoの使用音源を変更するとはどういうことかが理解しやすいかと思います。

では本題に入ります。Dominoの音源としてTiMidty++が読み込んだサウンドフォントを使いたいです。今回はTiMidity++を音源として使いたいので、timw32g.exe(=MIDIプレーヤ)ではなくて、TiMidity++ドライバを使えばいいはずということが予想できると思います。Dominoの音源の設定でMSGSの代わりにTiMidity++ドライバを選べば、理屈の上ではいいはずです。実際Dominoの「環境設定」ー「MIDI-OUT」としてMIDI OUTデバイスの欄をクリックすると、選択肢としてMSGSの他にTiMidity++ドライバができています(timw32g.exeは音源としての機能はないので、選択肢として出ていないことも確認できる)。TiMidity++ドライバを選んで「めでたく音源をTiMidity++に変更出来ました」となればよかったのですが、実際にはこの方法では上手くいきません。Dominoで曲を再生しようとしたときにフリーズしてしまいます。
理由は、TiMidity++ドライバとDominoの相性がよくないせいではないかとされています。Domino以外のシーケンサやDAWで音源としてTiMidity++ドライバを指定した場合は上手くいく場合もあるそうです。いずれにしろ、このままではDominoでは使えないので別の方法を用います。

そこで出てくるのがtwsyng.exeと仮想MIDIケーブルです。これらについて説明した後、実際につないで音を鳴らすことを目指します。

・twsyng.exeとは何か
まずtwsyng.exeについて説明します。
話がややこしくなるのでこれまで言及しませんでしたが、twsyng.exeはTiMidity++をインストールしたときに、TiMidity++ドライバやtimw32g.exeと合わせてインストールされるソフトです。timw32g.exeと同じフォルダにあると思います。
このソフトはtimw32g.exeからMIDIファイルを読み込む機能をなくしたようなものです。単独でMIDIファイルを再生する機能はありませんが、cfgファイルで指定されたサウンドフォントの音色を読み込んで音源として働きます。timw32g.exeとtwsyng.exeは兄弟のようなソフトで、どのcfgファイルを読み込むかという指定やその他の細々とした設定を共有します。
音源として働くという点で、twsyng.exeはTiMidity++ドライバと似ていますが、twsyng.exeをMIDIドライバ(=OS標準のMIDI音源)として指定することはできません。なので、コントロールパネルから「サウンドとオーディオデバイス」を開き、オーディオタブを選択し「MIDI音楽の再生」のドロップダウンリストを開いても、選択肢として表示されません。

twsyng.exeをMIDIシーケンサの音源として使う方法はTiMidity++ドライバの時とは違い、ややこしいです。
TiMidity++ドライバをMIDIシーケンサ等の音源として使う場合(Dominoでは相性の問題で使えないが)は、単純にシーケンサ側で音源(MIDI OUT)としてTiMidity++ドライバを指定するだけで済みます。
しかし、twsyng.exeをMIDIシーケンサ等の音源として使う場合は、シーケンサ側で音源(MIDI OUT)としてtwsyng.exeを直接指定することができません。残念なことに選択肢として表示されません。そこで出てくるのが仮想MIDIケーブルです。これをDominoとtwsyng.exeの中継として使うことで、Dominoの音源としてtwsyng.exeを使うことが可能になります。
Dominoとの繋ぎ方以外にも注意点があります。twsyng.exeは使うときは毎回手動で起動して、更に「シンセ開始」の操作をする必要があります(詳しくは後で説明します)。

・仮想MIDIケーブルとは何か
仮想MIDIケーブルについて説明します。
仮想MIDIケーブルとは、PC上の別々のソフト同士でmidiデータをやりとりする時に中継する働きをもつソフトです。実際の機材でいえばMIDIケーブルにあたります。ソフトとしてはMidiYokeが有名です。他にはMaple Virtual Midi Cableがありますが、こちらは現在は入手できないようです。

仮想MIDIケーブル関係で分かりづらいのは「MIDI IN」と「 MIDI OUT」だと思います。「MIDI IN」と「 MIDI OUT」は機材同士をつなぐときに必要となるものです。何故これらを指定しなければならないかを説明しようと思います。

これらを理解するために、実際の機材について説明します。
「MIDI IN」と「 MIDI OUT」は実際の機材では、それぞれMIDIケーブルを差し込む端子にあたります。ハード音源などの機材にはMIDIデータを内から外に送る時に使う端子(=MIDI OUT)と、MIDIデータを外から内に受け取る時に使う端子(=MIDI IN)がついています。INとOUTでそれぞれ端子があるのは、1本のMIDIケーブルがデータを一方通行でしか送ることできないことが理由です。
例えばシーケンサ(PC)とハード音源をMIDIケーブルでつないでMIDIデータを相互にやり取りする場合には、
A:「シーケンサ(PC)のMIDI OUT端子」--MIDIケーブル--「ハード音源のMIDI IN端子」
B:「シーケンサ(PC)のMIDI IN端子」---MIDIケーブル--「ハード音源のMIDI OUT端子」
というようにMIDIケーブルを2本繋ぐ必要があります。Aの接続によってシーケンサからMIDI音源にデータを送ることができるようになり、Bの接続によってMIDI音源からシーケンサにデータを送ることができるようになります。
他の接続方法である、USB接続と比較してみます。PCとUSBフラッシュメモリをつないでデータを相互にやりとりする場合、PCのUSBポートに差しこむだけですね。これだけでPCからUSBメモリにファイルを送ることもできるし、USBメモリからPCにファイルを送ることもできます。なので、USB接続の場合は「USB IN」や「 USB OUT」というものは必要ありません。

仮想MIDIケーブルでの「MIDI IN」と「 MIDI OUT」の設定についても以上の考え方がそのまま使えます。
データの流れる方向を意識すれば分かりやすいです。
例えば、シーケンサと音源をつなぐ場合です。基本的にシーケンサは「この音色、音程で音を鳴らしてくれ」という命令を送る側で、MIDI音源はシーケンサからの命令を受け取る側です。MIDI音源からシーケンサに向かってMIDIデータを送ることはありません(多分)。なので、この場合は
・「シーケンサのMIDI OUT」--仮想MIDIケーブル--「音源のMIDI IN」
というようにつなげば音が鳴るようになります。

続いて、ソフトキーボードとシーケンサをつないでリアルタイム入力やステップ入力をしたい場合。
この場合ソフトキーボードは「どの鍵盤をどれ位の強さ、長さで押したか」というデータを送る側で、シーケンサはそれらのデータを受け取る側です。なので、この場合は
・「ソフトキーボードのMIDI OUT」--仮想MIDIケーブル--「シーケンサのMIDI IN」
というようにつなげばOKです。

仮想MIDIケーブルについては以上です。


・MidiYokeとtwsyng.exeのインストール・操作・設定方法
以下いくつかの解説サイトさんを紹介します。これらを参考にしながら、何とか実際にDomino+MidiYoke+twsyng.exeで音が鳴るように目指します。
MidiYokeのインストール方法は
初心者になるための耳コピMIDI講座さんの
http://mimikopi.nomaki.jp/midi/001/vmidicable/index.html
「TOP/MIDI講座/第1章 準備編/仮想 MIDI ケーブル」のページに詳しくあります。「MIDI IN」と「 MIDI OUT」についての説明も参考になると思います。

DominoとMidiYokeとtwsyng.exeをつなぐ具体的な方法は
オバさんだってDTMしたいっ!☆期間限定☆さん
http://punyuoba.blog4.fc2.com/blog-entry-16.html
に説明があります。シーケンサ、音源、仮想MIDIケーブル(+キーボード)の関係も図で説明されていて、わかりやすいと思います。
twsyng.exeの起動と、「シンセ開始」の操作について補足を書きます。
twsyng.exeはtimw32g.exeと同じフォルダにあると思います。これを起動するとタスクトレイにアイコンが表示されます。
タスクバー1.JPG

紹介したサイトさんにも説明がありますが、twsyng.exeを起動しただけの状態ではまだ音は鳴りません。ここから更に「シンセ開始」の操作をする必要があります。
テレビに例えるなら「twsyng.exeの起動」=「テレビのコードをコンセントに差す」、「シンセ開始」=「テレビの電源オン」にあたると思います。

さて、アイコンをクリックすると図のようなメニューが出ます。
メニューシンセ開始1.JPG

メニューの一番上に注目すると、「シンセ開始」と書いてあると思います。これをクリックすれば「シンセ開始」の操作は完了で、音が鳴る状態になります。「シンセ開始」ができているかはもう一度アイコンをクリックすれば確認できます。
メニューシンセ停止2.JPG

「シンセ開始」が出来ている状態だとメニューの表示が図のように「シンセ停止」と変わっています。
ちなみに紹介したサイトさんで言及している「シンセを自動で開始する」については、チェックを入れるとtwsyng.exeの起動と同時に自動で「シンセ開始」の操作がされるようになるという意味です。

twsyng.exe(とtimw32g.exe)の細かい設定について書きます。TiMidity++はcfgファイルで読み込むサウンドフォントを指定すると書きましたが、どのサウンドフォントを使うか以外にも、結構たくさん設定をいじることができます。twsyng.exeではタスクトレイのアイコンをクリックして
メニュー設定1.JPG
「設定」を選ぶと出てくるウィンドウ
twsyng設定プレイヤ1.JPG
でいじれます。

timw32g.exeではメニューバー
tim32g詳細設定1.JPG
から設定ー詳細設定を押すと出てくるウィンドウ
timw32g設定プレイヤ1.JPG
で行います。
この二つのウィンドウはそっくりですが、twsyng.exeの方は、シンセサイザタブがある点が違います。シンセサイザタブ以外の設定はtwsyng.exeとtimw32g.exeは共有しています。なのでどちらか一方の設定を変えるともう一方も変わります(リアルタイムではなくて再起動すると変わります)。と思いましたが、一部共有されない設定もあるようです。

具体的にどのように設定すればいいのかは、私はほとんど分かりません。
・COOL ONLINEさんの
http://tokyo.cool.ne.jp/timidi/domino_twsyng/index.html
timidiの備忘録-「Dominoにtwsyngを繋ぐ」についての備忘録のページの中ほどあたりが参考になるかと思います。もっと調べるなら、「twsyng 設定」、「timw32g 設定」などで検索するといいかもしれません。

以上をもとに何とか「Domino+MidiYoke+twsyng.exe」で音を鳴らせるようになったとします。

次に気になるのは遅延とノイズだと思います。遅延はDominoで再生したときに、音が画面表示より遅れて再生されるという現象のことです。どちらについても大体の対策は↑で紹介したCOOL ONLINEさんに書いてあるかと思います。
「Domino+MidiYoke+twsyng.exe」で鳴らした時のノイズはPCのスペックやチップセットとの相性があるらしいです。TiMidity++はインテル製のチップセット以外とはあまり相性が良くないというような解説を見た気がします。私はPentium M を使っているPCとceleron 575を使っているPCの2台で試してみました。Pentium Mの方はノイズは最初からありませんでしたが、celeron 575の方は最初はプチプチというノイズが入って大変でした(こちらもインテル製なのに)。

ノイズについてReckless DashさんのBBSで管理人さんが BBSにてサウンドカードのサンプリングレートに言及されています。
http://www.geocities.jp/srmdp424/index.htmlのBBS、2010/01/11(月) 18:17、サムさんの書き込みより引用(最終アクセス日2010/2/15)
Timidityは今現在48khzより上のサンプリングレートは対応していないようなので、サウンドカードの設定をTimidityにあわせてやらないといけないようです
サウンドカードを96khzから44.100khz(おそらくドライバー側のデフォ)に戻したところノイズはパタリと収まりました。
だそうです。

以下理由はよくわからないけど、こうしたら上手くいったという私の体験を書いておきます。

・Dominoとtwsyng.exeを起動した後、一度twsyng.exeを再起動すると、何故か遅延やノイズが軽減される
・twsyng.exeを起動し続けていると、段々遅延とノイズが酷くなる。そんな時もtwsyng.exeを再起動すると元に戻る
・読み込むcfgファイルを変更した後も、twsyng.exeを再度起動する必要がある
・celeron 575を使ったPCでの話で、VSTHostというソフトを起動しておくと何故かノイズが入らない(Devices-waveのOutout PortにMME:Microsoftサウンドマッパーを選択しておく)。VSTHostについては初心者になるための耳コピMIDI講座さん(http://mimikopi.nomaki.jp/midi/001/vsthost/index.htmlに説明があります


●Dominoの定義ファイルについて
・定義ファイルとは何か

Domino製作者のたかぼーさんのサポートサイトであるTakabo Soft Wiki(http://wikiwiki.jp/tkbsoft/にDominoの定義ファイルについて大変分かりやすい説明がありますので、引用させて頂きます。

domino/質問掲示板/過去ログ005の「音楽定義ファイルと出力デバイス」という質問(2009-12-19 (土) 20:32:26)に対する、逃亡者さんの回答より引用http://wikiwiki.jp/tkbsoft/?domino%2F%BC%C1%CC%E4%B7%C7%BC%A8%C8%C4%2F%B2%E1%B5%EE%A5%ED%A5%B0005#x0b19d0a (最終アクセス日2010/2/16)
音源定義ファイルの中身は
 1. 「イベントリストでProgram Change(PC:○○)をダブルクリック」した時に表示される一覧
 2. 「イベントリストでCCをダブルクリック」した時に表示される一覧(イベントリスト上での表示名や値の範囲)
 3. 「挿入 → テンプレート」で表示される一覧
 4. 「ファイル → 新規作成」および「トラック → デフォルトトラックの追加」時のトラックの構成と初期イベントの設定
になります。「音色の一覧」や「使用可能なパラメーターの一覧」や「そのパラメーターの値の範囲」は「使用する音源によって異なる」ので、「それぞれの音源に合わせて、これらの一覧や値の範囲を変更する」という感じです。例えば、「Program Change」と表示されるよりも、「PC:Vibraphone」と音色名が表示された方が分かりやすいですよね? 同様に、「CC:2」と表示されるよりも「002 OSC ring」とパラメーター名が表示された方が分かりやすいですよね? このような感じで、Domino上での表示をその音源専用の分かりやすいものに変更して、Domino上での編集を楽にしよう、というのが音源定義ファイルです。出力デバイスは全く関係ありません。
一言でまとめると、音源定義ファイルは「Domino上の一覧やイベントの表示方法を変更するもの」であって、「その音源自体をインストールするもの」ではありません。上記の 1. 〜 4. の一覧やトラックの構成と初期イベントが変わっていれば、それで導入完了です。

使用する定義ファイルを変更した場合に何が変わるのかという例として、サウンドフォントであるSGM-V2.01を音源として使い(Domino+MidiYoke+twsyng.exeの接続です)、プログラムチェンジで音色を変更する場合を説明します。ここではディストーションギターに変更するとします。SGM-V2.01にはもともと6種類のディストーションギターの音色があります。

SGM-V2.01用の定義ファイルを自分で用意して使った場合
PC_SGM2.01.JPG

この図のように、6種類のディストーションギター(+1種類のドラム)をこのウィンドウから選択することができます。

続いてMSGS用の定義ファイル(「GSm (Microsoft GS Wavetable SW Synth)」と表示されているもの)を使った場合
PC_GSm.JPG

この図のように、このウィンドウからは2種類のディストーションギターしか選択できません。しかも表示されているDist.Gt.とFeedback Gt.のどちらを選択しても音色は変わらず、このウィンドウからは実質1種類のディストーションギターしか選択できないことになります(他の方法を使えば残りの5種類+1種類のドラムも利用可能)。またプログラムチェンジとは関係ありませんが、定義ファイルを変更したことにより、ウィンドウの左側のイベントリストの内容も変化しています。

・サウンドフォントに合わせた定義ファイルの作成法
このように定義ファイルは可能なら音源に合わせたものを用意した方が便利です。
有名な音源の定義ファイルはDominoの製作者であるたかぼーさんのウェブサイトで紹介されています。

サウンドフォントの定義ファイル自体は公開されていません。しかし、大変ありがたいことにサウンドフォントファイルから自動的にDomino用定義ファイルを作成するソフトが公開されています。これを使ってサウンドフォント用の定義ファイルを作成し、Dominoに適用する方法を説明します。

1.まずはダウンロード
http://takabosoft.com/の右側の『SOFTWARE』の欄にある『MIDI音楽編集ソフト「Domino」』をクリック。
リンク先のページの右側の『Domino MENU』の欄にある『関連ツール集』をクリック。
soundfont(*.sf2) → Domino用音源定義ファイルコンバータ Ver.1.01 (2009/07/15)があります。

2.ダウンロードして解凍したら、sf2domino.exeを実行。
実行すると図のようなウィンドウが表示されます
sf2domino.JPG

3.定義ファイルを作りたいサウンドフォントファイルを指定

4.TiMidity++(GS Map)かTiMidity++(XG Map)を選択。よくわかりませんが私はいつもTiMidity++(GS Map)を選んでいます

5.音源名とMAP名は自動で入力されます(多分)。MAP出力方法は、先ほどの説明で用いた図の、プログラムチェンジのウィンドウ内の音色の表示に関わります。どれでもいいですが、「PC#16でまとめる」にした方が見やすいかと思います。

6.書き出し実行。「〜.xml」というファイルが出力される。これが定義ファイル

7.出来た定義ファイル「〜.xml」をDominoをインストール(解凍)したフォルダ内にあるModuleフォルダの中に移動させる。

8.Dominoを起動して環境設定で先ほどの定義ファイルを選択する。Dominoを再起動する。
これでサウンドフォント用の定義ファイルを使えるようになります。

定義ファイルについては以上です。

・複数のサウンドフォントを組み合わせて使う方法
は次の記事に書きました。
http://hanihoni.seesaa.net/article/152083573.html
一応完成。いずれ図を追加するかも
posted by hanihoni | Comment(2) | DTM | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
DTMって初めて
スムーズに機会を使いこなせるまでのハードルがめちゃめちゃ高いですよね。
はじめたてはろくすっぽ音を出すことすらかなわないですし・・・
それで僕は昔
高いMIDIキーボードかったけど
一音も音がだせず挫折した経験があります・・
最近SONAR7 Home Studioを購入して
使ってますが、思い通りにならなくてこまります・・
サウンドフォントは使ったことがないので
続き楽しみにしてます
Posted by Sukesan1984 at 2010年01月22日 23:07
Sukesanさんこんばんは。いらっしゃいませ〜

>>DTMって初めてスムーズに機会を使いこなせるまでのハードルがめちゃめちゃ高い

私もそう思います。音を出せるようになるまでとても苦労した記憶があります。キーボード等の機材にしろ、音源にしろ、新しく何かを追加するのがとても大変に感じます。
SONARですか〜。私もSONAR6 LEを持っていますがDAWは機能がたくさんあって、とまどいますよね。全然使いこなせないので半分放置状態ですorz
いつかはマスターしてやろうと思います。
サウンドフォントの説明はチマチマ更新していくつもりなので、気が向いた時にでも来て頂ければありがたいです。
Posted by hanihoni at 2010年01月23日 20:59
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。

広告


この広告は60日以上更新がないブログに表示がされております。

以下のいずれかの方法で非表示にすることが可能です。

・記事の投稿、編集をおこなう
・マイブログの【設定】 > 【広告設定】 より、「60日間更新が無い場合」 の 「広告を表示しない」にチェックを入れて保存する。


×

この広告は1年以上新しい記事の投稿がないブログに表示されております。