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レーベルとは無関係です。って毎回書いている気がする)。コロナウィルスが今のところ大人しくなっていてこれじゃ夜逃げの言い訳にできねー、当初予想していたよりは物…

Per-Note Expressionsサポートに関する覚書

調査の端緒 MIDIに変換するMMLで打ち込み作業をやっている時に、それぞれのノートの発音中に、それぞれのタイミングで音量を調整して打ち込みたいフレーズが出てきた。アルペジオ奏法みたいなことをシンセ音でやったことがあれば理解してもらえるかもしれな…

9月の開発記録(2021)

月末恒例9月の自分用開発記録です。といっても今月はコーディング作業はそんなに注力していません。先月の終わりに MMLでまた打ち込みできる環境を何とかしたい… などと書いていたように、状況で言えば2019年1月とか2019年10月とか2020年10月くらいのノリで…

8月の開発記録 (2021)

8月は主にKotlinに移植してきたMIDIツール・ライブラリの機能を回復・強化する1ヶ月になりました。他の開発作業(Androidオーディオプラグインとか)はあんましやっていません。「回復」というのは.NET時代にmanaged-midiで作ってきて打ち込みで使ってきたも…

7月の開発記録 (2021)

恒例の自分用メモです。今月は大して進捗がないのですが、文章だけ見ると多いな… MML-to-MIDI2.0 compiler on vscodium-extension 3月にMMLコンパイラmugeneをKotlinに移植したmugene-ngには、まだ.NETから移植が済んでいないプロジェクトがいくつかありまし…

6月の開発記録 (2021)

2021年も半年が過ぎてしまいました。去年の今頃は「来年には正常化しているだろう…いるんじゃないかな…たぶん…」くらいに思っていたものですが、まあ段階的に正常化しつつありますよね。日本以外はな。台湾なんかもう50人/日くらいに収まっているので、渡航…

5月の開発記録 (2021)

恒例の自分用開発記録です。 と書き出しましたが、5月はほとんど何もやってない感じです。ひとつには、4月にM3向けにいろいろやっていた間にいろいろ先送りしていたのと、自宅近辺の騒音工事がうるさい間は寝不足になりながらコーディングを放棄してゲームで…

4月の開発記録 (2021)

4/25にはM3 2021春がありました。サークルとして申し込んでいたのですが、その時はある程度MML + tracktion_engine + オーディオプラグインの制作環境で音楽を演奏できるだろうくらいの軽い気持ちで、申込内容は「ソフトのデモと展示」という趣旨になってい…

KotlinクロスプラットフォームMIDIエコシステムの構築

android-audio-plugin-frameworkにMIDIまわりの機能をいろいろ追加したいのと、いいかげん音楽制作のためにC#で作ってしまっていたツールをLinuxデスクトップでも開発できる言語環境で開発を再開していきたいという気持ちが、ずっと燻っていました(います)…

3月の活動記録(2021)

3月の開発記録です。長くなってしまったので分割して、こっちは「その他」編です。 VST3とSFZ探訪 2月にリリースされたWaveform 11.5がLinuxでVST3をサポートするようになりました。これによって、昨年10月で書いていた、プラグインをtracktion_engineとWave…

2月の開発記録(2021)

今月は前のめりにまとめた完全自分用の開発作業記録です。今月は上旬にちょっとDSPまわりの勉強をしていた以外は、だいぶAndroidAudioPlugin関連の開発に時間をつぎ込めた感じです。 s:/aria2web/aqua/ 割とどうでも良い前フリから。もう半年以上前ですが、a…

音声信号処理勉強会のKPT

1年前にMusic Tech Meetup #1 (Night)を開催したのですが、その頃すでにコロナの足音が聞こえてきていて、オフライン勉強会の開催はギリギリ可能という感じでした。その後はとても同様の勉強会を開催できるふいんきではなくなってしまいました(夏頃ならでき…

1月の作業記録 (2021)

