Skip to content

Mdmml

TypeScriptで標準出力

マークダウンから変換したSMFデータを標準出力に書き出したいのだけれど、バイナリをそのまま出力する方法がわからず。。

console.logだと型情報とかついた普通のテキストになってしまう。

$ node dist/main.js
Uint8Array(45) [
  77,  84, 104, 100,  0,   0,   0, 6, 0,   1,  0,
   1,   3, 192,  77, 84, 114, 107, 0, 0,   0, 23,
   0, 255,   3,   0,  0, 255,  81, 3, 7, 161, 32,
   0, 255,  88,   4,  4,   2,  24, 8, 0, 255, 47,
   0
]

fsパッケージを使おうとしたけれど、Module not found: Error: Can't resolve 'fs'などと言われてbuildできず。

Read more

MDMMLのJavaScript移植

Rust移植は未完だけれどもいい勉強になった。

今度はJavaScript(TypeScript)に移植しようと思う。 というのもcifkao/html-midi-player: 🎹 Play and display MIDI files on the webと連携してブラウザで完結出来たら良さそうなので。

もともとのGoの実装でも、サーバー立てるなりローカルにバイナリ置くなりすればできそうな気もするけど、それはそれとして。

Read more

mdmml_rust

Vecの使い方を理解した気がする。

これでどうにかSMFのバイナリを組み立てられるのではないだろうか。

mdmml_rust

Rust版を少し進めた。

こういうときはこう書けばよい、というのが身についていないのでなかなか進まない。

mdmml機能追加

ローカルファイルだけではなく、URL指定で読み込みできるようにしてみた。

issue立てておいたのにPRせずにmaster直PUSHしてしまった。。

バグ取り

MDMMLのループバグ、デバッグが面倒だったのでループの展開だけ前処理に分けることにした。

これだと文字列の状態でテストできるので、16進数より見やすい。

たぶん直ったと思う。

バグ発見

ループと休符の組み合わせで、休符が消える現象が起きてる気がする。

後から実装したところはちょっと入り組んでしまっているね。。