Emacsは、ファイルを扱うことを含め、多くのことができる素晴らしいプログラムです。Emacs Multimedia System (EMMS) パッケージを使えば、Emacs の中で音楽を扱うこともできます。音楽のディレクトリを簡単にブラウズしたり、曲のプレイリストを作ったり、歌詞を表示したりすることもできます。ここでは、Emacsで音楽を再生する方法を紹介します。

EMMS とは何か、どのように動作するか?

EMMS は様々なマルチメディアプレイヤーのための Elisp フロントエンドクライアントです。つまり、従来の音楽プレイヤーとは異なり、EMMSはファイルを表示することだけを扱い、それらのファイルをデコードするために外部プログラムを利用します。

EMMSは、コア、プレーヤー、ソースの3つから構成されています。

  • コア**は、EMMSバッファ内のファイルがどのように動作するかを制御します。さらに、他のEMMSモジュールがこれらのファイルを読み、操作するための方法も提供します。
  • プレーヤー** - Emacsと外部の音楽プレーヤーの間のインタフェースを扱います。
  • ソース**は、Emacsがどのようにファイルを発見し、読み込むかを扱います。そして、コア部が読むことのできる編集可能なテキスト・バッファにそれらを置きます。

その結果、このアプローチでは、各メディアファイルをテキストとして扱うことができ、他のEmacsバッファに簡単にコピーすることができます。例えば、EMMSからプレイリストを取り出し、Orgジャーナルに書き出したり、Gnusを通してUSENETに投稿したりすることができます。

EMMS のインストール

これでEMMSのインストールは驚くほど簡単になりました。EMMSはすでにGNU ELPAリポジトリで公開されていますので、すぐにインストールすることができます。

    1. Alt+Xを押して、Emacs クライアントでpackage-install` と入力します。
    1. すると小さなプロンプトが表示されますので、インストールしたいパッケージの名 前をタイプしてください。この場合、emms と入力して、Enter を押します。

EMMS の設定

以上で、EMMS の簡単な設定スクリプトを作成することができました。こうすることで、EMMS はどの Emacs の設定を有効にするか、また、外部プログラムや ファイルパスを検索することができるようになります。

  1. EMMSの設定を始めるには、Emacsの “init.el “ファイルにアクセスします。これを行うには、Ctrl + X を押し、次に Ctrl + F を押す必要があります。
    1. すると、編集したいファイルのパスを指定するプロンプトが表示されます。この場合、パスを指定する必要があります。"/home/$USER/.emacs.d/init.el”.

3. これで、init.el ファイルに以下のような Lisp を記述することができました。

(require 'emms-setup)
(emms-all)
  1. この特定の関数は、EMMSにすべてのデフォルト設定の設定と有効化を指示し、プレーヤーで任意のメディアを再生できるようにします。

外部音楽プレーヤーの追加

デフォルトでは、EMMS は再生用のメディアプレーヤーを提供しません。次に必要なことは、EMMS がインデックスしたオーディオを再生するために使用できるメディアプレーヤーを指定することです。

そのため、FLACやMP3ファイルを再生する場合は、まず適切なメディアプレーヤーをインストールする必要があります。

  1. 今回は、オーディオとビデオの両方を再生できるmpvをインストールします。以下はその方法です。
sudo apt install mpv
  1. [/uploads/emacs-music-08-ubuntu-install-mpv.jpg] (アップロード/エマックスミュージック-08-ubuntu-インストール-mpv)
  2. あとは、init.elに以下のLispコードを記述するだけです。
(setq emms-player-list '(emms-player-mpv))

setq - Emacsの関数で、特定の変数の値を設定することができます。この例では、emms-player-listの値を変更します。

emms-player-list - EMMSの関数で、使用できるメディアプレイヤーのリストを定義します。

emms-player-mpv - mpvとEmacsをリンクさせる特定の糊付け関数です。これによってEMMSはEmacsの中で音楽を再生することができます。

デフォルトの音楽ディレクトリを追加する

次に必要なのは、EMMSがメディアファイルを探すためのデフォルトのディレクトリを設定することです。これも上記の設定と同様、init.elファイルを編集する必要があります。

  1. あとは、以下のLispコードを追加するだけです。
(setq emms-source-file-default-directory "/path/to/directory")
  1. これが終わったら、Emacsのインストールを再起動して、新しい設定を適用してください。

EMMS の基本的なセッションを開始する

  1. Alt+X` を押して、“emms “と入力するとEMMSを起動することができます。
    1. そうすると、EMMSが再生したいメディアのルートパスを聞いてくるプロンプトが表示され ます。
    1. 例えば、"/home/ramces/tmp/emacs-music” というパスを指定して、emacs-music 内のファイルを再生するように指示します。

4. EMMS は、このフォルダ内の再生可能なメディアファイルをすべて含む簡単なプレイリストを作成し、表示します。

