SlideShare une entreprise Scribd logo
1  sur  24
Télécharger pour lire hors ligne
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

Contenu connexe

Tendances

優れたデザインの 定義と思考方法
優れたデザインの 定義と思考方法優れたデザインの 定義と思考方法
優れたデザインの 定義と思考方法
Junichi Izumi
 
組み込み関数(intrinsic)によるSIMD入門
組み込み関数(intrinsic)によるSIMD入門組み込み関数(intrinsic)によるSIMD入門
組み込み関数(intrinsic)によるSIMD入門
Norishige Fukushima
 
【Unity道場スペシャル 2017大阪】トゥーンシェーダー・マニアクス2 〜ユニティちゃんトゥーンシェーダー2.0徹底解説〜
【Unity道場スペシャル 2017大阪】トゥーンシェーダー・マニアクス2 〜ユニティちゃんトゥーンシェーダー2.0徹底解説〜【Unity道場スペシャル 2017大阪】トゥーンシェーダー・マニアクス2 〜ユニティちゃんトゥーンシェーダー2.0徹底解説〜
【Unity道場スペシャル 2017大阪】トゥーンシェーダー・マニアクス2 〜ユニティちゃんトゥーンシェーダー2.0徹底解説〜
Unity Technologies Japan K.K.
 
低レイヤー入門
低レイヤー入門低レイヤー入門
低レイヤー入門
demuyan
 

Tendances (20)

CEDEC2021 Android iOS 実機上での自動テストをより楽に有意義にする為に ~端末管理・イメージ転送・動画記録等の周辺情報のノウハウ共有~
CEDEC2021 Android iOS 実機上での自動テストをより楽に有意義にする為に ~端末管理・イメージ転送・動画記録等の周辺情報のノウハウ共有~CEDEC2021 Android iOS 実機上での自動テストをより楽に有意義にする為に ~端末管理・イメージ転送・動画記録等の周辺情報のノウハウ共有~
CEDEC2021 Android iOS 実機上での自動テストをより楽に有意義にする為に ~端末管理・イメージ転送・動画記録等の周辺情報のノウハウ共有~
 
Unityネイティブプラグインマニアクス #denatechcon
Unityネイティブプラグインマニアクス #denatechconUnityネイティブプラグインマニアクス #denatechcon
Unityネイティブプラグインマニアクス #denatechcon
 
魔法使いの研究室 Vol.1
魔法使いの研究室 Vol.1魔法使いの研究室 Vol.1
魔法使いの研究室 Vol.1
 
テスト駆動開発のはじめ方
テスト駆動開発のはじめ方テスト駆動開発のはじめ方
テスト駆動開発のはじめ方
 
音声合成のコーパスをつくろう
音声合成のコーパスをつくろう音声合成のコーパスをつくろう
音声合成のコーパスをつくろう
 
Unityでパフォーマンスの良いUIを作る為のTips
Unityでパフォーマンスの良いUIを作る為のTipsUnityでパフォーマンスの良いUIを作る為のTips
Unityでパフォーマンスの良いUIを作る為のTips
 
AirLab導入でテストコストの大幅削減と品質向上! 数十台の端末を一斉に全自動テストできる社内DeviceFarmについてご紹介
AirLab導入でテストコストの大幅削減と品質向上! 数十台の端末を一斉に全自動テストできる社内DeviceFarmについてご紹介AirLab導入でテストコストの大幅削減と品質向上! 数十台の端末を一斉に全自動テストできる社内DeviceFarmについてご紹介
AirLab導入でテストコストの大幅削減と品質向上! 数十台の端末を一斉に全自動テストできる社内DeviceFarmについてご紹介
 
実践的Reaper勉強会
実践的Reaper勉強会実践的Reaper勉強会
実践的Reaper勉強会
 
サービスにおけるビジュアルデザインの役割
サービスにおけるビジュアルデザインの役割サービスにおけるビジュアルデザインの役割
サービスにおけるビジュアルデザインの役割
 
