args
昨日のgo runとgo testで挙動が違うのは、os.argsのインデックスが間違っていただけだった・・ os.args[0] はコンパイルしたバイナリで、欲しかったものはos.args[1] でとれた。 なんか初歩的なところで時間溶かした。。
POSTS
昨日のgo runとgo testで挙動が違うのは、os.argsのインデックスが間違っていただけだった・・ os.args[0] はコンパイルしたバイナリで、欲しかったものはos.args[1] でとれた。 なんか初歩的なところで時間溶かした。。
昨日マークダウンからMMLを抜き出すところをとりあえず作ったので、 今日はMMLをSMF形式に変換するところを作る。 なかなか思ったように動いてくれない。。 go test と go run で挙動が違うのなんでだ・・
マークダウンからテーブル部分をmmlとして読み込むところを作っていたら日付が変わってしまって毎日更新に穴があいてしまった。
main.go と、とりあえず固定値を返すパッケージを書いた。 package main import ( "fmt" "os" "github.com/umemak/mdmml" ) func main() { src, err := os.ReadFile(os.Args[0]) if err != nil { fmt.Printf("%+v\n", err) os.Exit(1) } mm := mdmml.NewMDMML(src) os.Stdout.Write(mm.SMF()) }
とりあえずリポジトリを作成して、VS CodeのDev Containerで開発できるようにした。 timidityはコンテナ内で実行しても出力デバイスが見つからないとかで動かなかった。 SMFの仕様は、Wikipedia見ても具体的にどうなのって感じで、脚注のリンク先も公式以外は消えてしまっていた。 エンデ Read more
どうせ方言が多いなら、ということで自分ならどうするか考えてみた。 で、タイトルのとおりマークダウン記法と組み合わせるといい感じになるんじゃないかなー、と。 具体的には|で区切れるようにする。|はマークダウンだとテーブルになるので、VS Codeとかでプレビューしたときに見やすくなるのではないか。 テーブルの Read more
runvnc/music1: A simple way to play with MML (Music Macro Language). Enter MML in text area and press play button. は、中身はmohayonao/mml-emitter: MML(Music Macro Language) event emitter for Web Audio API.で、そこからmohayonao/mml-iterator: MML(Music Macro Language) Iteratorを使っているので、mml-iteratorを読んでみた。 とてもシンプルで読みやすいソースだと思った。 他 Read more
MMLを再生するために何が必要か考えてみた。 MMLから直接再生できるのが良いけれど、大変そうなので既存の何かがあれば使っていきたい。 midiファイルを再生するアプリはTiMidityというのがよさそう。 timidityとSoundFontをインストール $ sudo apt install timidity freepats fluid-soundfont-gm fluid-soundfont-gs 参考 FrontPage - KemaSoft 適当なmidiファイル Read more