[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でインストールします。

<span style="color: #ee7621;"># </span><span style="color: #cd661d;">&#12452;&#12531;&#12473;&#12488;&#12540;&#12523;
</span>% brew install switchaudio-osx
==&gt; Downloading <a href="https://homebrew.bintray.com/bottles/switchaudio-osx-1.0.0.el_capitan.bottle.1.tar.gz">https://homebrew.bintray.com/bottles/switchaudio-osx-1.0.0.el_capitan.bottle.1.tar.gz</a>
<span style="color: #ee7621;">######################################################################## </span><span style="color: #cd661d;">100.0%
</span>==&gt; Pouring switchaudio-osx-1.0.0.el_capitan.bottle.1.tar.gz
&#127866;  /usr/local/Cellar/switchaudio-osx/1.0.0: 7 files, 73.5K

<span style="color: #ee7621;"># </span><span style="color: #cd661d;">&#12452;&#12531;&#12473;&#12488;&#12540;&#12523;&#20808;&#30906;&#35469;
</span>% which SwitchAudioSource
/usr/local/bin/SwitchAudioSource

<span style="color: #ee7621;"># </span><span style="color: #cd661d;">&#12467;&#12510;&#12531;&#12489;&#19968;&#35239;
</span>% 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に繋がっているオーディオデバイスが表示されます。

<span style="color: #ee7621;"># </span><span style="color: #cd661d;">&#12487;&#12496;&#12452;&#12473;&#30906;&#35469;
</span>% 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 オプションでデバイス名を指定する際、デバイス名に空白が含まれる時はエスケープするか、全体をダブルクウォートで括るなどします。この辺は一般的な他のコマンドの動作と同様です。

<span style="color: #ee7621;"># </span><span style="color: #cd661d;">&#29694;&#22312;&#12398;&#20986;&#21147;&#20808;
</span>% SwitchAudioSource -c
HDMI

<span style="color: #ee7621;"># </span><span style="color: #cd661d;">&#29694;&#22312;&#12398;&#20837;&#21147;&#20803;
</span>% SwitchAudioSource -c -t input
Sound Blaster X_Fi Go_ Pro

<span style="color: #ee7621;"># </span><span style="color: #cd661d;">&#29694;&#22312;&#12398;&#20986;&#21147;&#20808; &#12458;&#12503;&#12471;&#12519;&#12531;&#26126;&#31034;
</span>% SwitchAudioSource -c -t output
HDMI

<span style="color: #ee7621;"># </span><span style="color: #cd661d;">&#20986;&#21147;&#20808;&#12398;&#20999;&#12426;&#26367;&#12360;
</span>% SwitchAudioSource -t output -s <span style="color: #ffa07a;">"Sound Blaster X_Fi Go_ Pro"</span>
output audio device set to <span style="color: #ffa07a;">"Sound Blaster X_Fi Go_ Pro"</span>

<span style="color: #ee7621;"># </span><span style="color: #cd661d;">&#30906;&#35469; HDMI -&gt; Sound Blaster&#12395;&#22793;&#26356;&#12373;&#12428;&#12383;&#12290;
</span>% SwitchAudioSource -c -t output
Sound Blaster X_Fi Go_ Pro
</div>
</div>

<div id="outline-container-org3ae3c75" class="outline-3">
<h3 id="org3ae3c75">エイリアスを貼る</h3>
<div class="outline-text-3" id="text-org3ae3c75">
<p> SwitchAudioSourceは結構長いコマンドですのでエイリアスを作ります。選択するデバイス名はいつも同じですし。今回は swHDMIでスピーカ―、swHeadPhoneでヘッドフォン、swCheckで設定確認としています。エイリアスなので名称はご自由に。<br  /> </p>

<pre class="coding" style="color: #00ff00; background-color: #1f1f1f;">
<span style="color: #ee7621;"># </span><span style="color: #cd661d;">&#12456;&#12452;&#12522;&#12450;&#12473;&#20316;&#25104;
</span>% alias <span style="color: #eedd82;">swHDMI</span>=<span style="color: #ffa07a;">"SwitchAudioSource -t output -s HDMI"</span>
% alias <span style="color: #eedd82;">swHeadPhone</span>=<span style="color: #ffa07a;">"SwitchAudioSource -t output -s \"Sound Blaster X_Fi Go_ Pro\""</span>
% alias <span style="color: #eedd82;">swCheck</span>=<span style="color: #ffa07a;">"SwitchAudioSource -c"</span>