5月の開発記録 (2022)

5月、割と大したことをしていないうちにあっという間に過ぎましたが、ちょいちょい活動していました。

MIDI Innovation Awards応募記録

これは正確にはほとんど4月なのですが、4月にオーディオ開発者界隈でちまちまと話題になっていたMMA (MIDI Manufacturers Association) のMIDI Innocation Awards (MIA)のSoftware Prototype/Non-Commercial部門にひっそり応募していました。

www.midi.org

募集の存在自体は4月初頭には気づいていて、ちょっとAAP MIDIDeviceServiceにプリセットを切り替えられる機能くらい実装すれば音源だけでもそれなりにいけるかな、と思っていたのですが、先月はそれでそのままずるずると拡張機構そのものを全面的に作り込むことになってしまい、プリセット切り替えまでは至らなかったわけです。それまで"Prototype"の部分に気づいていなかったので、下旬にはこりゃ間に合わんから諦めよう…と思っていたのですが、月末になって他の応募作品を眺めながら「あ、完成していなくてもいいんだ…」と気づいて、さらにWebMIDI.jsやらags (advanced GTK sequencer)やら、昔からずっとあったソフトが新作みたいな顔をして並んでいるのをみて、「今年出来たものじゃないといけないはずなんだけど、MIDIの新機能があるだけでOKなら(MIDIDeviceServiceの実装は2021年4月だし)出すだけ出そう…」という感じで1日で適当にエントリーを作文して出しました。MIA、去年からやっていて今年で2回目らしいですが、Webサイト自体が割と雑で(!)、エントリーに複数段落書いていたのが全部1段落にまとめられて何かしら脳に病があるような体裁の文にされています…(他のエントリーもちょいちょいそんな感じのやつがある)

応募するコストは低い割に、見返りとしてMMAから応募者向けに、6月上旬に開催されるNAMM招待券(数量限定)みたいなやつがもらえることになっていて、これが割とおいしそうなやつでした。オフラインとオンラインがあって、オフラインは確か$900くらい、オンラインも$50くらいはして、オフラインに申し込んだほうが圧倒的にお得感はあるしNAMMは一度くらい見てみたいと思っていた(いる)のですが、今このご時世に観光旅行も十分に楽しめないだろうし(普段ドミトリーとかで過ごしてたことも多いし)、ちょっと足を伸ばしてトモダチを訪ねるのもだいぶ気が引けるので、心理的コストが大きかった(めんどくさかった)のでやめました。オンラインは誰でも参加できると思います(参加って言えるほどの体験があるのかはわかりませんが)。特に秘密だと書かれていないので数字も書いちゃいますが、オフラインチケットもオフラインチケットも65枚あって(ただこれは特別招待枠などを含む数字)、応募が全部で100件ちょいだったので、1応募あたり2名くらい、半分は参加しない(たぶんフツーの人は仕事があるし…)と考えると多分オフラインを申し込めばもらえたと思います。

Software Prototype/Non-Commercial部門で受賞したのはMusiKrakenというモバイルアプリなのですが、これはデバイスで取得できるモーションセンサー類を入力としてオーディオグラフノード化して出力まで(これもオーディオとMIDIがあり、ただしMIDIは有料版)いろいろ繋ぎ込める面白いやつでした。デモ動画がよく出来ていたので動画も出しときます(47:40くらいから)

youtu.be

MIAは、Commercial Software部門にも今年ちょっと話題になったFluid Chordsが出てきたり(この記事が詳しい)、この業界の技術開発の最先端が垣間見えるので、これは面白い企画を回すようになったな〜と思っています。まあNAMM Ticketsがもらえたのは今年限りかもしれませんが(2019年までは1月頃にやっていたので)。

CLAPオーディオプラグイン is 何? @ MusicLT vol.2

昨年12月に開催されたMusic LTが今月に早くも2回目を開催していて、完全に視聴者モードで眺めていたのですが、登壇側が少なそうだったのでじゃあ何かしゃべろうと思い、とりあえず年末頃に出てオーディオプラグイン開発者界隈(?)で注目を集めたCLAPについてざっくり発表しました。資料はspeakerdeckに置いてあります。カスタムURL作成が有料アカウント限定機能になちゃったのでもしかしたら引っ越すかも…

