mpg123.elを使う

HOME > それいけ Emacs > 音
Last modified: Fri Oct 31 10:54:03 +0900 2008

はじめに

Emacsでのmpg123のフロントエンドにmpg123.elが あります。これを使うとEmacsでmp3が聞けます。

設定

バックエンドにはmpg123以外にもogg123やmpg321が使えます。私は mpg321を使っています。

(autoload 'mpg123 "mpg123" "A Front-end to mpg123" t)
(setq mpg123-mpg123-command "mpg321") ; mpg123のコマンド名
(setq mpg123-startup-volume 70)       ; 起動時の音量
(setq mpg123-default-repeat -1)       ; 繰り返し回数。-1は永遠に繰り返す。
(setq mpg123-default-dir              ; 起動時のディレクトリ
      (expand-file-name "~/mp3/"))

使い方

mpg123-show-helpをtにしておくと下の方に使い方がでるのでそれを見 て下さい。デフォルトはtになっています。

mpg123.elを起動したときにシャッフルして再生する

(add-hook 'mpg123-hook
          (function
           (lambda ()
             (mpg123-shuffle ?r)
             (mpg123-play-stop))))

プレイリストを作るスクリプト

#!/usr/bin/env ruby

require "find"

EXTENTION = ".playlist"

def search_mp3(dir)
  mp3_files = []
  Find.find(dir) do |f|
    mp3_files.push(f) if f =~ /\.mp3$/
  end
  mp3_files
end

all_playlist_file = (ARGV.shift || "all") + EXTENTION
base_dir = ARGV.shift || "."

Find.find(base_dir) do |f|
  if File.directory?(f)
    filename = f + EXTENTION
    filename = File.join(base_dir, all_playlist_file) if f == base_dir
    File.open(filename, "w") do |file|
      file.puts search_mp3(f)
    end
  end
end

これを~/mp3/で実行すると~/mp3/以下にall.playlistというファイルが 出来ます。これをmpg123.elの起動時に読みこむといいです。他にもサ ブディレクトリ毎にディレクトリ名.playlistというファイルが出来ま す。なので、以下のようなディレクトリ構成にしておくと幸せになれま す。

~/mp3-+-アーティスト名-+-CD名-+-mp3ファイル
      |                |      ...
      |                |      +-mp3ファイル
      |                ...
      |                +-CD名-+-mp3ファイル
      |                       ...
      |                       +-mp3ファイル
      ...
      +-アーティスト名-+-CD名-+-mp3ファイル
                       |      ...
                       |      +-mp3ファイル
                       ...
                       +-CD名-+-mp3ファイル
                              ...
                              +-mp3ファイル