Loading

S.F. Info.

S.F.@SFPGMR

2019/5/28 18:37:06

wasmのテキストフォーマットでコードを書いてるが、なかなか面白い。S式の簡潔さが心地よい。lispをきちんと学習したくなる。

S.F.@SFPGMR

2019/5/7 19:09:56

いろいろあって今は、wavファイルをjsで読み込もうとしている私。。

2019/5/7 19:12:14

RYDEENのカバーにつける動画をアップデートするためだが。音づくりは一つのマイルストーンに達したので。マイルストーンはあと100段階くらいありそうだが。。

2019/5/8 6:50:16

wavフォーマットのデータ読み込みは過去何度もやってることだけど、知らないことがまだまだ多いな。

2019/5/8 7:58:57

パートごとに波形データを横にスクロールして表示しようとしてるだけですけどね。

2019/5/8 7:58:58

リニアPCMのデータは読めるようになった。汎用じゃないから今のところこれで十分ですな。。

2019/5/8 8:03:09

そのデータをDataTextureにして少しずつgpuに渡して、フラグメントシェーダで描くのですわ。

2019/5/8 8:05:41

three.jsがwebgl2.0に対応したのでまたthree.jsのShaderMaterialでゴニョゴニョやろうとしてるわけですな。の割にはglsl es 3.0では書いてないのですが(笑)。

2019/5/8 8:08:35

シェーダでこういうことしようとすると、canvasで波形を描くのとは違ったアプローチをしないといけないので、私なんぞの凡人は結構頭を絞られるのですわ。まさに修行(笑)。

2019/5/8 17:56:26

glsl es 3.0だと配列の添字の定数縛りが外れるのか。書き直すか。。使うかどうかわからんけど。。

2019/5/9 5:55:40

今のところこんな感じ。。シェーダーを#version 300 esで書き直し、パートごとに波形を描けるようにしてみたところ。 https://t.co/PqoBu7VZq7

2019/5/9 6:12:41

いうてもこんな簡単なコードなんですけどね。。
板ポリにフラグメント・シェーダーで描くというごくごく簡単なしくみ。。これに苦悩する私の凡人さよ。。 https://t.co/Zwsrh39uSk

2019/5/9 6:12:41

WebGL 2.0だとシェーダー配列の添え字が定数でなくてもよくなったのはやっぱり大きいなあ。

in vec2 vUv;
.
.
float amplitude = amp[int(vUv.y * CHANNEL)];

2019/5/9 7:44:07

three.jsのwebgl 2.0の対応でちょっと面白いなと思ったのは、

#define varying out

かしてるとこ。

three.js/WebGLProgram.js at 1bb851f8decaeb855edf2e23e2278f405350b4a6 · mrdoob/three.js · GitHub
JavaScript 3D library. Contribute to mrdoob/three.js development by creating an account on GitHub.


確かにこのあたりこうしとけば既存のコードがes 3.0でも動くようになるもんなあ。。

2019/5/9 7:47:26

なので私のフラグメントシェーダーコードもtexture2D()が使えたのですな。

2019/5/10 6:27:13

とりあえず動画化してアップ。ちょっと地味ですな。

Youtube - YMO - RYDEEN (91)

2019/5/18 19:39:07

トータルコンプ・EQを主に調整。ちょっとバスドラの音量も下げてみた。。

Youtube - YMO - RYDEEN (92)

2019/5/19 19:36:19

ベースとバランス調整、そしてWebGL(three.js) + electronで作っている波形描画動画?を変えてみた。ちょっと見やすくなったかも。。

Youtube - YMO - RYDEEN (93)

2019/5/19 19:39:55

electronで1フレームずつjpegに落として、それを音声とffmpegで動画化しているというベタなやり方。結構時間がかかる。10分くらいかかるよなあ。

2019/5/19 19:45:42

youtubeはおそらくカメラ撮影した動画をターゲットにチューニングしてるだろうから、画面全体が動くようなのを作ると途端に画像が荒れる。そういうのって圧縮効率が悪くなるからだろうなあとか思ってる。

2019/5/25 19:02:43

ハイハットを差し替え。そして微調整。

Youtube - YMO - RYDEEN (94)

2019/5/27 6:32:43

久しぶりに「TECHNOPOLIS」をいじる。この曲もいろいろ調整しないとな。。難しいわ。。

Youtube - YMO - TECHNOPOLIS (6)

S.F.@SFPGMR

2019/5/26 17:38:36

Youtube - Optigan TV Commercial

S.F.@SFPGMR

2019/5/26 17:20:44

KRAFTWERKが使ってるのはメロトロンではなくオーケストロンなのか?

Youtube - Vako Orchestron Optical Disc Playback Sampler

2019/5/26 17:25:38

Wikipediaにはこう書いてあるな。。
The band Kraftwerk made heavy use of the Orchestron on their albums Radio-Activity (1975), Trans Europe Express (1977) and The Man-Machine (1978).

2019/5/26 17:27:31

メロトロンではないのね。。光学ディスクってなんだろうな。さっきの動画に映ってたけどね。。

Youtube - Vako Orchestron Optical Disc Playback Sampler

2019/5/26 17:28:44

Europe Endlessのコーラス・ボイスもオーケストロンなんですな。。

S.F.@SFPGMR

2019/5/19 19:23:04

この試合を観てから「シダックス・ファイヤー」を口ずさまない日はない。。

Youtube - シダックスファイヤー 2018秋決勝 中央学院1回表

2019/5/19 19:23:48

千葉の高校の応援は全国的にみてもレベルが高いのではないかと個人的には思ってる。

2019/5/19 19:25:43

私大阪出身だが、夏の予選でもこんなにガッツリ応援してなかったと思うんだけどね。でも府大会のテレビ中継なんて観てたのもう25年以上前だから今どうなってるかわからんけど。。

2019/5/19 19:27:16

この一回の中央学院の攻撃がすごかったんだよなあ。ストライク取りにきた甘い球を逃さないんだよな。。中央学院って強い。。てこの時思った。

2019/5/19 19:30:07

中央学院もピッチャーが今年は課題かもしれんね。。打撃は素晴らしいものがある。

2019/5/19 19:32:07

専大松戸に7-3で負けたんだけど、あの横山くんから3点取ってるのはやっぱりすごいんじゃないかな。。

2019/5/20 19:27:46