恒例の自分用作業記録です。これが自分用でなくなる日は来るのだろうか。 making aap-juce hackable again aap-juceはandroid-audio-plugin-frameworkからJUCEプラグインの移植が無駄に大きくなりそうだったので切り離して作られたリポジトリですが、これも…

JUCE+CMake+Android now works

JUCE6はCMakeに対応していますが、実はCMake対応の恩恵を受けられないプラットフォームが存在します。Androidです。 「は?」というのが多分一番正しいでしょう。何しろCMakeはだいぶ前からAndroid Studioでサポートされているわけで、むしろ一番恩恵を受ける…

2020作業記録総括

2020年はあまりアウトプットに結びつかない1年(当社比)だったような気がしたので、そもそもどういう流れで今に至ったのかを振り返ってみました。(android-audio-plugin-frameworkに関連する話題がメインなのでMusic Tech Meetupなどの話は書いていません…

Q4の活動記録 / ネイティブコードを伴うAARパッケージ編成のベスト?プラクティス

10月後半から今日に至るまで最近の活動記録を流していなかったわけですが、実際引っ越したり錬金術の変拍子ゲームをやっていたり技術記事を書いたりしていて、あんましコードを書いてはいませんでした。というのは半分くらいは本当で、半分くらいは、やっ…

「DAW・シーケンサーエンジンを支える技術」第2版リリース

昨年M3 2019秋で刊行した「DAW・シーケンサーエンジンを支える技術」の第2版を改訂版としてリリースします。第1版のPDFをお持ちの方は後述の方法ですぐ入手できます。 技術書典10でも新刊とみなされて販売されます(第1版の書籍を第2版としてアップデートし…

prefab: Android Studioの最新ネイティブライブラリ依存解決機構

Android Advent Calendar 2020の20日目はAndroid NDK方面で今開発が進んでいるPrefabパッケージ機構についていろいろまとめます。タイトルに書いている「ネイティブ」とはC/C++等のコンパイラが生成するCPUネイティブなコードの意味です*1。 目次 Prefabとは…

JUCE vNext?に入りそうなMIDI 2.0サポートについて

JUCE Advent Calendar 2020 5日目が空いていたので、今週developブランチに追加されたMIDI 2.0 UMPサポートを実装するコードについて解説します。 https://github.com/juce-framework/JUCE/commit/9032f58 先月のADC 2020でJUCEブースに行って「MIDI 2.0をサ…

JUCEで作られたOSSオーディオプラグインをかき集めてみた

JUCE Advent Calendar 2020 3日目のエントリーはゆる〜く自分がこれまでかき集めてきた「JUCEで作られたOSSのオーディオプラグイン」をいろいろ紹介します。 目次 Rationale Birch-san/juicysfplugin osxmidi/SFZero-X TheWaveWarden/odin2 artfwo/andes asb…

M3 2020秋 サークル参加情報

今回も直前まで書かずに来てしまいましたが、明日10/25のM3 2020秋にサークル"ginga"として参加しています。割と最近(数週間くらい)に気づいたんですが、同人音楽サークルとしてgingaって名前だとgingaレーベルと紛らわしいんですよね…*1 追記: 素で書き忘…

Q3〜10月前半の開発記録

7月の作業記録は別途書いてあって、8月の作業記録はMIDI 2.0本の告知がだいぶ持っていってしまったのですが、他のこともちょろちょろとあったので、最近までの自分用開発記録をまとめておきます。時系列は順不同です。 ADLplug/VST3 on LinuxとJUCE6+LV2 JUC…

MIDI 2.0 UMPの中にメタデータを埋め込む

今日SMFに近い演奏データのデータフォーマットをMIDI 2.0 UMPベースで実装しようとしていて気付いた小ネタ。いろいろ増やしてMIDI 2.0 UMPガイドブックの改訂版を出す場合はその時に取り込もうと思っています。(改訂版は技術書典サイトとboothではアップデ…