SlideShare a Scribd company logo
1 of 30
Download to read offline
JUCEではじめる
VST/AUプラグイン開発
JUCE JAPAN 編集部代表
塩澤 達矢
Tatsuya Shiozawa
2017/10/14
自己紹介
塩澤達矢 / JUCE JAPAN 編集部代表
JUCEとの出会いは2015年末。
VSTプラグインを自作する中で、
 その強力な開発環境に衝撃を受ける。
素晴らしいフレームワークなのに、
 日本語ドキュメントが皆無…。
日本ユーザーを増やすべく、
 非公式ガイド「JUCE JAPAN」を刊行する。
※「JUCE JAPAN vol.1/vol.2」電子版はAmazon Kindleにて販売中
サクッとビルド:Hello VST Plugin
JUCE = Jules' Utility Class Extensions
作者:Julian Storer (Head of Software Architecture @ ROLI)
C++で書かれたクロスプラットフォームライブラリ
  対応プラットフォーム:Windows, macOS, Linux, iOS, Android
Projucer = IDE用プロジェクトジェネレータ
  各プラットフォームのIDEに対応
VST/Audio Units/RTAS/AAXプラグインが作れる!!
GUIコンポーネントが用意されているからがサクッと実装
  プラットフォームに依存しないのも魅力!!
ライセンスは、有償/無償/OSSから選べる
  無償で使える、Personal/Education と GPL
常に改良が行われていて、最新のOS, IDEへの対応も早い!!
  GitHub:https://github.com/WeAreROLI/JUCE.git
Projucer = IDE用プロジェクトジェネレータ
GitHubリポジトリ: https://github.com/WeAreROLI/JUCE.git
ライセンス: https://www.juce.com/get-juce
JUCEで作りました
JUCEで作りました
VST/Audio Unitsプラグイン
 ・フィルターエフェクト
 
 ・クリッピングエフェクト
GitHub: https://github.com/COx2/JUCE_JAPAN_DEMO.git
JUCEで作りました
VST/Audio Unitsプラグイン
GLSL Editor
GitHub: https://github.com/COx2/glslEditor_AudioPlugin.git
JUCEで作りました
JUCE × Live2Dで作るバーチャルシンガーVST
JUCEで作りました
スタンドアロン・オーディオアプリケーション
作例:アンプ + イコライザー
- オーディオインターフェースの入出力を扱える
- ASIO SDKを追加することで、
ASIOドライバ対応アプリを作れます。
- オーディオドライバのコンパネは
JUCEライブラリにて実装済み。
JUCEで作りました
Raspberry Pi (Raspbian)でJUCEライブラリをビルドしてみました
ブログ: http://www.oufac.com/wp/2017/10/04/juce-build-on-raspberry-pi-stretch/
ラズパイをVSTシンセサイザー・エフェクターにしちゃおう
JUCEをはじめよう
JUCEをはじめよう
1. 公式サイトからDL
URL: https://www.juce.com/get-juce
・プラットフォームごとにDLリンクが用意されています
・プラットフォーム用にビルド済みのProjucerが同梱されています
2. GitHubリポジトリをクローン
$ git clone https://github.com/WeAreROLI/JUCE.git
・Projucerを自分の環境でビルドしてください
 ディレクトリ: JUCE/extras/Projucer
1. 公式サイトからDL
URL: https://www.juce.com/get-juce
 ・プラットフォームごとにDLリンクが用意されています
1. 公式サイトからDL
URL: https://www.juce.com/get-juce
 ・プラットフォーム用にビルド済みのProjucerが同梱されています
1. 公式サイトからDL
URL: https://www.juce.com/get-juce
 ・Projucerを起動したら、ROLIアカウントでサインイン
 ・ROLIアカウントが未登録なら、アカウント作成
1. 公式サイトからDL
URL: https://www.juce.com/get-juce
 ・サインインできると、Projucerが使えるようになります