専大松戸は10-6で桐光学園に勝利。専大松戸の先発は千葉県大会でも決勝で先発で投げた西村くん。杉田くんかな?と思ってたけど、違った。ただ西村くんは捕まって杉田くんにスイッチ。杉田くんはそのあとはしっかり抑えた。

2019/5/20 19:27:46

やっぱり横山くんと杉田君の二本柱はすごいよなあ。

2019/5/20 19:29:00

次は東海大相模。おそらく明日は雨だから中1日空くんじゃないだろうか。そうすると横山くん先発ー杉田くんリリーフの黄金の継投で最少失点で勝利の可能性も出てきたな。。

2019/5/20 20:50:01

投手力・打力で見るといまいまのベスト4の順位は

1.専大松戸
2.木更津総合
3.習志野
4.銚子商

の順になるよなあ。ピッチャーの枚数と完成度は専大松戸が1つ頭出てる気がする。習志野と木更津総合がどれだけ伸びてくるかだけど、ポテンシャルは木更津総合のほうに分があるように思うなあ。。

2019/5/20 20:50:01

木総は根本くんがどれだけ復調するかにかかってるよな。習志野は2人目のピッチャーの安定性にかかってる。

2019/5/20 20:51:11

ベスト5となると中央学院がやっぱり入ってくるよな。あとは畔柳くんと2番手の出来次第。打線は申し分ないんじゃなかろうか。

2019/5/20 20:53:50

春から夏予選にかけては1年生も入ってくきて戦力も多少変わるし、他のメンバーも2-3か月の過ごし方でコロっと変わるから、わからんよなあ。。思いもよらぬチームが行く可能性もなくはない。八千代東を思い出すなあ。。

2019/5/22 17:50:44

うーむ。専大松戸負けたか。。杉田くん先発とは意外でしたな。。横山くん登板なしか。。黄金の投手リレーは夏におあずけですな。。

2019/5/22 17:51:17

まあでも杉田くんの投球内容はそんなに悪くないよね。。

2019/5/22 17:53:36

山村学園は和田くんが4試合連投なんじゃないの?しかも延長で勝ち越されるまであの東海大相模を一点に抑えたのは大したもんだ。。

2019/5/23 19:19:05

そして東海大の冠を背負った同士の春季関東大会の決勝、下馬評通り東海大相模が優勝した。東海大相模はあの打力で結構細やかな野球をするのですな。これは手ごわいですわ。とはいえ神奈川は激戦区だから夏の甲子園はそう簡単には行けないんだな。これが。

2019/5/23 19:22:20

春季大会が終了すると次はいよいよ夏の予選。千葉県予選が始まる7月10日までは1か月半ほどある。この1か月半をどう過ごすかで結果が変わってくるわけですな。。

S.F.@SFPGMR

2019/5/23 18:27:05

KRAFTWERKの「Franz Schubert」。このストリングスの音を聴いたとき、1977年でまさかサンプリングか!と思った。がこれは「メロトロン」というアナログ・サンプラの音らしい。テープ・サンプラと言ったほうが正確だろうか。。

Youtube - Franz Schubert (2009 Remastered Version)

2019/5/23 18:34:05

メロトロンはキーボード一つ一つにテーププレーヤーがついてて、キーボードを押すと再生して、話すとテープが巻き戻るというものすごいメカニカルなものである。。

Youtube - The Mellotron: Famous Songs!

2019/5/23 18:37:08

ビートルズの「Strawberry Fields Forever」のイントロでも使われてるよね。。

Youtube - The Beatles - Strawberry Fields Forever

2019/5/23 18:40:39

これを知った当時(1980年後半)実物をみたことはなかったし、そんなメカニカルなものできちんと演奏できるのか?と思ってたが、Youtubeのおかげで実物の構造や演奏を見ることができた。
これはポールマッカトニーよるメロトロンの紹介動画。

Youtube - Paul McCartney shows the Mellotron

2019/5/23 18:41:05

よい時代になったものだ。

2019/5/23 18:52:16

こういうメロトロンもあったのか。。左手でバッキング・トラックを弾いて、右手でソロを弾くという。この時代(1965年)でこれができてるのもすごいよね。音色のスイッチもできるような。

Youtube - The Mellotron: A Keyboard with the Power of an Orchestra (1965) | British Pathé

2019/5/23 18:57:33

若いときには全然知りえなかったことが、いまいろいろ知ることができるようになって、ほんと楽しい世の中になったよな。。逆もあるけど。

S.F.@SFPGMR

2019/5/23 18:22:55

KRAFTWERK 「Kometenmelodie 2 」。1974年ですでにこのベースの音色。すごいことですわな。。

Youtube - Kometenmelodie 2 (2009 Remaster)

S.F.@SFPGMR

2019/5/23 17:21:22

Jeff Beckの「Play With Me」。シンセのソロがギター・シンセなのかヤン・ハマーの演奏によるものなのか私はいまだにわからない。ヤン・ハマーもギターのようにキーボードを演奏するそうだと聞いてるし。「Narada Michael Walden」のドラムもいいよね。。

Youtube - Jeff Beck - Play With Me

2019/5/23 17:21:22

Jeff Beckの「Red Boots」。
「Narada Michael Walden」のドラムがすごいなあと思った一曲。超絶技巧を持つ演奏家が集まってセッションやると「なんとなく弾いてみた」で1曲できてしまうんじゃないだろうか。。

Youtube - Jeff Beck-Led Boots

2019/5/23 17:27:44

Jeff Beck - Come Dancing
このイントロのドラムの部分はUAの曲で使われてるよね。「情熱」聴いたとき「あ、ジェフベック」ってなった。。

Youtube - Jeff Beck - Come Dancing

S.F.@SFPGMR

2019/5/23 16:55:49

私がJames Brownで一番好きな曲はこれ。

Youtube - James Brown - Give It Up Or Turnit A Loose (In The Jungle Groove Remix)

2019/5/23 16:55:59

このCDも持っている。。

2019/5/23 16:58:20

Licking Stick。これもちょっと好きですな。。

Youtube - Licking Stick, Licking Stick by James Brown

2019/5/23 17:01:32

Kool & The Gang チョコレート・バターミルク。
このドラムのノリにちょっとハマってた。何度聴いたことか。。ノリとはなんなのか。。

Youtube - Chocolate Buttermilk - Kool & The Gang (1969)

