2017年6月22日木曜日

生存確認のような


↑の動画、良いアイディアだと思いましたので忘れないように載っけておきます。

立体音響に限らず「耳がこそばゆい感じの音」や「集中やリラックスができるような雰囲気のある音」は まとめて『ASMR』と呼ぶジャンルになっています。
色々な動画があるので たまにチェックしてみているのですが、イヤホンを付けた耳をいじる動画を見たのはこれが始めてで、新鮮味がありました。
耳周りの圧迫感の変化がないため、さすがにイヤホンの付け外しは直感的にわかってしまいますが、指タップや撫でたときの音の感じは抜群にリアルです。

頭部外定位とはまた違った感じのリアルさがありますし、頭部伝達関数とか関係なく、効果音としても楽しいんじゃないかなと思います。
あと、頭部伝達関数でイヤホン付けた状態で測定したデータは見たことがないよな、とか思いました。
自分で測定したくなりますね、こういうのは…

つづきに幾つかおすすめのASMR動画とその感想を挙げておきます。
(特にHeatherFeatherさんのSKサウンドは立体音響としても素晴らしいのでおすすめです。)

気になる人はぜひどうぞ。

2015年4月25日土曜日

snd.jsでエンベロープ(ADSR)を楽に設定できるようにしました

どうも、お久しぶりです。

snd.jsで、AudioParamのエンベロープを簡単に設定できるようにしてみました。
例えば、こんな感じの書き方でオシレーター周波数のエンベロープを設定できます。

AudioParamのlinearRampToValueAtTimeメソッド(名前長い)とかをちょこちょこ呼び出して設定するより便利と思います。

 ということで、ライブラリ更新のご連絡でした。

  あと、単純にこの部分だけスニペットにして使いたい人もいるような気がするので、該当部分だけピックアップしてのっけておきます。
興味がある人はどうぞ

2015年1月27日火曜日

snd.jsは元気です

前回の更新からだいぶ時間がたってしまいました。
ブログの更新はサボっていましたが、ライブラリの方は順調に更新を行っています。

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か何かを追加するべきなのかもしれません。

ということで、簡単なご報告でした。
ブログはあまり更新できていませんが、ライブラリは元気です。
今後ともよろしくお願いいたします。

2014年9月2日火曜日

snd.js更新しました

snd.jsを更新しました。
  • JSON形式の文字列へ出力(セーブ)
  • 出力したJSON形式文字列からのオブジェクト再生成(ロード)
  • ScriptProcessorNodeに対応
ができるようになっています。
ScriptProcessorNodeに対応したことで、JavaScriptで波形を生成できるようにもなりました。
これでノイズ波形を作れます。

興味がある方は、 githubのプロジェクトページ または snd.jsのサイト からどうぞ。


で、せっかく対応させたScriptProcessorNodeなのですが、WebAudioAPI Working Draft 30 August 2014DEPRECATED(非推奨)が付いてしまいました。
詳しい事情はたぶんここらへんで読めるんだと思うんですが、読めそうにない…
今回非推奨になったScriptProcessorNodeのかわりに、AudioWorkerというのを使うようにするっぽい感じみたいです。

最終的にどんな感じになるのか、ブラウザが対応するのがいつぐらいなのか、まだよく分かりませんが、とりあえず心の準備はしておきたいと思います。

2014年8月18日月曜日

snd.jsを更新しました

久しぶりにsnd.jsを更新しました。
今回の更新では、get/setメソッドからプロパティへの変更を行っています。
合わせて、get/set系のメソッドは非推奨(deprecated)としました。
get/setメソッドはそのまま残していますので、今のところ既存のソースに変更は不要です。

非推奨になっているメソッドなどはタイミングを見て削除する可能性が高いので、極力使用を避けてください。

ライブラリのダウンロードなどはsnd.jsのサイト、または、githubのプロジェクトページからお願いします。




ここからは今後の予定です。

2014年7月31日木曜日

WebAudioAPIで多チャンネルサラウンド出力(を目指して)

WebAudioAPIで多チャンネルのサラウンドに対応しようとして、ちょっと迷ってしまいました。
せっかくなので、作ったテストコードにコメントをつけてjsdo.itで公開してみました。


多チャンネル信号の扱いやChannelMergerNodeのクセ(バグ?)など、 多チャンネル対応する際に困ったところにコメントを書いてあります。
単純なステレオ信号のパンニングでも迷いやすい所と思いますので、悩んでたらどうぞ。

2014年7月25日金曜日

Firefoxの開発ツールにWebAudioビジュアライザとエディタが付いたようです

Mozilla Hacksこの記事(Resources for HTML game developers)によると、Firefoxの最新版(31.0)から、開発ツールにWebAudioビジュアライザとエディタが付属するようになってたようです。

sndjs.orgで試してみたのが↓の画像です。

これで見るとこっそり仕込んだオシレータがバレバレですね

ちょっと見づらいですが、下の開発ツールにグラフ状の接続図とWebAudioAPIオブジェクトのリストが表示されています。

開発ツールを表示(Ctrl + Shift + I)後、左側の歯車アイコンをクリックして 、「標準のFirefox開発ツール」の「WebAudioエディタ」にチェックを入れると表示されるようになります。
(歯車アイコンでオプションを設定してあげないと表示されないので、ちょっと迷いました…)

元記事には他にもCanvasエディタやシェーダエディタなどについての説明も書いてあったので、興味があれば一読をおすすめします。

AudioBufferSourceNodeのような使い捨て前提のオブジェクトがガンガン図とリストに追加されていくため、WebAudioエディタのUIに何かもう一工夫あった方が嬉しい感じがするのですが、それでも十二分にデバッグのお供になってくれるのは間違いありません。