JUCEプログラミング、AudioPlayerを作成する1、作成するアプリの概要とクラスの調査

wavファイルの再生、サンプラーなどを作るには必須の技術ですね。

音声の再生、とても基本で役に立つよね

JUCEチュートリアルの「Audio」項目の「Build an audio player」を進めていきます。

公式のチュートリアルページはこちらとなります。

あわせて読みたい

こんな人の役に立つかも

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

・JUCEプログラミングでオーディオアプリを作成したい人

・JUCEで音声再生を行いたい人

目次

作成するアプリケーションの概要

チュートリアルで作成できるオーディオアプリは次のような機能です。

①音声ファイル読込みの機能

「.wav」ファイルを読み込みます。

②音声ファイル再生の機能

音声ファイルが読み込まれると押すことができるようになります。読みこんだ音声ファイルを再生するボタンになります。

③音声ファイル停止ボタン

再生中の音声ファイルを停止します。

チュートリアルで利用するクラスや関数

チュートリアルでは、最初に利用しているクラスの紹介があります。私自身、完全に理解ができているわけではないのですが、まずは、こんなクラスがあるんだな、という程度に見ていきました。

実際にプログラムを見ていくうえでクラスの役割も明確になっていけばいいかな、というような感覚で進めています。

AudioAppComponentクラス

音声を扱うときに便利な「AudioSource」クラスというものがあるようです。

あわせて読みたい

チュートリアルでは、MainComponentというクラスを作成して「AudioAppComponent」を継承します。さらに、AudioAppComponentクラスは、AudioSourceクラスを継承しています。

また、AudioAppComponentクラスは、「AudioSourcePlayer」オブジェクトを含んでいるという点が重要とのことです。

あわせて読みたい

AudioSourcePlayerは、AudioAppComponentクラスとオーディオハードウェアの間のストリーミングを担うオブジェクトらしいのです。

このような複数の音声を扱うクラスを利用して、アプリ作成の際には、「getNextAudioBlock」という関数からAudioSourceを連続して呼び出すことで、音声を簡単に扱うことができるとのことです。

オーディオフォーマットについて

JUCEでいろいろな形式のサウンドファイルを読み書きするためのツール群です。

AudioFormatManager

このクラスを利用して、wavやAIFFなどのオーディオ形式に合わせた適切なオブジェクトを作成できます。

AudioFormatReader

よりハードウェアレベルに近い音声ファイル(一般的にfloat型の配列)を扱うためのクラスです。このクラスは、AudioFormatManagerが特定のファイルを開くときに、インスタンスとして作成されます。

AudioFormatReaderSource

このクラスは、AudioSourceクラスのサブクラスとのことです。AudioFormatReaderオブジェクトから音声データを読み取ってgetNextAudioBlock関数を呼び出してオーディオをレンダリングすることができるクラスです。

AudioTransportSource

このクラスも、AudioSourceクラスのサブクラスとのことです。AudioFormatReaderSourceクラスのプレイバックを操作できるクラスです。AudioFormatReaderSouceの再生開始位置や停止位置の情報も含まれるとのことです。サンプルレートの変換や、あらかじめ音声をバッファリングしたりもできるようです。

現段階でいくつかクラスが出てきましたので、今の文章から、JUCEで音声の生データを取得する流れでのクラスの関係性を図にしてみました。

現段階でのクラスの役割のイメージです。このイメージを持ちながら、チュートリアルを進めたいと思います。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次