最近作った音声再生コマンドgomuについて
この記事は、Go Advent Calendar 2021のカレンダー2の3日目の記事です。
Windowsで音声ファイルを再生しようと思った時にLinuxなら,aplay something.mp3
のような感じで雑にターミナル上で再生できますが,Windowsではいつも open something.mp3
のようにして拡張子に結びつけられた音楽プレイヤー(自分の環境では,Groveミュージック)を起動して再生していました.
音声ファイル確認のためだけにGroveミュージックのウィンドウを開くのは面倒くさいと感じていたので,音声ファイルを指定するだけで再生できるようなシンプルな音声再生コマンドを作ることにしました.
作成した音声再生コマンドは,gomuです.
Go言語を使うことで,go install github.com/tomato3713/gomu@latest
を実行するだけでインストールでき,導入が簡単にできるようにしました.開発の面でも,spf13/cobraを使いひな形を生成することで開発時間を短縮できました.v1.0.0のリリースまでで5時間くらいでした.
また,BGM再生を行うVim/NeoVimプラグインもつくれたらいいなと考えて,それらの用途に使いやすいようにTypeScriptなどでパースがしやすいjson形式で標準入出力に情報を出力するようにしています.
最後に,簡単に使い方を説明します.基本的には,playもしくはalbumサブコマンドと再生対象を指定します.
playサブコマンド
これは音声ファイルや後で説明するプレイリストファイルを指定して再生します.
gomu play something.mp3 gomu play playlist.json
プレイリストは,json形式となっており音楽ファイルまでのパスを並べたものになっています.例えば,次のような内容です.
{ [ { "path": "path-to-music1" }, { "path": "path-to-music2" }, { "path": "path-to-music3" } ] }
albumサブコマンド
これは,アルバムが入ったディレクトリを指定しトラック順に再生するコマンドになります.
gomu album album-directory
お読みいただきありがとうございました.