« 人工無能オフというのに行ってきた | main | GoogleDenyHatena.user.js »

どんなサイトでもミュージックビジュアライザにするInFullVolume.user.js

どんなサイトでもミュージックビジュアライザにしてしまうgreasemonkeyユーザスクリプト、InFullVolume.user.jsを作りました。


デモページ



どんなスクリプトかは↑見ていただければわかるかと思うんですが、要するに超大音量で音楽を流しっぱなしにするか、延々と叫び続けない限り正常にWEBが閲覧できなくなるユーザスクリプトです。siteinfoを用いているので、誰でもxpathやuriパターンの編集ができます。一応ソースからもsiteinfoを編集できるので(デモページのsiteinfoがハードコードしてありますので参考に。)、チェックしてから上げるようにしてください。またSiteInfoクラスはyoupyさんのTwitter Text Converterがベースになってます。あと現在siteinfoに登録されているxpathの半分くらいはldrizeのsiteinfoのコピペです。最初ldrizeのsiteinfoを読みにいこうと思ったんですが、tr要素に対してついてたり目的に沿っていなかったりしたので新設しました。jottitすげえ便利。


技術的にはembedしたswfでマイクの音量を拾って、FSCommandでunsafeWindow.mic_DoFSCommandに渡ったものを受け取るようにしています。ペーパープロトタイプの時点ではスペクトラムのようなものが取れるかなと思ったのですが、残念ながら音量だけしか取れなかったのでこちょこちょしてます。引数をそのままevalな処理があるので正規表現でチェックしてますが、その他の点も含めてセキュリティ的に問題がありそうだったらご指摘お願いします。また、取得された音量は対象ページ側でも参照できるようにしてあるので、ご利用の際にはマイク音量をいろんなページにまき散らしていることをご了承ください。デモページではそれを利用してgoo地図のズームアップ/ダウンをやっています。あと当然ですがswfで取得している音声情報はどこにも飛ばしてないです。
as3のソースはこんな感じ。getActivityLevelはjs->asの値取得の際にドメイン指定がホワイトリスト方式なのを知らなかった頃の名残です。

package {
import flash.display.*;
import flash.events.*;
import flash.media.*;
import flash.system.*;
import flash.text.*;
import flash.utils.Timer;
import flash.geom.*;
import flash.external.ExternalInterface;

public class mic extends Sprite {
public var myMic:Microphone;
public var timer:Timer;
function mic() {
ExternalInterface.addCallback("callFlash", getActivityLevel);

myMic = Microphone.getMicrophone();
if (myMic != null) {
myMic.setLoopBack(true);
myMic.setUseEchoSuppression(true);
myMic.setSilenceLevel(100,1000);

timer = new Timer(50, 0);
timer.addEventListener(TimerEvent.TIMER, onTick);
timer.start();
}
}

public function getActivityLevel():Number {
return myMic.activityLevel;
}

public function onTick(event:TimerEvent):void {
fscommand("setActivityLevel", "" + myMic.activityLevel);
}
}
}


以下余談。
誤字ェネレータのグリモンとかもそうなんですが、僕はどうやらディスコミュニケーションソフトウェア(造語)が好きみたいです。きょうじんだっておかしいですよ。人口無脳のくせに返信しないし。ワードサラダだし。もちろんここで徹底的に世の中を不便にする何かを作ったりすると、googleのえらいひとが怒ったり、もっと悪ければ僕の周囲の検索とかなんだとかの生活インフラが一切壊れてしまったりするかもしれないので、あくまで整然と並ぶインデックス群に対するちょっとしたゆらぎのようなソフトウェアをいっぱい作っていきたいなあと思います。でもクビにはなりたくないなー。


(追記)
環境によってはブラウザのキャッシュサイズをゼロにしないとダメかもです。

(追記2)
戀塚さんにブックマークされちゃったのでニコニコにも上げました



画質ひどいw コツがあるのかなあ

トラックバック

このエントリーのトラックバックURL:
http://polog.org/mt-tb.cgi/412

コメント (8)

ビジュアライザつながりで
http://www.nicovideo.jp/watch/sm2074623

思わずおーって呟きました
ハードウェアいじりたいなー

macの手描き説明書を見てたら、
「あれ~これネギポが作ってたやつに似てる~」
とおもったら
pologさんのサイトからDLできますって書いててうけたw
mixiでちょろちょろ書いてたから、わが子の発表会を見てるようで、かなり上がりました。
HMTでも若干名のあいだで5分くらい盛り上がったよw

そうそうそう!それかなりうれしかった。
盛り上がってくれてありがと:D どんなひとでも盛り上がれるようなアプリどんどん作っちゃうぜー


その若干名の一人です。

↑のI元Jは、エセですぜ。(笑)
だって、インストールして動かしたのって、俺だけですもん。

pologは、はてなの人気エントリになったり、アルファブロガー目前ですね。

環境整ってないとインストールがめんどいのは認めるよw
だからビデオ作ったの
がんばって動かしてくれてありがとう:D

アルファなんとかとか100年はやいっすよー。でもRSS購読数とかががんがん増えてくの見てると上がるよね。がんばる

すげー

thx
音楽ビジュアライザおもしれーよ無限にネタあるし

コメントを投稿

Powered by
Movable Type 3.34