speakerdeck.com

CLAPは特徴も用途も概ねLV2とかぶるので、将来性があるかというと個人的には半信半疑なところがありますが(特にLV2はこれからJUCE7で公式サポートされるようになるので商用ソフトでの利用可能性が広がるはず)、仕様としては面白いところが少なからずあるので、選択肢として期待したいところです。ノートメッセージひとつとっても、MIDI 2.0にあるノートエクスプレッションやノート別コントローラーはもちろん、ノートオフの後tail完了後にホスト側に通知するコールバックを呼び出すような仕組みまで整備されています。

個人的にはCLAPの開発者は "Proprietary Audio Plugin for Linux, but the right way" という文章をまとめた人として注目しています。

https://gist.github.com/abique/4c1b9b40f3413f0df1591d2a7c760db4

はてなブログのgistの埋め込み、無駄に長文埋め込もうとしてでかくなるのでURLだけにします)

Linuxで商用オーディオプラグイン(特にGUI)をどう構築して配布するかはここでもちょくちょく書いていますが悩みの種で、このメモだとオーディオプラグインのプロセスを分離することでGtk/Qt混在問題を解決しようと提案していて、Ardourの開発者が全面的に反論して議論が紛糾しているのが面白いやつです。(わたしはオーディオだけRTで回せばプロセスコンテキストスイッチいらんだろ派なので他人事気分で読みました。)

この方面では今月ロンドンでオフライン(ハイブリッド)で開催されたTAP meetupに登場したJUCE始祖のJulesがぶち上げたSoundStacksの新しいアーキテクチャ(構想)のセッションが完全に面白いやつだったので、興味ある人は見てみるといいと思います。

www.youtube.com

UIにはWeb関連技術を見込んでいるというので、先のLinux GUIの話とこのSound Stacksの話を組み合わせると2年前に自分がやっていたaria2webの実験とだいたい同じアプローチになるので、みんな早くこっちに来てくれ〜ってなっています…といえるほど自分は作ってないわけですが…! (最近Androidしかやっていない)

今月CLAPを調べていたのは、「AAPの拡張機能サービス実装があればコールバック呼び出しにも対応できそうな気がするし、AAPのネイティブ処理部分は案外CLAPみたいなやつに置き換えても何とかなるんじゃないか?」みたいなことを考えていて、そのために調べていたということもあります。現状リアルタイムイベントにおけるコールバックはやっぱり無理そうなので、CLAPで置き換えるのはナシかな、というところに落ち着いています(Realtime Binderがアプリ側に開放されていたらまだ可能性があるところですが)。CLAPのGUI統合は、作者が↑のようなプロセス分離の構想にも親和的にできているのではないかと期待していることもあります(LV2でも出来なくはないと思いますが)。

AAP

実は作業に費やした時間の多くがバグフィックス…以前にASANを有効にしてビルドするまともな方法を模索するのに費やして、ほとんど生産的なことが出来ていない感じです。まあ今月はGoogle I/Oもあったしな…!(正直ほぼ関係ないです。コミュニティ・バインディング・コンテンツがほぼなかったこともあってあんまし見ていない。)

ただ先月ついにbreaking changeを導入したので、ついでに今のうちにいろいろ破壊的変更を目論んで手を加えたりとかはしています。が、ここに書くような話もほとんどないです。てか「開発記録」とか言いつつ開発に関する話ここだけだしその内容がうっすらしてる…(!?)

その他

今月はモバイルプラットフォームと独禁法に関する調べものや文書作成にも時間を使っていることがあり、コードを書く時間が相対的に減っている感じです。ネタ自体はこの記事で話題になっています。

www.itmedia.co.jp

この記事以前にわたしもTwitterでまあまあ拡散しようという意図を持った書き方で紹介していますが、このパブコメ募集自体はそもそも小寺さんから教えてもらったから読んだ、という流れです。300ページ近くある大作で明らかに複数人の作業の集大成なので、とても全部は見ていられないのですが、6/10までなのでまだちょっと時間があるので、書けそうなところを増やしていきます。

他にもやっていたことはあるのですが(異世界の仕事とか)、そういうのはまた追々…