優れたデザインの 定義と思考方法
優れたデザインの 定義と思考方法優れたデザインの 定義と思考方法
優れたデザインの 定義と思考方法
 
Unicode文字列処理
Unicode文字列処理Unicode文字列処理
Unicode文字列処理
 
番組宣伝に関するAbemaTV分析事例の紹介
番組宣伝に関するAbemaTV分析事例の紹介番組宣伝に関するAbemaTV分析事例の紹介
番組宣伝に関するAbemaTV分析事例の紹介
 
組み込み関数(intrinsic)によるSIMD入門
組み込み関数(intrinsic)によるSIMD入門組み込み関数(intrinsic)によるSIMD入門
組み込み関数(intrinsic)によるSIMD入門
 
Unityのサウンド状況を調べまくって分かったアレコレ
Unityのサウンド状況を調べまくって分かったアレコレUnityのサウンド状況を調べまくって分かったアレコレ
Unityのサウンド状況を調べまくって分かったアレコレ
 
【Unity道場スペシャル 2017大阪】トゥーンシェーダー・マニアクス2 〜ユニティちゃんトゥーンシェーダー2.0徹底解説〜
【Unity道場スペシャル 2017大阪】トゥーンシェーダー・マニアクス2 〜ユニティちゃんトゥーンシェーダー2.0徹底解説〜【Unity道場スペシャル 2017大阪】トゥーンシェーダー・マニアクス2 〜ユニティちゃんトゥーンシェーダー2.0徹底解説〜
【Unity道場スペシャル 2017大阪】トゥーンシェーダー・マニアクス2 〜ユニティちゃんトゥーンシェーダー2.0徹底解説〜
 
デキるWebデザイナーを目指せ!本当に現場で使えるCC活用テクニック
デキるWebデザイナーを目指せ!本当に現場で使えるCC活用テクニックデキるWebデザイナーを目指せ!本当に現場で使えるCC活用テクニック
デキるWebデザイナーを目指せ!本当に現場で使えるCC活用テクニック
 
【Unite Tokyo 2018】Audio機能の基礎と実装テクニック
【Unite Tokyo 2018】Audio機能の基礎と実装テクニック【Unite Tokyo 2018】Audio機能の基礎と実装テクニック
【Unite Tokyo 2018】Audio機能の基礎と実装テクニック
 
低レイヤー入門
低レイヤー入門低レイヤー入門
低レイヤー入門
 
PlayStation®4向けARPGのUnity開発事例 最適化と効率化の秘密
PlayStation®4向けARPGのUnity開発事例 最適化と効率化の秘密PlayStation®4向けARPGのUnity開発事例 最適化と効率化の秘密
PlayStation®4向けARPGのUnity開発事例 最適化と効率化の秘密
 
UE4:2019年ノンゲーム分野での活用について
UE4:2019年ノンゲーム分野での活用についてUE4:2019年ノンゲーム分野での活用について
UE4:2019年ノンゲーム分野での活用について
 

Similaire à Juceで作るオーディオアプリケーション

Dev camp2012jpn day2special
Dev camp2012jpn day2specialDev camp2012jpn day2special
Dev camp2012jpn day2special
Katsuhito Katoh
 
「クリエイティブ・ミュージック・コーディング」- オーディオ・ビジュアル作品のための、オープンソースなソフトウエア・フレームワークの現状と展望
「クリエイティブ・ミュージック・コーディング」- オーディオ・ビジュアル作品のための、オープンソースなソフトウエア・フレームワークの現状と展望「クリエイティブ・ミュージック・コーディング」- オーディオ・ビジュアル作品のための、オープンソースなソフトウエア・フレームワークの現状と展望
「クリエイティブ・ミュージック・コーディング」- オーディオ・ビジュアル作品のための、オープンソースなソフトウエア・フレームワークの現状と展望
Atsushi Tadokoro
 
