Files
quartz-research-note/content/mimium.md
松浦 知也 Matsuura Tomoya 2bd0c09856
All checks were successful
Build / build (push) Successful in 11m54s
[obsidian] vault backup: 2025-09-24 12:14:18[
2025-09-24 12:14:19 +09:00

3.5 KiB
Raw Blame History

title, tags, date
title tags date
mimium
research
programming-language
#computermusic
#mimium
2023-08-28T22:32:09+0900

松浦知也が開発している音楽プログラミング言語

https://mimium.org

https://github.com/mimium-org/mimium-rs


開発メモ

理論

中間表現について

マクロ

ランタイム周りについて

応用先について

ふと思ったけど、SuperColliderPureDataと比べると、これらの言語は組み込みに使おうと思うとLinuxが動く環境を想定することになるHeavyはそれを全く別の処理系作ることで対応してたけど)。シーケンサとかスケジューラーがあるような、Faustだと難しいタイプのプログラムをArduinoとかに持っていくには向いているのではないか(Extemporeだって仕組み的に言えばそうかもしれないけど)

  • できれば教育用途とかに持ち込めるのが一番いい
  • ブートストラップできるといい
    • いろいろな人がmimiumで拡張やライブラリを書けるようになってからが本当の本番
    • 言語自体の拡張機能をその言語上でたくさん作れるとよい
    • しかし、極端に自由度が高いとそれはそれで参入障壁が高い

mimiumでのシーケンサ

mimiumでのライブコーディングエンジン


開発ロードマップ

mimium-rs/Roadmap.md at dev · mimium-org/mimium-rs · GitHub

  • 多段階計算:大変そう。コンパイラドライバをユーザーコードから叩けるようにするのが先か。
  • mimiumのレコード型:要件定義はほぼできたし、他の機能への依存も特になし。デフォルト引数の実装を無視すればとりあえず進められそう
  • mimiumでのバリアント:やっぱり必要、だが分割コンパイルを先にやらないとダメかも
  • モジュールシステム名前空間のCライブラリレベルでのマングリングとか考える必要ありそう。
  • 配列型の実装GC問題片付けばなんとか固定長と可変長の切り替えをどうするかを考えたい。
  • OSCの実装

その他雑に実装したい機能

  • 配列にステージ0限定でmapやaccumlateを足したい
  • ステージ0でselfを使えるようにする方法として、render:({seq:()->a,count:float})->[a]というプリミティブを導入したい
    • めちゃめちゃでかい配列リテラルになった時に対応できるのか要検討
  • UIにToggleとButtonを足す
    • 数値の列挙でもいいのでumenuも足したい
  • マクロでUnix Timeを取れるようにしたい
    • noiseのシードをコンパイル時に確定させたい