2019/5/23 17:04:28

Kool & The Gang の「N.T.」。これもちょっとリズムのノリがちょっとクセになる一曲。初期のKool & The Gangの曲が結構好きなんだなあ。。とはいえKool & The Gangの曲全部聴きこんだわけではないけどね。

Youtube - Kool & the Gang N.T. Pts 1 & 2

2019/5/23 17:07:09

多分Kool & The Gangはこの曲のイメージが強いと思うが。。

Youtube - Kool & The Gang - Celebration (Official Video)

S.F.@SFPGMR

2019/4/19 20:51:04

wasm テキスト・フォーマットに定数ラベルなどの機能を拡張しようと試みてる。まあ完成するかどうかはまたアレだが。
プリプロセッサとして作り、watを吐くようにするつもり。「夢のオレオレ言語」にも生かせそうだしね。

2019/4/19 20:51:04

定数ラベルだけではなく、定数式も処理できたほうがいいというかできないと使い物にならないことに気づいて、どうしようか実装しながら考えてる。peg.jsを使ってパーサを書こうと思ってるんだけどね。

2019/4/19 20:51:05

最初は定数ラベルの定義をパースして、wasmのテキスト部分をトークン分割して定数ラベル名と識別子名が同じなら定数ラベル名に対応する定数を置き換えればいいじゃないかと思っていた。

2019/4/19 20:55:36

定数ラベルだけだと簡単だけど、定数式を導入するとなるとそうはいかない。wasm命令をある程度解釈して、定数が入る部分を特定する必要が出てくる。特定すれば後はプリプロセス段階でその式を実行してできた値に置き換えていけばいいよな。

2019/4/19 20:55:37

wasmテキスト・モードで定数式書けるならもうちょっと端折れるかなあと思ったけど、人間が直接書くことは想定してないから無いのだよね。。

2019/4/19 20:57:54

これは連休明けくらいまでには形なってればいいなあくらいの感じで進めようと思ってるけどね。。

2019/4/19 20:59:16

でまあ定数周りの式が書けるようになるとあとは#ifディレクティブみたいなことや、ソースインクルードをつければまあそこそこのものは開発できるのではないかなあと思ってるんだけどね。

2019/4/20 10:59:56

いろいろ考えた結果、マクロを(というかプリプロセス処理を)JSで書けるようにしてみた。一応画像のような記法のものをプリプロセスできている。 https://t.co/zpH00CDbCj

2019/4/20 11:04:32

プリプロセス後はこうなる。 https://t.co/HV7x9LpRlT

2019/4/20 11:06:25

gist

WASMテキストモードのプリプロセスをJSでできるようにしてみた。 · GitHub
WASMテキストモードのプリプロセスをJSでできるようにしてみた。. GitHub Gist: instantly share code, notes, and snippets.

2019/4/20 11:08:19

JSで書けるようにしたのはマクロのパーサを書くのが面倒なのがその理由。Functionオブジェクトを使って$というコンテキスト変数を使ってあれこれやる。

2019/4/20 11:14:30

マクロのパーサというか式実行とかを書くのが面倒なので、JSにマクロ部分のコードを預ければ結果が返ってくるのでそうしようかなと。。evalは使わずFunctionでやってる。そしてマクロブロック内はContextクラスのインスタンスをthisとして実行するようにしてる。

2019/4/20 11:15:12

Contextインスタンスの変数名が「$」である。thisでもいいが長いので「$」にした。。

2019/4/20 11:26:27

コードブロックなかではJSが動くのでWASMソースコードをJSで吐くようにすることも可能だわな。。 https://t.co/RHjMGSEreY

2019/4/20 11:27:50

そしてこれをプリプロセスするとこうなるというわけですな。 https://t.co/KpFTxx4IJM

2019/4/20 11:32:49

wabtに読ませてtoText()した結果がこれ。 https://t.co/h6jyJMTpC9

2019/4/20 11:42:02

あとはソースインクルードと条件つきプリプロセスですわな。。

2019/4/20 11:43:09

とりあえずこのレベルでwasmだけでpsgエミュレータを移植してみようかなと思ってるんだけどね。。

2019/4/20 11:43:24

自分用なのでこれでいいかなと。

2019/4/20 17:37:11

ソースインクルードってやっぱりややこしいなあ。。

2019/4/20 18:11:31

まずはソースインクルードして1つのソーステキストにしないといかんわな。でもインクルードしたソーステキスト中にソースインクルードがあったらそれもインクルードせんといかんわな。

2019/4/20 18:11:31

ちゅうことは再帰的にソースインクルードを繰り返して最終的にソースインクルードがなくなるまでインクルードしないといかんわな。

2019/4/21 20:17:15

ソースインクルードはできた感じ。あとはCでいうところの#if ディレクティブができたらとりあえず何か作れる状態にはなるかなと。マクロもS式で書けるようにするべきかもしれんが。。

2019/4/21 21:22:44

一応こんなコードがwasmバイナリ化できるようになった。。 https://t.co/d326zviDAm

2019/4/21 21:23:06

これの結果は以下の通り https://t.co/BuCQ0uPKu0

2019/4/21 21:25:06

いまいまの構文はこんな感じ。

mwasm/README.md at master · sfpgmr/mwasm · GitHub
wasmテキストフォーマットのプリプロセッサ拡張. Contribute to sfpgmr/mwasm development by creating an account on GitHub.

2019/4/21 21:47:41

プリプロセッサとしてはかなり高機能になりそうな感じではある。

2019/4/22 4:55:04

一応リポジトリは以下。

GitHub - sfpgmr/mwasm: wasmテキストフォーマットのプリプロセッサ拡張
wasmテキストフォーマットのプリプロセッサ拡張. Contribute to sfpgmr/mwasm development by creating an account on GitHub.

2019/4/24 21:21:36

プリプロセッサの実装は続けている。当初作り始めたものは1パスというか、peg.jsで生成したパーサー上でプリプロセスを同時に行うというしろものだった。

2019/4/24 21:21:37

しかしそれではソース・インクルードや条件付きインクルードできない、できたとしても非常に面倒くさい実装になるのでいったんパーサでソース・ツリーを出力してからそれを実行するように変更した。

2019/4/24 21:21:37

つまり2パス的な処理に変更した。そして今はメモリレイアウトを定義する仕様を決めつつ実装を進めているところである。

