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
音源となる信号を発生させるための発振器を生成します。
| 引数名 | 内容 | 備考 | オプション | デフォルト値 | |
|---|---|---|---|---|---|
| type | 発生させる信号の波形 | SINE TRIANGLE SAWTOOTH SQUARE | 正弦波 三角波 のこぎり波 矩形波 | ○ | SINE |
| freq | 発生させる信号の周波数 | 単位: Hz | ○ | 440 | |
Oscillatorオブジェクト