SlideShare ist ein Scribd-Unternehmen logo
1 von 32
Downloaden Sie, um offline zu lesen
JUCEではじめるBLOCKS開発
塩澤達矢
JUCE JAPAN 編集部代表
2018.10.20-21
TOKYO BLOCKS
HACKATHON
自己紹介
塩澤達矢 / JUCE JAPAN 編集部代表
JUCEとの出会いは2015年末
VSTプラグインを自作する中で、
 その強力な開発環境に衝撃を受ける。
素晴らしいフレームワークなのに、
 日本語ドキュメントが皆無…。
日本のJUCEユーザーを増やすべく、
 非公式ガイド「JUCE JAPAN」を刊行する。
※JUCE JAPAN vol.1/vol.2/2018 がAmazon Kindleにて販売中
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で作りました
TOKYO BLOCKS
HACKATHON
JUCEで作りました
VST/Audio Unitsプラグイン
 ・VAシンセサイザー
 ・サウンドフォントプレイヤー
 ・フィルターエフェクト 
 ・クリッピングエフェクト
  ...etc
GitHub: https://github.com/COx2/JUCE_JAPAN_DEMO.git
JUCEで作りました
VST/Audio Unitsプラグイン
GLSL Editor
GitHub: https://github.com/COx2/glslEditor_AudioPlugin.git
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を始めよう
TOKYO BLOCKS
HACKATHON
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
デモ:Hello Sinewave
TOKYO BLOCKS
HACKATHON
コードスニペット PluginProcessor.cpp
void xxxAudioProcessor::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);
const float level = 1.0f;
for (int sample = 0; sample < buffer.getNumSamples(); ++sample)
{
channelData[sample] = sinf (juce::MathConstants<float>::twoPi * sample
/ buffer.getNumSamples() * 2) * level;
}
}
}
その他参考記事
・JUCE ハンズオン 〜JUCEをはじめよう〜
https://qiita.com/COx2/items/12a48c4a30c49732dcc5
・JUCE Advent Calendar 2017
https://qiita.com/advent-calendar/2017/juce
JUCEでBLOCKS開発をはじめよう
TOKYO BLOCKS
HACKATHON
サンプルプロジェクト
Littlefoot言語
・BLOCKSで実行するプログラムを記述する
・Doc: https://docs.juce.com/blocks/group__LittleFootFunctions.html
・コンパイラがJUCEライブラリに内蔵されている
・JUCEライブラリでLittlefoot言語をコンパイル→BLOCKSに転送
・ホスト(Windows/macOS/iOS)から逐次プログラムを生成できる
Littlefoot言語(例: BlocksSynthDemo)
class WaveshapeProgram : public Block::Program
{
〜中略〜
String getLittleFootProgram() override {
// 文字列としてLittlefootプログラムを記述する
return R"littlefoot(
#heapsize: 256
int yOffset;
void drawLEDCircle (int x0, int y0)
{
blendPixel (0xffff0000, x0, y0);
int minLedIndex = 0;
int maxLedIndex = 14;
blendPixel (0xff660000, min (x0 + 1, maxLedIndex), y0);
blendPixel (0xff660000, max (x0 - 1, minLedIndex), y0);
blendPixel (0xff660000, x0, min (y0 + 1, maxLedIndex));
blendPixel (0xff660000, x0, max (y0 - 1, minLedIndex));
〜中略〜
)littlefoot";
}
}
BLOCKS用のツール
・ROLI Dashboard: Littlefootプログラムのマネージャソフト
・BLOCKS Code: Littlefoot言語用コードエディタ
その他参考記事
・BLOCKSとLittleFootを使ってMIDIコントローラーをつくる
 https://qiita.com/AkiyukiOkayasu/items/a674dcb0dba8609d5b4c
・ROLI BLOCKSプログラミング はじめの一歩
https://qiita.com/KazuyukiEguchi/items/3768486160a20e727b4e
デモ:Hello Blocks
TOKYO BLOCKS
HACKATHON
JUCEではじめるBLOCKS開発_TOKYO BLOCKS HACKATHON 2018

Weitere ähnliche Inhalte

Was ist angesagt?

Was ist angesagt? (20)

Jenkins導入ライブ
Jenkins導入ライブJenkins導入ライブ
Jenkins導入ライブ
 
カスタムROM開発者の視点から見たAndroid
カスタムROM開発者の視点から見たAndroidカスタムROM開発者の視点から見たAndroid
カスタムROM開発者の視点から見たAndroid
 
Androidリリース作業の効率化(2)
Androidリリース作業の効率化(2)Androidリリース作業の効率化(2)
Androidリリース作業の効率化(2)
 
