Ubuntu Weekly Recipe

第170回 Ardourの実力(後編)デジタル・オーディオ・ワークステーション編

この記事を読むのに必要な時間:およそ 5.5 分

デジタル・オーディオ・ワークステーション・ソフトウェアとは

デジタル・オーディオ・ワークステーション(DAW)はかつて,音を記録しそれに何らかの処理を加えた上で出力する大規模な装置のことを指していました。その後,コンピュータ周りの技術が進展し,大規模なシステムを組まなければ実現できなかったようなことが,家庭用のコンピュータとサウンドデバイスを使って可能となりました。そのため,DAWが目的としていたことを実現するソフトウェアを,DAWソフトウェアと呼んでいます。

DAWソフトウェアは音を記録し,処理し,出力することを求められますが,それに加え他のソフトウェアやハードウェアと連携したり,プラグインによって新しい処理を追加したり,ハードウェアからコントロールできたりすることが,通常の録音ソフトウェアと異なる点です。

現在一般的に使われているDAWソフトウェアにおいて,このような機能はMIDI信号で実装されています。そこで今回は,ArdourのMIDI入出力機能を見てみましょう。

ArdourのMIDI入出力機能

ArdourのMIDI入出力は,本連載の第150回で紹介したALSAシーケンス機能を利用しています。現在どのようなポートがALSAシーケンス機能に開かれているか,QjackctlのConnectウィンドウで確認してみましょう。⁠ALSA」タブを開いてください。

図1 QjackctlのConnectウィンドウ。⁠ALSA」タブにArdourがポートを開いていることがわかる

図1 QjackctlのConnectウィンドウ

「control」⁠mcu」⁠seq」の3つのポートが開いていることがわかります。次にArdourの画面上で見てみましょう。ツールバーの項目「Window」から「Preferences」をクリックし,⁠Preferences」ウィンドウが開きます。⁠MIDI」タブを選択すると,現在開いているポートが表示されます。

図2 ArdourのMIDIポート設定画面

図2 ArdourのMIDIポート設定画面

この画面で,MIDIのポートそれぞれに割り当てる役割を指定することができます。役割には以下があります。

  • MTC:MIDI Time Code信号の受信/送信をします
  • MMC:MIDI Machine Control信号の受信/送信をします
  • MIDI Parameter Control:MIDIのコントロール・チェンジ信号の受信/送信をします

なお,前回説明したとおり,役割の中にはMIDIシーケンスがありません。

以降ではそれぞれの役割を紹介しながら,ソフトウェアやハードウェアとの同期や連携,ハードウェアからのコントロールについて詳しく説明します。

MTCによる同期

音楽ソフトウェア/ハードウェアは,その発音のタイミングを合わせることで使い道が広がります。

ハードウェアとの同期については,本連載の第149回第150回で説明したMIDI規格に定められている注1)⁠MIDI Time Code(MTC)が現在の主流です。ArdourをMTCマスターとし,他のソフトウェア/ハードウェアをMTCスレーブとする,あるいは他のソフトウェア/ハードウェアをMTCマスターとし,ArdourをMTCスレーブとすることで,MTC同期を実現することができます。この際、ALSAシーケンス機能がそれぞれを仲介します。

MTCは,SMPTEタイムコードとして知られるSMPTE 12M-1999のMIDI実装です。SMPTEは米国のSociety of Motion Picture and Television Engineersのことで,映像技術に関する標準化を行う業界団体です。12M-1999はタイムコードに関する規格で,時間を時/分/秒/フレームとして表現します。時間をテンポと分解能で管理するMIDIに対し,絶対的な時間表現であるSMPTEタイムコードを持ち込むことで音声技術と映像技術の仲立ちをし,より絶対的な時間管理を可能とするのがMTCです。

MTCはフレーム表現を持ちます。フレームというのは1秒間に何枚の静止画像を入れるかという指標ですが,詳細については別途映像技術関連の書籍を参照してください。Ardourでフレーム数を設定するには,ツールバーの項目「Options」から「Sync」⁠⁠Timecode fps」とだどります。

図3 ArdourのMTCフレーム設定

図3 ArdourのMTCフレーム設定

ArdourでMTCを利用するには,まず,ALSAシーケンス機能に開いているポートのどれでMTC信号をやりとりするかを決めておきます。今回はポート「seq」にしてみます。

先の「Preference」ウィンドウの「MIDI」タブで,ポート「seq」にMTCの役割を割り当てます。次にQjackctlの「Connect」ウィンドウでMTCのマスター,あるいはスレーブとなるソフトウェア/ハードウェアのMIDIポートに接続します。

図4 ConnectウィンドウでArdourのポート「seq」と,ハードウェア/ソフトウェアのポートを接続

図4 ConnectウィンドウでArdourのポート「seq」と,ハードウェア/ソフトウェアのポートを接続

ArdourをMTCスレーブとするには,トランスポート部分のタイムコード右のプルダウンリストから,⁠MTC」を選択します。

図5 ArdourをスレーブとしてMTCマスターに同期

図5 ArdourをスレーブとしてMTCマスターに同期

ArdourをMTCマスターとするにはツールバーの項目「Options」から「Sync」⁠⁠Send MTC」を選択して下さい。そして,トランスポート部分のタイムコード右のプルダウンリストから「Internal」あるいは「JACK」を選択します。こうすることで,外部にMTC信号を送信するようになります。

図6 ツールバーの項目「Options」から「Sync」とたどり,⁠Send MTC」を選択

図6 

図7 ArdourをMTCマスターとした状態。図ではInternalを選択している

図7 ArdourをMTCマスターとした状態

ここでポイントなのが,⁠Internal」を選択した場合はArdourが自分でタイムコードを管理しますが,⁠JACK」を選択した場合はJACKサーバのトランスポート機能にタイムコードを同期するようになることです。

注1
正確にはMTCは,MIDI規格を利用した推奨実装(Reccomended Practice)として定義されています。MTCは1987年のRP-004です。

著者プロフィール

坂本貴史(さかもとたかし)

Ubuntuのマルチメディア編集環境であるUbuntu Studioのユーザ。主にUbuntu日本コミュニティとUbuntu Studioコミュニティで活動。いつかユーザ同士で合作するのが夢。

コメント

コメントの記入