mplayerでステレオの音声ファイルをモノラルで再生する方法

mplayerでステレオのオーディオファイルから片方のチャンネルのみ再生したい場合は、-afオプションを使ってオーディオフィルターを設定すればできるそうです。

使い方は例えば次のような感じです。

$ mplayer -channels 2 -af pan=1:1 sample.mp3

-afオプションを使うとチャンネルを入れ換えたり、異なるチャンネルから同じ音を出力したりもできるみたいです。

リンク

Linux Notes: mplayer down-mix stereo to mono
http://lglinux.blogspot.com/2007/11/mplayer-down-mix-stereo-to-mono.html

3.10. Channel manipulation
http://www.mplayerhq.hu/DOCS/HTML/en/advaudio-channels.html

Pythonでディレクトリを再帰的にスキャン

Pythonでディレクトリを再帰的にスキャンしてファイルを取得したい場合はos.scandirを使って次のような感じでできるそうです。

>>> import os
>>> def scandir(path='.'):
...   for e in os.scandir(path):
...     if e.is_dir():
...       yield from scandir(e.path)
...     else:
...       yield e
...
>>> for e in scandir():
...   print(e.path)
...
./directory/file1.txt
./directory/file2.txt
./file3.txt

シンボリックリンクかどうかのチェックはfollow_symlinksが使えるようです。

e.is_dir(follow_symlinks = False)

リンク

os — Miscellaneous operating system interfaces — Python 3.7.2 documentation
https://docs.python.org/3/library/os.html

Pythonのリストをインデックス付きでforループ

Pythonのリストをインデックス付きでforループしたい場合はenumerateを使うと良いそうです。

使い方は次のような感じです。

>>> w = ['Sun', 'Mon','Tue','Wed', 'Thu', 'Fri', 'Sat']
>>> for index, value in enumerate(w):
...   print('w[{}] = {}'.format(index, value))
...
w[0] = Sun
w[1] = Mon
w[2] = Tue
w[3] = Wed
w[4] = Thu
w[5] = Fri
w[6] = Sat