ブログの更新はサボっていましたが、ライブラリの方は順調に更新を行っています。
snd.jsがWebAudioAPIの仕様をおおむね網羅できたため、バージョンを1.0に上げています。
(本当はこの時点でブログにお知らせを書くべき所だったんですが、ちょっとライブラリの方に集中していたために更新を逃しました)
さらに、今まで1つのファイルだったライブラリを機能ごとに細分化。
オシレータやバッファなど、必要な機能だけを読み込んでトータルのサイズを削減できるようにしました。
もちろん、従前のソースがそのまま動くように、全機能がまとまったall in one版も用意してあります。
さらにさらに、生の音源データを直接アクセス可能なアドレスへ配置しないでも良いようにするプラグインsnd.encrypt.jsを追加。
データを暗号化してサーバから頒布する事で、所定のアプリ外からの直接アクセスでは読み取り不能にできるようになりました。
また、復号キーにユーザの情報を使用することで、悪意ある再頒布を抑止しようとしています。
さらにさらにさらに、http://lib.sndjs.org/でライブラリを頒布するようにしました。
<script src="http://lib.sndjs.org/snd.all.in.one.js"></script>などと書いてもらえば、ダウンロード不要でsnd.jsをご使用いただけます。
ただし、まだ試験的にやってみた感じですので、確実に使える状態を維持したいようなケースでは使用を控えてくださいね。
これに関しては、httpsからのアクセスだとエラーになるので、そこが課題でしょうか。
今現在は、PolymerのようにHTMLにカスタムタグを追加するプラグインsnd.invalid.jsを開発中です。
オシレータのみですが、動くサンプルを付属させているので詳しくはそちらをご覧ください。
これで、(たとえばjQueryを使って)音程や音量を好きなようにコントロールできるようになります。
一応、目指すはここらへんの実装。
ChromeのSpeechAPIの出力がWebAudioAPIに直結できると楽なんですけどね…
そもそもJavaScriptじゃなくてブラウザでやるべきことなんじゃないの、っていう話ではあるんですが。
こういうのはゲームみたいなエンターテインメント用途以外に、アクセシビリティにも関わってくるものでもあるので、挑戦する価値はあると見ています。
詳しく解説するべき内容がてんこ盛りですね。
機会を見て少しづつ説明していきたいと思います。
もしかしたらsndjs.orgにドキュメント用のwikiか何かを追加するべきなのかもしれません。
ということで、簡単なご報告でした。
ブログはあまり更新できていませんが、ライブラリは元気です。
今後ともよろしくお願いいたします。