2019/4/24 21:21:37

これはアセンブラでいうところのDWとかEQUとかの擬似命令の類のものである。

2019/4/24 21:25:12

あとはstructとマクロ命令を定義できるようにしようと思っているが、ここまで来るとオレオレ言語の続き作ったほうがいいんじゃないかという気もしてきたけど、とりあえずこれは続けてPSGエミュレータを書くまでは続けるつもりである。

2019/4/24 21:25:12

そこまでできればまた違う世界が見えてくる、そういう気がしている。というのは大げさだろうか。オレオレ言語へのモチベーションも復活するかもしれんかなと。

2019/4/24 21:40:49

このプリプロセッサのメタ言語としてJSを使うというのは実現したかったところ。だけどそれだけではちょっと足りんというかコードを書くのが面倒なので変なディレクティブを作ってる感じ。だけどちょっと楽しい。

2019/4/24 21:50:08

今回のことでpeg.jsの理解が少し深まって、またちょっと評価が変わってきてる。

2019/4/24 21:50:08

S式も何となく好きなんだけどやっぱり書きにくいので、昔のアセンブラ風ニーモニックにできんかなとか考えてたりする。どうしても夢ばかり膨らんでしまうなあ。誇大妄想癖かもね。。

2019/4/24 21:50:08

load.i32 0x00000000
store.i32 0x04000000
load.i32 1

↓アセンブル

(i32.store (i32.const 0) (i32.load ( i32.const 0 )))

みたいな.

2019/4/24 21:51:13

あ、ちょっと間違った。。でもそれは次の段階にして、とりあえず動くものを作ろう。。

2019/4/26 4:27:16

ちょっとアセンブラの処理プロセスを考えなおし2つプロセスを追加することにした。結果、

1.トークナイズ&パース
2.プリプロセス
3.(新規)擬似命令の展開
4.(新規)定数ラベルの置換
5.wasmモジュール変換

2019/4/26 4:27:17

wasmのmemory内のメモリマップを作る処理は、プリプロセッサではなく、擬似命令レベルの処理だよなあと気づいた?からである。

2019/4/26 4:27:17

この擬似命令レベルの処理というのはマクロ命令の処理も入ることになるのでは?というのが今の考え。

2019/4/26 4:27:17

MASMとかMACRO-80のマクロについておさらいできればしておくか。。

2019/4/26 4:27:18

あとは命令は独自の簡略記法にしようかなあとも思ってるけどね。これは成り行きですな。。

2019/5/1 21:41:44

何とかまあ、メモリー配置を記述するマクロをパースする部分はできた模様。。
まあ、こういうのがパースできるようになっただけだど。。
{@map
offset {10};
i32 label[16] {return [1,2,3,4];};
i64 label2,label2_1,label2_2;
i32 label3;
f64 label4;
}

2019/5/1 21:41:44

C-Likeなメモリラベル定義を書けば、offsetで指定したアドレスから定義順にラベルに先頭オフセットを割り当てる。メモリにはラベル名でアクセスできるというわけ。これ使えるだけでだいぶwasmも書きやすくなると思ってるんだけど。。

2019/5/1 21:41:45

でパーサが吐いた定義ツリーを解析してオフセットを求めて割り当てるところはまだだけど、そんなに難しくはないだろう。

2019/5/1 21:41:45

これと構造体(struct)も定義できるようにしようと思ってるんだけどね。メモリラベルを階層化できるようにするものとしてのものだけどね。

2019/5/1 21:43:22

あ、初期化部分をデータセグメントで定義しなおすところはちと面倒かなと。データセグメントの初期値は文字列でしか定義できないからね。。

2019/5/1 21:44:55

まあRYDEENのカバー曲作りも成り行きで進めていて、その合間の作業となってしまってるなあ。。GWはこっちをメインでやろうと思ってたんだけどね。。

2019/5/12 20:51:23

wasmのテキストフォーマット用のプリプロセッサの作成は結局高校野球やらRYDEENのカバー曲つくりやら動画つくりやらですっかり後回しになってしまったが、少しずつ続けてはいる。

2019/5/12 20:51:24

今やっているのは、
1.wasmのリニア・メモリのオフセット・アドレスにラベルを付ける機能(メモリ・マップと勝手に呼んでいる)
2.構造体(struct)
を実装してみている。仕様はころころ変わっているが、所望のものができつつある。

2019/5/12 20:52:38

構造体の定義は今のところこんな感じ。C言語の変数定義みたいな感じになっている。 https://t.co/3G114CoMdN

2019/5/12 20:53:47

メモリマップの定義はこんな感じ。 https://t.co/sUgBj1DgIv

2019/5/12 20:57:48

こういうのでオフセット・アドレスのラベル定義を行って、こんな感じでラベルでオフセット・アドレスの指定ができるようにしようとしている。 https://t.co/38ZzIjreAT

2019/5/12 21:07:16

式でも指定できるようになっていて

&

No Image
Pascal S. Gysi Architekten - www.psga.ch
Pascal S. Gysi Architekten GmbH, Stäfa
_c.vol + 4

みたいな演算ができる。この計算はプリプロセスの段階で行われる。

2019/5/12 21:07:16

ちなみに
&

No Image
Pascal S. Gysi Architekten - www.psga.ch
Pascal S. Gysi Architekten GmbH, Stäfa
_c.vol
とするとラベルのオフセット・アドレスが取れる。
#psg.ch_c.vol
とするとラベルのサイズが取れる。

2019/5/12 21:07:17

演算はできる限り自前ではやらず、実行時にJSコード化してJSのFunctionオブジェクトで演算をやらせるようにし、実装を端折ろうとしてる。

2019/5/12 21:11:16

式をパーサで解釈させてJSをなぞるように実行してもいいんだろうけどね。

2019/5/12 21:12:51

Functionコンストラクタを使って実行時に関数を作って実行させることができるのでこれ使って式の評価をしてるんだよね。evalでもいいんだけど、evalは非推奨な感じがしてちょっと敬遠してる。

関数 - JavaScript | MDN
一般的に言うと、関数とは外部 (再帰の場合は内部) から 呼ばれる ことのできる「サブプログラム」です。プログラムそのもののように、関数は関数本体と呼ばれる連続した文で構成されます。値を関数に 渡す 事ができ、関数は値を返す事ができます。

2019/5/12 21:15:21

