« | »

2008年9月25日

リアルタイムカーネルでMIDI / パソコンってスゲー

先日ソフトウェアシンセで音飛びするとか言ってた「ubuntu studio」で作った音楽用PCであるけど、ジャンクで買い叩いた、古いけど結構良い、SoundBlaster系のサウンドカードが搭載されているので、ハードウェアシンセとして動作するはず。って事を書いた。
つうことで何とか音飛びしないMIDI再生環境を構築すべく、ネット上を彷徨っていると、私のカードに対応しているMIDIの再生方式に関係して「サウンドフォント」なる概念を知った。
色々な音色データーを指定された音色に合わせて再生する機能を持ったものがMIDI音源(シンセサイザー)だとしたら、MIDI音源をソフトでエミュレートすればソフトウェアMIDI、ハードウェアとして機能すればハードウェアMIDIということになる。
MIDI音源と一口にいっても、再生システムとしての機能と、その機能によって鳴らされる音色の部分に別れるわけで、その音色の部分がサウンドフォントとなるわけである。
私のサウンドカードは音色データーであるサウンドフォントを用意すれば、カード内に搭載された「再生システム」からそれを鳴らす事でMIDI音源として動作するようだ。


今まではその「再生システム」の部分もTiMidity++なるソフトウェアで動作させていたけど、これをハードに任せる事でシステムのリソースの消費を抑えると言った考え方である。
ということで、SoundBlaster系のカードでサウンドフォントを使用するためのドライバパッケージ「awesfx」をaptでインストール、インストール後に「/usr/bin/asfxload /usr/local/share/sounds/sf2/8MBGMSFX.SF2」等とasfxloadコマンドにサウンドフォントを指定して起動させたのち、MIDI再生時にしかるべきMIDIポートの出力先を指定してやると、見事に音飛びなしで再生される。やったー。
この「/usr/bin/asfxload /usr/local/share/sounds/sf2/8MBGMSFX.SF2」なるコマンドは起動時に自動で設定されるように/etc/rc.localにでも書いておく。
私のサウンドファイルに対応したサウンドカードは音色を内蔵したMIDI音源としてのハードウェアシンセではないけど、逆にそのサウンドフォントをとっかえひっかえする事で色々な音色を楽しむ事が出来るわけである。
先ほど指定した「8MBGMSFX.SF2」はSoundBlasterのCDに入っている8MBのサウンドフォントであるけど、まぁ音としては標準的である。世の中には色々なサウンドフォントが出回っており、色々な音色が入っている物や珍しい楽器の音色、さらにはドラム専用のものやピアノ専用のもの、サイズも数百KBから数百MBのものまでさまざまである。
色々聞き比べて見た結果、私が良く聴くのはピアノであることもあり、YAMAHA Clavinova CVP-205 からサンプリングしたらしい、120MBのピアノ専用サウンドフォントが結構気に入った。
しかし、MIDIファイルの再生だけにこのサウンドフォントを利用したMIDIのシステムを使うのではなく、電子ピアノの鍵盤から入力されたMIDIデーターを、サウンドフォントを指定したMID出力で鳴らせば、私の電子ピアノがありとあらゆるサウンドフォントで再生されるわけである。
鍵盤での入力と発音のズレが全く無い。これはいい感じだ。ここに来て始めてリアルタイムカーネルの威力が発揮されたような気がする。
家のはCASIOの低価格帯の電子ピアノやけど、今一番気に入っている先ほどのサウンドフォントで高級クラスのYAMAHA Clavinova CVP-205の音を鳴らすのはもちろん、ベーゼンドルファーのImperial からサンプリングしたらしい「Realistic Piano」なる19.90ユーロサウンドフォントを使えば、二千万円オバーのピアノの音まで鳴るわけで、何とも凄い話である。
なんか久しぶりにパソコンてスゲーなーって思った。
しかし、ベーゼンドルファーインペリアルの音がするサウンドフォント、19,90ユーロで買おうかな…
と書くと妙に貧乏臭いなぁ…
ソフトウェア音源として使っていた「TiMidity++」もWindows版があるので、興味を持たれてSoundBlaster系のカードを使っていない方もサウンドフォントをとっかえひっかえ試して遊んでみるのはいかがだろうか?

Trackback URL

Comment & Trackback

No comments.

Comment feed

Comment





XHTML: You can use these tags:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>