Linux Pipe Organ


Last Updated: 2008/07/21 (Since 2001/08/19)

This page is written in Japanese.
English page is here.



Linux上で仮想的なオルガンを実現するアプリケーションの紹介です。
(本アプリケーションは現在テストバージョンです)


特徴

MIDI鍵盤が1台以上あれば、あなたのLinuxマシンがパイプオルガンになります!
目的はWindows PC+ローランド製外部MIDI音源用の、 SCPOPと似ていますが、 レジストレーションを実際のオルガンと同様に自由に行うことが できるようになっています。また、発声はPCに内蔵のサウンドカードで行うため、 高価な外部音源を必要としません。その代わり、外部にリバーブ(残響)を付加するための装置(DSP内蔵アンプなど)が必要である(Linuxでは今のところSBLiveのエフェクト機能を使えない為)、使えるようにするまでの作業が面倒という問題があります。


スクリーンショット


Soundfontの音色をストップに割り当てるところです。





ハードウェア構成例


筆者のシステム構成です。
こちらで写真等ご覧いただけます。


導入例:Viscountオルガンとの組合せ


演奏例

(以下のサンプルMP3ファイルは、なるべくヘッドホンを用いてお聴きください。)

File nameTitleComposerSizeSoundfontRegistrationReverb setting
WidorToccata2.mp3 トッカータ (Version 0.2) ヴィドール 5.0MBytes Jeux14.sf2 - Windows PC+SBLive
bwv578-eorg.mp3 フーガ ト短調《小フーガ》 バッハ 4.2MBytes eorg102.sf2 YAMAHA REV500
bwv578.mp3 フーガ ト短調《小フーガ》 バッハ 4.4MBytes Jeux14.sf2 - Windows PC+SBLive
karg.mp3 Nun danket alle Gott カーク・エラート 680KBytes Jeux14.sf2 - Windows PC+SBLive
vierne1.mp3 NAIADES ヴィエルヌ 380KBytes Jeux14.sf2 - Windows PC+SBLive
552.mp3 Fugue in E-flat major バッハ 1,6MBytes Jeux14.sf2 - Windows PC+SBLive
540.mp3 Toccata in F major J.S.Bach 680KBytes Jeux14.sf2 - Windows PC+SBLive
572_a.mp3 Fantasia in G major(残響なし) J.S.Bach 550KBytes Jeux14.sf2 - NONE
572_b.mp3 Fantasia in G major(残響あり) J.S.Bach 600KBytes Jeux14.sf2 - Windows PC+SBLive
Chan-mat-eorg-pre.mp3 Chanson de matin《朝の歌》(Version 0.1) エルガー 1.3MBytes eorg102.sf2 - Windows PC+SBLive


上の演奏例では、PC外部のエフェクタを使用していますが、 ソフトウェアでリバーブをかける方法があります。 こちらをご覧ください。


まだアプリケーションとしての完成度はかなり低いのですが、とりあえず使って みたいという方は、以下を参照し、試してみてください。

必要なもの

音源について

当アプリケーションでは、発音手段として、Sound Blaster Live! に搭載されているシンセサイザ、もしくはTiMidity (ソフトウェアシンセサイザ)のいずれかを用います。 前者は、レスポンスがよいという利点がありますが、同時発音数が64音と少ないため、 ストップをたくさん使うと簡単に音抜けが生じてしまいます。 Linux pipe organ では、本物のパイプオルガンと同様、 選択したストップ数×押したキーの数の発声体を消費します。 従って、例えばストップを10個選択してキーを7本同時に押えると、 この時点で音抜けが生じてしまいます。
他方、後者の場合、同時発音数はCPUパワーにのみ制限さます。 Jeuxサウンドフォントを用いる場合、私が使用するAthlon64-3500でもストップを同時に多く使用すると 少々重いといった感じです(古いTimidity++は処理が軽かった為、AthlonXP-1800+程度で 256音の発音も余裕で可能でしたが)。


準備

共通

SB Liveに搭載されているシンセサイザにより音を出す場合) TiMidity++(ソフトウェアシンセサイザ) により音を出す場合

実行

まずソースを展開したディレクトリに移ります。
SBLive搭載シンセサイザを使う場合は、サウンドフォントがロードされていれば
   ./vpo -p65
で使えます。

