投稿

4月, 2020の投稿を表示しています

julia から `afplay` を動かしてフォルダー内の音楽ファイルを鳴らそう

ターミナルから GStreamer でフォルダー丸ごと再生してみよう と、書いた直後ですが、julia でリストを作って`afplay` に投げ込んでみます。 julia> for f in readdir() run(`afplay $f`) end 音の分離の良い afplay の鳴りがします。 もちろん、GStreamer も動きます。 julia> for f in readdir() run(`gst-launch-1.0 -q filesrc location=$f ! decodebin ! audioconvert ! autoaudiosink`) end afplay と GStreamer で音の作りが違う気がするのは気のせいでしょうか? しかし、これで、何人の人が幸せになれるかは、やはり疑問です。昨今のストリーミングサービスのコンテンツの多さはとても魅力的です。

ターミナルから GStreamer でフォルダー丸ごと再生してみよう

音質で定評があるターミナルコマンドの afplay ですが、フォルダー丸ごとの再生は苦手ですし、パイプ処理を受け付けてくれません。 ファイル1つ毎に面倒だという方は、GStreamer の音楽再生を試す価値はあります。動画もできるらしいですが、作業用 BGM が個人的な目的なので、勉強していません。 インストールは Homebrew を使えます。 $ brew install gstreamer $ brew install gst-plugins-base $ brew install gst-plugins-good Apple Lossless Audio Codec (略称:ALAC) もお使いになる諸氏は、gst-libav も入れましょう。 $ brew install gst-libav 次に、適宜、ファイルのあるフォルダーまで `cd` で移動します。`filename.foo` という音楽のファイルを再生する場合は、 $ gst-launch-1.0 filesrc location=filename.foo ! decodebin ! audioconvert ! autoaudiosink と、言う感じです。 `! decodebin ! audioconvert ! autoaudiosink` でデコードして、変換して、スピーカーに埋め込まないと再生されないのは、`afplay` と比較すると少し悲し感じです。 では、フォルダーの中の m4a 形式のファイルを丸ごとというときは、zsh の for を使うと、意外と短く書けます。 $ for f (*.m4a) gst-launch-1.0 -q filesrc location=$f ! decodebin ! audioconvert ! autoaudiosink 下記でも同じです。 $ for f in *.m4a ; do gst-launch-1.0 -q filesrc location=$f ! decodebin ! audioconvert ! autoaudiosi...