JUCEプログラミング、これまでのJUCE所感と、Audioチュートリアルことはじめ

1_プログラミング

音声処理に関するチュートリアルを進めていきたいと思います。

ファイルの再生とか、そういった部分は重要だね~

JUCEプログラミングを勉強しています。プラグインを作成したかったので、pluginの項目を進めていましたが、足りない部分も多いとかんじましたので、順番にAudioの項目をやっていこうと思いました。その前に、JUCEチュートリアルを行ってきて、感じた点もまとめてみたいと思います。

JUCEチュートリアルとしては、「Audio」の項目を進めていきます。まずは最初のチュートリアルである「Build an audio player」の項目を進めたいと思います。

公式チュートリアルページはこちらです。

こんな人の役に立つかも

・JUCEフレームワークに入門したい人

・JUCEで音声プログラミングを学びたい人

・JUCEのAudioチュートリアルを進めている人

スポンサーリンク

JUCEチュートリアルの注意点と所感

これまでの、JUCEチュートリアルを進めるうえでの注意点と感じたことをまとめます。

注意点

JUCEチュートリアルを進めるうえで、次の点がわかりました。

①ドキュメントだけ読んでも完結せず、zipのプログラムサンプルが必須

いくつかJUCEチュートリアルをやってきましたが、いまいちドキュメントだけでは微妙に完結できないもどかしさ、がある気がします。例えば、これから進めるAudioPlayerは、ドキュメントにはresized関数に関する記載がありませんが、サンプルプログラムには記載されています。そのため、ドキュメントのプログラムだけをコピーして進めてもGUIがない状態で実行されてしまいます。そのため、何もわからないチュートリアルでは、zipファイルが頼みの綱で、ドキュメントだけでは動作するアプリまでたどり着けないことが多々あります。

また、サンプルはヘッダーにひとまとめにされているため、そこからC++の文法の知識を導入して「.h」ファイルと「.cpp」ファイルの構成へと変更する必要があります。

②zipプログラムがいくつかのバージョンに分かれる場合がある。

さらに、zipの中には「〇〇1」「〇〇2」などと、バージョンがあり、1だと完全なアプリとして動作しない場合がありますので、注意が必要です。後ろの方のバージョンのプログラムのほうが完成形または、改良系に近いので、ドキュメントを読み解きながら、「足りない部分」「応用部分」を切り分けていく必要があります。

所感

JUCE以外でオーディオプログラミングの経験があるという前提で行けば、小さなもどかしさは経験と知識でカバーできるのだと思いますが、私自身オーディオプログラミングはそれほど詳しくない(10年ほど前にMax触っていたくらい)かつ、C++初心者となると、JUCEチュートリアルで学ぶには少し壁に当たる点があるような気がしました。

と、チュートリアルに挑戦される方へお届けしつつ、

そのようなもどかしさをクリアできるようにチュートリアルの足りないと感じる部分を補完しつつ、学びを記載していきたいと思います(*゚▽゚)ノ 

といいつつ、忘れやすい自分へ向けたメッセージです。

Audioチュートリアルのプロジェクト作成と構成

JUCEの「Audio」チュートリアルでは、スタンドアローンのアプリとしてオーディオ処理の開発を行っていくようです。

まずは、Projucerでのプロジェクトの作成と、プログラムの構成を確認したいと思います。

Projucerでアプリの作成

今回のチュートリアルでは、「Audio」のアプリを選択して、ProjectNameに「AudioPlayer01」と名前を付けました。

「exporters」はそれぞれの開発環境に合わせたものを指定します。

このプロジェクトの作成方法については、以前行ったチュートリアルが詳しいのでそちらもご参照ください。(この記事ではGUIアプリを選択していますが、基本的に同じなので大丈夫です。)

プログラムの構成

「MainComponent.h」、「MainComponent.cpp」と「Main.cpp」というファイルが存在しています。プログラミングでは、主に「MainComponent.h」と「MainComponent.cpp」へプログラムを追加して、いろいろな機能を実装していきます。

また、プラグイン開発のテンプレートとは違い、処理クラス(Processor)とGUIクラス(Editor)には分かれず、すべてがMainComponentというクラスに記述していくスタイルのようですね。

Pluginとは構成が違うので、注意が必要ですね~

タイトルとURLをコピーしました