音のもととなる波の形を変えると、耳ざわりが変わるので、音色が変わって聞こえます。
Pd-Vanillaであらかじめ用意された波形生成のオブジェクトが3つあります。
2-1で作った「pdws2-1-5.pd」をもとに、波の形を表示できるようにします。
「osc~」は「オシレータ=発振器」という意味で、サイン波を生成します。
実はこれまでのサンプルでは、サイン波を使ってきましたので、プログラムはそのままです。
「osc~」を「phasor~」に変更しました。
ノコギリの波を想像すると、耳ざわりもギザギザした感じで、ブザーのような音色に感じます。
「osc~」を「noise~」にしました。
ノイズは音程がランダムに変化して安定しないので、どの周波数を指定しても、同じような音に聞こえます。
このあと、Pd-Vanillaにはない波形を紹介していきますが、その前に視覚的に表示する部分を作っておきましょう。
「pdws2-2-1.pd」に追加して作っていきます。
Put>Array
を選びます。
「Array Properties」が開きますので、Sizeを「1000」くらいにしておきます。
「array1」を空いたスペースに配置します。
「トグルボタン」「metro 100」「tabwrite~ array1」を追加し、線で結びます。
100ミリ秒ごとに「array1」という名前のArrayに音データを書き込む、という意味になります。
「dac~」の直前の音データを、「tabwrite~ array1」につなぎます。
「トグルボタン」をオンにして、音を鳴らすとarray1に音の波形が表示されます。
以下の波形は、あらかじめ用意された波形を加工して作ることができます。
「pdws2-2-4.pd」をもとにつくっていきます。
「phasor~」はノコギリ波でした。これは、0~1.0までの変化を繰り返す、音データとも解釈できます。
「expr~」は、プログラミング的な表現で使うことができます。ここではif文のような意味で、「$v1 > 0.5」は、「入ってくる音データが0.5より大きいとき」に、音データを出力することになります。
次の「-~ 0.5」では、0.5~1.0に変化する音データをで0~0.5にオフセットします。
さらに次の「*~ 2」で、0~0.5の音データを、0〜1.0に変化するように整えています。
ここでも「phasor~」を使います。
「expr~」で「1 - $v1」とすることで、「音データを反転」し出力することになります。
次の「-~ 0.5」では、0.5~1.0に変化する音データをで0~0.5にオフセットします。
さらに次の「*~ 2」で、0~0.5の音データを、0〜1.0に変化するように整えています。
またまた「phasor~」を使います。
同じタイミングでつくられる2つのノコギリ波をそれぞれ加工し、0〜1にクリップ(制限)し、足し算します。
三角波の上昇する部分と、下降する部分を作り、合体させています。
次の「-~ 0.5」では、0.5~1.0に変化する音データをで0~0.5にオフセットします。
さらに次の「*~ 2」で、0~0.5の音データを、0〜1.0に変化するように整えています。
説明を省いてシンプルにした三角波のパッチです。