クロスプラットフォームで音量を変えられる @neos21/loudness を作った

昨日、画面の明るさを変えられる npm パッケージ @neos21/brightness を紹介したが、今度はボリュームを操作できる @neos21/loudness というモノ。

# インストールする
$ npm install -g @neos21/loudness

# 音量を確認する
$ loudness get

# 音量を変更する (0〜100)
$ loudness set 50

# ミュート状態かどうかを確認する
$ loudness is-muted

# ミュートにする
$ loudness mute

# ミュートを解除する
$ loudness unmute

操作方法はこんな感じ。

コレもまた、OS 別に child_process#execFile() を実行しているだけって感じ。

Linux の挙動は、ThinkPad X250 にインストールした Ubuntu にて確認した。

$ cat /proc/asound/cards でサウンドカードの設定を確認したところ、どうも amixer コマンドでのデフォルトの操作対象がイマイチだったので、上のサイトを参考に、/etc/asound.conf という設定ファイルを作って、以下のように記述した。

pcm.!default {
  type hw
  card 0
}

ctl.!default {
  type hw
  card 0
}

OS を再起動すると設定が反映され、amixer コマンドで音量調整ができるようになった。

alsamixer コマンドを実行後、TUI で F6 キーを押すことでもこうした設定ができるようだ。よく分からないままなんとなく動くようにした。w

その他参考にしたのは以下あたり。

コレも、作ったはいいけどどうするかなー。w