2. GitHubリポジトリをクローン
$ git clone https://github.com/WeAreROLI/JUCE.git
2. GitHubリポジトリをクローン
$ git clone https://github.com/WeAreROLI/JUCE.git
 ・Projucerを自分の環境でビルドしてください
  ディレクトリ: JUCE/extras/Projucer
補足. GPLで使うには
Projucerプロジェクトの AppConfig.h にあるGPLモードフラグを有効にする
補足. GPL版はここが違う
・Projucer を使用する際、ROLIアカウントのサインインが不要
・Personal ライセンスではスプラッシュスクリーンが必須だが、GPLでは免除
デモ:Hello, Sine !
コードスニペット PluginProcessor.cpp
void HelloSineAudioProcessor::processBlock (AudioSampleBuffer& buffer, MidiBuffer& midiMessages)
{
ScopedNoDenormals noDenormals;
const int totalNumInputChannels = getTotalNumInputChannels();
const int totalNumOutputChannels = getTotalNumOutputChannels();
for (int i = totalNumInputChannels; i < totalNumOutputChannels; ++i)
buffer.clear (i, 0, buffer.getNumSamples());
for (int channel = 0; channel < totalNumInputChannels; ++channel)
{
float* channelData = buffer.getWritePointer (channel);
#define M_PI 3.14159265358979323846
const float level = 1.0f;
for (int sample = 0; sample < buffer.getNumSamples(); ++sample)
{
channelData[sample] = sinf(M_PI * 2 * sample / buffer.getNumSamples() * 2) * level;
}
}
}
JUCEのことをもっと知りたい
・JUCE Demoをビルドしてみよう
ディレクトリ: JUCE/examples/Demo
JUCEのことをもっと知りたい
・チュートリアル
https://www.juce.com/tutorials
・APIモジュール
https://www.juce.com/doc/modules
・APIクラスリファレンス
https://www.juce.com/doc/classes
このプロジェクトもチェックしよう : synister
全部入りなオープンソース・VAシンセサイザ
-オシレータ×3
-エンベロープ×3
-LFO×3
-フィルタ×2
-エフェクタ×4
(ディレイ、コーラス/フランジャ、
ローファイ、クリッパー)
-ステップシーケンサ
GitHubリポジトリ:http://github.com/the-synister/the-source
このプロジェクトもチェックしよう : dexed
DX7/TX7をエミュレートしたFMシンセサイザ
DX7/TX7のSysExメッセージにも対応
GitHubリポジトリ:http://github.com/asb2m10/dexed
END

More Related Content

What's hot

DevOpsに求められる様々な技術とその連携の学習方法
DevOpsに求められる様々な技術とその連携の学習方法DevOpsに求められる様々な技術とその連携の学習方法
DevOpsに求められる様々な技術とその連携の学習方法CASAREAL, Inc.
 
CI/CDツール比較してみた
CI/CDツール比較してみたCI/CDツール比較してみた
CI/CDツール比較してみたShoya Kai
 
デバイスの運用で使える AWS IoTサービスの紹介
デバイスの運用で使える AWS IoTサービスの紹介デバイスの運用で使える AWS IoTサービスの紹介
デバイスの運用で使える AWS IoTサービスの紹介Amazon Web Services Japan
 
Windows Server Community Meetup #4:時刻の話 - Accurate Network Time -
Windows Server Community Meetup #4:時刻の話 - Accurate Network Time - Windows Server Community Meetup #4:時刻の話 - Accurate Network Time -
Windows Server Community Meetup #4:時刻の話 - Accurate Network Time - wind06106
 
Audio Unit Extensions 〜オーディオエフェクトのアプリ間共有〜
Audio Unit Extensions 〜オーディオエフェクトのアプリ間共有〜Audio Unit Extensions 〜オーディオエフェクトのアプリ間共有〜
Audio Unit Extensions 〜オーディオエフェクトのアプリ間共有〜Shuichi Tsutsumi
 
Docker入門: コンテナ型仮想化技術の仕組みと使い方
Docker入門: コンテナ型仮想化技術の仕組みと使い方Docker入門: コンテナ型仮想化技術の仕組みと使い方
Docker入門: コンテナ型仮想化技術の仕組みと使い方Yuichi Ito
 
