本記事は JUCE Advent Calendar 2017 の12月23日向けに投稿した記事です。
ADC 2017とは
ADC(Audio Developer Conference)は、JUCEの開発者 Julian Storer とJUCEチーム全体が主催する開発者が世界中の最高のオーディオ開発者と学び、交流し、ネットワークを形成する場です。
ADCは、昨年開催されたADC 2016とその前身であるJUCE Summit 2015を含めて3回目の催しとなります。
JUCEは、C++言語によるマルチメディア系アプリケーションの開発を支援するフレームワークです。
ADC 2017では、コンピュータオーディオの最先端に立つエンジニア・サイエンティスト・プレゼンターを招き、オーディオ技術に関する講演が行われました。
本記事では、ADC 2017の講演プログラムをひたすら紹介していきます。
講演は2日間に渡り、プログラム数は初日に21、2日目に22とあり、その一部がYoutubeにて公開されています。
Keynote
Keynote: Does your code actually matter?
Julian Storer, Principal Software Engineer, JUCE
"より良い"コードを書く方法について、数多くのカンファレンスが行われました。
この話は、あなたのコードがどれほど良いか悪いかではなく、それが重要なコードだったかどうかについての議論です。
Track 1
Modern audio development on Apple platforms
Béla Balázs, Software Engineer, Apple
Doug Wyatt, Software Engineer, Apple
John Danty, Senior Product Manager, GarageBand
※非公開
AirPlay audio, latency, and AirPlay 2
David Saracino, Software Engineer, Apple
※非公開
The development of Ableton Live
Friedemann Schautz, Head of Development, Ableton
1999年に始まったAbleton Liveの開発とその進化についての総括を語ってくれています。
ソフトウェアエンジニアリングの課題とその対処方法に焦点を当てながら、設計アプローチと開発プロセスの進化についても議論します。
Code-Generating Littlefoot
David Zicarelli, CEO, Cycling’74
Max/MSPのユーザーインターフェイスを通じて、LilttlefootプログラムのソースコードをLightpad BLOCKで実行するために変換するシンプルな方法を紹介します。このコードでプログラムされたLightpad Blockは、スタンドアローンのMIDIコントローラーとして使用できます。
Decoding Law: All that legal stuff demystified
Moderator: Heather D. Rafter, Attorney, RafterMarsh US
Panellists: Mike Warriner, General Counsel, Focusrite,
Iris Brandis, Legal Counsel, Ableton
Jemilla Olufeko, Legal Counsel, ROLI
※非公開
Track 2
Using JUCE ValueTrees and modern C++ to build large-scale applications
David Rowland, Lead Software Developer, Tracktion
JUCE ValueTreesは、自由な形式のデータを保持できるツリーベースのデータ構造です。データメンバーやツリー構造の変更が通知されるコールバックインターフェイスを組み込んでいます。これらの機能により、多くのアプリケーションのデータモデルにとって理想的な候補になりうります。
この講演では、ValueTreeを扱う際の複雑さを解消し、それらに含まれるエレガントな性質を公開し、アプリケーションを迅速に実行できます。この講演では、モダンなValueTreesを利用してJUCEアプリケーションを迅速に構築する方法について解説しています。
VST3 history, advantages and best practices
Yvan Grabit, Technical Lead VST,
Michael Spork, Senior Developer, Steinberg Media Technologies
この講演では、VST1からVST3までの、VSTの歴史について説明します。 Cubaseのデモを含むVST3ベースのプラグイン(クロスプラットフォーム、サイレントフラグ、サイドチェーン、ノート表現、3Dオーディオ、ホスト統合など)を開発することの利点について説明し、VST3に関するいくつかのベストプラクティス(VST2からVST3への移行、64ビット処理、ライセンス供与およびテスト)についても説明します。
Learning the pulse: statistical and ML analysis of real-time audio performance logs
Glenn Kasten, Software Engineer Google,
Sanna Wager, PhD Candidate, Music Informatics, Indiana University Bloomington & Intern, Google
リアルタイムオーディオでは通常、数ミリ秒以下のという短時間で定期的に処理されます。ノンブロッキングなロガーを使用してタイムクリティカルな処理を計測し、重大な干渉なしに必要なデータを収集する方法を紹介します。
ログの統計分析を行い、機械学習を使用することで、さまざまな条件下でコードのパフォーマンスの理解と改善に役立つでしょう。
ライブコーディングのデモとサンプルでは、PythonとオープンソースのAndroidプラットフォームを使用していますが、どのプラットフォームの開発者も対象となるでしょう。
Harmonisation in modern rhythmic music using Hidden Markov Models
Nikolas Borrel, Founder, Livetake
Haskellで実装された、リズミカルな音楽を調和させる手法について紹介します。このアルゴリズムでは、隠れマルコフモデルを用いて異なるジャンルの異なるアーティストの調和を学習し、与えられたメロディに対して新しいコードシーケンスを生成することを可能にします。
この講演では、演奏に適したコードやメロディーラインの特徴抽出をどのように行うかについてを焦点に話しています。
Spatial Audio At Facebook
Varun Nair, Engineering Manager,
Hans Fugal, Software Engineer, Audio 360, Facebook
FacebookのAudio360チームは、Facebook、OculusをはじめとしたVR業界に空間オーディオ技術を提供しています。そのツールであるSpatial Workstationは、世界中のポストプロダクションスタジオが新しい没入型メディアのコンテンツを作成するために広く使用されています。Spatial WorkstationはJUCEと軽量なゲームエンジンのフィーチャーセットが含まれているオーディオライブラリを組み合わせて作られています。
Track 3
The future is wide: SIMD, vector classes and branchless algorithms for audio synthesis
Angus Hewlett, VP Engineering, Research & Design, ROLI
ポリフォニックシンセサイザーの実装に並列処理を利用することで、CPUのリソースを最大限に活用して、バーチャルインストゥルメント/ソフトウェアシンセサイザーのパワーを最大限に引き出す方法について説明します。
この講演では、ベクトルユニットアーキテクチャ、C ++テンプレート多態性、コンパイラの最適化、およびIntel AVX/AVX-512、ARM NEON、Scalable Vector ExtensionsなどのSIMDアーキテクチャで実行するDSPアルゴリズムについて取り上げます。
Exploring time-frequency space with the Gaborator
Andreas Gustafsson, Lead Developer, Waxing Wave
この講演では、オーディオ信号を視覚化するための、ピクセル化フリーでズーム可能なスペクトログラムを生成するC++ライブラリを紹介します。スペクトログラムのスペクトル変換や編集、オーディオへの正確な逆変換をサポートしており、リアルタイムよりも高速です。 ライブデモンストレーションでは、実験的なWebベースのユーザーインターフェイスを使用したが含まれています。
Physical Modelling of Guitar Strings
Martin Schuppius, Independent Software Developer
ギターの弦の物理モデリングを実装する方法を紹介します。 非常に基本的なモデルを使ってギターモデルのステートを説明し、現実的なギターサウンドが生成されるまでを段階的に説明します。 主にギターの弦について話しますが、同じテクニックは、例えばハープ、バンジョー、ピアノなど、他の多くの弦楽器にも適用できます。
The amazing usefulness of band limited impulse trains, shown for oscillator banks, additive synthesis, and modeling old stuff.
Stefan Stenzel, CTO, Waldorf Music GmbH
BLIPとして知られている、帯域制限されたインパルス列による鋸歯状波および方形波などの波形を生成するアルゴリズムとその有用性について説明しています。このプレゼンテーションでは、デジタル信号処理とC/C++プログラミングの基本的な理解に精通している必要があります。しかし、説明のためのグラフィックスやサウンドの例が提示されるので、初心者にとっても面白いかもしれません。
Techniques for debugging realtime audio issues
Devendra Parakh, CEO, Waves Audio India
時間的制約のあるオーディオプログラミングのデバッグはさまざまな理由で問題が発生します。プログラムは時間が制約された環境で実行する必要があるため、ブレークポイントを配置してコードをステップ実行することは有効ではないことがあります。生データからオーディオをビジュアル化することは、たとえそれが浮動小数点または整数値として表示されていても困難です。また、伝統的なトレースおよびロギングのアプローチでは、オーディオコールバックがブロックされる可能性のあるシステムコールを実行することはできません。このセッションでは、これらの限界を克服し、問題を分析するのが困難なこれらの問題を解決するための有用なデータを収集するために使用できるテクニックを提供します
Track 4
Making Computer Music Creation Accessible to a Wider Audience
Tim Adnitt, Product Manager,
Carl Bussey, Software Developer, Native Instruments
視覚障害のあるミュージシャンやプロデューサーは、視覚的に情報を提示することに依存する音楽ソフトウェアとのやりとりが困難であることがよくあります。Native Instrumentsでは、視覚障害のあるミュージシャンがバーチャルインストゥルメントとやりとりするためのハードウェアとソフトウェアのソリューションを開発しました。
Native Kontrol Standardを採用しているバーチャルインストゥルメントは、KOMPLETE KONTROL Sシリーズキーボードコントローラを使用してアクセス可能になっています。この講演では、これがどのように達成されたか、ユーザーがどのように対応したか、そしてその技術をどのように使用してより多くのユーザーがバーチャルインストゥルメントにアクセスできるようにするかを紹介します。
Tools from the C++ ecosystem to save a leg
Anastasia Kazakova, Product Marketing Manager CLion, JetBrains
可読性のあるC++コード(したがって保守が容易で、サポートが容易な)を書くことは難しいです。現代のC++標準では、多くの素晴らしい機会と改善がもたらされていますが、高品質のコードをさらに難しく書いてしまうこともあります。私たちはそれを正しく使いこなすことはできないのでしょうか?ツールがそれを助けてくれるのでしょうか?
Developing audio applications with JavaScript
Dave Ramirez, Senior Software Engineer, Inspire
JavaScriptは、Webアプリケーションやモバイルアプリケーションを開発するための選択肢として普及しつつあります。GitHubのElectronフレームワークのおかげで、JavaScriptで書かれたデスクトップアプリケーションもあります。
歴史的に、オーディオアプリケーション、特にオーディオ信号のリアルタイム処理を必要とするアプリケーションは、JavaScriptを選択肢から外すユースケースでもありました。
Daveは、Node.jsのC++コードとElectronアプリケーションとの相互運用について紹介します。VST3プラグインを使用してリアルタイム信号処理を実行するElectronアプリケーションの例を紹介します。
Some interesting phenomena in nonlinear oscillators
André Bergner, Development Team Leader, Native Instruments
音と音楽の世界は、強い非線形相互作用によって支配されるシステムに大きく依存します。しかし、研究が1世紀以上前から行われているにもかかわらず、オーディオおよび音楽コミュニティにおける非線形現象についてはほとんど知られてはいません。このプレゼンテーションでは、非線形ダイナミックスの分野について簡単に紹介するとともに、音の領域において本質的に遍在する2つの非線形現象についても説明します。
Keynote
Keynote: Music as Experience, Music as Product, Music as People
Jeannie Yang, Product Leader & Innovator, Smule
私たちは音楽に囲まれて生活し、音楽によって人々は本質的につながります。彼らは歌を共に歌い、コンサートに出席し、キャンプファイヤーの周りに集まります。私たちの使命は、世界中の何百万人もの人々の間でこれらの音楽体験をどこでも可能にし、毎日お互いに曲を作り、共有することです。この基調講演では、Jeannieがこれらの試練から得られた知見を共有します。