オリジナルの式がJSの式として解釈できるように変換できるレベルまでパーサで構文を分解するのにちょっと時間がかかってるんだよね。

2019/5/12 21:17:23

ちょうどいい塩梅のところをきめるのに手間取ったというか。

2019/5/17 20:32:36

今週はデータセクションの実装をしている。ちょっと面倒なのは、文字列でデータ表現しないといけないところ。これを配列で表現できるようにしてプリプロセスでdatastringにしようとしてる。

No Image
WebAssembly Core Specification
https://t.co/HQT0drPjxB

2019/5/17 20:38:17

バイナリでは単なるbyte arrayなんだけど、テキストフォーマットだと文字配列にしないといけないんだな。これが。。

2019/5/17 20:38:18

こんな感じでメモリの初期値を定義できるようにしようと思ってるのですわ。。パースはとりあえずできてて、これをdatastringにするコードを今書いてるところ。 https://t.co/RTHFbNQq8w

2019/5/17 20:42:57

この配列はu32型なので、配列のそれぞれの値を4バイト、リトルエンディアンで並べてそれぞれのバイトを文字に変えるわけですわな。処理自体難しいわけではないけど、配列のリテラル値は16/10/2の整数と浮動小数を指定できるようにしようと思ってるので面倒くさいんだよね。

2019/5/17 20:46:24

数値リテラルのパースをまともにやらなくてはならなくなったのが面倒だということですわな。ここはJSのFunctionオブジェクトでevalして端折ろうともくろんでたんだけど、64ビット整数リテラルの対応をしないといけないのでやむなく自前で書くことにした。

2019/5/17 20:51:06

BigIntが使えればこの問題も解決するんだけどね。今はまだ普通には使えないからね。64bitの整数リテラルはwasmの力を借りてサポートコードを書いてるのである。

2019/5/20 21:04:05

ちびちび続けてるけど、なかなか進まないねえ。。もちょっとなんだけど、ほかの趣味に時間を割かれてしまってる。。

2019/5/20 21:05:21

休日はゴロゴロ&ウトウトタイムは死守してるし、それが何より一番時間をとってる気がするけど(笑)

2019/5/20 21:07:06

このプリプロセッサができたらオレオレ言語のパーサもやっぱりpeg.jsで作り直そうと思ってるんだよね。。あと5年くらいはかかるかな・・(笑)

2019/5/20 21:08:37

趣味とはいえ、パソコンやってると肩と首がものすごく凝るからストレッチタイムも必要だしね。。

2019/5/21 21:25:08

メモリラベルはバイト単位でのオフセット指定が必要だろうなあ。。そうせんとレトロなチップのエミュレーションができんなあ。割り切って32ビット未満のデータ型は切り捨てるつもりでいたが、そうもいかんな。。

2019/5/21 21:29:07

JSの10進文字列を64ビット整数化するのwasmで書くのが楽そうなので書いてみてるところ。かなりいい加減だけどね。 https://t.co/7SutS81JKC

2019/5/21 21:29:07

今は16進文字列を64ビット整数化するコードを書いてる。

2019/5/21 21:34:27

wat(wasmのテキストフォーマット)はアセンブラというよりはアセンブラ風LISP言語な体である。このプリプロセスをJS風なメタ言語で書けるようにするのが今作ってるmwasmである。とりあえずPSGエミュレータを自作プリプロセッサを使ってコード書いて完成させるまでは続けたいなあ。。

2019/5/21 21:35:53

watに慣れてすらすら書けるようにならんとオレオレ言語コンパイラもいいものが作れないと勝手に思っていて、それがモチベーションになっている状況。。

2019/5/21 21:37:30

最終的にはbinaryenやwat2wasmに頼らず自前でバイナリを書き出せるところまではやろうかなと思ってるんだけどね。10年後くらいかな(笑)。

2019/5/22 6:22:59

いまいまの16進utf-16文字列を64ビット整数に変換するwasmコード。。

test.wat · GitHub
GitHub Gist: instantly share code, notes, and snippets.

2019/5/22 6:23:00

短い期間でとりあえず動く成果物を作ってモチベーションを萎えないようにする作戦で今年は行こう。進捗はゆっくりになるけど継続が大切ですからな。。1年もやってればそれなりのものができるだろう。。

2019/5/22 6:24:47

wasmのテキスト・モードでコードを書くのは結構楽しいね。。まだ簡単なものしか書いてないし、いい加減だけど。。 https://t.co/YmRNHH6UYJ

2019/5/22 6:25:08

テキスト・モードじゃなかった。テキスト・フォーマットだった。。

2019/5/22 6:28:42

スタックに積んだまま値を評価できればもっと簡潔に書けるような気もするのだが。

2019/5/22 6:31:16

頭の中でスタックの中身を想像しながらコードを書く感じが楽しいんだな。そしてS式の簡潔な表現にハマりつつある。emacsが流行った理由もわからなくはないな。

2019/5/22 7:25:15

ありゃ、gtじゃなくてgeだった。コード間違ってるな。。

2019/5/23 5:20:59

とりあえず一通りx進整数文字配列 -> 64bit符号あり/なし整数への変換コードを作成した。

mwasm/mwasm-lib.wat at dev · sfpgmr/mwasm · GitHub
wasmテキストフォーマットのプリプロセッサ拡張. Contribute to sfpgmr/mwasm development by creating an account on GitHub.

2019/5/23 5:23:20

wasmに「dup」インストラクションを追加する提案。
スタックトップの値を複製して積むやつ。あればちょっと楽かなーとか思う。

dup instruction · Issue #1102 · WebAssembly/design · GitHub
There is a drop instruction to drop a topmost value of the stack, but there's no dup instruction to duplicate the topmost value. It would be very useful in cases like raising to power. Imagine we're going to square a value from memory. C...

2019/5/23 5:34:36

凡ミスも甚だしい。。u64型なんてwasmにないよな。。アホだ。。今wat2wasmして気づいた。。

2019/5/23 5:43:19

そうだオレオレ言語作ってるときに疑似的にu64型を作ったんだった。。結局i64型だけのコードでいいんだな。。

mwasm/mwasm-lib.wat at dev · sfpgmr/mwasm · GitHub
wasmテキストフォーマットのプリプロセッサ拡張. Contribute to sfpgmr/mwasm development by creating an account on GitHub.

