Volumioにハード・ボリュームを付ける

Raspberry Piの音楽サーバーVolumioをインターネットラジオに使っている。
電源を入れだけでいつもの放送局につながり曲が流れる。Volumioと
組み合わせているUSB DACアンプにはボリュームが無いので
スマホやPCでVolumioにアクセスしてWeb画面で選曲やボリューム調整を行う。
便利なのだが、困るのがスマホを使わないとボリュームが下げられないことだ。
音楽をかけっぱなしで庭に出たりするので、家人から音楽を止めてから出ろといわれる。

ハード的なボリュームを付けられないかと、先日紹介したGriffin PowerMate
(USB型ボリューム・ノブ)を検討していた。
いろいろやったのだが、node-hidモジュールがどうしてもPowerMateを認識してくれない。
しかたがないのでコンパクトマウスのホイールで代用することにした。
(PowerMateは完全にWindows専用のボリュームになった^^;)
マウスのボタンは特に要らないのだが、一応、停止と再生もできるようにした。



d0108132_13045118.jpg


こんなJavascriptコードで動いてます。

node-mouse、input-event、socket.io-client モジュールを事前にインストールしてから
Node.jsで起動させる。

node forever start click.js などとして自動起動させる。

[click.jsのコード]

var Mouse = require('node-mouse');
var mouseDevice = new Mouse();

var InputEvent = require('input-event');
var input = new InputEvent('/dev/input/event0');
var eventDevice = new InputEvent.Mouse(input);

var io=require('socket.io-client');
var socket= io.connect('http://localhost:3000');

// initial volume value
var position = 10 ;

mouseDevice.on('click', function(e){
if (e.button === 0) {
//console.log("left click");
socket.emit('play');
}
if (e.button === 1) {
//console.log("wheel click");
}
if (e.button === 2) {
//console.log("right click");
socket.emit('pause');
}
});

eventDevice.on('wheel', e => {
var direction = e.value === 1 ? 1 : -1
position = position + direction * 5 ;
// volume limitter
if (position < 0) position = 0 ;
if (position > 50) position = 50 ;
//console.log("wheel data", position );
socket.emit('volume', position);
})


いろんな方のコードを拝借しています^^;
https://volumio.org/forum/few-useful-node-scripts-t6247.html
https://volumio.org/forum/need-example-usage-getstate-websocket-t5813.html
https://senyoltw.hatenablog.jp/?page=1482403678
http://web09.hatenablog.com/entry/physical-btn-20170302
https://qiita.com/uiureo/items/a4158939e605b2b0c501
など


[PR]

by tullyz1 | 2018-04-06 14:55 | Comments(8)

Commented by umi_bari at 2018-04-06 22:10
すいません、アラック、毎年オーディオに10万円を
かけていたんですが、結婚して出来なくなりました。
良い音楽を聴きながら、ゆったりがバグースですね。
我が家、ステレオの音が出ません。
Commented by tullyz1 at 2018-04-06 22:26
>umi_bariさん
学生の頃は時間がたっぷりあって何時間もクラシックを聴くことができていたのですが
社会人になってだんだんそれが難しくなりました。
でも週休4日の生活が始まったので、また思う存分、音楽が聴けるようになりました。
最近は安いオーディオでもかなりいい音が出るようになりました。
Commented by minton at 2018-04-07 09:27 x
音楽が流れている生活ってのはいいですね。
庭で作業しながら音が外にも聞こえたらどんなにかいいかと思うのですが、ご近所迷惑になりそうですよね。
===とイコールが三つ連なる言語面白いです。
プログラムはシンプルですが、それを認識させているところがすごいです。
ラズベリーパイは面白いです。なにか使う必要が出てきたら触ってみたいです。
Commented by voyagers-x at 2018-04-07 11:09
おはようございます!!
自然な形で音がが日常生活の中に入り込んでると素敵ですね
東京に住んでいた頃、最後の方はマンションを購入して住んでいましたが
有線を導入して音楽をかけていました
勝手に控え気味に流れるメロディーが心地よく感じました

