ステップ型シーケンサのプログラム、フォームのロードとUIからの再生開始

DirectSoundによるドラム マシンの作成のC#ソースファイル

Form1()

InitializeComponent();の直後
//RythmMachineAppインスタンスの生成。
//第1引数からresTyp、
//new DSoundPlayer.StreamingPlayerによってIAudioPlayer型の第2の引数が与えられて、Mixerインスタンスのコンストラクタの引数として渡される。(DSoundPlayer.StreamingPlayer型はIAudioPlayer型である。)
//Mixer型配列への追加が繰り返される。(各要素が個々のトラックになる。)
//配列の各要素に対して、リズムパターンのプリセットを行う。
//BuildUI(control)によるUI生成
//Timerインスタンスの生成、
//Timerインスタンスのプロパティ設定が行われる。

UIメニューからPlayを選択して再生すると

Mixer.Playメソッド内で、m_Player.Playの形でStreamingPlayer.Playが実行される。
(m_PlayerはForm1でRythmMachineAppインスタンスが生成されるときに、Mixerコンストラクタの第1引数として渡されたStreamingPlayer型(IAudioPlayer型)が代入されている。)
StreamingPlayer.Playメソッド内でSecondaryBuffer.Playが実行されてDirectSoundのバッファが再生される。