EMMSのプレイリストを使ってEmacsで音楽を再生してみましょう。

    1. Enter`を押すとプレイリストの1曲目が再生されます。
    1. 十分な時間が経ったら、Shift + P または S を押して、再生を停止します。

3. それだけでなく、PN を押すことで、プレイリストの中の隣り合ったトラックを切り替えることができ ます。これは、現在再生しているトラックをスキップしたい場合に便利です。

4. EMMSではプレイリストのトラックの順番を並べ替えることもできます。その仕組みは、EMMS のプレイリストにあるすべてのテキストを Emacs のテキストバ ッファーと同じように操作することができます。Ctrl+Spaceを押し、次にCtrl+W を押すと、現在のプレイリストからトラックを引き離すことができます。 5. 5. そこから、下にスクロールして、Ctrl+Y` を押すと、その行をリストに戻すことができます。

6. また、現在のプレイリストのトラックをクリアすることも可能です。これは、リストをきれいに消去したい場合や、新しいプレイリストを作成し保存したい場合に特に便利です。これを行うには、Shift + C を押すだけです。

Emacsで新しいプレイリストを作成する

EMMSでは、Emacsの中からカスタムプレイリストを作成することも可能です。つまり、従来の音楽プレーヤーと同様に、順番に再生したい音楽ファイルの特定のリストを保存することができるのです。

  1. これを行うには,まず Alt + X を押し,“emms-playlist-new” とタイプします.
    1. そうすると、空のEMMSプレイリストが表示され、新しいトラックを追加することができます。

3. ここからは、空のプレイリストを現在のプレイリストに設定する必要があります。これで、空白のプレイリストに新しい音楽トラックを追加することができます。そのためには、空白のEMMSバッファの中でBを押す必要があります。すると、小さなプロンプトが表示され、そこで Enter を押して変更を確定することができます。

4. 最後に、EMMSのブラウザを開いて、新しいプレイリストに音楽ファイルを追加します。そのためには、もう一度 Alt + X を押して、“emms-browser” とタイプしてください。

5. 5. ここで、Enterを押すと、追加したいアルバムやトラックを選択することができます。 6. 6. 完了したら、新しいリストに戻り、Ctrl + X を押し、Ctrl + S でファイルに保存できます。

GNU FM を使って Emacs で音楽をかき鳴らす

音楽を再生する以外に、EMMSをカスタマイズして、単純なメディアプレイヤー以上の機能を拡張することも可能です。例えば、libre.fmのような音楽スクロブラにトラック情報をアップロードする機能を使うことができます。

  1. この機能を有効にするには、まず init.el ファイルを開く必要があります。
    1. EMMS の設定の後に、以下の Lisp コードを追加してください。
(require 'emms-librefm-scrobbler)
(setq emms-librefm-scrobbler-username "your-libre-fm-username")
      emms-librefm-scrobbler-password "your-libre-fm-password")

最初の関数 - EMMS用のGNU FM scrobblerをロードするようにEmacsに明示的に指示します。これにより、EMMSはlibre.fmに接続し、そのデータベースにトラック情報を登録することができるようになります。

2番目の関数 - EMMSがlibre.fmにアクセスするために使用するあなたのアカウント情報を含んでいます。

  1. 最後に、EMMSに戻ります。そこで Alt + X を押して、“emms-librefm-scrobbler-enable” とタイプしてください。
    1. これでこのセッションの scrobbler プラグインが有効になり、完成したトラックを投稿することができます。

Frequently Asked Questions (よくある質問)

EMMSでMPDを使用することはできますか?

はい!EMMSをMPDのフロントエンドクライアントとして使うことは可能です。init.el “ファイル内の “emms-player-list “変数の値を変更するだけです。

Emacsでネットワーク上の音楽ファイルを再生することはできますか?

悲しいかな、できません。Emacsはネットワークファイルのマウントをサポートしていますが、EMMSはこの特定の機能を使用することができません。これは、EMMSがローカルファイルのみを扱うように作られているためです。そのため、別のマシンにある音楽をEMMSで再生するネイティブな方法はありません。この制限を回避する一つの方法は、Emacsの外部でネットワークマウントを作成することです。例えば、以下のコマンドを実行すると、SSHFSを使ってホームディレクトリにネットワークマウントを作成することができます。

sshfs remoteuser@remotemachine:/path/to/music /home/$USER/` とします。

外部ネットワークマウントの他に、EMMSはネットワークラジオストリームもサポートしています。これを有効にするには、Alt + X を押して、“emms-streams” と入力するだけです。

EMMSのブラウザで検索することは可能ですか?

はい!EMMSのブラウザにあるすべてのファイルを検索することができます。これを行うには、ブラウザバッファの中でSを押し、Tを押す必要があります。そうすると小さなプロンプトが表示されますので、そこで再生したいトラックを指定してください。さらに、EMMSは他のメタデータの値を用いてデータベースを検索することもできます。例えば、Sを押してからAを押すと、アーティスト名で検索することができる。

画像引用:Unsplash All screenshots by Ramces Red

Akira
Akiraは情熱的なゲーマーであり、製品レビュアーです。ゲームをしていないときは、最新のゲーミングアクセサリーを試したり、製品のレビューをしていることが多い。彼の分かりやすいスタイルは、ゲーマーが自分のニーズに最も適した製品を簡単に判断できるようにするものです。また、技術的な問題にも精通しており、その解決方法も知っている。