shingoushori's dialy

音信号処理を専ら研究していた元博士後期課程の学生によるメモ

Web Audio API で内蔵マイクで録音+ミキシングに、スペクトログラムを追加

Web Audio APIはてなブログに埋め込むテスト

WAV+WAV or WAV+マイク を、WAVに書き出します。マイクはFirefoxのみ。

前回からの進展として、スペクトログラムを追加しました。
↓こちら↓ を元に、1 kHz と 4 kHz ? あたりに線を入れてみたりしました。
Web Audio API 解説 - 12.アナライザーの使い方 | g200kg Music & Software
FFT点数は1024で、低い方から256ビン表示しています。

File0
File1

 mixing result :                                       

 mixing source0 :                                       
 mixing source1 :                                       

 

Analyser

SmoothingTimeConstant :
MinDecibels :
MaxDecibels :

 

mixed
audio0
audio1

 

canvas要素は、記事にベタがきすると消えてしまいました。ローカルホストでやっている分には消えないのですが。
慌てて、用意しておいたdivにcreateElementで追加する方法に書き換えました。
さらに、そのdivまで空だと消されてしまいます。仕方なく、ダミーの文字列を入れておいて、canvasを入れるタイミングで空文字列に置き換えています。

Web Audio API で、内蔵マイクで録音+ミキシングを、はてなブログ埋め込み

Web Audio APIはてなブログに埋め込むテスト

WAV+WAV or WAV+マイク を、WAVに書き出します。マイクはFirefoxのみ。

前回からの進展として、stopするまでの入力信号もそれぞれDLできるようにしました。
検討用にはミキシング前の入力信号も、出力信号と同じ長さのファイルであった方が便利です。

File0
File1

 mixing result :                    

 mixing source0 :                    
 mixing source1 :                    

 

もっとしっかり関数化すれば、もっとコードを圧縮できそう。
入力ファイルはドラッグ&ドロップの方が楽そう。

Web Audio API で、内蔵マイクで録音を、はてなブログ埋め込み

Web Audio APIはてなブログに埋め込むテスト

WAV+WAV or WAV+マイク を、WAVに書き出します。マイクはFirefoxのみ。

File1
File2

 mixing result :       

 

その実、↓の記事のはてなブログ埋め込みバージョン になります。 

 

これらの記事ではjsdo.itさんでした。が、どうも動いていないので。

Simutransで, 信号場アドオン作成 / 駅アドオンの信号場アドオン化

Simutrans(http://japanese.simutrans.com)は, 素晴らしい.

駅は3タイプの積荷の取扱可否があります。
・旅客
・郵便
・貨物
で、何も取扱できなければ信号場になるはずです。

pak64では Signal Stop / 信号所セット アドオン/railtool - Simutrans日本語化・解説
pak128では Signal Stop / 木造信号所  Addon128/RailTools 1 - Simutrans日本語化・解説 が出てました。

増解結の本体改造に先立って、信号場の作り方を調べてみました。

[用語]
ここでは"信号場"とします。Wikipedia(信号場 - Wikipedia)に従って。
留置場、引き上げ線、検車場、操車場 ... いろいろあるので、何と呼称するべきか微妙なところ。
ソースコード場としては、enables が NOT_ENABLE : 0。
取扱を何もしないhaltestelle ~ 停車場 というだけです。

[アドオン素材の場所]
私はpak64でやっているので、pak64のアドオン素材の場所をメモ。
pak64の駅のソースの場所 : simutrans / Code / [r1997] /pak64/player
なぜ、駅が player っていうディレクトリにあるのだろう... わかりにくいなあ。

 

[アドオン datファイルの指定の仕方]
アドオン開発/datファイル記述リファレンス/building(建築物)2 - Simutrans日本語化・解説 より、

enables_pax= 1 駅用。このフラグが真(1)ならこの駅は乗客を集めることができます
enables_post= 1 駅用。このフラグが真(1)ならこの駅は郵便を集めることができます
enables_ware= 1 駅用。このフラグが真(1)ならこの駅は貨物の受け入れと集荷ができます

これらを削除 / コメントアウト(行頭に # )でOK。
何も指定しないと makeobj がエラーを出すかと思ったのですが、大丈夫でした。

 

[駅アドオンの信号場アドオン化]
バイナリエディタで、0x005E番目の32ビットを 00 に変更
ここが 01 だと旅客、02 だと郵便、03 だと旅客+郵便 ... 
とりあえず、バイナリエディタで見ると冒頭あたりに SimObjects 0.1.3exp って書いてあるアドオンなら、これでいけると思います。

Simutrans本体改造で学ぶC/C++ 〜 全駅強制旅客郵便貨物駅化

以下のような簡単な改造で、全駅強制旅客郵便貨物駅化できます!

f:id:shingoushori:20190202205357p:plain

Visual Studio Code での改造例

このように、enum は同じ数字に複数の愛称を持たせることができます。

同じセーブデータを改造前後のビルドで読み込ませると、こんな感じになります。

f:id:shingoushori:20190202211321p:plain

改造前後の動作比較 左:改造前 右:改造後

 

ピカブイ/ポケモンGO、xR

バーチャルであっても、いやバーチャル故に、肉体感覚
どうしようもなく、生身の身体的にもキャラクターにもバイタリティ的にも
肉体的なそれらでコントロール、それらがコンテンツかされている感じが
ヒシヒシとする

ポケモンレッツゴー ピカブイ で辛いのが、
ポケモンGOスタイルのボールを投げるモーションだ
どうしようもなくゲーム的運動神経が悪い私には、どうしようもなく苦しい
大好きだったはずの単純なレベル上げができない、どうしようもない絶望感
この肉体から解き放たれたいのに 忌々しい
運動神経が悪いのに絡みついた暗黒の私の小学生時代が、
夏草が草刈機で焦がされたような胃酸の味わいが、はらわたから煮えくり返ってくる

xR、VRであってもそれは変わらない

例えば、現実世界で出不精な私は、htc viveを購入して2週間目に入ろうとしても、
まだVRChatに出向けていない
パソコンのスペックから部屋のスペース不足、
如何しようも無い現実の人間関係の都合まで
Virtual であるとしたって所詮は現実の内側なんだ、陸続きでしかない

その怪しい敷居に、他の現実での旧来型の敷居と同様かそれ以上に苦しむものとして、
どうその苦しみを如何としていくのか
というあたりに、後発というどうしようもない身の程ゆえの弁えと度胸が問われるのだろう

Simutransのセーブデータ (非圧縮xml のみ) を読み込み->書き出し ~ 「passenger_factor」を設定

[趣旨]
Simutransのセーブデータ弄りであるとか、もちろん信号処理のなにやらづくりに向けて、デスクトップからファイルをドラッグする処理 〜 を準備します。

 

今回は、Simutransのセーブデータ (非圧縮xml のみ) をパースしてエディットして、また書き出しです。

ちょっとしたエディットとして、「passenger_factor」を設定します。

↓ Simutransのセーブデータ (非圧縮xml のみ) をドラッグアンドドロップすると、「ダウンロード」と書かれたリンクが追加されます。"output.sve"としてダウンロードできるはず。開発環境は、macchrome

Drop files here
passenger_factor :

                   

 

 

 

 

[参考文献]

クライアントサイドJavaScriptでXML文書のDOMをパースする

XML Parser

Blob - Web API インターフェイス | MDN

HTML非表示・使用不可メモ(Hishidama's disabled/visibility/display Memo)