shingoushori's dialy

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

Simutransのセーブデータ (非圧縮xml のみ) を読み込み->書き出し ~ 全駅公共駅化

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

 

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

駅のリストを取得してみます。
ついでに、全駅を公共駅にしちゃいます。

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

Drop files here

                                                                

[参考文献]

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

XML Parser

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

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

Simutransのセーブデータ (非圧縮xml のみ) のマップサイズを取得してみた

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

 

今回は、Simutransのセーブデータ (非圧縮xml のみ) からマップサイズを取得してみました。

'einstellungen_t' っていうのの、0番目と13番目がそれっぽいです。
'einstellungen' は、ドイツ語で'設定'らしいです。 それっぽいですね。
しかし、n番目っていうあたりが不安。セーブデータのバージョンによって変わりそうですね。

ドラッグアンドドロップされたSimutransのセーブデータの、 version と pak と マップサイズを表示します。

Drop files here

                                                   

なぜ version と pak も表示するかと言えば ...
↓ この記事からの拡張だからです  1つずつできることを積み上げていきます

 

 

[参考文献]

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

XML Parser

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

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

memo : SilentVoice: Unnoticeable Voice Input by Ingressive Speech

2018年10月ごろの話題 のメモ


SilentVoice: Unnoticeable Voice Input by Ingressive Speech
〜 息を吸いながら発話 小さい音量での発話でも音声認識できる

https://www.microsoft.com/en-us/research/uploads/prod/2018/10/UIST2018_SilentVoice_cameraready.pdf

 

日本語の紹介記事

音声認識のために発話方法までも発想するとは、清々しい!

 

 

Simutrans 2018年の取り組み - Squirrel AI Player 編

本記事は、Simutrans Advent Calendar 2018 〜 12/6 リス です 

Simutrans っていう、最高なフリーでオープンソースな交通シミュレーション
それについての、2018年の私のたぶん独自な取り組みについて書きます
Part 1 として、リス!

 

[ リス?!]

Simutrans には、なんと AI Player がついています。しかも2種類も。
そのうちの1種類は、Squirrel なる謎の言語で自作できるらしいです。

Squirrel は英語で リス だそうです。
そう、つまりこの記事の趣旨は、「Squirrel AI Player を作り始めてみた」 です。

Squirrel は ... なんか ... そう ... プログラミング言語です。
ボーカロイドスクリプトLua のお友達みたいです。
よくわからないけど、なんとなくニュアンスで?
C言語も覚束ないのに、必要に応じてC++JavaScriptPythonもいじる〜
のノリでできます。できました。・ワ・

 

ご安心ください。作らなくても、Simutrans に同封されています。

[使ってみる]

ここをこうして

f:id:shingoushori:20181206004359j:plain

こんな画面が出てくるので、選べば出来上がりです。
私はちょっと作ってみたので色々ありますが、本体についてくるのは "sqai" だけです。

f:id:shingoushori:20181206004403j:plain

新規マップで走らせてみると、
こんな感じで産業施設に群がった路線をいきなり作ります。
割と高確率でそのまま破産します。
乗車率100%になるまで動かないバスで詰まるバス停を幹線道路に作りまくります。
挙げ句の果てに、破産時に道路が接収されたついでに元からある幹線道路の交差部分を巻き込み削除させます。AI、まじでやばい。シンギュラリティ感じる。

f:id:shingoushori:20181206005022j:plain

そういえば、このブログ内では ↓ こんな記事をすでに書いていました。
乗車率100%になるまで動かないバス路線を作らせているのは、AI のスクリプトな訳です。だから、そういう設定を弄ってしまえばいいんです。
運行頻度が上がるので、もちろん倒産します。

 

[リファレンス]
英語です。ぶっちゃけわかりにくい。なんか足りないような気がします。
Simutrans-Squirrel-API: Main Page
そしておそらく Simutrans の GUIでできる全ての操作が API 化されていないのでは?
その辺り、AI Playerでできることも増やしていきたいところ。

 

[余談]
Simutrans本体についているAI Playerだと、"AI 旅客" がオススメです。

こんな感じで、いい感じに各街にバス網を作りつつ、隣町に順々に伸ばしていきます。
そして ... 倒産していますね ... なんてこった。

