[Mac] サウンド出力をコマンドラインで切り替える方法。

僕は普段はスピーカーから音声を出力させているのですが猫が静かに寝ている時などは音声出力をヘッドフォンにしたりします。Skypeで通話するときもスピーカーにしておくとハウリングしてしまうのでヘッドフォンに切り替えます。音楽を聞きたい時もヘッドフォンを使うことが多いです。というわけで結構ちょくちょくスピーカーにしたりヘッドフォンにしたりMacのサウンド出力を切り替えます。

しかしこれが結構面倒でMacのサウンド出力の切り替えは毎回システム環境設定を開く必要があります。さすがにちょっと面倒なのでコマンドで簡単に切り替える方法を紹介します。システム環境設定を開く手間が無くなるので地味に便利です。コマンドが大変な方はアプリを使う方法もあります。

通常の方法

Macで音声の出力先を変えるには [システム環境設定] - [サウンド] を開いて設定する必要があります。たまになら良いのですが頻繁だと面倒です。

mac-soundpref.gif

Alfredユーザーの方は

Alfredユーザーであれば多少手間を短縮可能です。ホットキーでAlfredの検索バーを表示させて「sound」の途中まで打ち込めば直接サウンドの環境設定画面を開くことができます。僕もしばらくこの方法を使っていました。

mac-soundpref-alfred.gif

アプリもあります

MacAppStoreに有料ですが音声入出力切り替えのアプリがありました。メニューバーで切り替えができる模様。

コマンドラインでパッと切り替え

上記の様にいくつか方法はありますが今回はコマンドラインで切り替える方法をご紹介します。設定してしまえばひとつコマンドを打つだけなので素早く変更できます。僕の場合は<f12>を押すと常時起動のiTermがバイザーで開くので、そこでswHまで打つと後はzshの補完で選択するだけです。

インストール方法

brew install switchaudio-osxでインストールします。

# インストール
% brew install switchaudio-osx
==> Downloading https://homebrew.bintray.com/bottles/switchaudio-osx-1.0.0.el_capitan.bottle.1.tar.gz
######################################################################## 100.0%
==> Pouring switchaudio-osx-1.0.0.el_capitan.bottle.1.tar.gz
🍺  /usr/local/Cellar/switchaudio-osx/1.0.0: 7 files, 73.5K

# インストール先確認
% which SwitchAudioSource
/usr/local/bin/SwitchAudioSource

# コマンド一覧
% SwitchAudioSource -h
Usage: /usr/local/Cellar/switchaudio-osx/1.0.0/SwitchAudioSource [-a] [-c] [-t type] [-n] -s device_name
-a             : shows all devices
-c             : shows current device
-t type        : device type (input/output/system).  Defaults to output.
-n             : cycles the audio device to the next one
-s device_name : sets the audio device to the given device by name

使い方

コマンド SwitchAudioSource を -a オプションを付けて実行するとMacに繋がっているオーディオデバイスが表示されます。

# デバイス確認
% SwitchAudioSource -a
Built-in Input (input)
Sound Blaster X_Fi Go_ Pro (input)
HD Pro Webcam C920 (input)
Built-in Output (output)
HDMI (output)
Sound Blaster X_Fi Go_ Pro (output)
USB Audio (output)

僕の環境ではHDMIがスピーカ出力、Sound Blaster X_Fi GO_Proがヘッドフォン出力になっています。普段使うのはこの2つのどちらかです。-c オプションで現在の設定確認、-s オプションで出力先を変更できます。-t を指定すれば入力デバイスの変更も可能です。

-s オプションでデバイス名を指定する際、デバイス名に空白が含まれる時はエスケープするか、全体をダブルクウォートで括るなどします。この辺は一般的な他のコマンドの動作と同様です。

# 現在の出力先
% SwitchAudioSource -c
HDMI

# 現在の入力元
% SwitchAudioSource -c -t input
Sound Blaster X_Fi Go_ Pro

# 現在の出力先 オプション明示
% SwitchAudioSource -c -t output
HDMI

# 出力先の切り替え
% SwitchAudioSource -t output -s "Sound Blaster X_Fi Go_ Pro"
output audio device set to "Sound Blaster X_Fi Go_ Pro"

# 確認 HDMI -> Sound Blasterに変更された。
% SwitchAudioSource -c -t output
Sound Blaster X_Fi Go_ Pro

エイリアスを貼る

SwitchAudioSourceは結構長いコマンドですのでエイリアスを作ります。選択するデバイス名はいつも同じですし。今回は swHDMIでスピーカ―、swHeadPhoneでヘッドフォン、swCheckで設定確認としています。エイリアスなので名称はご自由に。

# エイリアス作成
% alias swHDMI="SwitchAudioSource -t output -s HDMI"
% alias swHeadPhone="SwitchAudioSource -t output -s \"Sound Blaster X_Fi Go_ Pro\""
% alias swCheck="SwitchAudioSource -c"
スポンサーリンク
スポンサーリンク