Macの音量調節

iMacで純正キーボードを使わずに東プレの Realforce 86U という生産終了したUSBキーボードを繋いで使っているわけですが、これだとmacOS標準の機能ではファンクションキーで輝度を変えたり音量を変えたりすることが出来ないのです。

Karabiner-Elementというフリーソフトをインストールすれば自由自在にキー割り当てを変えられるのですが、それだとRocksmithというゲームと相性が悪くて曲検索とかでキー入力がほぼできなくなる問題が起きます。

私ゃ、Rocksmithを遊びながら尚且つキーボード操作でゲームの音量を調節したいんですよ…

ということで、macOS標準の機能だけでどうにかならないのかと、Automatorで音量調節するサービスを作ってそれをキーボードショートカットに割り当てるという方法を試してみました。

まぁ結果的には、Rocksmithが最前面で実行中はMacのキーボード制御を一時的に奪っているらしく、ゲーム中に音量を変えることはできませんでした(汗)。一旦Command+TabでFinderとかに切り替えて割り当てたショートカットキーを押してまたRocksmithに戻せば変えられるが、いや、自分がやりたいのはそう言うことではない。

もうこうなったら、キー割り付けをカスタマイズできる小さいUSBキーボードとかを買ってiMacに追加接続するか…

…さて。別のことに使えるかもしれないので備忘録として、設定方法を残しておきます。


Apple Script をキーボードショートカットから呼び出す

Automatorを起動して、ファイルメニューの新規からまっさらなクイックアクションを開きます。

Apple Scriptを挿入します。この時「ワークフローが受け取る項目」を「入力なし」に変更しておくのが重要です。ここではミュートとミュート解除を交互に行うスクリプトを入力しています。

わかりやすい名前で保存します。なお、クイックアクションが保存される先は「~/Library/Services」の下になっている模様。

音量を上げるクイックアクションと音量を下げるクイックアクションも作ります。

システム環境設定のキーボードを開いて、ショートカットのサービスの欄に現れたクイックアクションに適当なファンクションキーを割り当てます。ここでは「Print Screen (F13)」にミュート、「Scroll Lock (F14)」に音量ダウン、「Pause (F15)」に音量アップを割り当てます。

以下、Apple Scriptの詳細。

消音または消音解除

on run {input, parameters}
set muted to (output muted of (get volume settings))
if (muted = true) then
set volume without output muted
else
set volume with output muted
end if
do shell script "afplay /System/Library/LoginPlugins/BezelServices.loginPlugin/Contents/Resources/volume.aiff"
end run

音量を上げる

on run {input, parameters}
set muted to (output muted of (get volume settings))
if (muted = true) then
set volume without output muted
end if
set steps to 16
set step to (100 / steps)
set current to ((output volume of (get volume settings)) / step)
if current < steps then
set new to current + 1
else
set new to steps
end if
set volume output volume (new * step)
do shell script "afplay /System/Library/LoginPlugins/BezelServices.loginPlugin/Contents/Resources/volume.aiff"
end run

音量を下げる

on run {input, parameters}
set muted to (output muted of (get volume settings))
if (muted = true) then
set volume without output muted
end if
set steps to 16
set step to (100 / steps)
set current to ((output volume of (get volume settings)) / step)
if current > 0 then
set new to current - 1
else
set new to 0
end if
set volume output volume (new * step)
do shell script "afplay /System/Library/LoginPlugins/BezelServices.loginPlugin/Contents/Resources/volume.aiff"
end run

上記スクリプトの do shell script “afplay 〜.aiff” の行があると、キーボードショートカットの呼び出し〜実行完了までに時間がかかってるかもしれない。

以上です。

Xcode機能拡張アプリを更新

最初のリリースから数年放置していた Xcode 機能拡張アプリ、気がつくと各国のユーザー様からダウンロードしたが動かないという声を多数いただいていたので、このゴールデンウィークにステイホームしすぎて暇になったので重い腰を上げて、最新のXcodeで動くように改修して配信しました。

いずれも無料アプリです。

AppleのSDK、新しい版が出るたびにインターフェースやら振る舞いやら必要な環境設定やらがドキュメントに記載なくちょいちょい変わっていて、これに追従していくのは何らかの報酬を得てるとかマニアとか変態(いい意味で!)とかでないと、中々できるものではない。

Guitar Rig 6 と macOS Big Sur

無料で楽しめる凄いギターアンプシミュレータ Guitar Rig 6 Player を macOS Big Sur にインストールしてみたところ、Mac とギターを繋いでいるケーブルがそのままの状態では認識しなかった。

このケーブルは Rocksmith Real Tone Cable という音楽ゲーム Rocksmith の付属品で、アナログオーディオから USB へ変換する機能が備わっているギター用のシールドケーブルです。ちなみにこれを Mac に繋ぐと Rocksmith USB Guitar Adapter という名前で認識します。普段 Rocksmith 2014 を遊んだり GrageBand や AmpliTube4 の音を鳴らしたりしている、信頼と実績のケーブルです。

次の手順で macOS Big Sur 上の Guitar Rig 6 Player でケーブルを認識させることができました。他のオーディ入力機器でも同じように設定すれば、もしかしたら認識できるかもしれません。

  1. Audio MIDI 設定を開く (アプリケーション/ユーティリティ フォルダの中にある)
  2. 左下の「+」から「機器セットを作成」を選択する
  3. 空の機器セットが適当な名前で作られるので、わかりやすい名前に変更しておく
  4. 作られた機器セットを選択して、「内蔵出力」と「Rocksmith USB Guitar Adapter」の「使用」をチェック
  5. Guitar Rig 6 Player を起動する
  6. 製品名の右横の「…」から「File/Preferences」を選ぶか、⌘と, を押して設定ウィンドウを表示する
  7. 「Audio」カテゴリの「Device」が「Built-in」になっていると思うので、クリックしてわかりやすい名前に変えておいた機器セットを選択する

以上です。

そういえば、 Steam の Mac 用 Rocksmith 2014 が Big Sur で当初は動かなかったんだけど最近アップデートされたようで、一度アンインストールしてから再度インストールしたら(マイクのプライバシー設定が何か影響してる)動くようになってとても嬉しい。

更新停滞の極み

近年、全くブログを更新できておりません…
そして、ツイッターすらもあまり呟いておりません…
(ぶっちゃけ、他にも色々と興味のあることに時間を割いているんで、こちらは面倒臭くて放置してるっていう)

あるじの死活確認ツールにさえ、その用をなしてはおりませんがその旨あらかじめご了承くださいませ(冷汗)。

まぁ、私に何かあると収入が途絶えてゆくゆくは銀行口座が封鎖されてVPSの提供元への支払いが止まってアカウント停止になってこのサイトへのアクセスも遮断されることになるんだろうなとは思いますが、今はバリバリ生きておりますよ。ヒーハー!

謹賀新年2018

明けましておめでとうございます。

ブログがほぼ完全に放置状態ですが、ぼちぼちとやっていきたいと思っております。よろしくお願いいたします。