f:id:shingoushori:20181206011718j:plain

 

[いざ、自作]

... (GitHub の使い方に悩んだりしているため、省略) ...

とりあえず、こんな感じで すぐには破産しないバス網を作る AI Playerが組めてます

f:id:shingoushori:20181206020746j:plain
↓ ちなみに、AI Player 自作の経過を YouTube のプレイリストにまとめてます

[Simutrans] expr : Squirrel AI Player - YouTube

[余談]
マップ最初期のバス路線網の今のところのオススメは次のようなものです
AI Player で検討して赤字で倒産させまくって到達した現在の見解です
・できるだけ直線コースになる既設道路を使った経路 かつ できるだけ遠いところ
を選んで路線を組む
・乗り換え需要に期待し、隣り合う街を遠い街で乗り換えさせる
・それなりに新車が出ても遅くてペネルティが課せられにくいスペックのバスを選ぶ

 

[まとめ]

Simutrans の AI Player は、すぐ倒産してかわいい。

 

[余興]

えーっと ... リス! ... 井の頭自然文化園 の リスの小径 です。
市内建築の公園、博物館、文化施設、謎施設 ... 税金の無駄遣い ... 曰く付き物件 ...
が増えるといいですね。街が大きくなった時の駅名候補も増えるので。

なんと、ストリートビューがありました。

www.google.co.jp

 

memo : DKA法

代数方程式の解を、
"Aberthの初期値を用い,DK式を反復計算することで, rf_dka.eq1.gif個の根を得る方法をDKA(Durand-Kerner-Aberth)法と呼ぶ.(引用 : DKA法 - PukiWiki for PBCG Lab)"

複素数を考慮するのがポイント

 

DKA法 - PukiWiki for PBCG Lab

qiita.com

エクセルで操る!デュラン・ケルナー・アバース法(DKA法)による高次代数方程式の解計算

 

Durand-Kerner法によるARモデルから極表現への変換 ...

 

https://www.jstage.jst.go.jp/article/sicetr1965/34/6/34_6_607/_pdf/-char/ja

 

 

www.jstage.jst.go.jp

"midiglue" - Programmable MIDI/CV Controller & Effects Unit

"midiglue" - Programmable MIDI/CV Controller & Effects Unit

www.kickstarter.com

... のバッカー?になりました

midi信号をプログラマブルエフェクターしちゃうもの?です

デモではアルペジエイターです 発想しないとですね

 

ところでMIDI規格は、なんとこれから大幅アップデートが行われるらしいです

RA: ニュース: MIDIの”大幅アップデート”に向け、Ableton、Native InstrumentsらがMIDI規格団体に加入

となると、このようにMIDIを応用しようという道具の登場が嬉しい

 

個人的趣味としては、
右上のエフェクターが BOSS FZ-3 っぽいところにグッときました
BOSSのFuzzだとFZ-5のみが現行商品 つまみの数はFZ-3と同じなものの、左下の COSM のロゴがあります この画像だとそれがないので、FZ-3じゃないかな!

↓ ここのページの画像が比較しやすいと思う
BOSSのファズ3種 | さすらいのギター日記

なんか好きなんですよ FZ-3 が

memo : JavaScript x Python ... iPython Notebook -> GitHub Gist

とりあえず、メモ

Python のコードを JavaScript で実行したいんだが、という調べ物
手軽にWebアプリ化できるといいのだが

Brython ... Pythonコマンドプロンプトを作っちゃう?
その実行ファイルの大きさとアクセスの負荷が心配
とりあえず Brython 本家のものが公開されていそうだが、使いまくるのは気がひける

www.brython.info

 

"nbconvertでhtmlファイルに変換する" というのが主
そのままWebアプリ化できるわけではない

qiita.com

futurismo.biz

 

とはいえ、最近の雰囲気としては iPython Notebook -> GitHub Gist ? が、良さそう
Webアプリにはならなさそうだが、やりたい人たちはすぐ Fork して使えるだろう

徳井先生 がやってるのがとても面白い

Spectrogram Phase Reconstruction Test - Comparison between LWS and GriffinLim · GitHub

https://towardsdatascience.com/neuralfunk-combining-deep-learning-with-sound-design-91935759d628