2019/5/23 5:45:12

符号付きであろうとなかろうとi64型でよくて、インストラクションだけ符号ありかなしかを気を付ければよかったんだった。すっかり忘れてた。。

2019/5/23 5:52:09

dup命令は今のところ採用する方向ではなさそう。dropというスタックの先頭を破棄する命令はあるんだけどね。pick命令(演算子)というスタックから値を取り出す命令も提案されていたようだ。

Multiple Values for Wasm - Google スライド

2019/5/23 5:56:04

この辺が問題だからかなあ。。

Ben T: Pick should be separate item, since it requires a more complex type checking in the context of unreachable code (polymorphic stack).

2019/5/23 6:01:53

wasmはローカル変数を使えるのでスタック操作しなくてもそれに相当する処理は可能だし、wasmは実CPUのアセンブラではないので、結局はネイティブ・コードに変換されるときに最適化されるのだからそこまで必要ないということなのだろうかね。。

2019/5/23 6:06:05

それに相当する処理というか、それを使用したいと思うケースがあった場合だよな。

2019/5/23 6:09:43

ローカル変数はふつうスタックにアロケートされるので、結局スタック操作することになるんだよな。知らんけど。dupもスタックから値を取り出してまたスタックに積むのだから、結局ローカル変数から2回local.getするのと変わらんだろうしな。。

のぶほっぷ福井【ZModeler超入門講座】発売もうすぐ@nobgame

2019/5/22 15:47:58

やばいね!透明もすごい綺麗!
ミマキエンジニアリングさんのフルカラー3Dプリンター『3DUJ-553』で出力。ミニ版を出してもらったー。
前面とか磨いてないのにめちゃくちゃ透明度が高い。
ミマキさん凄いなあ。
モデリングはZBrush。
#ZBrush https://t.co/S6chG1jd6S

Josh Ge@GridSageGames

2019/5/20 8:54:59

Ape is sharing ASCII explosions with realistic blast waves, where blue is the negative pressure wave (source: r/RoguelikeDev Discord) https://t.co/iVk8Q7EvK7

フリーダム嫁の旦那 書籍化決定12月5日発売@freeyomekan

2019/5/17 18:10:05

⚡️ "嫁が生きてきた壮絶な16年間"
全編をまとめました。良かったら見て下さい #虐待
twitter.com/i/moments/1120…

やじるし@chanomach

2019/5/20 20:41:00

現実にあったらよかったシステム https://t.co/AIv6Qu444n

TAN-Y(たに)@TANY_FMPMD

2019/5/21 7:18:32

#MUCOM88 on Web
ブラウザでMUCOMのMMLコンパイル&再生ができるようになりました。
sampl2.muc / Copyright(C) by Yuzo Koshiro

aosoft.github.io/MucomWeb.Play/ https://t.co/JtKAjqmODt

S.F.@SFPGMR

2019/5/19 22:17:28

好きなクラフト・ワークの曲を挙げろと言われたらまずこれかなあ。。

Youtube - Kraftwerk - Numbers

2019/5/19 22:21:28

次にこれですわな。「Europe Endless」。おそらくドラム・ベースも手で弾いてると思われ。

Youtube - Europe Endless (2009 Remastered Version)

2019/5/19 22:23:00

メロトロンとかボコーダーとか、いわゆるテクノの要素が全部入ってるんだよね。

2019/5/19 22:25:02

「Neon Lights」もうこれも何回聴いたことか。。後半の長いこと、長いこと。。でもちょっと常習性があるよ。。

Youtube - Kraftwerk - Neon Lights

2019/5/19 22:26:45

ショー・ルーム・ダミーズ。このベースですよ。この音。

Youtube - Kraftwerk - Showroom Dummies

2019/5/19 22:28:52

放射能の中でなぜか一番好きな、「Air Waves」。このノイズ・パーカッションが人のノリで作られている。。

Youtube - Kraftwerk - Airwaves

2019/5/19 22:29:26

結局ポップな曲がすきなんだろうな。。

2019/5/19 22:32:21

The Man Machineはスネアがどれもパーカッシブ。アルバムの中でも変わり種のこの「The Model」が好き。

Youtube - Kraftwerk - The Model (1978)

2019/5/19 22:34:01

ま、「The Robots」も好きなんですけどね。このリズムはやっぱりすごいよなあ。

Youtube - Kraftwerk - The Robots HQ Audio

2019/5/19 22:35:46

Kraftwerkがサンプリング・マシンを手に入れるとこんな曲を作る。

Youtube - Kraftwerk - Tour de France [Original Version, 1984] HD

2019/5/19 22:39:32

やっぱり「アウトバーン」はすごいですわ。リズムが跳ねとるんですから。しかも20分以上もあるし。

Youtube - Kraftwerk Autobahn full

S.F.@SFPGMR

2019/5/19 21:27:05

最近はなぜかシーカーズの動画もよく観る。女性シンガーの声がいいよね。

Youtube - The Seekers - I'll Never Find Another You 1965 STEREO

2019/5/19 21:29:52

こっちのほうが有名かも。「ヘイ・デアー・ジョージガール」

Youtube - The Seekers - Georgy Girl (1967 - Stereo)

2019/5/19 21:30:33

あ、曲名は「ジョージガール」ね。

2019/5/19 21:34:28

California Dreamin'

ママス・アンド・パパスのはカバーなのかな?

Youtube - The Seekers California Dreamin' 1966

2019/5/19 21:36:23

これね。
youtu.be/dwYYPWGVvEQ

2019/5/19 21:38:41

逆か。。

2019/5/19 21:41:47

これがオリジナルか?

Youtube - Barry McGuire - California Dreamin

2019/5/19 21:46:08

Surfin USA - ビーチ・ボーイズ
コーラスがキレイですな。。

Youtube - Beach Boys - Surfin Usa HD

2019/5/19 21:47:41

これも有名ですわ。「あぎゅーらーん」

The Beach Boys - I Get Around

Youtube - The Beach Boys - I Get Around

2019/5/19 21:48:45

コーラスが美しいなあ。。

2019/5/19 21:52:02

ビートルズの「I Saw Her Standing There」。このあたり中学生あたりで毎日のように聴いてたなあ。もちろんリアルタイムではないけどね。。

Youtube - THE BEATLES - I Saw Her Standing There

2019/5/19 21:54:05

