Fedora Core 5による音楽の製作
執筆者: Michael Tiemann
原文(英語/2006年6月)
私は、皆さんにバラ色の生活(Rose garden)を約束したことなどありません。しかし、'Rosegarden' を使って自分のノートPCを音声/MIDIワークステーションにすることには成功しました。朝からはじめて、昼ご飯までにすべて終わりました。脈ありだと思ったあなた、読み進めてください。
Linuxは、Webコンテンツ提供やWebサービスから、ゲノム配列の決定と登録、組み込みシステムの開発と導入、原子内から超銀河規模に至るあらゆる種類のシステムモニタリングとモデリングまで、あらゆる立派なプロジェクト、製品、およびアプリケーションに対応した、すばらしいプラットフォームです。音声、ビデオ、3Dグラフィックスといったその他の分野では、Linuxは不利な立場にありました。それは不名誉なことでしたが、理由は科学、医療、通信、および情報システムの世界とまったく同じように、コンテンツの世界でも技術革新が必要とされることです。一方で、一部の勇気ある人々は、読み取りやハッキングを目的とした人々だけでなく、作曲や演奏を望んでいる人々にも、ソフトウェアの自由を保証するために努力してきました。
2003年2月、英国の出版物『Sound on Sound』は、AGNULAプロジェクトについて非常に肯定的な論評を掲載しました。私が初めてAGNULAを観たのは、昨年、パリにおいてでした。その記事の中で、Daniel James氏は次のように書いています。
AGNULAプロジェクトが生み出しているものは、ミュージシャン向けにカスタマイズされた最初のコンピュータシステムになる可能性があります。しかも、それはすべてLinuxオペレーティングシステムに基づいています。
彼が記事でwww.gnu.orgを調査、報道、および参照するにあたって頼りとしたのは、音楽の専門家たち(マイクロフォン、プリアンプ、イコライザ、ミキシングボード、A/D変換器、D/A変換器といった小物に数千ポンドをつぎ込んでいる、あるいは少なくともそれを夢見ている人々)でした。
初めてAGNULAを観たとき、私はそれを作り上げたフランス人技術者たちにしきりに尋ねました。それは家で自分でもできそうでした。彼らの答えは否定的でした。「このソフトウェアを書いたのは我々ですが、実のところ使い方はよく分からないのです。我々はハッカーであって、ミュージシャンではありませんからね。」やれやれ。
もしも私が自分の仕事に満足していなかったとすれば、すぐに袖をまくり上げ、この問題のために一肌脱いだでしょう。しかしながら私は自分の仕事を愛していて、十分な結果を出せるまで時間を避けることは無理だということがわかっていました。
AGNULAプロジェクトの問題の1つは、2002年後半には、本格的な音声アプリケーションを実行できるほど遅延の少ない汎用Linuxディストリビューションがなかったことです。そういうアプリケーションでは、数十の音声トラックの読み取り、加工、ミキシング、および出力ができる必要があります。その際、CD品質のステレオ音声の作成には88,200個/秒の16ビットサンプルが1つも欠落しないこと、また、DVD品質の音声の作成には、96,000あるいは192,000個/秒の24ビットサンプルが1つも欠落しないことが必要です(言い換えると、ほんの1ミリ秒の中断でも88サンプル近いステレオCD音声、あるいは500サンプルを超えるDVDサラウンド音声が欠落します)。当時、遅延の少ないカーネルを実現するための試みがいくつか行われていました。Robert Love氏のプリエンプションパッチやAndrew Morton氏とIngo Molnar氏の「低遅延」パッチです。しかし、いずれもアップストリームではなく、それぞれが激しく批判されていました。AGNULAプロジェクトの中心的な教義は、音声フレームワーク、音声アプリケーション、デバイスドライバ、ドライバレイヤ、またはLinuxカーネル自体など、動作上の問題が何であれ、それに技術力を適用することでした。このアプローチは最善のオープンソースでしたが、それはまた、観察者がプロジェクトを取り入れるには専用のハードウェアが必要だということを意味していました。実験的なカーネルがシステムにどのような影響を及ぼすか、まったくわからなかったからです。
私自身が直面した問題は、AGNULAプロジェクトが、Red Hatの役員でありユーザでもある私にとって、自然ではないディストリビューションとツールキットを支持したことでした。私は、彼らの下した決定について彼らを責めることはしませんが、それは、私がRed Hatでパッケージングおよびテストされた他のプロジェクトのようにAGNULAプロジェクトをウォッチすることは非常に難しいことを意味していました。
そこで、私はAGNULAプロジェクトについては遠くから眺め、他の音声アプリケーションが根付いて花開くのを注視することにしました。それらの1つがRosegardenでした。これは、Linux以前のUNIXベースのシーケンサですが、Linuxの音声コミュニティの急速な成長によってきわめて大きな恩恵を受けました。AGNULAを紹介した同じ記事では、Rosegardenの画面例が主なものとして掲載され、次のように紹介されていました。
Rosegardenは、音声の表示・編集機能を備えたMIDI/音声シーケンサです。バージョン4(編集者注:現在は4-1.2.3)は、おそらくCubase for Linuxに最も近いネイティブの相当機能であり、2年間の活発な開発のあと、最近になってベータとしてリリースされました。
Cubaseはユーザの中にきわめて熱心な支持者がいるため、SteinbergのCubaseとの比較は非常に高い賞賛のつもりで書かれています。記事は次のように続きます。
ソフトウェア技術者でミュージシャンでもあるRichard Bown氏はロンドン出身で、Rosegardenプロジェクトの主要な開発者の1人です。彼は、この7年間、Rosegardenに取り組んでいますが、最近まで音楽の録音や製作にWindowsまたはMacを使用する必要がありました。前回のアルバムを作成しているときに、Richardは、そのうちRosegardenを使ってLinux上で同じことができないかと考えていましたが、今ではできると確信しています。
さて、今やこうした予測がなされてから約3年後ですが、うれしいことに2006年現在、FC5搭載ノートPCで何か作品を作り、自分のために実演するのは、まったくたやすいことです。
そして、それはタイムリーでもあります。AppleがPowerPCプロセッサを断念してIntelに切り替えると発表したとき、私はこれによって何千人もの音楽製作の専門家が、音声録音、ミキシング、およびマスタリング用のハードウェアプラットフォームを見直すことになるとわかりました。音声関係の専門的なニュースグループで、ますます多くの人々がLinuxについて議論し始めました。今年の初めにポルトアレグレで開かれたFISL 7に出席したとき、私は(FSF欧州の)Georg Greve氏に出くわし、AGNULAとその進捗状況、そしてFedoraをフリー音声ソフトウェアの一流プラットフォームにする展望について議論しました。しかし、我々が臨界点に達していることが本当にわかったのは、Greg De Koenigsberg氏に会ったときでした。彼は、我々がラーレーに設立しようとしている新しいポッドキャスティングスタジオ用に購入するマイクロフォンを決めようと、大手通販会社のオーディオ製品カタログをめくっていました。彼は、Rosegardenや他の音声ソフトウェア用にyumベースのリポジトリがあると言いました。私は自分で試してみる気になりました。
Planet CCRMAのインストール
最初にアクセスすべき場所は、Rosegardenのサイトそのもの、または、そこでFedoraユーザが指示される最初の場所であるPlanet CCRMA(cc:Karmaと発音)です。Planet CCRMAは基本的に、音声アプリケーション、およびそれらのアプリケーション自体のRPMパッケージを実行するために必要とされる、フォークした低遅延カーネルのホームとなっています。FC5までは、これらのカーネルとパッケージは気弱な人向きではありませんでした。しかし、FC5によって、また多数の優れた統合作業が6月初めに完了した結果、Linux上の音声は、メインストリーム機能になる準備ができたようです。
FC5へのインストール手順はこちらに掲載されており、こんな安心のコメントもついています。「Planet CCRMAのインストールは簡単です。」
Planet CCRMAのページに掲載されている手順は次のとおりです。
- FC5をインストールします。
- Planet CCRMAのGPG署名鍵をインストールします。
- Planet CCRMAリポジトリを含むようにYumを設定します。
- リポジトリと同期させます。
- 遅延(レイテンシ)の低いカーネルをインストールします(以前ほど危険ではありません)。
- リブートし、すべて正常であることを確認します。
- サウンドカードを設定します(私のT41 Thinkpadでは自動的に行われます)。
- FC5を最新版へアップデートします。
- システムをチューニングします(私はまだ行っていませんが、必要なら将来行います)。
- いくつかのアプリケーションをインストールします。yum install qjackctl fluidsyth fluid-soundfont qsynth rosegarden4で、この作業を行います。これらのアプリケーションのリポジトリビューは、こちらに掲載されていますが、私はこのロケーションへの「Applications/Multimedia」リンクに従う方を好んでいます。
- メインGNOMEメニューバーからSystem -> Preferences -> Volumeコントロールを使用して、ボリュームを調節します(PCM Playbackが有効になっていることを確認してください)。(注意:私のようにIBM T41 Thinkpadを使用している場合は、キーボードの左上にあるオーディオホットキーを使用して、音声がミュートまたは過剰/不足増幅されていないことを確認することも必要かもしれません。音声のミュートに2つのまったく異なる独立したメカニズムがあり、互いに認識できないというのは驚くほかありませんが、それが現状です。)
音声アプリケーションの使用
これで演奏の準備ができました。MIDIを再生するには、MIDIファイルが必要です。ここではこれを使用しますが、好きなものを使用できます。
ステップ1:
jackを起動します。jackとは、「jack audio connection kit」の頭字語です。jackサーバは、他のあらゆる音声アプリケーションの相互連絡を可能にするアプリケーションです。これを最初に起動するのはそのためです。次のように行います。
qjackctl -s &
デフォルトで起動していない場合は、緑色の「start」矢印をクリックすることによって、jackをアクティブにします。
Settingsで、私はサンプルレートを48000から44100へ変更することを好んでいます。48000の品質は44100より高くないのでしょうか?最終的にCDの音声を作成しようとしている場合は、44100ですべての作業を行うと、プロセスのあとの方でサンプル変換エラーを防ぐことができます。また、消費するCPUパワーやディスクスペースなども少なくて済みます。DVD配布のコンテンツを作成している場合は、48000のままにしてください。しかし、CDが目的なら、(ネイティブレートが44.1 Kの2倍の88.2 Kでないかぎり)時間を無駄にして、非ネイティブのサンプルレートで混乱することはありません。
ステップ2:
qsynth経由でfluidsynthを起動します。qsynthは、受信したmidiデータに基づいてトーンを生成するシンセサイザアプリケーションです。fluidsynthサウンドフォントは、それらのトーンがどのように聞こえるかを決定します。次のようにqsynthを起動します。
qsynth -r 44100 &
「Setup」ボタンをクリックします。MIDIタブで、「ALSA Sequencer Client ID」を「pid」から「Qsynth1」へ変更します。Soundfontsタブで、fluidsynthサウンドフォントをロードします。デフォルトでは、/usr/share/soundfonts/FluidR3_GM.SF2としてインストールされます。そのファイルをオープンします。
ステップ3:
シーケンサを起動し、MIDIファイルを再生します。これで、rosegardenを起動する準備ができました。次のように行います。
rosegarden &
次に、Manage MIDI Devicesをオープンし、「General MIDI Device」が「Synth input port (Qsynth1:0)」に接続されていることを確認します。接続番号はNNN:0であることが必要です(NNNは128~255の番号)。
最後に、File->Importを使用してMIDIファイルをインポートし、「Play」ボタンを押すと、Rosegardenが動作します。qsynthでレンダリングされた音楽がスピーカーから聞こえるはずです。
ステップ4:
音声ファイル作成のためにJackを接続します。次に、作業内容を確認するために、softsythの出力を録音しましょう。これによって、実際の音声ファイルを作成できます。それらのファイルは、oggフォーマットにエンコードして好きな携帯型メディアプレーヤーへアップロードし、ノートPCの充電中に楽しむことができます。
Jackウィンドウで、Connectボタンを押してConnectionsウィンドウをオープンします。qsynthの「left」出力をrosegardenの「record in 1 L」入力に接続します。同様に、qsynthの「right」出力をrosegardenの「record in 1 R」入力に接続します。出力と入力を選択してから「Connect」ボタンを押すことによって、接続が作成されます(Shiftボタンをクリックする必要はありません)。
ステップ5:
MIDIをレンダリングし、音声ファイルを作成します。このステップで、実際の音声ファイルを作成します。rosegardenで次の作業を行います。
- Tracks -> Add Trackを行ってトラックを追加します。
- RMB -> Audioを使用してそのトラックを音声トラックに変更してから、いずれかの音声トラック(「audio #1」など)を選択します。
- そのトラックをラベルします。ラベルをダブルクリックし、適当なトラック名で上書きします。
- rosegardenでは、音声トラックを音声ファイルに関連付ける必要があります。Composition->Edit Document Propertiesを使用して、Audioタブを選択し、音声パスを選択します。すべての音声ファイルがこのディレクトリに保存されます。
- 音声トラック名の隣にあるLEDをクリックします。録音の準備ができると、それが赤色に変わります。選択したディレクトリが存在しない場合、rosegardenは、この問題が修正されるまで録音できません。
- 次に、rosegardenの大きな赤色の録音ボタンを押します(再生と録音を同時に押す必要はありません)。音声トラックは赤色に変わり、音楽が再生されるとともに拡大します。十分に録音したら、停止を押します。音声トラックは緑色に変わり、レンダリングされた音の波形が表示されます。
レベルに問題がなければ、見事な鋭い波形が表示されます。黒い矩形のようなものが表示される場合は、レベルが高すぎてテンポが早く、聞きづらい音になります。レベルが低すぎると、音声ファイルの端に近づく波形はまったく表示されません。この場合、音声の品質も影響を受けますが、その影響は特に16ビット/サンプルで大きく、24ビットおよび32ビットサンプルではそれほどでもありません。ステップ4を忘れた場合は、水平の直線が表示されるだけです。これは、無音がデジタル録音されていることを示します。
しかし、これは手始めにすぎません。マイクロフォンを接続し、サンプリングを行うことができます。キーボードを接続し、独自のMIDIファイルを作成できます。外付けの音声デバイス(Buchla 200eなど)を接続し、独自のアナログの世界を創り出すことができます。さらに、プラグインや効果を追加することもできます。
バグと制限事項
fluidsynth-dssiパッケージは有望ですが、そのインターフェイスには単純な修正がいくつか必要です。ソフトウェアシンセサイザは、音声ライブラリの場所がわかっている必要があります。qsynthでは、ディレクトリ名をファイル名として受け取ると、その後はそのディレクトリからプロンプトを表示する正しいファイル選択ダイアログボックスが使用されています。したがって、/usr/share/soundfonts/を入力し、それから必要なSF2ファイルを選択することは容易です。dssiプラグインでは、次のような面倒な方法でファイルを見つける必要があるファイルセレクタウィジェットが使用されています。まずrootへ上がってから、user、share、soundfontsへと順次下がり(私の/usr/shareには238個ものエントリがあるので、これは大変です)、それからようやくSF2ファイルにたどり着きます。すべてのパスを手作業で入力することもできますが、16トラックのGeneral MIDIファイルでは、16倍多くのキー入力が必要です。さらに不都合なことに、dssiプラグインは、MIDIプログラムの変更イベントに反応しません。したがって、16トラックのそれぞれについて、必要なプログラムファイルを手動で選択する必要があります。パッチ情報はすでにMIDIファイルに組み込まれているというのに、マウスで256×16回の選択を行うというのはとんでもない話です。これは、修正すべきプログラミング問題の1つにすぎないと確信しています。
また、fluidsynthがメモリ管理に関してあまり洗練されていないことにも注意が必要です。使用しているパッチが1個でも16個(MIDIの通常の最大値)でも、サウンドフォント全体がメモリにロードされます。これは、ノートPCでRAMが512 MBに限られている場合は問題です。qsynthは、デフォルトのサウンドフォントをロードしただけで、優に200 MBを超えるRAMを消費します。誰かこれを「ロードオンデマンド」にできないものでしょうか。
「あると便利なもの」について議論しているのですが、これらのアプリケーションを任意の順序で起動し、サーバとクライアントがすべて立ち所に互いを検出することも可能なはずです。しかし、少なくとも現状では、そのようには動作しません。そうではなく、まずjackを起動し、それからqsynth、さらにそのあとrosegardenを起動する必要があります。これによって、正しい接続が正しい順序と正しいデフォルト値で(おおむね)確立されます。jackを起動したときにrosegardenが実行中であることが検知され、同期化されるのであればスマートです。これは、プラグインが関係する場合はより重要になると思われます。私がMacintoshプラットフォームで使い慣れているプログラムは、起動時に検出プロセスを実行し、すべての可能なプラグインを事前に登録します。そのため、それらはメインのシーケンサアプリケーション内から起動および管理できます。Rosegardenに関するかぎり、使用するものが事前にわかっていて、それが実行されている必要があります。そうでなければ検出できません。もちろん、Rosegardenを使用すれば作業を節約できます。おそらく仕事に戻ったときに物事は楽になります。しかし、すべてが最初から単純に機能したなら、なおすばらしいはずです。
最後に、「ワークステーション」とは、「できるかぎり広い画面が有利である(benefits from as much screen real estate as you can afford)」という意味の婉曲語であることを忘れてはいけません。私の1024×768のノートPCでは、実に窮屈な思いをしています。しかし、この気の利いたソフトウェアを問題なく容易に機能させることは、ハードウェアを1280×1024以上へアップグレードすることを検討する強力な動機になります。
執筆者について
Michael Tiemannが初めてコンピュータで音楽を経験したのは1974年でした。その年、彼の父親が紙テープにエンコードされた『The Flight of the Bumblebee』を持って帰り、4 K BASICを実行するIMSAI 8080コンピュータで再生したのです。また、その年には、彼の家族がMoogシンセサイザでレンダリングされたクラシック音楽と現代音楽の独創的なアルバムである『The Copper Plated Integrated Circuit』のコピーを持ってきました。その後、Michaelは8年間クラシックギターを習い、彼がCygnus Supportを設立して、E-mu SystemsがGNUProの顧客になるまで、音楽とコンピュータの関係についてはほとんど忘れていました。彼は、欧州でフリーソフトウェアの普及に努めながら、すべてを吸収するだけの目的で、あらゆる種類の音楽の道具を購入し始めました。しかしながら彼は、AGNULAプロジェクトの話に巡り会う2002年まで、またまた音楽を忘れていました。Michaelは、KorgやMidasのような企業が、それぞれの主力製品の基盤としてLinuxを利用しているのを見て非常に満足しています。そして、他のコードやコンテンツと同じくらいフリーに、音楽のコードとコンテンツを共有できる日を楽しみにしています。