ゲーム開発環境、もっと楽にできるよ♬ マインクラフトでも実践している DevOpsでゲーム開発を効率化しよう!
ゲーム開発環境、もっと楽にできるよ♬  マインクラフトでも実践している DevOpsでゲーム開発を効率化しよう!ゲーム開発環境、もっと楽にできるよ♬  マインクラフトでも実践している DevOpsでゲーム開発を効率化しよう!
ゲーム開発環境、もっと楽にできるよ♬ マインクラフトでも実践している DevOpsでゲーム開発を効率化しよう!
Hiroko Umetsu
 
Androidアプリ開発の極意
Androidアプリ開発の極意Androidアプリ開発の極意
Androidアプリ開発の極意
Daisaku Yamamoto
 
Windows 8 Developers カンファレンス
Windows 8 Developers カンファレンスWindows 8 Developers カンファレンス
Windows 8 Developers カンファレンス
Kaoru NAKAMURA
 

Similaire à Juceで作るオーディオアプリケーション (20)

Dev camp2012jpn day2special
Dev camp2012jpn day2specialDev camp2012jpn day2special
Dev camp2012jpn day2special
 
Developr Camp 2012 Japan Fall Day2 Special Session - Visual Studio 2012 で始める ...
Developr Camp 2012 Japan Fall Day2 Special Session - Visual Studio 2012 で始める ...Developr Camp 2012 Japan Fall Day2 Special Session - Visual Studio 2012 で始める ...
Developr Camp 2012 Japan Fall Day2 Special Session - Visual Studio 2012 で始める ...
 
C#
C#C#
C#
 
「クリエイティブ・ミュージック・コーディング」- オーディオ・ビジュアル作品のための、オープンソースなソフトウエア・フレームワークの現状と展望
「クリエイティブ・ミュージック・コーディング」- オーディオ・ビジュアル作品のための、オープンソースなソフトウエア・フレームワークの現状と展望「クリエイティブ・ミュージック・コーディング」- オーディオ・ビジュアル作品のための、オープンソースなソフトウエア・フレームワークの現状と展望
「クリエイティブ・ミュージック・コーディング」- オーディオ・ビジュアル作品のための、オープンソースなソフトウエア・フレームワークの現状と展望
 
ゲーム開発環境、もっと楽にできるよ♬ マインクラフトでも実践している DevOpsでゲーム開発を効率化しよう!
ゲーム開発環境、もっと楽にできるよ♬  マインクラフトでも実践している DevOpsでゲーム開発を効率化しよう!ゲーム開発環境、もっと楽にできるよ♬  マインクラフトでも実践している DevOpsでゲーム開発を効率化しよう!
ゲーム開発環境、もっと楽にできるよ♬ マインクラフトでも実践している DevOpsでゲーム開発を効率化しよう!
 
Visual Studio Code あれこれ
Visual Studio Code あれこれVisual Studio Code あれこれ
Visual Studio Code あれこれ
 
Androidアプリ開発の極意
Androidアプリ開発の極意Androidアプリ開発の極意
Androidアプリ開発の極意
 
iOSアプリにおけるリリースフローとCI環境
iOSアプリにおけるリリースフローとCI環境iOSアプリにおけるリリースフローとCI環境
iOSアプリにおけるリリースフローとCI環境
 
.NET Coreとツール類の今
.NET Coreとツール類の今.NET Coreとツール類の今
.NET Coreとツール類の今
 
わんくま名古屋#36 (20150725) Windows 10 ユニバーサル Windows アプリ開発入門
わんくま名古屋#36 (20150725) Windows 10 ユニバーサル Windows アプリ開発入門わんくま名古屋#36 (20150725) Windows 10 ユニバーサル Windows アプリ開発入門
わんくま名古屋#36 (20150725) Windows 10 ユニバーサル Windows アプリ開発入門
 
CRI Atom Craft ロボットウェビナー初級編「チュートリアルを試してみよう 」
CRI Atom Craft ロボットウェビナー初級編「チュートリアルを試してみよう 」 CRI Atom Craft ロボットウェビナー初級編「チュートリアルを試してみよう 」
CRI Atom Craft ロボットウェビナー初級編「チュートリアルを試してみよう 」
 
