MIDI-CI Common Rules for Property Exchangeを見ると、header部分はJSONフォーマットと言いつつ実際にはずいぶんハードな要件を課していて(トップレベルはobject、resource名は必ずcamelCase、ASCIIで32文字以内、値はboolean / string / number / nullのみ)、もしかしたらrealtime safeに事前アロケーションだけで何とかなる処理系があるのかもしれない。ただまあまあ穴がある気がする(項目数は無制限、プロパティ名はASCIIの範囲を\u00xxでエスケープされうるのでバイト配列比較は無理、など)
C#やKotlinはコンパイラプラグインによるコード生成でメタプログラミングを解決するアプローチでソフトランディング?を図っている印象がある
https://tarao.hatenablog.com/entry/scala3-multi-stage 多段階計算って主要な言語で取り入れてるのまだ無いよなと思ってたんだけど最近Scala3はガッツリ導入しているのを知った
"2023年12月3日にPlayStationが「12月31日付けで1300本のデジタルコンテンツを削除する」とユーザーに通知しました。削除されたコンテンツを新たに購入できないのは当然ですが、既に購入済みだったユーザーのライブラリからもコンテンツを削除すると発表されており、特に返金などの対応も予定されていないためユーザーからの反発が起きています" https://gigazine.net/news/20231211-there-is-no-piracy-without-ownership/
Google’s Android app store monopoly violates antitrust law, jury finds - Enlarge / Artist's conception of Epic Games CEO Tim Sweeney jumping for... - https://arstechnica.com/gaming/2023/12/googles-android-app-store-monopoly-violates-antitrust-law-jury-finds/ #googleplay #monopoly #gaming #policy #google #apple #epic
ktmidiがJUCEのCapabilityInquiryDemoとそこそこメッセージのやり取りができるようになってきたのだけど、Get Property Dataで送られてくる内容が(まだJSONパーサをMIDI-CI実装に適用していないので)解析できず、空っぽのデータをReply To Get Property Dataとして返すようにしているのだけど、そうするとCapabilityInquiryDemoはコイツはダメなやつだ…と判断してInvalidateMUIDを送り付けてくる。そしてそれが終わるとまたDiscoveryからやり直すんだけど、これはktmidiでも正常に処理できるのでまたProperty Exchangeが走ってGet Property Dataが来て…となって無限ループしている(
CapabilityInquiryDemoの挙動が良くないんだよなこれ。まあ実験用コードにすぎないわけだけど…
MIDI2 Property Exchangeを実装するには(正確にはCommon Rules for MIDI-CI Property Exchangeを実装するには)JSONパーサが必要になるんだけど、kotlinx.serialization依存を増やすと面倒な事態が生じそうな気がする…となって、x年ぶりに自前で実装してしまった。
JSONってあんな単純な構文だけど曖昧なんだよな… https://stackoverflow.com/questions/21832701/does-json-syntax-allow-duplicate-keys-in-an-object
いつの間にかKSP2なんてことになってた(Kotlin 2.0に合わせて) https://android-developers.googleblog.com/2023/12/ksp2-preview-kotlin-k2-standalone.html
https://www.dtmstation.com/archives/64160.html リアルタイム処理できないことによる実用性に関するデメリットを全て受け入れて初めてKontakt等と比較できると思うけど、Session Stringsとかでそんなに長音が不自然だった記憶が無い(プロプライエタリ音源なのであんまし自分が聴き込んでいないという話はある)当然Humanizerとかは積んでいるわけだし、十分自然に聴こえているような気もするけど… https://www.youtube.com/watch?v=5b9x_MS9H2o
> 受付時間: 9:30-10:30
> 受付時間を過ぎてのご来場はできません。ご注意ください。
まじか。これは行かないフラグだいぶ立ってる https://gdg-tokyo.connpass.com/event/301690/
言語学/言語創作のアドカレ蓄積がいろいろあって踏み込んだら面白そうだな https://adventar.org/calendars/8540
W3C has posted that we are no longer active on X/Twitter and have directed all our followers here to Mastodon.
We are encouraging all W3C-related accounts to do the same.
Encourage your friends to follow us here!
(This is my Japanese timeline. atsushieno@g0v.social for English)
music software tools enthusiast. Audio Plugins For Android, Linux, MML, MIDI 1.0/2.0.
old posts are at https://mastodon.cloud/@atsushieno