チュートリアルMIDIシンセサイザーを作る
このチュートリアルでは、MIDI 入力に反応するポリフォニックなサイン波シンセサイザーを実装します。これはSynthesiserクラスおよび関連クラス。
レベル中級
プラットフォームWindows , macOS , Linux
クラス: Synthesiser,SynthesiserVoice,SynthesiserSound,AudioSource,MidiMessageCollector
スタート
JUCEでのMIDI入力の扱い方と、サイン波の生成方法に慣れている必要があります。参照Tutorial: Handling MIDI eventsそしてTutorial: Build a sine wave synthesiser.
このチュートリアルのデモ・プロジェクトのダウンロードはこちらから:PIP|ZIP.プロジェクトを解凍し、最初のヘッダーファイルをProjucerで開く。
このステップにヘルプが必要な場合は、以下を参照してください。Tutorial: Projucer Part 1: Getting started with the Projucer.
デモ・プロジェクト
このデモ・プロジェクトでは、シンプルなサイン波シンセサイザーを演奏するのに使えるオンスクリーン・キーボードを紹介している。
コンピュータのキーボードのキーを使って、画面上のキーボードをコントロールすることができます(A、S、D、Fなどのキーを使って、音符C、D、E、Fなどをコントロールします)。これにより、シンセサイザーをポリフォニックに演奏することができます。
シンセシザークラス
このチュートリアルでは、JUCESynthesiserクラスを使用して、ポリフォニック・シンセシスを実装することができます。これは、独自のアプリケーションで独自のサウンドを使ってシンセサイザーをカスタマイズするために必要なすべての基本要素を示しています。これを動作させるために必要なクラスはいろいろあり、標準のMainContentComponent
クラスがある:
SynthAudioSource
を実装している。AudioSourceというクラスがあります。SynthAudioSource
を含む。Synthesiserクラスそのものです。これはシンセサイザーからすべてのオーディオを出力する。SineWaveVoice
これはカスタムSynthesiserVoiceというクラスがあります。SineWaveVoice
.ボイスクラスは、シンセサイザーのボイスの1つを、他のボイスとミックスしてレンダリングします。Synthesiserオブジェクトを生成します。1つのボイスクラスのインスタンスが1つのボイスをレンダリングします。SineWaveSound
カスタムSynthesiserSoundというクラスがあります。SineWaveSound
.サウンドクラスは、ボイスとして作成できるサウンドを記述したものです。例えば、サンプラーボイスのサンプルデータや、ウェーブテーブルシンセサイザーのウェーブテーブルデータが含まれます。
キーボードの設定
私たちのMainContentComponent
クラスには以下のデータ・メンバが含まれる。
juce::MidiKeyboardState keyboardState;
SynthAudioSource synthAudioSource;
juce::MidiKeyboardComponent keyboardComponent;
JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (MainContentComponent)
};