def setup
@osc = Oscillator.new('sine')
@osc.start
@osc.amp(0)
@playing = false
sel = createSelect
sel.position(0, height + 5)
sel.option(SINE) # 正弦波
sel.option(TRIANGLE) # 三角波
sel.option(SAWTOOTH) # のこぎり波
sel.option(SQUARE) # 矩形波
sel.selected(SINE)
sel.changed do
@osc.setType(sel.value)
end
end
def draw
background(220)
@freq = constrain(map(mouseX, 0, width, 100, 500), 100, 500);
@amp = constrain(map(mouseY, height, 0, 0, 1), 0, 1);
text('Tap to play', 20, 20)
text("freq: #{@freq}", 20, 50)
text("amp: #{@amp}", 20, 70)
if @playing
@osc.freq(@freq, 0.1)
@osc.amp(@amp, 0.1)
end
end
def mousePressed
@playing = true
end
def mouseReleased
@playing = false
@osc.amp(0, 0.5)
end
発振器を起動します。
| 引数名 | 内容 | 備考 | オプション | デフォルト値 |
|---|---|---|---|---|
| time | 開始時刻 | いまから何秒後に起動させるかの値 | ○ | 0 (即時起動) |
| frequency | 周波数 | 単位: Hz | ○ | .newメソッドで指定した値 |
Oscillatorオブジェクト