Timidityを使う場合は、

   ./vpo
で実行できます。従来はTiMidity++をまず手動で立ち上げる必要が ありましたが、不要になりました。




操作方法

準備中


MIDIフットコントローラの使用について

MIDIフットコントローラは、足元のスイッチを押したり これに接続したボリュームペダルを操作することにより、 音色の切替えや音量等の変化をMIDI信号として出力するものです。

外部から、プログラムチェンジの信号を送ってやることにより、 コンビネーションメモリの呼び出しを行うことができます。 プログラムナンバー0〜9が、それぞれメモリ1〜10の呼び出しに 対応します。入力チャンネルは1〜4の範囲で 、任意です。

また、外部からモジュレーションレベルの信号を送ることにより、 鍵盤3の音量を変化させることができます。0が最小、127が最大です。 入力チャネルは1〜4の範囲で任意です。将来は、複数のボリュームペダルを 用い、任意の複数の鍵盤の音量を変化させることが可能にさせることを 検討しています。もちろん設定のためのGUIも付ける予定です。





以下の点にご注意ください

このアプリケーションについて筆者は何らの保証もいたしません。 例え、試してみようと思い、機材を揃えてインストールをしようとしたが 失敗し、もしくは得られた結果が期待外れであったことにより、 時間的経済的損失・精神的苦痛等を被ったとしても、 当方は苦情を一切受け付けません。悪しからず、ご了承ください。




変更履歴

2008/07/21 テストバージョン更新。いくつかのバグフィクス等。 2008/07/19 テストバージョン更新。Ubuntu 8.04 LTSにて使用可能としました。Jeux14.sf2のバンク0しか使用できない問題点を解消しました。
2005/02/12 テストバージョン更新。ALSA1.0以上,Timidity++-2.13.2 に対応。ALSA-0.5以下は非対応となりました。
2003/01/10 テストバージョン更新。ALSA 0.9以上がインストールされた状態でのコンパイルエラー修正。
2002/12/28 テストバージョン更新。レジストレーションファイル中のサウンドフォント指定方法を変更。これにより同じサウンドフォントを使用するならばサウンドフォントの格納場所によらず、レジストレーションファイルの内容は変わらなくなる(他人とのやりとりに好都合)が、いままでのレジストレーションファイルは読み込めなくなりました。悪しからず御了承ください。その他、いくつかのバグフィクス。
2002/08/25 テストバージョン更新。ピッチ調整機能追加。
2002/05/18 テストバージョン更新。フットコントローラを使用し、足でコンビネーションメモリを呼び出し可能とした。
2002/03/31 テストバージョン更新。終了時状態保存、バグフィクス等
2002/03/24 テストバージョン更新。外部鍵盤からの入力でノートオフ時、ヴェロシティの値がゼロでない時に音が残る問題を回避。 導入事例追加。
2002/03/23 テストバージョン更新。TiMidity++等をvpoから起動するようにした。
2002/03/17 テストバージョン更新。コーラスの度合(全ストップのピッチをランダムにずらす) を調節する機能を追加(従来はハードコーディング)。
2002/03/03 ソフトウェアでリバーブをかける方法を掲載(こちら)
2002/01/18 テストバージョン更新。コンビネーションメモリにヴェロシティを記憶しないように変更。トレモロの深さを変更。
2001/12/29 筆者のシステム構成図変更等
2001/10/28 テストバージョン更新。ジョイスティック対応(コンビネーションメモリ呼出)、カプラ・トレミュラントの選択状態をコンビネーションメモリに記憶できるようにした。
2001/09/30 テストバージョン更新。些細なバグフィクス等
2001/09/15 テストバージョン更新。トレモロとカプラ機能を実装(まだコンビネーションメモリには選択状態を保存できません)。画面レイアウト変更。
2001/09/13 テストバージョン更新。発声の制御部分を改良
2001/09/09 テストバージョン更新。ALSAのバージョンが0.5xでも使用可能とした。
2001/09/02 テストバージョン更新。コーラス機能・出力先ALSAシーケンサクライアント選択オプション追加、バグフィクス(15番目のストップが働かない、音色削除の挙動がおかしい等)
2001/08/26 テストバージョン更新。各ストップに割り当てられる音色の GUI上での変更・設定の保存をできるようにした。
2001/08/19 テストバージョン掲載