サウンドファイルをさくさく聴きたい♬

個人や小規模サークルでゲームを作るとき, BGM や SE , あるいはボイスを選んでいく作業がなかなか大変だと思います

フリーで使用できる音源をあちらのサイトやこちらのサイトからとりあえずざっくりと, あれもこれもと目一杯ダウンロードしておいて, いざ, シーンを考える段になってから, ダウンロードしておいた大量のファイルの中から ぴったり合うものを選んでいくわけだが

それにしても多すぎる!!

いちいち iTunes に取り込んで聴いている場合でもないし
ファイルパスで見ながらどんな曲かが分かりさえすればよいのだ
もっとさくさく聴けないものだろうか

そんなあなたとわたしの悩みを解決するべくツールを作りました

デモ

https://ooq.jp/pri/tech/js/001.sound_list/sound_list.html

ソースファイル

http://ooq.jp/pri/tech/js/001.sound_list/sound_list.sh
http://ooq.jp/pri/tech/js/001.sound_list/sound_list.html.tpl

利用環境は mac となります

できること

あるディレクトリ配下にあるサウンドファイルをすべてリスト化して
ブラウザでさくさく聴く

設置のしかた

  1. sound_list.sh と sound_list.html.tpl を適当なディレクトリに置く
    2つのファイルは同じディレクトリに置いてください
  2. sound_list.sh のはじめのほうにある次の設定を実行環境に合わせて編集
    • サウンドファイルが置いてあるディレクトリ
    • 対象のファイルタイプ
    • 設置する html ファイルから対象ディレクトまでの相対パス
      ( よく分からない場合はとりあえず空でよい )
  3. sound_list.sh を実行する
    結果は標準出力に出ます
    リダイレクトで html ファイルとして保存してください
    ex) $ sh sound_list.sh > sound_list.html

画面の使いかた

sound_list.sh を実行して作成したファイルをブラウザで開きます
ローカルファイルとして開いても構いません

先のデモ画面を見ながら説明します
http://ooq.jp/pri/tech/js/001.sound_list/sound_list.html

ページを開くと1曲目から自動で流れはじめます

上部ボタンの説明

next  : 次の曲へ進みます
loop  : ループ再生します
intro : イントロの 3.5秒くらいで次の曲に移ります  
        デフォルトで on になっています  
        off にすれば以降も聴けます

あとはだいたい分かると思います

デモのようにウェブサーバにあげるなどして http 経由で見れば, ブラウザを一度閉じたあとでも, 前に聴いていた続きから聴けます
localhost でも大丈夫だと思います
単に local ファイルとして見ている場合は cookie が使えないため前の続きからは聴けません
それ以外の機能は同じです

プログラムの説明

プログラムの学習用に中身の説明もしたいと思い, コードの中にコメントで記述していたのですが, シェルスクリプトのほうだけで力尽きました..

javascript 部分についてはまたの機会に
とりあえずソースは掲載しておきます

sound_list.sh

説明をコメントで記述しています

sound_list.html.tpl

音源ファイル提供元

Pocket Sound         http://pocket-se.info
back-ground.biz      http://back-ground.biz
music is vfr         http://musicisvfr.com
無料効果音で遊ぼう! http://taira-komori.jpn.org
On-Jin               http://on-jin.com
効果音ラボ           http://soundeffect-lab.info
くらげ工匠           http://www.kurage-kosho.info
DOVA-SYNDROME        http://dova-s.jp

以下は細かいことなので興味を持ってくださった方のみへ

細かいことをいうと loop と intro が両方 on のときは intro が優先され, 3.5秒で次の曲に進みます
同じ曲の冒頭 3.5秒を繰り返すわけではありません
もともと長さが 3.5秒未満の曲の場合, 3.5秒間は同じ曲を繰り返し, 3.5秒経ったところで次の曲へ進みます
ボタン名から考えるとちょっと違和感があるかもしれませんが, このツールの目的としてはまあこれでいいかなと思い, こうしています

冒頭 3.5秒を繰り返し聴きたい需要はたぶんあまりなく, もし冒頭を何回かよく聴いてみたい曲があったら頭の 10秒ぐらい聴いて 自分のタイミングで先頭に戻るほうが自然

loop 機能の目的は 同じ曲の終わりとはじめのつながりに違和感がないかを確認するため ゲームの bgm はループ再生されるのが基本なので その確認のためです

intro 機能を正確にいうと イントロのみを聴いて次に進む なのでボタン名も intro & next にするとより正確なのだが表示上の短縮のため intro としている感じです

両方 on のときはどちらを優先するかといった細かい挙動を ユーザーが自由に設定できるようにするのが一番よいと思いますが, そこまで作る時間は取れそうにないのでした..