Juceで作るオーディオアプリケーション
-
Upload
kohsuke-yuasa -
Category
Engineering
-
view
4.317 -
download
3
Transcript of Juceで作るオーディオアプリケーション
2015/09/20
JUCEで作るオーディオアプリケーション@hotwatermorning
1
自己紹介
✤ @hotwatermorning ✤ C++オーディオプログラマ ✤趣味: DTM ✤ C++ポケットリファレンス(共著) ✤ Microsoft MVP for Visual C++ 2015
2
今日のサンプルコード
https://bitbucket.org/hotwatermorning/jucedj
3
JUCEライブラリとは
4
JUCEライブラリとは✤ C++で書かれたクロスプラットフォームライブラリ ✤ Win, Mac, Linux, Android, iOS
✤オーディオアプリケーション開発やオーディオプラグイン開発に向いている ✤ もともとTraktionというオーディオ制作用アプリケーション(DAW)の開発用に作られた
✤オープンソース(商用ライセンスあり)5
DAW/プラグインとは
✤ DAW:オーディオ制作に使う統合制作環境 ✤ プログラミングで言うところのIDEみたいなもの
✤オーディオプラグイン: DAW上で動作する楽器やオーディオエフェクトのアプリケーション
6
Made with JUCE
✤さまざまなオーディオアプリケーション開発企業でJUCEが使われている ✤ Arturia / Codex Digital /Crypton Future Media / Image Line / Korg / Presonus / Uberschall / etc.,
7
ライセンスについて
✤ GPLと商用ライセンスのデュアルライセンス ✤ Commercial licence for a single product ‒ GBP399
✤ Commercial licence for any number of products ‒ GBP699
8
JUCEライブラリの特徴
9
JUCEライブラリとは
✤ nullptr, override, noexcept, RAII, スマートポインタなど、モダンなC++のスタイルで書かれている
10
Features✤オーディオアプリケーション向けのライブラリだが、その他にも多くの機能を提供している ✤ オーディオデバイスやオーディオファイル ✤ オーディオプラグイン開発 ✤ GUI関連クラス、2D/3D描画 ✤ Network ✤ 暗号化 ✤ マルチスレッド ✤ XML/JSONなどなど
11
Features
✤ JUCEのexampleにあるJuceDemoというプロジェクトで、JUCEの機能をひと通り眺められる
12
JUCEライブラリを使うと
✤オーディオアプリケーションが開発できる ✤ オーディオデバイス/MIDIデバイスのオープン ✤ オーディオファイルの読み込み/書き出し ✤ オーディオプラグインのホスト
✤オーディオプラグインが開発できる ✤ VST, Audio Unit, AAX, RTAS
13
JUCEが得意ではないこと
✤ゲームエンジンではない ✤ 3Dやアニメーションのクラスもあるが、ゲームに特化してるわけではない
✤信号処理に特化したライブラリではない ✤ 様々なフィルターや信号処理用の関数が揃っているわけではない
✤ IIRフィルター用のクラスは用意されている
14
JUCEが得意ではないこと
✤ JUCEはさまざまな機能を提供しているが、それらをJUCEから取り出して特定のモジュールだけを開発に組み込むような使い方は苦手
15
JUCEを使用した開発
16
JUCEを使用した開発
✤ JUCEを使用したアプリケーションを開発するにはIntrojucerというツールを使用する
17
Introjucer
✤ JUCEのプロジェクト管理ツール ✤各プラットフォームのコンパイラ用のプロジェクトを生成する ✤ Xcode, Visual Studio, Code::Blocks, make, Ant
✤ CMakeみたいなもの
18
Introjuerの利点
✤さまざまなプラットフォームに向けたプロジェクト設定を一括で管理できる ✤ ソースファイルや、プロジェクトで使うJUCEのモジュールを、それぞれのプラットフォームごとに整備しなくてもいい
19
Introjuerの利点
✤さらに、簡易なコードエディタやGUIの設計ツールが付いている
20
Introjucerの欠点
✤コードエディターが日本語にうまく対応してない
21
プロジェクトのテンプレート✤開発したいアプリケーション向けのテンプレートが用意されている ✤ コンソールアプリケーション ✤ GUIアプリケーション ✤ オーディオアプリケーション ✤ オーディオプラグインなどなど
✤初期化や基本的なコードがすでに生成されているので、書きたい部分のコードから開発できる
22
JuceDemo
✤ JUCEのexampleに入っているデモプロジェクト ✤さまざまなJUCEの機能が体験できる
23
ありがとうございました
24