tullyz1さん、マニアック!!
スクリプト言語でずらずら並んだ文字列
チンプンカンプンです
時間をかけると少しは理解できそうですが
多分自分ではしないだろな
お金を出していいアンプとスピーカーを購入して.......とシンプルな高音質を目指しそう ^^;


Commented by tullyz1 at 2018-04-07 13:03
>mintonさん
最近は以前にもまして音楽を聴く機会が増えました。
オーディオもちょっと見直したりとか。ご隠居のようなゴージャスなのは無理ですが^^
音楽を聴きながら庭仕事くらいならいいですが、電動工具を使って木材を加工するときは
どうせ聴こえないですからねぇ^^
===は厳密等価演算子といって、1と"1"を区別したいときに使われます。
==だと1と"1"は「等しい」ことになってしまいます。
Javascriptも昔はホームページを作るときの簡易言語みたいな扱いでしたが
10年くらい前にNode.jsが登場したことで、今はWeb開発やOSの機能までが
簡単にできてしまうようになりました。
ラズベリーパイやVolumioがなかったら、定年を過ぎたオヤジがプログラミングなんて
しなかったでしょうね^^
インターネットラジオでクラシックやポップスをBGMにしたいなら
低消費電力のラズベリーパイはお勧めです^^
Commented by tullyz1 at 2018-04-07 13:21
>voyagers-xさん
震災以降の省エネで電気を使わない習慣が広がっていますが
スマホの充電器だけで動くラズベリーパイのネットラジオは
高音質で最高です。電気がもったいないなんてことを
気にしないで済みます。いつも聴いているVenice Classic Radioでは
普段聴かないような曲も沢山かかるので、興味の範囲も広がります。

ゼロからシステムを構築する気力も知識もありませんが、
ちょっとプログラムがわかると、自分が欲しい仕様に作り変えられるので
便利です。DACアンプにボリュームが無いなら、ボリュームのあるものを
買えば済むだけかもしれませんが、そうするとスマホの充電器以外の
ACアダプターが必要になってしまうのですよね。
妙なところにこだわってます^^;
そこそこなレベルのオーディオをはすでにあるので、世の中に売っていないものが
欲しかったりします^^ これもクラフトですね^^
Commented by Neoribates at 2018-04-08 12:51
さすがクラフトマンですねぇ.自分でプログラム組めるのがいいなぁ.仰るように自分だけに必要なものってけっこう探すとなるとないもので,それを作ってしまうというのは尊敬です.
ネットラジオも大分前に少しの間聞いたりしていたのですが,どうもイマイチだったのでそれから手を引いてしまいました,今はもっと高音質になったようですね.
来週から上洛ですか?小生は明日から金沢に出かけます.雹が降ったりしてかなり不安定な気候らしいですが,魚を食べてきます(;´Д`)ハァハァ
Commented by tullyz1 at 2018-04-11 19:14
>Neoribatesさん
京都から帰ってきました。やっぱり桜はほとんど終わっていましたね^^
そんなわけで写真もあまり撮れずじまいでした。
パソコンというものが世の中に出る前からのプログラマーです^^
最近はどんどん技術が進歩してしまうので、とても追いつけません。
まあ、全部をカバーできる人なんて今どきいないのでしょうけどね。
若い人と仕事で張り合う気もないので、趣味レベルで使えれば十分なのです。
ネットラジオもハイレゾを期待してしまうとだめですが、
LINNのチャンネルは結構いい音ですし、BGM程度であれば十分いい音がするチャネルは
いくつかあります。Venice Classic Radio Italiaもその一つです。
ポップスならイギリスのCapital FMもよく聴きます。
今日午後からは天気も崩れてきました。金沢の方もあまりひどくないといいのですが。
名前
URL
削除用パスワード

<< 夜桜 スピーカー工作 >>