JUCE 7.0で追加されたLV2サポートについて

JUCE Advent Calendar 2022、2日目のエントリーです。 2021年の半ば頃からJUCE開発者がサポート計画を公言して以来、コミュニティで話題になっていたLV2プラグインフォーマットのサポートが、ついにJUCE 7.0のリリースで実現しました。 LV2プラグインなんて…

VitalにCC0ライセンスのWavetableを大量に取り込む

DTMテクニック集 Advent Calendar 2022、初日が空いていたのでトップバッターをつとめることにしました。 1月にVitalのウェーブテーブルとして使えるフリー素材を大量にVital用ファイルとして取り込んだリポジトリを作ったので、その話を書きます。CC0ライセ…

11月の開発記録(2022)

毎年「えっ、11月って31日まで無かったっけ?」って思ってしまう人です(時候の挨拶) 勉強会: Zrythmから読み解くDAWの作り方(12/11) music-tech.connpass.com 10月に「あと11月のうちに1回オンライン勉強会をやっておきたいですね。」などと書いていたので…

10月の開発記録(2022)

M3 2022秋の出展 10/30のM3 2022秋 (50回目だったらしい)に「オーディオプラグイン研究所」として出展参加しました。技術書典13で発行した「CLAPオーディオプラグイン開発ガイド」に加筆修正を加えた「正式版」の印刷版・電子版と、「Linux DTMガイドブック…

9月の活動記録(2022)

9月がいつの間にか過ぎていました(忘れてた)。9月はまだ半分以上台湾で過ごしていたんですよね。いつの間にかすっかり日本で落ち着いてしまいました。9月は表立った活動としては技術書を2冊書いたのが主だったところです。 CLAPオーディオプラグイン開発者…

8月の開発記録 (2022)

ちょっとだけ台湾生活のようす 台湾で日常生活を送りながら日暮しPCに向かいて過ごしています。日本も医療崩壊がひどいことになっていますが、安全に過ごせる度合いは台湾とどっこいどっこいなところがあるなあと感じています。公共交通機関でマスクを外す人…

オーディオプラグインのパラメーター変更と通知に関する覚書