20161125 Unity-Android連携の発表資料
20161125 Unity-Android連携の発表資料20161125 Unity-Android連携の発表資料
20161125 Unity-Android連携の発表資料
 
20160902 unity勉強会発表資料
20160902 unity勉強会発表資料20160902 unity勉強会発表資料
20160902 unity勉強会発表資料
 
AndroidとSELinux
AndroidとSELinuxAndroidとSELinux
AndroidとSELinux
 
HoloLensハンズオン:Gaze,Tap And Hold編
HoloLensハンズオン:Gaze,Tap And Hold編HoloLensハンズオン:Gaze,Tap And Hold編
HoloLensハンズオン:Gaze,Tap And Hold編
 
Editor Utility Widget Petit Deep Dive
Editor Utility Widget Petit Deep DiveEditor Utility Widget Petit Deep Dive
Editor Utility Widget Petit Deep Dive
 
UE4制作におけるゲームデザイナーのやれること
UE4制作におけるゲームデザイナーのやれることUE4制作におけるゲームデザイナーのやれること
UE4制作におけるゲームデザイナーのやれること
 
20160723 unibook lt大会_発表資料(HoloLensのアプリ開発)
20160723 unibook lt大会_発表資料(HoloLensのアプリ開発)20160723 unibook lt大会_発表資料(HoloLensのアプリ開発)
20160723 unibook lt大会_発表資料(HoloLensのアプリ開発)
 
UE4.14.0 Forward Shadingのエンジン改造でセルシェードやってみた
UE4.14.0 Forward Shadingのエンジン改造でセルシェードやってみたUE4.14.0 Forward Shadingのエンジン改造でセルシェードやってみた
UE4.14.0 Forward Shadingのエンジン改造でセルシェードやってみた
 
Android pieの新機能紹介
Android pieの新機能紹介Android pieの新機能紹介
Android pieの新機能紹介
 
HoloLens 2 開発入門
HoloLens 2 開発入門HoloLens 2 開発入門
HoloLens 2 開発入門
 
SmartARの使い方(基本編)
SmartARの使い方(基本編)SmartARの使い方(基本編)
SmartARの使い方(基本編)
 
HoloLens 2 開発入門 (公式チュートリアルの紹介)
HoloLens 2 開発入門 (公式チュートリアルの紹介)HoloLens 2 開発入門 (公式チュートリアルの紹介)
HoloLens 2 開発入門 (公式チュートリアルの紹介)
 
Androidとは何か
Androidとは何かAndroidとは何か
Androidとは何か
 
Web IDE Gitpodを使ってTOPPES OSを体験してみよう
Web IDE Gitpodを使ってTOPPES OSを体験してみようWeb IDE Gitpodを使ってTOPPES OSを体験してみよう
Web IDE Gitpodを使ってTOPPES OSを体験してみよう
 
20161014 vrarmr勉強会発表資料 slideshare
20161014 vrarmr勉強会発表資料 slideshare20161014 vrarmr勉強会発表資料 slideshare
20161014 vrarmr勉強会発表資料 slideshare
 
Introduction to Yocto Project - Let's make customized embedded linux
Introduction to Yocto Project - Let's make customized embedded linuxIntroduction to Yocto Project - Let's make customized embedded linux
Introduction to Yocto Project - Let's make customized embedded linux
 
猫でも分かるUE4.22から入ったSubsystem
猫でも分かるUE4.22から入ったSubsystem 猫でも分かるUE4.22から入ったSubsystem
猫でも分かるUE4.22から入ったSubsystem
 

Ähnlich wie JUCEではじめるBLOCKS開発_TOKYO BLOCKS HACKATHON 2018

Rds 2008 R2 Express Editionで遊んでみよう
Rds 2008 R2 Express Editionで遊んでみようRds 2008 R2 Express Editionで遊んでみよう
Rds 2008 R2 Express Editionで遊んでみよう
guest468ec6
 
DXライブラリのすゝめ
DXライブラリのすゝめDXライブラリのすゝめ
DXライブラリのすゝめ
Daisuke Nikura
 
20101127 Android Usability Seminar
20101127 Android Usability Seminar20101127 Android Usability Seminar
20101127 Android Usability Seminar
Visso株式会社
 
Windows 8 cp 速攻レビュー
Windows 8 cp 速攻レビューWindows 8 cp 速攻レビュー
Windows 8 cp 速攻レビュー
Makoto Nishimura
 
ゲーム開発環境、もっと楽にできるよ♬ マインクラフトでも実践している DevOpsでゲーム開発を効率化しよう!
ゲーム開発環境、もっと楽にできるよ♬  マインクラフトでも実践している DevOpsでゲーム開発を効率化しよう!ゲーム開発環境、もっと楽にできるよ♬  マインクラフトでも実践している DevOpsでゲーム開発を効率化しよう!
ゲーム開発環境、もっと楽にできるよ♬ マインクラフトでも実践している DevOpsでゲーム開発を効率化しよう!
Hiroko Umetsu
 