Windows 8 Developers カンファレンス
Windows 8 Developers カンファレンスWindows 8 Developers カンファレンス
Windows 8 Developers カンファレンス
 
.NETの自作ツール公開手段
.NETの自作ツール公開手段.NETの自作ツール公開手段
.NETの自作ツール公開手段
 
日本Androidの会発表スライド androidのメディア機能の話
日本Androidの会発表スライド androidのメディア機能の話日本Androidの会発表スライド androidのメディア機能の話
日本Androidの会発表スライド androidのメディア機能の話
 
【NLU祭り 場外編】コミュニケーションをより身近に、よりかしこく。LUIS と Azure AI サービスの使いどころ
【NLU祭り 場外編】コミュニケーションをより身近に、よりかしこく。LUIS と Azure AI サービスの使いどころ【NLU祭り 場外編】コミュニケーションをより身近に、よりかしこく。LUIS と Azure AI サービスの使いどころ
【NLU祭り 場外編】コミュニケーションをより身近に、よりかしこく。LUIS と Azure AI サービスの使いどころ
 
Windowsストア アプリケーション概要(紹介編)
Windowsストア アプリケーション概要(紹介編)Windowsストア アプリケーション概要(紹介編)
Windowsストア アプリケーション概要(紹介編)
 
フィジカルコンピューティング入門 USB-MIDIベースのPepper-Monakaを使う
フィジカルコンピューティング入門  USB-MIDIベースのPepper-Monakaを使うフィジカルコンピューティング入門  USB-MIDIベースのPepper-Monakaを使う
フィジカルコンピューティング入門 USB-MIDIベースのPepper-Monakaを使う
 
Visual Studio Code 拡張の勘所
Visual Studio Code 拡張の勘所Visual Studio Code 拡張の勘所
Visual Studio Code 拡張の勘所
 
Visual Studio Codeを使い倒そう! ~プログラミングから機械学習、クラウド連携、遠隔ペアプロまで~
Visual Studio Codeを使い倒そう! ~プログラミングから機械学習、クラウド連携、遠隔ペアプロまで~Visual Studio Codeを使い倒そう! ~プログラミングから機械学習、クラウド連携、遠隔ペアプロまで~
Visual Studio Codeを使い倒そう! ~プログラミングから機械学習、クラウド連携、遠隔ペアプロまで~
 
人工知能のコードをハックする会 #2
人工知能のコードをハックする会 #2人工知能のコードをハックする会 #2
人工知能のコードをハックする会 #2
 

Plus de Kohsuke Yuasa

Plus de Kohsuke Yuasa (10)

C++ マルチスレッドプログラミング
C++ マルチスレッドプログラミングC++ マルチスレッドプログラミング
C++ マルチスレッドプログラミング
 
イマドキC++erのモテカワリソース管理術
イマドキC++erのモテカワリソース管理術イマドキC++erのモテカワリソース管理術
イマドキC++erのモテカワリソース管理術
 
最近のC++ @ Sapporo.cpp #5
最近のC++ @ Sapporo.cpp #5最近のC++ @ Sapporo.cpp #5
最近のC++ @ Sapporo.cpp #5
 
規格書で読むC++11のスレッド
規格書で読むC++11のスレッド規格書で読むC++11のスレッド
規格書で読むC++11のスレッド
 
C++ ポインタ ブートキャンプ
C++ ポインタ ブートキャンプC++ ポインタ ブートキャンプ
C++ ポインタ ブートキャンプ
 
Introduction to boost test
Introduction to boost testIntroduction to boost test
Introduction to boost test
 
C++ template-primer
C++ template-primerC++ template-primer
C++ template-primer
 
Read egg oven
Read egg ovenRead egg oven
Read egg oven
 
Study3 boost
Study3 boostStudy3 boost
Study3 boost
 
Sapporocpp#2 exception-primer
Sapporocpp#2 exception-primerSapporocpp#2 exception-primer
Sapporocpp#2 exception-primer
 

Juceで作るオーディオアプリケーション