ツイスト・アンド・シャウト。これもカバーだったよね。

Youtube - The Beatles - Twist & Shout - Performed Live On The Ed Sullivan Show 2/23/64

2019/5/19 21:54:57

キャーキャー言ってますなあ。失神者続出か。ビートルズのアイドルぶりはすごいな。

2019/5/19 21:58:46

デイ・トリッパー。YMOもカバーしてましたなあ。。

Youtube - The Beatles - Day Tripper (Official Video)

2019/5/19 22:03:24

yesterday。シーカーズのカバー。

Youtube - The Seekers - 1966 - 'Yesterday".

2019/5/19 22:11:40

私もカバーしてたりして。。

Youtube - BeatlesのYesterdayをカバーしてみている。(4)

S.F.@SFPGMR

2019/5/19 20:05:57

マーティン・デニーのFire Cracker。

Youtube - Fire Cracker

2019/5/19 20:07:42

Quiet Village。初夏から夏にかけて聴くと涼しく感じる。。

Youtube - Martin Denny - Quiet Village (1957)

S.F.@SFPGMR

2019/5/19 11:02:42

習志野はコールド負けしそうな雰囲気ですな。。

2019/5/19 11:04:56

7-0となると習志野の打線では取り返すことは難しそうだね。。相手の和田くんもいいピッチャーそうだしね。。

2019/5/19 11:09:30

8-0か。。下手すると5回コールドかもしれん。。

2019/5/19 11:10:18

いかん。。悪い時の杉山くんになっちゃってるな。。

2019/5/19 11:10:56

ダブルプレーでなんとかしのいだか。。

2019/5/19 11:11:40

さて習志野の2巡目がどうなるか。。

2019/5/19 11:28:06

9-0。失策で失点とは、習志野の選手もかなり動揺してるとみえるな。今日は観に行かなくてよかったな。。

2019/5/19 11:31:05

しかし3回も2アウトから4失点。どうも山本くんも制球がいまいち。習志野はピッチャーがいかに抑えるか次第なので、打ち合いになるとダメなんだよな。。打力で取り返すことは今のチームでは難しい。。

2019/5/19 11:33:44

あと1点取られると5回コールドが成立する。。

2019/5/19 11:34:09

裏習志野が点とれなきゃだけど。。

2019/5/19 11:36:57

杉山くんちょっと立ち直った感ありですな。三振でしのいだか。山本くんか杉山くんが3つ目の矢になってくれると夏は結構楽になるんだけどね。

2019/5/19 11:40:56

なおまだ2点取らないと7回Cのピンチ。今無死1・2塁のチャンスか。

2019/5/19 11:42:05

杉山くんが抑えたのはちょっと期待が持てる。ほんとはもうちょっと関東の強豪とやっておきたいとこだけどね。。

2019/5/19 11:44:11

ようやく1点を返したか。でも後2点以上取らないとだめか。。

2019/5/19 11:52:37

うーむ。やはり杉山くん厳しいか。。

2019/5/19 11:58:06

10-1で6回裏か。。うーむ。

2019/5/19 12:25:24

13-2。完敗もいいとこですな。いまさら飯塚くんを出すわけにもいかんしね。。おそらく山本くん→飯塚くんスイッチだったらちょっと変わってたかもしれんが。。投手起用は小林監督にしかわからない哲学があるからなあ。。山村学園もシニア出身ぞろいですごいチームだな。。

2019/5/19 12:33:12

13-2のまま試合終了。7回C負け。

2019/5/19 12:36:10

やっぱりちょっと投手起用には疑問が残るときがあるよなあ。。これって監督の判断だけじゃなくて選手の自主性も加味してるのかもしれないなあ。。続投か交代かのタイミングは投げてる投手が決めるとか。。

2019/5/19 12:40:37

去年の夏の西千葉大会の時の7回もそうだったよなあ。。早めに古谷くんにスイッチしていたら、おそらく違った結果になってたんじゃないだろうか。あの時もひょっとしたら佐藤くんの意思を尊重してたかもしれない。

2019/5/19 12:40:37

我々観戦者からしたら試合に勝つにはあそこで。。みたいなことを考えるけど、高校野球は教育の一環でもあるから、勝ちにこだわりすぎるのもどうかなと思わないでもない。

2019/5/19 12:40:38

と思う面もあるけど、習志野の戦い方は究極のスモール・ベースボールといったもので勝ちにこだわるスタイルでもあるから、そこにちょっと矛盾を感じないこともない。。まあ、ひとりごとです。。

2019/5/19 12:41:35

まあ、しょせんは部外者ですからね。。ほんとうのところはわからない。

2019/5/19 12:44:02

ここはひとつ、千葉県民としては専松に気を吐いてもらうしかないね。なんとか勝ち残ってもらいたい。

2019/5/19 12:45:47

今回の収穫は、一球速報.comがなかなすごいWebサービスだなということ(笑)。

山村学園 vs 習志野 試合経過-第71回春季関東地区高等学校野球大会 : 一球速報.com | OmyuTech
その一球を見逃すな! 第71回春季関東地区高等学校野球大会の試合を一球毎にリアルタイム配信中。打席ごとの全配球や、打球位置、走塁記録まで、スコアブックに記載しきれないほどの情報がいつでも確認できます。電子スコアブックが自動生成!データ分析機能も豊富!

2019/5/19 12:50:18

私としては、山本くんと杉山くんがこの春関東でもう一皮むけて、盤石な投手体制を築いてほしかったところであるが、今日は2人ともいまいちだったようだね。もちろん山村学園が強かったというのもあるし、今後の山村学園が強豪にどのような試合運びをするのかにもよるけどね。

2019/5/19 12:50:19

ただ甲子園に行くには、そのような強いチームであっても、飯塚くん以外にもう一人2-3点以内に抑える投手が習志野には必要ということである。そうでないと飯塚くんひとりではもたないんだな。特に夏は。。

2019/5/19 12:51:48

リリーフで投げた山内くんも今一つ安定性に欠けるところがあるからね。岩沢くんはやはりもう少しアンダースローの特性を生かした投球術を身につけないとちと厳しい気がする。

2019/5/19 15:41:04

ただここ10年ほど習志野高校を見てきた感じからすると、この負け方は習志野が関東大会に出た時のいつもの結果っぽい感じなのでそんなに驚きはなかったりする。

2019/5/19 15:44:18

