- sound-wav 20160725.724(in MELPA)
- Play wav file
概要
プログラミング中に効果音があってもいいのではないでしょうか?
キーを叩くと同時にタイプライターの音が鳴るというのも、
なかなかオツなものではないでしょうか?
このsound-wavパッケージはvimのvim-soundプラグインの移植版です。
これを使えばEmacsを使っていても音を鳴らせます。
作者は主にquickrun(レビュー)などのvimプラグインを
多数移植されているsyohexさんです。
エントリポイントは sound-wav-play のみです。
この関数にwavファイルのフルパスを渡します。
現時点では「~」を指定できないため expand-file-name を
使う必要があります。
Unix系OSならばafplayまたはaplayを使ってwavファイルを再生します。
Windowsを使っているならばPowerShellをインストールすれば軽快になります。
Vimでの先人たち。
インストール
パッケージシステムを初めて使う人は
以下の設定を ~/.emacs.d/init.el の
先頭に加えてください。
(package-initialize) (setq package-archives '(("gnu" . "http://elpa.gnu.org/packages/") ("melpa" . "http://melpa.org/packages/") ("org" . "http://orgmode.org/elpa/")))
初めてsound-wavを使う方は
以下のコマンドを実行します。
M-x package-install sound-wav
アップグレードする方は、
以下のコマンドでアップグレードしてください。
そのためにはpackage-utilsパッケージが必要です。
M-x package-install package-utils (初めてアップグレードする場合のみ) M-x package-utils-upgrade-by-name sound-wav
タイプライターの音源を手に入れる
http://www.videocopilot.net/blog/2013/08/free-typewriter-model-sound-fx/
からDownload Typewriter Sound FXをダウンロードすればいろいろなSEが手に入ります。
$ cd ~ $ mkdir -p sound; cd sound $ wget http://www.videocopilot.net/assets/public/misc/Typewriter_Sound_FXs.zip $ unzip Typewriter_Sound_FXs.zip
これで ~/sound/Typewriter_Sound_FXs/ 以下に音源が展開されます。
サブディレクトリに Typewriter_Sound_FXs/ と
Antique_Typewriter_Sound_FXs/ がありますので
好きなSEを選んでください。
mp3他ならばmplayerで再生させてみよう
もしMPlayer を持っているならばアドバイスをかけることで
wav以外のファイルも再生できます。
(defun sound-wav--do-play-by-mplayer (files) (deferred:$ (apply 'deferred:process "mplayer" files))) (advice-add 'sound-wav--do-play :override 'sound-wav--do-play-by-mplayer)
設定 160817113854.sound-wav.el(以下のコードと同一)
;;; ファイルを開くときの効果音 (defun find-file-hook--sound () (sound-wav-play (expand-file-name "~/sound/Typewriter_Sound_FXs/Antique_Typewriter_Sound_FXs/Paper_load.wav"))) (add-hook 'find-file-hook 'find-file-hook--sound) ;;; キーを叩くたびに音を出す(うるさいので注意(笑)) (defun post-command-hook--sound () (ignore-errors (sound-wav-play (expand-file-name (cl-case last-command-event (?\s "~/sound/Typewriter_Sound_FXs/Typewriter_Sound_FXs/Spacebar.wav") ('backspace "~/sound/Typewriter_Sound_FXs/Typewriter_Sound_FXs/Backspace.wav") ((?\C-m 'return) "~/sound/Typewriter_Sound_FXs/Typewriter_Sound_FXs/Return.wav") ;; やかましいので2回に1回のペースで鳴らすか (t (when (zerop (random 2)) "~/sound/Typewriter_Sound_FXs/Typewriter_Sound_FXs/1_click.wav"))))))) (add-hook 'post-command-hook 'post-command-hook--sound)
実行方法
$ wget http://rubikitch.com/f/160817113854.sound-wav.el $ emacs -Q -f package-initialize -l 160817113854.sound-wav.el
本日もお読みいただき、ありがとうございました。参考になれば嬉しいです。