作りました: Internet Sampler (注意: 音が出る可能性があります)
どういうやつかというと、ただ単にボタンをクリックすると音が鳴るウェブサイトです。自分がクリックすると当然音が鳴るわけですが、このサイトを同時に開いている別の誰かがクリックしてもあなたのマシンから音が鳴ります。同様に、自分がクリックしたときも他人のマシンから音が出ています。携帯電話だと音は出ません (ブラウザの仕様です)。
再生イベントの伝達には WebSocket を使用しているので、安定した回線だとまあまあなレイテンシになります。
セットアップ
必要なもの
- Ruby, bundler
- Redis
実行
(Redis はもう動いているのが前提)
$ git clone https://github.com/polamjag/internet-sampler $ ./internet-sampler $ bundle install --path vendor/bundle $ bundle exec rackup
これで動きます。試してないですがたぶん Heroku でも動くはずです。
適当に作ったので、再生できる MP3 ファイルとかの情報はハードコードされています。そのへんをうまくアレすることで他の音も鳴らせるようになります。当然ですが、音声ファイルのコーデックはブラウザに依存しているので、そのあたりは適当にやっていきましょう。
用途
音がなるので、それなりにおもちゃになります。右上に同時接続数を表示してあるので、誰がどんな気持ちでタブを開いたのか想像しながらボタンを連打しまくるみたいなことができます。
勉強会のようなイベントで、リモートでの参加者が会場に対してガヤを入れたり野次を飛ばすために用いると盛り上がるかもしれません。
クラブイベントとかで、この Web サイトを開いたマシンの出音をミキサーに繋ぐなどすると、オーディエンスがフロアに直接音を出せるようになるので、それなりに楽しめると思います。