ゲーム開発
Unity
UnrealEngine
C++
Blender
ゲーム数学
ゲームAI
グラフィックス
サウンド
アニメーション
GBDK
制作日記
IT関連
ツール開発
フロントエンド関連
サーバサイド関連
WordPress関連
ソフトウェア設計
おすすめ技術書
音楽
DTM
楽器・機材
ピアノ
ラーメン日記
四コマ漫画
その他
おすすめアイテム
おもしろコラム
  • ゲーム開発
    • Unity
    • UnrealEngine
    • C++
    • Blender
    • ゲーム数学
    • ゲームAI
    • グラフィックス
    • サウンド
    • アニメーション
    • GBDK
    • 制作日記
  • IT関連
    • ツール開発
    • フロントエンド関連
    • サーバサイド関連
    • WordPress関連
    • ソフトウェア設計
    • おすすめ技術書
  • 音楽
    • DTM
    • 楽器・機材
    • ピアノ
  • ラーメン日記
    • 四コマ漫画
      • その他
        • おすすめアイテム
        • おもしろコラム
      1. ホーム
      2. 20201028_01

      【switchaudio-osx】shellコマンドでオーディオ出力を切り替える【Mac】

      ツール開発shell自動化switchaudio-osx
      2020-10-29


      カタカタカタ・・・

      マイケル
      マイケル
      〜〜〜〜♪♪

      ヘッドホン「〜〜〜♪♪」

      エレキベア
      エレキベア
      今日もヘッドホン付けて作業クマか
      マイケル
      マイケル
      ・・・ん???
      エレキベア
      エレキベア
      腹立つクマね〜〜〜
      聞こえてなかったクマか
      マイケル
      マイケル
      ごめんごめん!
      スピーカーに変えるかな〜・・・。
      \ポチッ/
      \ポチッ/

      アレクサ「〜〜〜♪♪」

      エレキベア
      エレキベア
      ・・・。
      マイケル
      マイケル
      これ毎回変えるのめんどくさいよね〜〜〜
      エレキベア
      エレキベア
      自動化するクマ
      マイケル
      マイケル
      ???
      エレキベア
      エレキベア
      自動化するクマ!!!
      マイケル
      マイケル
      うお!びっくりした!!
      自動化好きなクマだな〜〜〜〜〜
      エレキベア
      エレキベア
      めんどくさいことは全て自動化するクマよ
      マイケル
      マイケル
      でも確かにこのめんどくささはどうにかしたいかも・・・!
      いっちょやったるか!!
      エレキベア
      エレキベア
      やったるクマ〜〜〜!!

      shellコマンドでの切替

      マイケル
      マイケル
      というわけで調べてみたところ、
      MACでは「switchaudio-osx」を使うことで
      簡単にオーディオ出力を変更できることがわかりました!
      マイケル
      マイケル
      これを使えばわざわざシステム環境設定を開かなくても
      出力を変えることができるかもしれません!
      エレキベア
      エレキベア
      これでイライラせずにすむクマ〜〜〜〜
      マイケル
      マイケル
      さっそく使ってみよう!!
      エレキベア
      エレキベア
      やったるクマ!!

      switchaudio-osx のインストール

      マイケル
      マイケル
      まずはbrewコマンドで「switchaudio-osx」をインストールします!
      brew install switchaudio-osx
      エレキベア
      エレキベア
      簡単1コマンドクマ〜〜〜〜

      switchaudio-osx の使い方

      マイケル
      マイケル
      switchaudio-osx の使い方は下記になります!
      ・リスト取得コマンド
      SwitchAudioSource -a
      ・接続コマンド
      SwitchAudioSource -t output -s "【接続デバイス名】"
      マイケル
      マイケル
      まずは出力可能なデバイスのリストを確認して・・・
      マイケル
      マイケル
      接続したいデバイスを記述!
      マイケル
      マイケル
      こんな感じで出力を切り替えることができます!
      エレキベア
      エレキベア
      これは期待通りのコマンドクマね

      スクリプトの作成

      マイケル
      マイケル
      このコマンドを使って、
      選択肢から数字で選んで切り替えるスクリプトを作成してみました!
      #!/bin/bash
      
      select output in "【接続デバイス名1】" "【接続デバイス名2】" "【接続デバイス名3】"
      do
        if [ -z "$output" ]; then
          echo "<-- No Device -->"
          break
        fi
        echo "<--Switch $output -->"
        SwitchAudioSource -t output -s "$output"
        echo "<-- Complete -->"
        break
      done
      
      # 終了待機
      sleep 3
      マイケル
      マイケル
      「【接続デバイス名】」のところは各自の環境に合わせて書き換えてくださいね!
      マイケル
      マイケル
      実行結果は以下になります!

      ↑接続したいデバイスが表示される

      ↑接続したいデバイスを選ぶと切り替わる
      エレキベア
      エレキベア
      これで少し使いやすくなったクマね
      マイケル
      マイケル
      いちいち環境設定開くよりはこっちのが気持ちは楽だね!

      ショートカットキーでの切替

      マイケル
      マイケル
      しかしもう一歩踏み込んで、
      ショートカットキーで切り替えれるようにしてみましょう!
      エレキベア
      エレキベア
      そんなことができるクマ?
      マイケル
      マイケル
      Macには標準で「Automator」というアプリが入っていて、
      シェルコマンドの実行などをサービスとして登録することができるんだ!
      マイケル
      マイケル
      Automatorで作ったサービスをショートカットキーに登録することで、
      いつでも呼び出すことができるというわけさ!
      エレキベア
      エレキベア
      なるほどクマ・・・!
      それはうまく使えば可能性は無限大クマね
      マイケル
      マイケル
      さっそく作ってみよう!!

      Automatorでのサービス作成

      マイケル
      マイケル
      まずはAutomatorでサービスを作りましょう!
      マイケル
      マイケル
      Automatorは「その他」の中から起動します。
      マイケル
      マイケル
      起動したら 新規作成 -> クイックアクション でサービスを作成します!
      マイケル
      マイケル
      ワークフローが受け取る項目: 入力なし
      を選択して、左側のアクションから シェルスクリプトを実行 を追加します!
      マイケル
      マイケル
      そして下記スクリプトを記述します!
      export PATH=$PATH:/usr/local/bin
      SwitchAudioSource -t output -s "【接続デバイス名】"
      エレキベア
      エレキベア
      オーディオ切り替えのスクリプトを登録しているクマね
      マイケル
      マイケル
      その通り!
      それとAutomatorのシェル実行では、インストールしたコマンドは読み込まれないため
      exportコマンドの記述も忘れないようにしましょう!
      エレキベア
      エレキベア
      承知クマ〜〜〜
      マイケル
      マイケル
      あとはこのサービスを保存して、
      切り替えたいデバイスの数だけサービスを作成しましょう!

      ショートカットキー登録

      マイケル
      マイケル
      サービスを作成したらあとはショートカットキーを登録するだけ!
      システム環境設定 -> キーボード -> ショートカット
      を開くと、先ほど登録したサービスが並んでいるはずです!
      マイケル
      マイケル
      上記のように登録したいショートカットキーに選択しましょう!
      エレキベア
      エレキベア
      できたクマ〜〜〜〜!!
      マイケル
      マイケル
      他のショートカットキーと被らないよう、
      なるべく複雑なキーを設定するといいでしょう
      エレキベア
      エレキベア
      あまり複雑なキーだと面倒だから悩みどころクマね

      おわりに


      ヘッドホン「〜〜♪♪」

      マイケル
      マイケル
      ポチッ

      アレクサ「〜〜〜♪♪」

      エレキベア
      エレキベア
      だいぶ楽になったクマね
      マイケル
      マイケル
      コマンド一つで変えれるのはいいね!
      自分で仕組みを作ったとなるとなおさら使ってみたくなるしね〜〜
      エレキベア
      エレキベア
      やはり自動化は最高クマ・・・
      マイケル
      マイケル
      (いつから自動化にハマったんだ・・・)
      マイケル
      マイケル
      とりあえず今日はこの辺で!
      アデュー!!!
      エレキベア
      エレキベア
      自動化クマ・・・・・。。

      【shell】ショートカットキーでオーディオ出力を切り替える【MAC】 〜完〜


      ツール開発shell自動化switchaudio-osx
      2020-10-29

      関連記事
      【Unity】Timeline × Excelでスライドショーを効率よく制作する
      2024-10-31
      【Node.js】廃止されたAmazonアソシエイト画像リンクをAmazon Product Advertising API経由で復活させる
      2024-01-08
      【Electron × Vue3】カテゴリ情報のCSVデータを操作するツールを作る
      2023-12-31
      【Electron × Vue3】画像をリサイズして任意の場所に保存するツールを作る
      2023-12-31
      【Electron × Vue3】Electron × Vue3 × TypeScript × Vite でツール開発環境を整える
      2023-12-31
      【Flutter3】Googleスプレッドシートと連携した英単語学習アプリを作る
      2022-12-11
      【Python】Pythonスクリプトをexe、app化する【cx_Breeze】
      2021-08-29
      【Python】Pillowを使ってピクセル操作!画像フィルタをかけてみる
      2021-02-17