組み込みLinuxでのGolangのススメ
組み込みLinuxでのGolangのススメ組み込みLinuxでのGolangのススメ
組み込みLinuxでのGolangのススメTetsuyuki Kobayashi
 
[Cloud OnAir] #01 徹底解剖 GCP のここがすごい
[Cloud OnAir] #01 徹底解剖 GCP のここがすごい[Cloud OnAir] #01 徹底解剖 GCP のここがすごい
[Cloud OnAir] #01 徹底解剖 GCP のここがすごいGoogle Cloud Platform - Japan
 
実践!OpenTelemetry と OSS を使った Observability 基盤の構築(CloudNative Days Tokyo 2022 発...
実践!OpenTelemetry と OSS を使った Observability 基盤の構築(CloudNative Days Tokyo 2022 発...実践!OpenTelemetry と OSS を使った Observability 基盤の構築(CloudNative Days Tokyo 2022 発...
実践!OpenTelemetry と OSS を使った Observability 基盤の構築(CloudNative Days Tokyo 2022 発...NTT DATA Technology & Innovation
 
containerdの概要と最近の機能
containerdの概要と最近の機能containerdの概要と最近の機能
containerdの概要と最近の機能Kohei Tokunaga
 
Ekmett勉強会発表資料
Ekmett勉強会発表資料Ekmett勉強会発表資料
Ekmett勉強会発表資料時響 逢坂
 
【de:code 2020】 Azure Bot Services を使って Teams bot を開発する
【de:code 2020】 Azure Bot Services を使って Teams bot を開発する【de:code 2020】 Azure Bot Services を使って Teams bot を開発する
【de:code 2020】 Azure Bot Services を使って Teams bot を開発する日本マイクロソフト株式会社
 
"Kong Summit, Japan 2022" パートナーセッション:Kong on AWS で実現するスケーラブルな API 基盤の構築
"Kong Summit, Japan 2022" パートナーセッション:Kong on AWS で実現するスケーラブルな API 基盤の構築"Kong Summit, Japan 2022" パートナーセッション:Kong on AWS で実現するスケーラブルな API 基盤の構築
"Kong Summit, Japan 2022" パートナーセッション:Kong on AWS で実現するスケーラブルな API 基盤の構築Junji Nishihara
 
ディープラーニングおじさんの話
ディープラーニングおじさんの話ディープラーニングおじさんの話
ディープラーニングおじさんの話karaage0703
 
パケット キャプチャで学ぶ SMB (CIFS) の基本
パケット キャプチャで学ぶSMB (CIFS) の基本パケット キャプチャで学ぶSMB (CIFS) の基本
パケット キャプチャで学ぶ SMB (CIFS) の基本彰 村地
 
Azure load testingを利用したパフォーマンステスト
Azure load testingを利用したパフォーマンステストAzure load testingを利用したパフォーマンステスト
Azure load testingを利用したパフォーマンステストKuniteru Asami
 
Prometheus at Preferred Networks
Prometheus at Preferred NetworksPrometheus at Preferred Networks
Prometheus at Preferred NetworksPreferred Networks
 
Azure Static Web Apps を試してみた!
Azure Static Web Apps を試してみた!Azure Static Web Apps を試してみた!
Azure Static Web Apps を試してみた!一希 大田
 

What's hot (20)

DevOpsに求められる様々な技術とその連携の学習方法
DevOpsに求められる様々な技術とその連携の学習方法DevOpsに求められる様々な技術とその連携の学習方法
DevOpsに求められる様々な技術とその連携の学習方法
 
Nginx lua
Nginx luaNginx lua
Nginx lua
 
CI/CDツール比較してみた
CI/CDツール比較してみたCI/CDツール比較してみた
CI/CDツール比較してみた
 
デバイスの運用で使える AWS IoTサービスの紹介
デバイスの運用で使える AWS IoTサービスの紹介デバイスの運用で使える AWS IoTサービスの紹介
デバイスの運用で使える AWS IoTサービスの紹介
 
Windows Server Community Meetup #4:時刻の話 - Accurate Network Time -
Windows Server Community Meetup #4:時刻の話 - Accurate Network Time - Windows Server Community Meetup #4:時刻の話 - Accurate Network Time -
Windows Server Community Meetup #4:時刻の話 - Accurate Network Time -
 
Audio Unit Extensions 〜オーディオエフェクトのアプリ間共有〜
Audio Unit Extensions 〜オーディオエフェクトのアプリ間共有〜Audio Unit Extensions 〜オーディオエフェクトのアプリ間共有〜
Audio Unit Extensions 〜オーディオエフェクトのアプリ間共有〜
 
Docker入門: コンテナ型仮想化技術の仕組みと使い方
Docker入門: コンテナ型仮想化技術の仕組みと使い方Docker入門: コンテナ型仮想化技術の仕組みと使い方
Docker入門: コンテナ型仮想化技術の仕組みと使い方
 
組み込みLinuxでのGolangのススメ
組み込みLinuxでのGolangのススメ組み込みLinuxでのGolangのススメ
組み込みLinuxでのGolangのススメ
 
[Cloud OnAir] #01 徹底解剖 GCP のここがすごい
[Cloud OnAir] #01 徹底解剖 GCP のここがすごい[Cloud OnAir] #01 徹底解剖 GCP のここがすごい
[Cloud OnAir] #01 徹底解剖 GCP のここがすごい
 
実践!OpenTelemetry と OSS を使った Observability 基盤の構築(CloudNative Days Tokyo 2022 発...
実践!OpenTelemetry と OSS を使った Observability 基盤の構築(CloudNative Days Tokyo 2022 発...実践!OpenTelemetry と OSS を使った Observability 基盤の構築(CloudNative Days Tokyo 2022 発...
実践!OpenTelemetry と OSS を使った Observability 基盤の構築(CloudNative Days Tokyo 2022 発...
 
containerdの概要と最近の機能
containerdの概要と最近の機能containerdの概要と最近の機能
containerdの概要と最近の機能
 
Ekmett勉強会発表資料
Ekmett勉強会発表資料Ekmett勉強会発表資料
Ekmett勉強会発表資料
 
【de:code 2020】 Azure Bot Services を使って Teams bot を開発する
【de:code 2020】 Azure Bot Services を使って Teams bot を開発する【de:code 2020】 Azure Bot Services を使って Teams bot を開発する
【de:code 2020】 Azure Bot Services を使って Teams bot を開発する
 
ATSC 3.0, MMT, Multicast
ATSC 3.0, MMT, MulticastATSC 3.0, MMT, Multicast
ATSC 3.0, MMT, Multicast
 
"Kong Summit, Japan 2022" パートナーセッション:Kong on AWS で実現するスケーラブルな API 基盤の構築
"Kong Summit, Japan 2022" パートナーセッション:Kong on AWS で実現するスケーラブルな API 基盤の構築"Kong Summit, Japan 2022" パートナーセッション:Kong on AWS で実現するスケーラブルな API 基盤の構築
"Kong Summit, Japan 2022" パートナーセッション:Kong on AWS で実現するスケーラブルな API 基盤の構築
 
ディープラーニングおじさんの話
ディープラーニングおじさんの話ディープラーニングおじさんの話
ディープラーニングおじさんの話
 
パケット キャプチャで学ぶ SMB (CIFS) の基本
パケット キャプチャで学ぶSMB (CIFS) の基本パケット キャプチャで学ぶSMB (CIFS) の基本
パケット キャプチャで学ぶ SMB (CIFS) の基本
 
Azure load testingを利用したパフォーマンステスト
Azure load testingを利用したパフォーマンステストAzure load testingを利用したパフォーマンステスト
Azure load testingを利用したパフォーマンステスト
 
Prometheus at Preferred Networks
Prometheus at Preferred NetworksPrometheus at Preferred Networks
Prometheus at Preferred Networks
 
Azure Static Web Apps を試してみた!
Azure Static Web Apps を試してみた!Azure Static Web Apps を試してみた!
Azure Static Web Apps を試してみた!
 

Similar to JUCEではじめるVST/AUプラグイン開発@NoMaps2017

JUCEではじめるBLOCKS開発_TOKYO BLOCKS HACKATHON 2018
JUCEではじめるBLOCKS開発_TOKYO BLOCKS HACKATHON 2018JUCEではじめるBLOCKS開発_TOKYO BLOCKS HACKATHON 2018
JUCEではじめるBLOCKS開発_TOKYO BLOCKS HACKATHON 2018Tatsuya Shiozawa
 
Swift愛好会_ライブラリを使わずにゴリゴリと
Swift愛好会_ライブラリを使わずにゴリゴリとSwift愛好会_ライブラリを使わずにゴリゴリと
Swift愛好会_ライブラリを使わずにゴリゴリとSachiko Kajishima
 
Windows 8 cp 速攻レビュー
Windows 8 cp 速攻レビューWindows 8 cp 速攻レビュー
Windows 8 cp 速攻レビューMakoto Nishimura
 
JUCEハンズオン@Ableton and Max Community Japan #009
JUCEハンズオン@Ableton and Max Community Japan #009JUCEハンズオン@Ableton and Max Community Japan #009
JUCEハンズオン@Ableton and Max Community Japan #009Tatsuya Shiozawa
 
2013/03/09 VisualStudio勉強会 LT 「統合開発環境の支援ツール」
2013/03/09 VisualStudio勉強会 LT 「統合開発環境の支援ツール」2013/03/09 VisualStudio勉強会 LT 「統合開発環境の支援ツール」
2013/03/09 VisualStudio勉強会 LT 「統合開発環境の支援ツール」Satoshi Noda
 
20101127 Android Usability Seminar
20101127 Android Usability Seminar20101127 Android Usability Seminar
20101127 Android Usability SeminarVisso株式会社
 

Similar to JUCEではじめるVST/AUプラグイン開発@NoMaps2017 (8)

JUCEではじめるBLOCKS開発_TOKYO BLOCKS HACKATHON 2018
JUCEではじめるBLOCKS開発_TOKYO BLOCKS HACKATHON 2018JUCEではじめるBLOCKS開発_TOKYO BLOCKS HACKATHON 2018
JUCEではじめるBLOCKS開発_TOKYO BLOCKS HACKATHON 2018
 
Swift愛好会_ライブラリを使わずにゴリゴリと
Swift愛好会_ライブラリを使わずにゴリゴリとSwift愛好会_ライブラリを使わずにゴリゴリと
Swift愛好会_ライブラリを使わずにゴリゴリと
 
20120907 osc-lt-docja
20120907 osc-lt-docja20120907 osc-lt-docja
20120907 osc-lt-docja
 
Windows 8 cp 速攻レビュー
Windows 8 cp 速攻レビューWindows 8 cp 速攻レビュー
Windows 8 cp 速攻レビュー
 
tvOS tips
tvOS tipstvOS tips
tvOS tips
 
JUCEハンズオン@Ableton and Max Community Japan #009
JUCEハンズオン@Ableton and Max Community Japan #009JUCEハンズオン@Ableton and Max Community Japan #009
JUCEハンズオン@Ableton and Max Community Japan #009
 
2013/03/09 VisualStudio勉強会 LT 「統合開発環境の支援ツール」
2013/03/09 VisualStudio勉強会 LT 「統合開発環境の支援ツール」2013/03/09 VisualStudio勉強会 LT 「統合開発環境の支援ツール」
2013/03/09 VisualStudio勉強会 LT 「統合開発環境の支援ツール」
 
20101127 Android Usability Seminar
20101127 Android Usability Seminar20101127 Android Usability Seminar
20101127 Android Usability Seminar
 

JUCEではじめるVST/AUプラグイン開発@NoMaps2017