WebAudioで音響カプラよもう一度、その1

やあ (´・ω・`) ようこそ、セルフまとめへ。 このテキーラはサービスだから、まず飲んで落ち着いて欲しい。 うん、「また」なんだ。済まない。 仏の顔もって言うしね、謝って許してもらおうとも思っていない。 でも、このまとめタイトルを見たとき、君は、きっと言葉では言い表せない 「ときめき」みたいなものを感じてくれたと思う。 殺伐とした世の中で、そういう気持ちを忘れないで欲しい 続きを読む
1
汝、翼を与える@ばってん先に翼ばくれんね イベント・・(parody) @ryunosinfx

この要件を満たそうとすると 電話回線上でも暗号化した情報を渡す必要が有る。 となると、鍵のやり取りだが、 RSAの4096bit公開鍵という事になるな。 これをデータ登録者に事前に渡す必要が有る。 ここは鍵ペアを受診者側で事前に生成したらいい。 そしてそれを静的ページに公開すれば良い。

2020-12-22 01:20:11
汝、翼を与える@ばってん先に翼ばくれんね イベント・・(parody) @ryunosinfx

で情報のスペックを考えると ・報告者はフォーム入力できたほうがいいよね →gRPCのprotファイルで定義しましょう ・それでフォームを自動生成しましょう ・手順を明らかに画面に書いておきましょう ・公開ページにはQRコードを用意しておきましょう ・鍵を登録出来るようにしましょう と言うところか

2020-12-22 01:40:04
汝、翼を与える@ばってん先に翼ばくれんね イベント・・(parody) @ryunosinfx

jp.techcrunch.com/2020/12/21/202… このレベルの攻撃を前提に〜と言われると正直 マシンにマルウェアが入り込んだ時点でダメだと思う。 やはりOSの多様性が必要で、電源も完全にOnOff出来て、 必要最小限の機能のハードウェアが必要な気がする。

2020-12-22 02:13:59
汝、翼を与える@ばってん先に翼ばくれんね イベント・・(parody) @ryunosinfx

うーん github.com/quiet/quiet-js を見るとSafariがサポートされて無くて萎えって 感じじゃないですか。 ということはですよ。自分で作るの?マジで? うへー。なんか300bpsでも出たらええんかな。 300bpsで10bitで1byteとすると30byte/sになるので そうすると10kbの送信に6分弱かかるな・・・

2020-12-22 03:27:37
汝、翼を与える@ばってん先に翼ばくれんね イベント・・(parody) @ryunosinfx

github.com/martme/webaudi… MITライセンスのものを見つけたのでコッチを ライブラリ化して使ってみよう。 いいんだけどさ、お願いだからライセンス条項抜きでGithubに置かないで欲しい。 もうね、見てトラブったら地獄の著作権法で法廷闘争とか嫌ですよ。

2020-12-22 03:35:29
汝、翼を与える@ばってん先に翼ばくれんね イベント・・(parody) @ryunosinfx

しかし、ソースコードがスパゲティとまでは行かないがめんどくさいな。

2020-12-23 03:10:33
汝、翼を与える@ばってん先に翼ばくれんね イベント・・(parody) @ryunosinfx

色々即興すぎやろ。 まあ、ESLintの設定に手間取ったがなんとかES2020でチェックが出来るようになりました。 というかESLintServerのnodejsのv12.14とか何処に隠れてるんだよ。

2020-12-24 03:13:27
汝、翼を与える@ばってん先に翼ばくれんね イベント・・(parody) @ryunosinfx

利用方法を考えると ・データ受信側はQRコードを張り出す ・QRコードには本システムのURL+公開鍵+署名がは言っている ・発信側はQRコードからURLを開く ・公開鍵と署名を確認 ・発信側はページのロジックで公開鍵で暗号化しつつ発信する ・受信する方は秘密鍵を登録し受信し復号する

2020-12-24 21:54:24
汝、翼を与える@ばってん先に翼ばくれんね イベント・・(parody) @ryunosinfx

イキったコードを読みやすくするだけで日が暮れる・・・ なんでIDをそこにハードコードしちゃうかな。 forEachをホイホイ使わないでくれ なんでClassを使わないかな

2020-12-26 03:41:38
汝、翼を与える@ばってん先に翼ばくれんね イベント・・(parody) @ryunosinfx

classを使うとesmoduleで読み込むのにローカルでも鯖が必要になってうざいな・・・ html単体で使えない・・・うーむ。 仕方ないのでexportを取るなど。

2020-12-29 00:19:39
汝、翼を与える@ばってん先に翼ばくれんね イベント・・(parody) @ryunosinfx

漸くclassで動く所まで行ったぞ。 さあ次デコード側か。速度出るんかな?

2020-12-29 21:44:59
汝、翼を与える@ばってん先に翼ばくれんね イベント・・(parody) @ryunosinfx

うーん、ビット転送うまく出来てるように見えないのよね・・・ おみゃーちゃんとビットの立つ周波数出力してないやん・・・

2020-12-29 23:48:39
汝、翼を与える@ばってん先に翼ばくれんね イベント・・(parody) @ryunosinfx

モデムめんどくせー 閾値とかで見ちゃいかんね・・・ 波形を見ないとダメそう。 と言うかサンプリングレート分かるのか サンプルがクソ適当過ぎる

2020-12-30 02:40:59
汝、翼を与える@ばってん先に翼ばくれんね イベント・・(parody) @ryunosinfx

サンプリングの波形からどうやって ビット音響を抽出すればいい? 44.1khzのサンプリング周波数帯から 2048区域かーうーんなんか破綻してるように見えるんよねぇ・・・

2020-12-30 19:41:03
汝、翼を与える@ばってん先に翼ばくれんね イベント・・(parody) @ryunosinfx

ASK、8bitパラレルでやってるのが可怪しい? というかFSKとかできんの?

2020-12-30 20:18:34
汝、翼を与える@ばってん先に翼ばくれんね イベント・・(parody) @ryunosinfx

あー成る程・・・ コーヒレンシーが問題だわ・・・ コーヒレンシーががが 双方が握ってないとダメだな・・・ (これバーコードで送っちゃダメかな・・・) マイクとスピーカーが挟まると 立ち上がりと立ち下がりの波形が辛いの。 で、255階調で10.7hz域の音圧で計測するので

2020-12-30 20:47:45
汝、翼を与える@ばってん先に翼ばくれんね イベント・・(parody) @ryunosinfx

実際に使えるのが保証されている周波数は、 697, 770, 852, 941, 1209, 1336, 1477, 1633 73hz,79hz,89hz,268hz,127hz,141hz,156hzの差分 この帯域とするとうーん。 コーヒレンシーを自動化しないとダメだなぁ 音圧の問題やな・・・ 最初にコーヒレンシーを11111111で取って、音圧を測って

2020-12-30 20:54:51
汝、翼を与える@ばってん先に翼ばくれんね イベント・・(parody) @ryunosinfx

互いに周波数を握っているとして、 問題はハードウェアの特性による波形の立ち上がりと立ち下がり時間を考慮しないとダメで 周波数が切り替わっても特定周波数帯が立ち上がり完了なのかそうでないかが何時か分からない。 何時か分からないので、ピークを計測するしか無いが ピークが何時か分からない。

2020-12-30 23:11:23
汝、翼を与える@ばってん先に翼ばくれんね イベント・・(parody) @ryunosinfx

380円で買ったイヤホンマイクの性能だと 周波数の立ち上げに15msは確実にかかる。 これより下だと一気にエラー率が上がる。 となると、間に10msの休憩期間を置いて見るしかないか・・・ 全ての周波数で一定以下になったことを確認しないとダメか。 サンプリング周波数は44.1khzなので1msのウェイトを

2020-12-30 23:34:43
汝、翼を与える@ばってん先に翼ばくれんね イベント・・(parody) @ryunosinfx

40msで1byteを送信出来るとして 40回スキャンが可能なのか?それとも1フレーム16.7msでしか取れない? 計測しないとダメか・・・ 一旦、そこを手がかりにコーヒレンスするようにしないとダメだな。 信号が来る→40msWindowを数スパン回してタイミングを確定させる→オフセットを噛まして計測と

2020-12-31 00:28:29
汝、翼を与える@ばってん先に翼ばくれんね イベント・・(parody) @ryunosinfx

計測したら1スキャンだいたい1.5msぐらいで回ってるな・・・ FirfoxでもChromeでも同じぐらいだ・・・ こいつは想像以上に速いな。という事は40msスパンだと26回ぐらいスキャン出来るのか。成る程成る程。 じゃあ、同期はストリームとして取るの諦めれば簡単か・・・というかストリーム必要なくない?

2020-12-31 01:04:54
汝、翼を与える@ばってん先に翼ばくれんね イベント・・(parody) @ryunosinfx

今回の目標データ量を10kbとして 26倍の2048倍してもさ550MBぐらいだよ? もう少し観測ポイントを絞って、2048を40ぐらいにすればヘーキヘーキ。一回10MBなら余裕っしょ。 3回やって30MBなら余裕のよっちゃん。 PCとスマホなら十分耐えられるでしょ。富豪プログラミングできっと大丈夫。

2020-12-31 01:10:13
汝、翼を与える@ばってん先に翼ばくれんね イベント・・(parody) @ryunosinfx

だとすると 閾値超えが20ms続いたら受信開始 閾値下回りが40ms続いたら受信終了と 1byteの受信に26回のスキャンが必要だけど、 その時の生データは8bit分のスロット+周囲4bit/1bitで40bit分、40byteを1スキャンで取得 で、時系列に評価して同期オフセットを計算で出して オフセット時点の符号を抽出と

2020-12-31 01:22:09
汝、翼を与える@ばってん先に翼ばくれんね イベント・・(parody) @ryunosinfx

尚、40msで1byteだと10kbの送信は 誤り訂正なしで7分弱かかるねぇ・・・ 200bpsかー。しんどいなー。 ja.wikipedia.org/wiki/DTMF DTMFが120ms周期で4bitなので33bpsだからそれよか速いけどうーむ。

2020-12-31 01:31:58
汝、翼を与える@ばってん先に翼ばくれんね イベント・・(parody) @ryunosinfx

静止電話回線でドップラー効果とか気にするほどあり得るのだろうか・・・ こう、新幹線とかで移動中だったら気にする必要が有ったりする?光の速さに比べたら十分遅いから大丈夫?なのか? ローミングの瞬間の周波数はずれるやろうな・・・

2020-12-31 01:45:52