前々回、前回とドラムマシンを作ってきました。今回は[matrixctrl]をランダム化に選択率を加え、どのくらいステップを埋めるかを設定できるようにしましょう。
目次
前回のパッチの確認
これまでは[matrixctrl]を使用した簡易なシーケンサーと、ランダムに音色を選ぶ処理を作ってきました。
選択率を設定する処理を作る
今回はランダム処理に、選択率を決定する処理を作りましょう。
この部分を変更していきます。
確率の処理
確率を0にしたらサンプルは選ばれない、100にしたら全てのステップで何らかのサンプルが選ばれるようにします。前回何らかのサンプルが選ばれる処理は作ったので、ここではそのステップでサンプルを鳴らすかどうか決定する処理を作ります。
0~100で確率を設定できる処理を作ります。
[random 100]で0~99の数値をランダムに出力させます。それを[< 50]で受けると半々の確率でオン(1)を出力します。
[<]は入力された数値が、設定した数値よりも小さい場合オンを出力します。ここでは0~99の数値が入ってくるので[< 0]の場合は必ずオフ(0)が、[< 100]の場合は必ずオン(1)が出力されます。[< 50]の場合は0~49の数値が来た場合にオンになりますので半分の割合です。
[pack]につなげる
[pack 列 行 オン・オフ]のメッセージで[matrixctrl]を編集するので、最後のオン・オフのパラメータに先程の処理を接続します。
選択率処理のトリガーをもらう
選択率処理は各ステップごとに行うので、[uzi 16]の第1アウトレットから出力されるbangを貰います。
パッチコードが分岐するのは、見た目や処理上良くないとされるので(これでも動作しますが)、[bangbang]などを挟みましょう。
これで完成です。
完成
選択率を0~100の範囲で設定し、bangでランダム化してみてください。[matrixctrl]のシーケンスのステップに、オフの列が現れれば成功です。