一球速報.comの試合経過を見るとやっぱり山本くんも杉山くんもボール先行の苦しいピッチングだったようだね。置きにいった球を痛打されるイメージ。。秋関東の決勝のイメージかな。ここが一番の課題、2番手の安定性ですわ。。

山村学園 vs 習志野 試合経過-第71回春季関東地区高等学校野球大会 : 一球速報.com | OmyuTech
その一球を見逃すな! 第71回春季関東地区高等学校野球大会の試合を一球毎にリアルタイム配信中。打席ごとの全配球や、打球位置、走塁記録まで、スコアブックに記載しきれないほどの情報がいつでも確認できます。電子スコアブックが自動生成!データ分析機能も豊富!

2019/5/19 15:53:55

千葉県だとノーシードで1回戦からだと、8回勝たないと甲子園には行けないんだよね。習志野はAシードだけど、それでも7回勝たないと甲子園には行けないわけだ。

2019/5/19 15:53:55

4回戦あたりまでは、強豪校はエースを温存して控えで勝ち上がる。エースが出てくるのは5回戦以降が多い。Cシードの強豪とあたる可能性が高いしね。

2019/5/19 15:56:38

それ以降はエースが投げないと試合にならないので、多投になってしまってエースが疲れて、それが原因で打たれて負けるというパターンになってしまうことも多い。なので勝ち上がるには2番手のピッチャーがエースに匹敵するほどの実力が必要なんだよね。

2019/5/19 15:59:23

専松は横山くんという盤石のエースがいて、そして杉田くんという強力な2番手がいる。習志野との決勝は2人とも温存して接戦に持ち込んでたから、専松は2番手・3番手もほかのチームだったらエース級のピッチャーを抱えていることになるね。春の時点では盤石な投手陣ではないかなと思うな。。

2019/5/19 16:00:08

次の試合では杉田くんが投げるのはないだろうかね。知らんけど。。

2019/5/19 16:03:09

木総も、根本くんというエース、そして篠木くん、吉鶴くん、四反田くんという140Km台のストレートを投げる投手が4人いる。ただ根本くんの復調がカギといったところだろうか。春は木総は調整のイメージが強く夏になると「アレ、強い。。」となるのが普通。だからまあこれから。

2019/5/19 16:09:47

習志野はというと、飯塚くんがやはりチームの中ではやっぱり頭ひとつ出てる感がある。打力はあまりないから、最少失点で試合を作らないといけない。投手の役割は他の強豪チームとくらべてかなり重い。

S.F.@SFPGMR

2019/5/18 16:33:16

専大松戸2-0で健大高崎に勝利。やっぱり横山くんすごいな。。

S.F.@SFPGMR

2019/5/18 12:07:20

やっぱりいい試合してる。さすが木総。午後の専松はどうか。

K-880さんのツイート: "春季関東地区高等学校野球大会 1回戦 県営大宮 5回終了 木更津総合 000 10 =0 H2 E0 B0 東海大相模 010 00 =1 H2 E1 B0 木)篠木 東)遠藤 [本] [三] [二]木)小池 [盗]東)茂谷,金城2 4回木総は先頭の小池が2塁打,4番岩井の適時打で同点‼️ 5回相模は0死1,2塁の好機を作るが無得点"

2019/5/18 12:09:44

あの東海大相模をヒット2本に抑えるとは、篠木くんはやっぱりすごいなあ。。

2019/5/18 12:49:28

根本くん打たれたか。。銚子商の試合の時も制球がままならない感じであきらかに調子わるそうだったもんなあ。。

バラルバレル@BalalBarrel

2019/5/17 21:24:20

現在制作中のフリーゲームに登場する予定のボスです。巨大なボスを作るのは楽しい。#gamedev #indiedev https://t.co/76kKt7zBW5

S.F.@SFPGMR

2019/5/15 21:54:40

会社帰りに八ツ山橋を通りかかったら警察が非常線を張ろうとしてて消防車がすごい来て何かなあ?と思ったら人身事故だったのか。。あの橋から飛び降りたのかな。。怖い。。

2019/5/15 21:55:53

橋のたもとに鞄が置いてあって。やっぱりあれが遺物だったのかなあと今思ってゾッとしてる。。

S.F.@SFPGMR

2019/5/14 21:02:49

ファースト・レーンのBGM好きだなあ。FM音源全盛の時代にD/A(サンプリング音源)だけという当時としてはちょっと変わった仕様のサウンド。予算の都合でそうなったとかなってないとか。。

Youtube - Arcade Longplay [429] Fast Lane

2019/5/14 21:03:50

これ日本で発売されたのかな。。私はデモテープも貰ったくらいこのBGMに心酔していたが。。

2019/5/14 21:06:19

ゲームの内容は私の好みではあまりなかったが。。

2019/5/14 21:16:40

バトランティス。当時アルカノイドのヒットによってこのようなリバイバルものがちょっとはやった。

Youtube - 1987 [60fps] Battlantis ALL

2019/5/14 21:17:39

このゲームがはやったかどうかといえば、推してはかるべし。。

2019/5/14 21:21:22

フラック・アタックもちょっと不運なSTGかもしれん。。

Youtube - Arcade Archives FLAK ATTACK Trophies アーケードアーカイブス フラックアタック

2019/5/14 21:26:41

Devil Worldも独特の世界観。開発が難航してた感あり。。

Youtube - Arcade Longplay [184] Devil World

2019/5/14 21:32:00

THE HUSTLER。知る人ぞ知るビリヤードゲーム。当時はリアルな動きだなあと思ってた。

Youtube - The Hustler - Arcade

2019/5/14 21:37:10

WEC Le Mans も回転する専用筐体まで発売されたよな。。当時相当遊んだんだけど、他のレース・ゲームに比べるとレトロ界隈での露出度が少ない気がしないでもない。。
youtu.be/IlD9Paejj-Y

2019/5/14 21:38:01

この手のレースゲームってコナミのイメージではないからかもね。。

2019/5/14 21:39:33

ロード・ファイターなんつうのもあったな。この上から見下ろし画面で見る車のグラフィックが立体的ですごい!って当時思ったんだよな。。

Youtube - Arcade Game: Road Fighter (1984 Konami)

S.F.@SFPGMR

2019/5/14 20:43:29

ああ、これだ。。アクティブタイプか。。

No Image
Twitter / ?