Ähnlich wie JUCEではじめるBLOCKS開発_TOKYO BLOCKS HACKATHON 2018 (20)

会津IT秋フォーラム2012での講演資料
会津IT秋フォーラム2012での講演資料会津IT秋フォーラム2012での講演資料
会津IT秋フォーラム2012での講演資料
 
tvOS tips
tvOS tipstvOS tips
tvOS tips
 
Rds 2008 R2 Express Editionで遊んでみよう
Rds 2008 R2 Express Editionで遊んでみようRds 2008 R2 Express Editionで遊んでみよう
Rds 2008 R2 Express Editionで遊んでみよう
 
DXライブラリのすゝめ
DXライブラリのすゝめDXライブラリのすゝめ
DXライブラリのすゝめ
 
使い倒そう Visual Studio Code! ~クラウド連携や遠隔ペアプロ、  もちろん Git も便利に~
使い倒そう Visual Studio Code!~クラウド連携や遠隔ペアプロ、 もちろん Git も便利に~使い倒そう Visual Studio Code!~クラウド連携や遠隔ペアプロ、 もちろん Git も便利に~
使い倒そう Visual Studio Code! ~クラウド連携や遠隔ペアプロ、  もちろん Git も便利に~
 
20101127 Android Usability Seminar
20101127 Android Usability Seminar20101127 Android Usability Seminar
20101127 Android Usability Seminar
 
20120907 osc-lt-docja
20120907 osc-lt-docja20120907 osc-lt-docja
20120907 osc-lt-docja
 
いつでもどこでも .NET
いつでもどこでも .NETいつでもどこでも .NET
いつでもどこでも .NET
 
ソースが書けなくてもAndroidアプリをクリック(GUI)開発したい
ソースが書けなくてもAndroidアプリをクリック(GUI)開発したいソースが書けなくてもAndroidアプリをクリック(GUI)開発したい
ソースが書けなくてもAndroidアプリをクリック(GUI)開発したい
 
Androidが起こしたオープン・イノベーション
Androidが起こしたオープン・イノベーションAndroidが起こしたオープン・イノベーション
Androidが起こしたオープン・イノベーション
 
【デブサミ2010】アジリティを向上させる開発ツールの進化
【デブサミ2010】アジリティを向上させる開発ツールの進化【デブサミ2010】アジリティを向上させる開発ツールの進化
【デブサミ2010】アジリティを向上させる開発ツールの進化
 
普段はAndroid開発やってるけど、Tizenをさわってみたよ
普段はAndroid開発やってるけど、Tizenをさわってみたよ普段はAndroid開発やってるけど、Tizenをさわってみたよ
普段はAndroid開発やってるけど、Tizenをさわってみたよ
 
Practical game development with Stingray
Practical game development with StingrayPractical game development with Stingray
Practical game development with Stingray
 
縁取りでアプリの文字を見やすくしよう
縁取りでアプリの文字を見やすくしよう縁取りでアプリの文字を見やすくしよう
縁取りでアプリの文字を見やすくしよう
 
Tddbc岡山LT
Tddbc岡山LTTddbc岡山LT
Tddbc岡山LT
 
【Techbuzz】titanium資料
【Techbuzz】titanium資料【Techbuzz】titanium資料
【Techbuzz】titanium資料
 
Windows 8 cp 速攻レビュー
Windows 8 cp 速攻レビューWindows 8 cp 速攻レビュー
Windows 8 cp 速攻レビュー
 
【Unity道場 建築スペシャル2】UnityJapanOffice 丸裸SP
【Unity道場 建築スペシャル2】UnityJapanOffice 丸裸SP【Unity道場 建築スペシャル2】UnityJapanOffice 丸裸SP
【Unity道場 建築スペシャル2】UnityJapanOffice 丸裸SP
 
ゲーム開発環境、もっと楽にできるよ♬ マインクラフトでも実践している DevOpsでゲーム開発を効率化しよう!
ゲーム開発環境、もっと楽にできるよ♬  マインクラフトでも実践している DevOpsでゲーム開発を効率化しよう!ゲーム開発環境、もっと楽にできるよ♬  マインクラフトでも実践している DevOpsでゲーム開発を効率化しよう!
ゲーム開発環境、もっと楽にできるよ♬ マインクラフトでも実践している DevOpsでゲーム開発を効率化しよう!
 
Visual Studio Code あれこれ
Visual Studio Code あれこれVisual Studio Code あれこれ
Visual Studio Code あれこれ
 

JUCEではじめるBLOCKS開発_TOKYO BLOCKS HACKATHON 2018