2018年7月14日土曜日

RDBの設計について

■まとめ

  • COMMENTはSQLには乗らない情報をSQLで取得可能な形で残せるので、もっと活用すべき
    • JSONのようなパース可能な構文で呼び出し側にデータを渡すことができて自動化しやすい
  • C言語の構造体とRDBの設計は等しいという感性を持って、DB設計をプログラミングフレンドリーにすべき
    • RDBはメモリの永続化、IDはメモリアドレス、テーブルは構造体だとイメージするとDBをいじる時に気が楽

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