Mac OS X の仮想オーディオデバイス Soundflower と Audacity を使って録音をしてみました。少し手間どったのでメモを残しておきます。
動機
音声の再生はできるのだけど保存できないアプリケーションの音源を保存したいとか、ラジオみたいなストリーミング音源の録音がしたいという時に、Soundflower を利用して録音することができます。Soundflower 自体は「仮想オーディオデバイス」という名前の通り、Mac OS X の音声入出力デバイスに仮想デバイスを追加するだけのものです。しかしこれを使うと、アプリケーションが再生する音声を Soundflower の仮想デバイスへ出力して、それをそのまま入力として受け取ること(ループバック)ができるので、入力デバイスを録音できるアプリケーションを使えば再生される音声を録音することができます。
使ったもの、環境
- Soundflower (1.4.3) http://code.google.com/p/soundflower/
- Audacity (1.3.7) http://audacity.sourceforge.net/
- Mac OS X 10.5.7
Audacity はわたしはベータ版を利用していますが、ただ録音するだけなら安定版でも問題ないと思います。ちょっとメニューの構成などが違うかもしれません。またオーディオ入力を録音できて、入力デバイスを選択できるアプリケーションなら何でもいいはずです。標準で付属している GarageBand でも録音できるみたいです。
また Mac OS X のバージョンによっては後述する Audio MIDI 設定 のアプリケーション名や画面が違うようなのですが、ここでは Leopard で画面をキャプチャしてます。
Soundflower の準備
インストールすると、「アプリケーション」内の「Soundflower」というディレクトリに「Soundflowerbed.app」というアプリケーションがインストールされます。これを起動してみると、ウィンドウは開かれず、上部のメニューバーにアイコンが出てきます。
このデイジーの花のようなアイコンです。とりあえずこれをクリック。
そうすると音声出力のリダイレクトの設定ができるようになっています。今回はステレオ(2 channel)のデバイスを使用するので、Soundflower(2ch) のチェックが「None(OFF)」になっていたら「Built-in Output」に変更しておきます。
実はこの設定は録音するためには必須ではなくて、この後のデフォルトのオーディオデバイスの設定をするだけでもよいのですが、このリダイレクト設定をしておかないと、音声が Soundflower の仮想デバイスにだけ流れていくので、スピーカやヘッドフォン等の通常のデバイスから音声が出力されなくなります。録音中に音声を確認できないと不便な場合が多いと思うので、リダイレクトするようにしておきます。
またこのメニューからバッファサイズの設定もできます。わたしはデフォルトの設定で大丈夫でしたが、マシンの性能によってバッファを多めにしないと音が途切れたりするかもしれません。
次にやはりSoundflowerのアイコンの「Audio Setup...」というメニューから「Audio MIDI 設定」を起動します。これは「アプリケーション」内の「ユーティリティ」の中にあるので直接そちらを起動してもOKです。
「オーディオ装置」のタブで、「デフォルトの出力」に「Soundflower(2ch)」を選択します。
キャプチャ画面では「デフォルトの入力」も「Soundflower(2ch)」を選択していますが、これは不要、というより Audacity の場合は無駄でした。後述するようにアプリケーション側で入力するデバイスを選択する必要があります。
Audacity の準備
Audacity を起動してメニューバーの「Audacity -> Preference」で設定画面を開きます。
「オーディオ I/O」タブの「レコーディング」「デバイス」のところで「Core Audio: Soundflower (2ch)」を選択します。これで Audacity は Soundflower がループバックする音声を録音できるようになります。「OK」ボタンを押して設定画面を閉じます。
録音開始
Audacity の画面左上のコントロールボタンの一番右の赤い丸のマークのボタンが録音ボタンです。これを押すと録音が開始されます。
後は録音したい音源の再生を開始しましょう。リダイレクトの設定がされていればスピーカやヘッドフォンからも音声が聴けるはずです。
録音を終了するには四角いマークの停止ボタンを押します。
編集、保存
あとは録音した音声をファイルに保存するだけです。
Audacity は音声データを切り貼りしたり、フィルタをかけたりすることもできるので必要なら編集します。このへんの詳しい使い方は省きます。
保存するにはメニューバーから「ファイル -> 書き出し」で好きなファイル形式を選択して保存します。mp3形式で保存するには、別途コーデックのインストールが必要が場合がありますから事前にチェックしておくといいでしょう。もしすぐに書き出しできなくても、Audacityのプロジェクトファイルという形式で保存しておけば後で開いて改めて書き出しを行なうこともできます。まあ WAV 形式でも劣化はないはずなのでいいですけど。
まとめ、注意
Soundflower とオーディオ入力の録音ができるアプリケーションを利用して、Mac OS X 上で再生される音源を録音することができました。
今回は録音する方法のみ解説しましたが、Soundflowerの入力側を繋げるアプリケーションによっては別の用途もありそうです。Skype 経由で通話相手に音声を流すなどということもできるみたいです。
また Soundflower の 16-channel のデバイスを利用すると、ぐるぐるとループバックを繰り返しつつフィルタをかけるみたいなこともできそうです。できたら今度試してみたいと思います。
なおストリーミングでしか聴くことができないデータには、著作権上の問題からそういった形式での公開が選択されている場合もあるかと思います。いずれにせよ、著作物にあたる音声を録音する行為は複製にあたりますので、私的利用の範疇で利用するようにしていただきたいと思います。