布団の中に持ち込んでいるスマートフォンやタブレット(いわゆる寝モバ)で聴くのもよいのですが、やはり贔屓目に見ても音が良くなかったりします。
(音量を相当絞りますので、これで十分という考え方も勿論アリだと思います)
今年は幸い改めて夏休みを取ることが出来、一定の時間を確保することが出来たため…
「寝室に放置されていた使われていないオーディオ機器でシステムを構築してみようではないか。あまりお金をかけずに!」
…と思い立ったわけです。
当初はAppleTV中心で組もうと思っていましたが…
寝室にて音を出すにあたり、寝落ちすること及び自動ON,自動OFFの実現を前提とし、無駄な電気代をかけないのシステムを組み上げるのが目標です。具体的には下記に示す連動プロセスの実現を目指すことになります。
■開始プロセス (操作者は曲を再生するだけ)
手動操作(タブレットにてアプリケーションを操作)
→連動して自動起動(音楽プレーヤー(DAP))
→連動して自動起動(DAC、アンプ)
■終了プロセス (基本的に操作者はなにもしなくて良い)
プレイリストの終了、または手動操作による停止
→連動して自動シャットダウン(音楽プレーヤー(DAP))
→連動して自動シャットダウン(DAC、アンプ)
家電に詳しい方が読まれていたら「HDMI CEC」っぽいことをシステムで組みたいんだね、と気づいてくれるかもしれません。要するにここ数年で発売されているAV機器には広く浸透している機器連動機能(メーカー毎に"~リンク"等の名前で呼ばれているもの)なのですが、およそ二十年前の古いAVアンプにそんな便利機能は当然実装されている筈もなく。
ちなみに手元にある機器は以下になります。
- タブレット(ASUS NEXUS7)
- AppleTV(第2世代)
- 電源連動TAP(サンワサプライ TAP-RE37MN)
- USB連動TAP(サンワサプライ TAP-RE8UN)
- AVアンプ(YAMAHA DSP-AX2400)
- スピーカー(DENON SC-T555SA)
- テレビ(東芝 REGZA)
というわけで試行錯誤してみました。
連動実験1
タブレットにてアプリケーションを操作
→AppleTVをスリープから自動起動
→電源連動TAPにてAppleTVの使用電流量上昇を検知
→AVアンプが自動起動
→音が出る
★結果:失敗
…原因はAppleTVの消費電力量があまりにも小さすぎて、電源連動TAPにて検知できませんでした。というか音楽再生や動画再生で2W~3Wってありえないでしょ!(汗)
もはやAppleTVがスリープモードを搭載している意味が判らない・・・。
次に、AppleTVの本体に存在していた謎のUSBポートにて連動を試みました。
連動実験2
タブレットにてアプリケーションを操作
→AppleTVをスリープから自動起動
→USB連動TAPにてAppleTVのUSBポートにおける使用電流量上昇を検知
→AVアンプが自動起動
→音が出る
★結果:失敗
…原因はAppleTVのUSBポートはホストではなくクライアント側であったため、USB連動TAPに検知させるための電流を流してくれませんでした…。昔、AppleTVをハックしてUSBポートに外付けディスクやキーボード等を接続していたギークがいたと記憶していたんですけどね。アレは何だったんだろう…。
連動実験3
タブレットにてアプリケーションを操作
→AppleTVをスリープから自動起動
REGZAを手動で起動
→電源連動TAPにてREGZAの使用電流量上昇を検知
→AVアンプが自動起動
→音が出る
★結果:微妙
…まぁ、目指していたシステムの30%程度が実現できた感じでしょうか。
ですが、微妙な点が満載です。
・テレビを手動でONにするという面倒臭さ
・再生が終了してから30分もAVアンプが起動しっぱなし
(AppleTVのスリープ(曲終了の15分後)をトリガーとした、REGZA側での連動スリープ(無信号状態の15分後)で合計30分)
・テレビ画面のバックライトが明るすぎて非常に煩わしい(寝室オーディオとしてはどうなのよ…と)
…まぁ、目指していたシステムの30%程度が実現できた感じでしょうか。
ですが、微妙な点が満載です。
・テレビを手動でONにするという面倒臭さ
・再生が終了してから30分もAVアンプが起動しっぱなし
(AppleTVのスリープ(曲終了の15分後)をトリガーとした、REGZA側での連動スリープ(無信号状態の15分後)で合計30分)
・テレビ画面のバックライトが明るすぎて非常に煩わしい(寝室オーディオとしてはどうなのよ…と)
もうこれならAVアンプを手動で起動してからスリープタイマーでもかけておいたほうが、余程実用的ではないか?という本末転倒感がありましたので、こいつもボツです。
…もう少し発展させるとどうなるだろう。また色々考えます。
要するにテレビを手動でONにするのではなく、HDMIから映像信号を流したときに自動起動してくれる機器があれば良いわけだ。そのような機器と言えば・・・。
おお、PCモニターがあるではないか!
連動実験4
タブレットにてアプリケーションを操作
→AppleTVをスリープから自動起動
→PCモニターが反応して点灯
→電源連動TAPにてPCモニターの使用電流量上昇を検知
→AVアンプが自動起動
→音が出る
★結果:微妙
…やはりこれから寝るためのリラックス状態を作り出すためにオーディオを利用しようとしているのに、目的を阻害するような煌々と照らしてくれるPCモニターは連動云々の前にナンセンスとしか言いようがないものでした。そもそも寝るときくらいはモニターの傍から離れたいってものです。なのでこれもボツ。
…やはりこれから寝るためのリラックス状態を作り出すためにオーディオを利用しようとしているのに、目的を阻害するような煌々と照らしてくれるPCモニターは連動云々の前にナンセンスとしか言いようがないものでした。そもそも寝るときくらいはモニターの傍から離れたいってものです。なのでこれもボツ。
さて、ここまで来るとちょっと意地になってきます(笑)
最終的には連動TAPの制御をテレビやPCモニターではなく、(居間のメインオーディオシステムと同様に)MACminiの消費電力で行おうではないか、ということにしました。
2台目となるMACmini2011を購入
購入したセコハンのMACminiですが、本来はメモリが2GBしか搭載されていなかったはず。・・・だったのですが、送られてきたものには何故か8GBが搭載されていました。おそらく前オーナーによるものなのでしょう。これを考慮すると実質2万円台でMACが購入出来た計算になります。随分安くなったもんだね。
(これにより当初のコンセプトであった「お金をかけずに…」という趣旨から大分逸脱してしまいました…)
連動実験5
タブレットにてアプリケーションを操作
→MACminiをスリープから自動起動
→電源連動TAPにてMACminiの使用電流量上昇を検知
→AVアンプが自動起動
→音が出る
★結果:成功
…結果的には成功しました。但し一工夫する必要がありました。というもMACminiをスリープから復帰させる際、タブレットからネットワークを介したWake On Lanの機能を色々と試したのですが、そのままでは復帰後のプレーヤー(JRMC)が正常に起動してくれません。少し調べるとどうやらMACがスリープから解除された際には以下の2種があるとのことでした。
どうやらJRMCではDarkWakeによるバックグラウンド起動状態では曲を流すことが出来ない模様。従ってWakeOnLanの為のマジックパケットをネットワークに流した際に一般的なWakeを実行できるよう設定変更をする必要がありました。
答えとしては、MACの起動設定を変更してあげることで、WakeOnLanでも一般的なWakeが可能になります。(どうやらOS(Lion)にて実装されたリモート起動向けの機能らしいです)
具体的には以下のファイルを編集する必要があります。
/Library/Preferences/SystemConfiguration/com.apple.Boot.plist
ただし、上記のファイルは普通にSUDOしても編集後に保存させてくれません。どうやらSystem Integrity Protecton (SIP)という機能により、重要なファイルの書き換えをガードしているようです。(OS(El Capitan)にて実装されたプロテクション機能らしい)
従って、一時的にSystem Integrity Protecton (SIP)を切る必要がありました。
手順をまとめると下記の通り。
(※)「com.apple.Boot.plist」の編集内容(赤字部分を追記)
【編集前】
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Kernel Flags</key>
<string></string>
</dict>
</plist>
【編集後】
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Kernel Flags</key>
<string>darkwake=0</string>
</dict>
</plist>
上記の設定を踏まえた、最終的な構成は以下になります。
こんな感じになりましたとさ。
・・・
さて、色々有りましたがこれでほぼ理想環境を実現出来ました。
実際に使用してみても各機器が小気味よく連動するので、寝室用のオーディオとしてはかなり使えそうなシステムに仕上がったように思います。
今回の構築における特筆すべき「核」となった点は、MACのスリープ状態~スリープ復帰による消費電力差が電源連動TAPでギリギリ拾えるものであったため、曲の終了、及び停止してから1分後には全機器の電源OFFが実現出来た点でしょう。
…結果的には成功しました。但し一工夫する必要がありました。というもMACminiをスリープから復帰させる際、タブレットからネットワークを介したWake On Lanの機能を色々と試したのですが、そのままでは復帰後のプレーヤー(JRMC)が正常に起動してくれません。少し調べるとどうやらMACがスリープから解除された際には以下の2種があるとのことでした。
- 一般的なWake : フル起動状態(キーボードやマウスを触った際のWake。画面(ディスプレイ)が点灯してくれる)
- DarkWake : バックグラウンド起動状態(WakeOnLanによるWake。画面(ディスプレイ)は点灯してくれない)
どうやらJRMCではDarkWakeによるバックグラウンド起動状態では曲を流すことが出来ない模様。従ってWakeOnLanの為のマジックパケットをネットワークに流した際に一般的なWakeを実行できるよう設定変更をする必要がありました。
答えとしては、MACの起動設定を変更してあげることで、WakeOnLanでも一般的なWakeが可能になります。(どうやらOS(Lion)にて実装されたリモート起動向けの機能らしいです)
具体的には以下のファイルを編集する必要があります。
/Library/Preferences/SystemConfiguration/com.apple.Boot.plist
ただし、上記のファイルは普通にSUDOしても編集後に保存させてくれません。どうやらSystem Integrity Protecton (SIP)という機能により、重要なファイルの書き換えをガードしているようです。(OS(El Capitan)にて実装されたプロテクション機能らしい)
従って、一時的にSystem Integrity Protecton (SIP)を切る必要がありました。
手順をまとめると下記の通り。
- リカバリーモードで起動 → MACを「Commandキー + R」を押しながら再起動
- リカバリーモードでターミナルの起動 → 画面上部のメニュー「ユーティリティ」から「ターミナル」を選択
- SIPの解除コマンドを投入 → 「csrutil disable」
- 通常モードで再起動
- MACの起動設定をviにて編集・保存 → 「sudo vi /Library/Preferences/SystemConfiguration/com.apple.Boot.plist」
(※)編集内容は後述の通り。 - リカバリーモードで起動 → MACを「Commandキー + R」を押しながら再起動
- リカバリーモードでターミナルの起動 → 画面上部のメニュー「ユーティリティ」から「ターミナル」を選択
- SIPの解除コマンドを投入 → 「csrutil enable」
- 通常モードで再起動
(※)「com.apple.Boot.plist」の編集内容(赤字部分を追記)
【編集前】
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Kernel Flags</key>
<string></string>
</dict>
</plist>
【編集後】
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Kernel Flags</key>
<string>darkwake=0</string>
</dict>
</plist>
上記の設定を踏まえた、最終的な構成は以下になります。
こんな感じになりましたとさ。
・・・
さて、色々有りましたがこれでほぼ理想環境を実現出来ました。
実際に使用してみても各機器が小気味よく連動するので、寝室用のオーディオとしてはかなり使えそうなシステムに仕上がったように思います。
今回の構築における特筆すべき「核」となった点は、MACのスリープ状態~スリープ復帰による消費電力差が電源連動TAPでギリギリ拾えるものであったため、曲の終了、及び停止してから1分後には全機器の電源OFFが実現出来た点でしょう。
スリープ設定が1分刻みで設定可能(AppleTVは最短でも15分なのでこの点もアドバンテージ)
例えばMACの仕様による挙動として1時間47分毎に実行されるメンテナンススクリプトによる勝手なスリープ解除などです。このメンテナンススクリプトはどうやら他のノードに対して自身の存在を知らしめるために実行されるものらしく、ネットワーク設定によるWakeOnLan機能を有効にすると、一瞬ではありますがDarkWakeが実行(=アンプと連動タップのリレースイッチがカチカチ煩い)されてしまうんですよね。
なお、MACのスリープは以下がよくまとまっていましたので同様のことに悩まれている方は参考にされるとよいかと思います。
http://d.hatena.ne.jp/zariganitosh/20110706/about_sleep
・・・
ちなみに冒頭で話したHDMI CEC機能をフル活用出来た場合の理想環境ですが、起動もシャットダウンもAppleTVのスリープ機能で全て制御できるため、以下のように実にシンプルになります。今回のようにテレビも連動TAPも不要ですが、第4世代以降のAppleTVと、HDMI CECに対応した比較的新しいAVアンプ(レシーバー)が必要になります。
理想環境
タブレットにてアプリケーションを操作
→AppleTV(第4世代以降)をスリープから自動起動
→HDMI CEC連動によりAVアンプをスリープから自動起動
→音が出る
お金が潤沢な方は是非試してみると良いと思います。
それにしても、システム家電って本当に