最近自分のプラグインフレームワークでプラグインパラメーターのサポートを設計しているのだけど(パラメーターのサポート無かったの!?と思われそうだけど、これまでは古いLV2と同じでパラメーター毎に「ポート」を用意するスタイルで実現していたのを再設計…

Android 13のMIDI 2.0サポートについて

Android 13正式版がリリースされてAOSPにcode dropされたようです。 Android 13には興味深い新機能がいくつかあって、個人的にはLE Audioサポートの追加で音楽ソフトの体験が変わりそうなのとAndroid 12Lで追加された(主に)タブレット向けの複数Activity並…

7月の開発記録 (2022)

COSCUP 2022に登壇するために台湾に来ています。 台湾はまだ観光ビザで訪問できないので、就業金卡というビジネスビザの一種で来ています。ある種の職能スペシャリストビザの一種で、いくつかの条件を満たせば申請が受理される見込みがまあまああるのですが…

CLAP 1.0公開を機にオーディオプラグイン規格の何たるかを知る (4) 拡張機能・各論 ほか

一般的な拡張機能 状態(state)の保存・復元 DAWで音楽を打ち込んだ内容をセーブすると、各トラックに設定されたプラグインのパラメーター等をひと通り操作した状態(state)を保存することになります。逆に楽曲データをロードすると、プラグインのパラメーター…

CLAP 1.0公開を機にオーディオプラグイン規格の何たるかを知る (3)オーディオ処理のパイプライン

オーディオ処理部分の基本形 オーディオプラグイン規格は、それぞれ互換性が無いものですが、楽器やエフェクターとしての基本的なオーディオ処理の部分には共通の部分が多いです。以下に擬似コードで列挙します。 create(): プラグインを生成する activate()…

CLAP 1.0公開を機にオーディオプラグイン規格の何たるかを知る (2)オーディオプラグインの拡張機能の種類

連載2回目の本エントリーでは、オーディオプラグインの「拡張機能」としてどのようなものが存在するのか、CLAPとLV2を例としていくつか見ていきましょう。各拡張機能の詳しい内容には今回は踏み込みません(以降の回に期待して下さい)。 まずはCLAPにどのよ…

CLAP 1.0公開を機にオーディオプラグイン規格の何たるかを知る (1)

5月に「CLAPオーディオプラグイン is 何?」という雑なLT(LTなので!)を行いました。このときは短時間だったので技術的な詳細には踏み込ませんでしたが、より多くの人が踏み込んで技術的に評価できるように、もう少し技術的な詳細に踏み込んだ解説があるべき…

6月の活動記録 (2022)

6月は雨が多くて好きじゃないという人も少なくありませんが、わたしは好きじゃないですね(時候の挨拶)。 AAPのPrefabパッケージ化とlibcxx-provider AAPの開発がAndroid Studioのデバッグ実行まわりの不安定さに引っ張られてスムーズに進まないので、今月…

モバイル・エコシステムに関する競争評価(中間報告)に対するパブリックコメント 最終版

話題の*1「モバイル・エコシステムに関する競争評価(中間報告)に対するパブリックコメント」を自分でも書いたので公開しておきます。 public-comment.e-gov.go.jp 以下本文: この報告書の位置づけに対する理解 (この項目は、提出用フォーマットの「2.記載…

5月の開発記録 (2022)

5月、割と大したことをしていないうちにあっという間に過ぎましたが、ちょいちょい活動していました。 MIDI Innovation Awards応募記録 これは正確にはほとんど4月なのですが、4月にオーディオ開発者界隈でちまちまと話題になっていたMMA (MIDI Manufacturer…

4月の開発記録 (2022)

4月が終わろうとしています。今月は副業で某XIVの冒険者を始めてしまって進捗がひどいことに… ADC21セッション動画鑑賞会 #1 をやった 4/6にひさしぶりにオーディオ開発の勉強会を開催しました。 music-tech.connpass.com 見たのはVitalの開発者がウェーブテ…

オーディオプラグインのインスタンス生成スレッドに関する覚書

AAP (android-audio-plugin-framework) のホスト実装のひとつとして、JUCEのAudioPluginHostを利用しているのだけど、最近全面的に再構成しているホスティングAPIに基づいてJUCE統合(AndroidAudioPluginFormat)を書き直していて、だいぶ行き詰まった問題が…

3月の開発記録 (2022)

早いもので3月が終わろうとしています。2月の終わりから全く世界情勢が安定せず、誰もが落ち着かない雰囲気の中で日々を過ごすことになったと思います。自分も例外ではないところですが、多かれ少なかれ影響を受けつつも、自分の作業は進められるだけ進めて…

JUCE on Android : fixing ClassNotFoundException on non-main thread

調査の端緒 JUCE on Androidには、メインスレッド以外ではJNI経由でAndroid frameworkとJUCEのクラス以外でまともにJNI呼び出しが行えないという問題が存在する。自分が初めての発見者というわけではないようで、JUCE forumに同様の報告がある。 forum.juce.…

2月の活動記録 (2022)

先月ちらっと書いたのですが、今月はAndroidオーディオプラグインの抜本的な仕切り直しを計画していました。 今年は完全個人プロジェクトを卒業して他の人にも使ってもらえるようなところまで持っていきたいという気持ちがあります。去年も1人で続けていまし…

1月の活動記録(2022)

2022年最初の活動記録です。といっても実のところ今月は書けるようなことがびっくりするくらい無いですね。というのは、昨年末に書いた話ですが、いじっていたemscriptenまわりのやつとか、他にも何点かあるんですが、ほとんど全滅状態で、あとAndroidオーデ…

12月の活動記録(2021)

12月の活動記録です。2021年の〜はめんどくさいのでやめました。毎月書いてるからただの繰り返しになりそうですし。 JzzMidiAccess atsushieno/ktmidiはKotlin MPPでMIDIデバイスに接続できるAPIを提供しています。その実装はプラットフォームごとに、かつOS…

【サルベージ】 オーディオプラグインフレームワークを設計する

昔からいろいろな思いつきを書き溜めたまま放置してしまって、そのままお蔵入りになることが多いのだけど、これは一度考え方のたたき台的に出しておいたほうが良いかと思ったので公開することにした。書いたのは最後の2段落以外は2020年11月なのだけど、最近…

VitalをAndroidで動かす

JUCE Advent Calendar 2021、24日目も空いていたので滑り込ませてみました。今年4本目じゃん。 最近Vitaloidという名前でVitalをAndroidに移植して動かしてみたプロジェクトを作って遊んでいるので、どうすればそんなことができたのか、今何が出来るのか、何…

JUCE6.1以降でも使えるダイアログ

JUCE Advent Calendar 2021 16日目のエントリーです。3回目なので(!)軽めにいきます。 今年リリースされたJUCE 6.1には、いくつかの破壊的変更が加えられています。JUCEでは公式に破壊的変更とみなしているものを全てトップレベルのBREAKING_CHANGES.txtに記…

CI環境でJUCEを使ってオーディオプラグインを適用する

JUCE Advent Calendar 2021、7日目のエントリーです。今年2回目。 最近MMLからTracktion Engineを使って再生できる楽曲をCI環境でMP3レンダリングするというややぶっ飛んだ試みで数日費やしていたのですが、どうやらうまくいきそうなので、何をやったのか共…

正式なAPIとなったjuce::universal_midi_packets namespaceのAPIについて

JUCE Advent Calendar 2021、3日目のエントリーです。 JUCE Advent Calendar 2020で「JUCE vNext?に入りそうなMIDI 2.0サポートについて」という記事を書きました。導入としては悪くないのですが、まだリリース前のAPIということもあって、説明が割とふわっ…

10月〜11月の活動記録 (2021)

月末恒例の自分用メモです。と言いつつ先月それらしいことを書いていなかったので(サークル情報で書いた気になってた)10月から… MML + sfizz + VPO3のdogfooding 10月はM3の展示用の準備と展示告知がほとんどで活動記録らしきものを書いていなかったのです…

M3 2021秋 サークル出展情報

もう明日になってしまいましたが、M3 2021秋のcircle gingaサークル参加情報です(GINGAレーベルとは無関係です。って毎回書いている気がする)。コロナウィルスが今のところ大人しくなっていてこれじゃ夜逃げの言い訳にできねー、当初予想していたよりは物…