LoginSignup
1
1

More than 5 years have passed since last update.

wavをcygwinのzshから聴こう

Last updated at Posted at 2014-12-16

cat wavのパス >> /dev/dsp
で聴くことができるが、使い勝手は良くない。
何よりもパスを把握しなくてはいけないので人間向きではない。
よって、簡易的なコマンドで実用的に近づけた。

.zshrc
function lMusic() {
    if [[ $# -eq 0 ]] ; then
        cd f:/Music_Movie > /dev/null
        ls **/*wav
        cd $OLDPWD > /dev/null
        return
    fi

    ls f:/Music_Movie/**/*wav | grep $1
}

alias play='tee /dev/tty |sed -e "s/^/cat /" -e "s:$: >>/dev/dsp:" | sh'

聴くことのできるwavファイルをListするのに使うのがlMusicだ。
lMusic 単体でwavのあるパスを一覧表示する。
argument があればgrepで搾る。
最小限の表示にするために一瞬cdで移動して、lsの自動整形に任せている。つまり、
パスの共通部分の f:/Music_Movie の出力を控えて、lsの文字組みを2段・3段など
画面一杯に自動で段組してくれる機能を利用する。
/dev/null はcd の後にls を自動でしている便利設定の無効化である。

lMusic LaFollia | play
のように、パスを実行するのがplayで、実装はsed で前後に cat, >>/dev/dsp を挟んでsh で実行である。
このうち、tee で画面にプレイする音楽を出力させている。

動作は、grepで複数当たれば1つずつ演奏していく。
CTRL-C で終了。
ランダム演奏は sort の R オプションで。

ファイルの削除も次のように書けば同様の構文で使える
lMusic LaFollia | perl -lne 'unlink'

1
1
3

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1