7月の開発記録 (2024)

今週末のCOSCUP 2024のスライドの準備でテンパってるので(順調ではない)、手短にいきます。

ktmidi 0.9.0 and AAP 0.9.0

先月の時点でKotlin 2.0対応は済ませてありましたが、さらにmacOS用のCoreMidi2Accessの実装が何とか動くようになって、AlsaMidiAccessもAPIの設計はとりあえず現状でいけるだろう…となったので、とりあえずずっとpendingになっていたktmidi 0.9.0をリリースしました。ただiOSではまだ期待通りに動いていないというissueも届いており、まだ修正が必要そうです。iOSバイスは手元に無いし今そんなことをしている暇が無いので詳細は未確認…

AAPは先月からほとんど変更はありませんが、Android 15のAPIが固まってPlay StoreにもcompileSdk = 35のアプリを公開できるようになったので、AAP 0.9.0もリリースしました。

これらに合わせてresident-midi-keyboardもMIDI 2.0仮想ポートを追加するかたちで更新しています。

Kotlin 2.0 updates on mugene-ng, missing-dot, compose-audio-controls, ...

ktmidi 0.9.0がリリースできたので、mugene-ngとcompose-audio-controlsもこれを使う形でK2のエコシステムに乗っかってアップデートしました。唯一この流れに乗られなかったのがaugene-ngで、このプロジェクトはKSPでコード生成している部分がうまく更新できず、KSPのK2対応の正式版がリリースされたら移行しよう…となっています。

KSPはXMLリアライザーの自前実装コードを生成するために使っているのですが、このXMLリアライゼーションには.NETのXML APIを模倣したmissing-dot(自作)を使っているので、このmissing-dotもK2にアップデートすることになりました。そういえば結局.NET APIで必要になったものって全然無いな…というわけでこのライブラリは(御大層な名前の割には)全然成長していません。

aap-airwindows (WIP)

Airwindowsは以前からオーディオプラグインを大量に抱えているプロジェクトとして「時間が無限にできたらこれをAAPに移植してみよう」と思っていたのですが、何ヶ月か前にairwin2rackというプロジェクトがこれをVCVRackとJUCEでプラグイン化できるようにしていて、これを使い回せばAAP移植も楽にできるな…?と思っていたのでした。今月ちょっと試しに着手して全部プラグインとして列挙できるところまではできたのですが、なぜか期待通りに動かないものが大半で、ちょっと追加調査しないと使えないな…という感じです。このプロジェクトひとつでプラグイン自体が数百件あるので、インストールしたい気持ちにならないのがひとつの問題です…(!)

# 2024年のオーディオアプリケーション開発技術の動向に関する私的見解(1-3)

COSCUPのセッションがある関係で、最近のオーディオ開発のトピックをいろいろおさらいしていたのですが、普段からこの方面に深入りしているわけではない(!?)ので、ほとんどの時間が調査に費やされていてたいへん厳しい…という感じです。そんなわけで、調べていたものをちまちまと(まずは)日本語の文章でまとめていたのを、今月は3本くらい公開しました。

zenn.dev

zenn.dev

zenn.dev

jeq8: Waveform view on WebView

↑のPart 1で言及しているWebViewに関して、「ちゃんとオーディオ入力をプラグインのUIが受け取ってレンダリングするやつ」を、実験だけでもしてみないとなあと思って、Part 1の関連動画で説明されている「HTTPリクエストハンドラ経由でblobを渡せる」というのをJUCE WebViewで実践してみたプロジェクトを作ってみました。Web UIにはweq8というWeb AudioのプロジェクトのUIをそのまま使いまわしています。

github.com

動いている様子も一応ここで見られます(サムネのやつはデモとしてはびみょい)

View post on imgur.com
imgur.com

ただ、動いているときはまあまあ妥当そうなサイクルで描画できているのですが、プラグインとしてロードするとかなり頻繁にクラッシュするので(ロックとかが完全にいい加減なコード)、まだ「これで実用性が証明できた」とは言い難いところがあります。余裕ができたら再訪したいところです。