7
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

JUCEチュートリアルの進め方

Posted at

公式サイトのJUCEチュートリアルの並び順通りに進めるとこれ何なの?という状態を保留しながら進めないといけなくて気持ち悪かったので進めながらのメモを共有。

Tutorials | JUCE

1.基本のProjucer操作

JUCE操作の基本となるProjucerアプリケーションの使い方についてとそれぞれのProjucerテンプレートについての説明を最初に。
Getting Startedのプラグイン関連についてはそもそもプラグイン作る予定がないというのと、現状でチュートリアル進めてもコード通りにやったらよくわからないプラグインが出来た程度の満足度しか無いので飛ばしましたがとりあえず自前のコードがDAWで読める感を得ることでモチベーションにつながる可能性もあるのでそのあたりはご判断ください。

早く音を出したいところですがここからしばらく(Audio/Synth/MIDI/Plugins/DSP)飛ばします

2.テンプレートのcppファイルを解読するために突然Graphicsカテゴリへ

JUCEに置けるメインのクラスであるJUCEApplicationおよびmain Componentについてようやく出てくる。これがわからない状態でオーディオ出してもそもそもこれ何という状態が続く。

3.コンポーネントについてもう少し詳しく知る+UI関連の基本

Graphicは上記2記事で飛ばしていきなりInterface Designへ。
アプリケーションの見た目や色クラス、簡単なDraw系のチュートリアルなどをスルーしながら今後必要になるいくつかのチュートリアルを選択。マストなのは以下3件。
まだ音が出ないが音を出すチュートリアルに突然スライダーとか出てくる。

それぞれネストされたコンポーネントを作る方法、UIクラスのイベントをどうやって利用するか、具体的なUIパーツについての詳細チュートリアルになっている。スライダーに追加してLabel, ComboBox, RadioButtonあたりを進めてもいいがこれをやっているとウェブのフロントやってる気持ちになるので注意。

4.やっと音が出る。

1つ目のノイズジェネレーターのサンプルコードは2つ目の記事でこうすると良いよというコードが入っていて1つ目の記事では全く触れられていないので読み飛ばしていいです(スライダー変更時にクリックノイズが出なくするような実装)

ただしここら辺からbufferに書き込む系の作業が入ってくるため他にAudioUnit等でオーディオバッファごとの処理をやった経験がないと若干躓く可能性ありでこの辺りはJUCE外に何らかの情報を求める必要があるかもしれない。あと使用する各クラスについての詳細はないのでAudioBufferクラス、AudioSampleBufferクラス、AudioSourceChannelInfo、あたりのリファレンスは一通り確認しておいたほうがここの行を読みやすい。

オーディオの加工優先であればAudioカテゴリを優先でも問題ないかと思う。

その他

その他ランダムクラス、ファイル操作、プラグイン関係、MIDIなどはそれぞれ必要だと思われるものを選択。個人的にはInternalクロックで動くシーケンサー実装について知る必要があったがそれについてのチュートリアルがなかったためそういうのはGithubとかでコード探してTimerクラスのリファレンス読みながらどうにかするしかない感じでした。

7
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?