MML再生サービス
こんなページを見つけた。
MMLの楽譜を作成しMIDIやMP3に変換・再生 ネット音楽教室
こないだやりたいと思っていたことがすでに実現されていたとは。
ところで、MMLって方言が結構あるようで、標準化はされてないのだろうか。
音階やオクターブ上下などはどこも同じだけど、コードとかループなんかは特に表記が揺れているところに思える。
POSTS
こんなページを見つけた。
MMLの楽譜を作成しMIDIやMP3に変換・再生 ネット音楽教室
こないだやりたいと思っていたことがすでに実現されていたとは。
ところで、MMLって方言が結構あるようで、標準化はされてないのだろうか。
音階やオクターブ上下などはどこも同じだけど、コードとかループなんかは特に表記が揺れているところに思える。
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を読んでみた。
とてもシンプルで読みやすいソースだと思った。
他のも読んでみよう。
MMLを再生するために何が必要か考えてみた。
MMLから直接再生できるのが良いけれど、大変そうなので既存の何かがあれば使っていきたい。
midiファイルを再生するアプリはTiMidityというのがよさそう。
timidityとSoundFontをインストール
$ sudo apt install timidity freepats fluid-soundfont-gm fluid-soundfont-gs
参考
適当なmidiファイルを流し込む
$ cat sample.mid | timidity -
鳴った。
Read morePixel4でAndroid12の時の現象。ほかの組み合わせは未確認。
Androidのワイヤレスデバッグを使おうとして
$ adb pair 192.168.***.***:nnnnn
Enter pairing code: 999999
Failed: Unable to start pairing client.
こんなエラーになったとき
$ ping 192.168.***.***
PING 192.168.***.*** (192.168.***.***) 56(84) bytes of data.
From 192.168.***.*** icmp_seq=3 Destination Host Unreachable
^C
--- 192.168.***.*** ping statistics ---
4 packets transmitted, 0 received, +1 errors, 100% packet loss, time 3093ms
pingも通らないなら
デバイスを再起動すると直る。
Android実機でのワイヤレスデバッグができない件、Pixel4を再起動したらあっさり解決。
時間返して・・
ということで、Flutterのでもアプリを実機で確認することができた。
昨日調べた中で手っ取り早そうな、デバイスは実機を使うパターンを試してみた。
VS CodeでFlutterデバッグ動かすところまでは行けたけど、デバイスの接続でエラーになってしまう。
$ adb pair <ipaddress>:<port>
Enter pairing code: <code>
Failed: Unable to start pairing client.
ping打ってもDestination Host Unreachable
だし、WindowsのFirewall一時的にオフにしても変わらず。
ちょっと気分転換に。
Surface Go2では力不足だと思って遠慮していた、Flutterのローカル環境での開発をやりたい。
以前はFlutter Webを使っていたので、ホットリロードの恩恵が受けられずにいた。
InspironになってCore i7+16GBを手にした今、Androidエミュレータ使ってホットリロードしながらサクサク画面が作れるのではないか、と。
Read moreエラーメッセージUncaught TypeError: Cannot read properties of undefined (reading 'initializeApp')
でぐぐって出てきた
を参考にしたら、エラー解消して一歩進んだ。 上記回答にも書いてあるが、
ドキュメントに書いてある(以前自分も見つけてたやつだけど、ふむふむ互換パッケージが用意されてるのね、程度できちんと読んでなかった)。
Read moreどうもうまくいかない。 ライブラリのバージョンの問題なのか何か見落としていることがあるのか。
AmplifyのGraphQLもそうだけど、こういう、本質的ではないと(個人的には)思うところで躓いて先に進めないのはとてもストレスになる。