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

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に何かもう一工夫あった方が嬉しい感じがするのですが、それでも十二分にデバッグのお供になってくれるのは間違いありません。

2014年7月23日水曜日

snd.jsを更新しました

snd.jsを更新しました。

今回の更新でBufferSourceの保存と読込みができるようになりました。

さらに、BufferSourceにデータを読み込むloadメソッドを3つ追加。
BufferSourceのオブジェクトで直接データを読み込む事が可能になりました。

また、ゲッター・セッターメソッドの多くをプロパティに変更しています。
それに合わせてゲッター・セッターはdeplecated扱いとしています。

その他、README.mdを書き換えたり、ドキュメントの整備、デバッグなども含みます。
 
サイトはこちら
githubはこちら

ライブラリのダウンロードはどちらからでも可能です。

どちらでもお好きな方からどうぞ。



2014年6月29日日曜日

snd.jsのサイトを公開しました

snd.jsのサイトを公開しました。
リンクにカーソルがあう度にポチポチ音がしてリンククリックするとキュピーンとなるうるさいサイトですが、よろしくおねがいします。
有志団体(個人)ということで、ドメインはorgにしました。
 普段広告つけたりとかしないのですが、試しに広告くっつけてみました。
 まだまだ途上ですが、改めてよろしくお願いします。

これでとりあえず体面は整ったので、次はJSON出力かな…
ゆったり構えてぼちぼち進めて行きたいと思います。

2014年6月28日土曜日

バグ取りました

snd.util.createBufferSourcesとsnd.AudioDataManagerにバグが見つかったので直しました。

以下はどうでも良い話です。

2014年6月22日日曜日

2014年5月27日火曜日

snd.jsのシンセサイザークラスにLFOを乗っけました

snd.jsのシンセクラスにLFOを乗せてみました。
これからノイズとか、ローパス・ハイパスとかのフィルタ類とか、色々と乗せていきたいんですが、ワンパターンな構成しかできないんじゃちょっと残念なので、シンセの構成要素を分割してモジュラーシンセに仕立てて行く予定です。
あと、three.jsの立体音プラグインでサウンドコーンとドップラー効果の実装も。

どっちか軽そうな方を優先しようかな …

2014年5月20日火曜日

ちまちま更新しています

snd.js、ブログに書いたりしていませんが、地味に更新しています。
ブラウザのWebAudioAPI対応状況とか含めて、まだ実用にはならないかなー
…とか自分でいってはいけませんね。

ieが対応するまでにある程度の内容を用意できればいいかなー

asm.jsとか

UnityというゲームエンジンがFirefoxに乗っかってプラグインレスで動作!
みたいな話を聞いたので、(今更ながら)ちょっと調べました。

話題そのものはTechCrunchJapanのこの記事にあるやつです。
どうも、Unityで作ったプロジェクトをJavaScript(asm.js)にコンパイルできるようになる、という感じみたいな感じでした。
asm.js自体初耳だったので、ちょっと色々やってみたくなりました。
ChromeやSafari、ieなんかは今のところasm.jsに対応してない(動くけど)みたいなので、Unityはここらへんどうするつもりなんでしょうか?
どのみち動くからいいじゃんくらいのノリなのか、ちゃんと対策取るつもりなのか。
どちらにせよ、楽しみです。

asm.jsについては、「asm.jsとかPNaClとかLLVMに興味あったので調べて回ったら少しだけ理解できた話」が詳しかったです。
あと、「Emscripten によって生成された asm.js 対応コードは本当に人間が書いたコードより速いのか?」も面白かったのでおすすめです。 

asm.js自体初耳だったので、色々と知らない話ばかりで楽しく調べ物できました。
なんかやってみたいけど、特になにも思いつかない…

2014年2月19日水曜日

google codeからgithubに移動しました (snd.jsのみ)

長いことgoogle codeを使ってきましたが、新規プロジェクトだとファイルの添付ができなくなってしまいました。
代わりにGoogleドライブ使ってみましたが、どうも不便なのでgithubに移行することにしました。
前からあるプロジェクトだとファイル添付できていて問題ないんですけどね…

とりあえず、JavaScript用のサウンドライブラリを更新するついでにgithubへ移行させました。
アドレスはこちら→ http://github.com/h10x64/snd.js

他のやつも更新(することがあれば)順次githubに移行しようかなと思います。
自分でzip作らなくてもgithubの方で勝手にzip作ってくれたりして便利ですし。

2014年1月6日月曜日

むしろすでにできていたみたいだよ、という話

前回のエントリで、「立体音響がブラウザで楽しめる日が来るよ、きっと」などと書いたのですが、実はすでに実装できているようでした。
もっとよく調べてから書かないとダメですね。恥ずかしいです。
ついでに、友人に頼まれたWebAudioAPIのラッパーライブラリがざっくりできたので、ベータ版を公開してみました。

よかったらこちらのリンクからどうぞ。


2013年12月22日日曜日

WebAudioAPI(JavaScript)でHRTFを使用した立体音響化ができる日が来るよ、きっと。という話

先日友人と話をしていて、JavaScriptって音出せんの?という話からJavaScriptのサウンドライブラリが欲しいんだけど、という話になったので、仕様などを調べていたら W3CにあるWebAudioAPIのEditorsDruftではHRTFを使った立体音響化が想定されていました

ついでに、Firefoxでも実装中っぽい感じなので、遠からず立体音響がワーッと増える日がやってきそうな雰囲気です。楽しみですね。
というか、時期的に明らかにビックウェーブに乗り損ねてました。悲しいですね。
PannerNodeを使って実装しておけば、そのうち「ブラウザをバージョンアップしたら俺のアプリが勝手に立体音響化されてた」瞬間が来るはずです。

2012年5月31日木曜日

VSTプラグインを更新しました

VSTプラグインを更新しました。
こちらのページDownloadsにあるBinauralVST_20120531.zipが今回更新した最新版です。
今回の更新ではノイズ対策を主に行いましたので、以前のバージョンと比べて音質が変わっています。
以前のバージョンを使用していただいた方には特にダウンロードをお勧めいたします。

具体的な変更点については付属のreadmeファイルをご参照ください。 
また、今回の更新ではGUIやフェイストラッキング機能に変更はありません。