試験運用中なLinux備忘録・旧記事

はてなダイアリーで公開していた2007年5月-2015年3月の記事を保存しています。

パイプオルガンエミュレータAeolusの概要と使い方について

(2015/1/7)以前は前半と後半に分けて公開していたが、このページに統合した。

  1. 概要
  2. 起動/オプション
  3. 起動時の初期化について
  4. JACKポートの接続
  5. 音色(音栓・ストップ)の設定
    1. プリセットの保存と読み込み
  6. MIDIチャンネルの設定
  7. 音を鳴らす
  8. プリセット切り替えのノートについて
  9. MIDI信号からの音栓単位の音色変更
  10. 調律/音律を設定する
    1. 調律(Aの周波数)
    2. 音律
  11. オーディオ詳細設定

概要

Aeolus(kokkinizita.linuxaudio.org/linuxaudio/aeolus/)はパイプオルガンをシミュレートするプログラムで、サンプリングされた音を鳴らすのとは異なり、色々と細かいチューニングも行える。
ALSA MIDIバイスとして演奏/制御が行え、音声はJACK Audio Connection KitもしくはALSAサウンドシステムに出力される。
(2015/1/7)公式サイトのURLを修正

録音されたサンプル曲は[http://kokkinizita.linuxaudio.org/linuxaudio/aeolus/:title=公式ページ]などにある。

以前、Wine上のCherryにおいてBWV578を演奏したスクリーンキャストを

  • zoome.jp/kakurasan/diary/19/
  • zoome.jp/kakurasan/diary/20/

で公開していた。2つの違いは音律の設定のみ。
(2015/1/7)zoomeの動画はサイト閉鎖につき参照できない。

起動/オプション

  • -uオプションを指定しないとプリセットが保存できない*1ため、必ず指定する
  • JACKデーモンを動かさずにALSAサウンドシステムから音声を出したい場合は-Aオプションを付ける・その際にはALSAのデバイス名(-d)やサンプリング周波数(-r)などが指定できる
  • X11を用いないで動作する-tオプションがあるが、バージョン0.6.6の時点では操作はできないため、使用することはない
  • -Cオプションでチャンネル数を変更したり-BオプションでB-format(WXYZ)出力したりできるようになっている*2が、手元のハードウェア環境では確認できない
  • オプションは[ホームディレクトリ]/.aeolusrcに記述することもできる

デスクトップ環境のメニューから起動したい場合は下のファイルを作成*3
[任意]ファイル名: ~/.local/share/applications/aeolus.desktop

[Desktop Entry]
Name=Aeolus
Comment=Pipe organ emulator
Exec=aeolus -u
Type=Application
Categories=AudioVideo;Audio;

下のコマンド行を端末や「アプリケーションの実行」にコピペして実行する。

update-desktop-database ~/.local/share/applications

[ホームディレクトリ]/.aeolusrcの書式は単純にオプションを並べるだけ。このファイルを使用するとシステムの設定ファイルとして使用される/etc/aeolus.confが読み込まれなくなるので、このファイルの内容(下の例では「-S [stopsのディレクトリ]」)を含めないと正常に使用できない場合がある。
ファイル名: ~/.aeolusrc

-S [stopsのディレクトリ] -u

-Sオプションの値に指定するのは.ae0ファイルと幾つかのディレクトリを含む「stops」のディレクトリ。バージョン0.3.0のstopsでは

$ ls -F /usr/share/stops/
Aeolus/               I_quinte_223.ae0    bourdon16.ae0    rohrflute4.ae0
Aeolus1/              I_quinte_513.ae0    celesta.ae0      rohrflute8.ae0
Aeolus2/              I_trumpet.ae0       cromhorne.ae0    septime.ae0
III_cymbel.ae0        P_mixtur5fach.ae0   flute2.ae0       sesqualtera.ae0
III_flautodolce4.ae0  P_octave_1.ae0      flute4.ae0       sifflet1.ae0
III_principal_8.ae0   P_octave_2.ae0      flute8.ae0       suabile.ae0
II_flautodolce4.ae0   P_principal_16.ae0  gemshorn8.ae0    superoctave2.ae0
I_cymbel.ae0          P_principal_4.ae0   harmflute8.ae0   tertia.ae0
I_melodia.ae0         P_principal_8.ae0   nasard.ae0       tibia8.ae0
I_mixtur5fach.ae0     P_quinte_223.ae0    new_oboe_fa.ae0  trombone.ae0
I_octave_1.ae0        P_quinte_513.ae0    none.ae0         waves/
I_octave_2.ae0        P_trumpet.ae0       ottavina2.ae0
I_principal_4.ae0     bassoon.ae0         quintadena.ae0
I_principal_8.ae0     bombarde.ae0        quintflute.ae0

のような内容となっている。Mandriva Linuxでは/usr/share/stops/だが、Debian/Ubuntuでは/usr/share/aeolus/stops/にあるようだ。

起動時の初期化について

起動後、左上のほうから順に「ストップ(音栓)」のボタンが点滅していく処理が最後まで終わったら使用可能となる。それまではオン/オフの切り替えはできない。

起動直後

初期化終了後

JACKポートの接続

Aeolusは既定ではJACK Audio Connection Kitを音声の出力先として用いる。しかし、ポートの接続は自動的には行われない。
QjackCtlを用いる場合は左側にある「aeolus」を右側の「system」に接続することになる。

コマンドで接続するのであれば

$ jack_connect aeolus:out_1 system:playback_1
$ jack_connect aeolus:out_2 system:playback_2

のようになる(2つ両方実行する)。ステレオよりもチャンネル数が多い場合はチャンネルの数だけ接続を行う。
録音を行いたい場合、録音アプリケーション(右側の「Input Ports」にポートが出る)に対しても接続を行う。

画像はJACK Timemachineに接続する場合の例。

音色(音栓・ストップ)の設定

各パート(鍵盤)にある音栓(ストップ)のボタンをオン(明るい色)/オフ(暗い色)切り替えすると音色を調整できる。最初の何も押されていない状態では音が出ないので、ボタンをパート(鍵盤)ごとに1つ以上押す。ボタンを「押す」操作は実際のパイプオルガンにおける音栓のノブ(つまみ)を「引く」操作に相当する。
「II+III」「I+II」「P+I」といったものは、オンにするとその鍵盤(「+」の左に書かれている名前の鍵盤)を押したときに同時に別の鍵盤(「+」の右に書かれている名前の鍵盤)が連動して自動的に鳴る仕組みになっている。
「Tremulant」が押された鍵盤にはトレモロ効果がかかる(音の大きさが周期的に変わる)。
下にある「Cancel」ボタンを押すと全てのボタンがオフ状態になる。

プリセットの保存と読み込み
起動時に-uオプションを付けていないとファイルに正しく書き込めず、終了後次回起動時に読み込めない。*4
音栓の設定(組み合わせ)に関する情報は「Store」ボタンを押すことにより選択されているプリセット番号に保存される。このとき、「1:1 Stored」のように右にメッセージが表示される。プリセット番号はウィンドウの左下に表示され、横の矢印ボタンで番号を切り替えできる。現在の番号のプリセットを読み込むには「Recall」を押す。

最下段の中央に6つのボタンがまとまっている中で左下にあるのが「Store」、左上にあるのが「Recall」のボタンとなり、そのボタン群の左にはプリセット/バンク番号の表示と切り替えボタンがある
「Prev」「Next」は現在選択されているプリセット番号のそれぞれ1つ手前/1つ後の番号のプリセットを選択しつつ同時に読み込みも行う。
「Insert」は現在選択されているプリセット番号に保存しつつ、元からその番号にあったものとその後ろの番号のプリセットは1つずつ後ろにずらす(プリセットを挿入して保存)。
「Delete」はプリセットを削除し、その番号の後ろにあるプリセットを前に詰める。

MIDIチャンネルの設定

Midi」ボタンを押すと出るダイアログではMIDIチャンネルとパート(鍵盤)の対応関係を設定できる。

例として、上の画像の設定では、鍵盤とMIDIチャンネルの対応は

  • III: 6 7 8 9
  • II: 4 5
  • I: 2 3
  • P: 11 12

のようになる。
下に並んでいる番号のボタン群(「1」から「8」)にはそれぞれ設定が保存でき、MIDIチャンネルの設定が済んだらShiftキーを押しながら保存したいボタンをクリックする。呼び出すには普通にボタンをクリックする。

音を鳴らす

これでALSA MIDIバイスとしてAeolusが利用できるようになり、ALSA対応のMIDIシーケンサやプレーヤを用いて音を出すことができる。もちろん、WineWindows向けアプリケーションから演奏させることもできる。
MIDIポートの番号は128番以上の空き番号が割り当てられ、Wine上では「aeolus - In」のように表示される。

CherryMIDI出力ポート設定
もちろん、ALSA MIDIバイスとして使用可能なキーボード(鍵盤)があれば、Aeolusのポートに接続して直接音を鳴らすこともできる。vkeybdのようなソフトウェアでもOK。

上はvkeybdを接続した場合のALSA MIDIポートの接続例(QjackCtl上)。この仮想キーボードではMIDIチャンネル1が使用されるので、MIDIチャンネルの設定では1チャンネルを鳴らせたい鍵盤に合わせて設定しておく。

プリセット切り替えのノートについて

MIDI信号による制御において、C1からA1までの範囲の音(ノート)はプリセット番号の切り替えに用いられる。C1が1番でA1が10番。その間は半音単位で2から9までの値が対応する。
この範囲の音が鳴るMIDIデータを再生するとその部分の音が鳴らない代わりにプリセット切り替えが発生してしまうという点に注意。

以前zoomeで公開していたスクリーンキャストでもペダルの一部の音がこの範囲に入っているため、1オクターブ上げる作業を行っている。
(2015/1/7)zoomeに関する一部記述を調整

MIDI信号からの音栓単位の音色変更

コントロールチェンジ98番を用いることによりMIDI信号からの音栓(ストップ)単位の音色変更操作が行えるようで、ソース付属のREADMEに書かれているが、試してはいない。MIDIチャンネルの設定で「Control」を付けたチャンネルに対してのみ有効のようだ。
[引用]ファイル名: aeolus-0.6.6/README より

6. Midi control of stop buttons
-------------------------------

The protocol uses one controller number. The default is #98, but you
can change this in global.h. The message is accepted only on channels
enabled for control in the midi matrix.

The value is interpreted as follows:

  v = 01mm0ggg 

      This type of messages (bit 6 set) selects a group, and either
      resets all stops in that group or sets the mode for the second
      form below.
      
      mm = mode. This can be:
    
         00  disabled, also resets all elements in the group.
         01  set off
         10  set on
         11  toggle

      ggg = group, one of the button groups as defined in the instrument
      definition. In the GUI groups start at the top, the first one (for
      division III) being group #0.

      The values of mm and ggg are stored and need not be repeated unless
      they change.

  v = 000bbbbb

      According to the current state of mode, this command switches a
      stop on or off, or toggles its state, or does nothing at all.
      
      bbbbb = button index within the group.

      Buttons are numbered left to right, top to bottom within each
      group. The first one is #0.

調律/音律を設定する

「Instrum」ボタンを押すと出るウィンドウには左に調律の設定がある(右にはトレモロ関係の設定もある)

調律(Aの周波数)
「440.0」のところをいじると調律の設定ができる。ここの値はAの音の周波数(Hz単位)となる。
「Retune」ボタンを押すと起動時のように全ての音栓のボタンが順番に点滅し、全て処理されると調整が反映される。

音律
以下の音律が選択できる。既定値は「Werckmeister III」で平均律ではない。

  • Werckmeister III: ヴェルクマイスター第3
  • Kirnberger III: キルンベルガー第3
  • Well Tempered: ウェル・テンパード
  • Equally Tempered: 平均律
  • Meantone (1/4): 1/4コンマ中全音律(1/4コンマミーントーン)

反映するには調律の設定と同様「Retune」ボタンを押す。

オーディオ詳細設定

「Audio」ボタンから開くウィンドウでは各鍵盤ごとの設定と全体で共通の設定がそれぞれ幾つか用意されている。

音量は鍵盤ごとには設定できない。*5

関連URL:

使用したバージョン:

  • Aeolus 0.6.6 / stops 0.3.0
  • Wine 1.1.23

*1:書き込み権限のないディレクトリに保存しようとする

*2:内部的にはB-formatで処理されて出力チャンネル数に合わせているようだ

*3:オプション指定をいじる場合は「Exec」の部分を必要に応じて編集する

*4:/usr/share/stops/Aeolus/presetsのように書き込めないディレクトリに保存しようとする

*5:音量については、MIDIデータ側のベロシティやコントロールチェンジによる音量の変化もできない