アットウィキロゴ

LFO (Low Frequency Oscillator)

LFO (Low Frequency Oscillator) は、音のパラメータ(音量、ピッチ、フィルターのカットオフなど)を時間経過とともに周期的に変化させるための「モジュレーション(変調)ソース」です。


概要

1. 基本的な作成と波形
LFOは playdate.sound.lfo.new([type]) で作成します。指定できる主な波形は以下の通りです。
定数 波形 特徴
kLFOSine 正弦波 滑らかな変化。ビブラートやトレモロに最適
kLFOTriangle 三角波 直線的な上下運動
kLFOSawtooth のこぎり波 急激に変化して戻る。リズミカルな効果
kLFOSquare 矩形波 2つの値を瞬時に切り替える
kLFOSampleAndHold ランダム 不規則な値を出力(ノイズ的)
kLFOArp アルペジオ 音階的な変化を与える特殊なタイプ

2. 主要なパラメータ
LFOの挙動を制御するための主要なメソッドです。
setRate(rate)
振動の速さをHzで設定します。
setDepth(depth)
変化の幅(振幅)を設定します。
setCenter(center)
変化の中心値を設定します。
setPhase(phase)
開始位相(0.0〜1.0)を設定します。
setRetrigger(flag)
ONにすると、ノート(音)が鳴るたびに位相がリセットされます。
setGlobal(flag)
ONにすると、すべての音に対して共通の位相で動作します(個別のノートごとにリセットされない)。
setDelay(holdoff, ramp)
開始直後の待ち時間(holdoff)と、徐々に深さを増す時間(ramp)を設定できます。

3. モジュレーションの適用
作成したLFOをシンセやサンプルプレイヤーに適用することで、音が変化します。
ピッチ(ビブラート)
synth:setFrequencyModulator(lfo)
音量(トレモロ)
synth:setAmplitudeModulator(lfo)
汎用パラメータ
synth:setParameterMod(parameter, lfo) (エフェクトのパラメータなどにも利用可能)

4. コード例 (Lua)
以下は、シンセのピッチにLFOをかけてビブラートを作る簡単な例です。
local snd = playdate.sound
 
-- 1. LFOを作成(サイン波、5Hz)
local myLFO = snd.lfo.new(snd.kLFOSine)
myLFO:setRate(5)
myLFO:setDepth(0.1) -- 変化の幅を小さめに設定
 
-- 2. シンセを作成し、LFOをピッチ(周波数)に適用
local synth = snd.synth.new(snd.kWaveSine)
synth:setFrequencyModulator(myLFO)
 
-- 3. 音を鳴らす
synth:playNote("C4")
応用:カスタムLFO
Playdateでは setFunction(callback) を使うことで、数学的な式や独自のロジックに基づいたカスタム波形を作成することも可能です。
これにより、標準の波形にはない複雑な動きをサウンドに持たせることができます。

関連ページ

最終更新:2026年04月29日 07:11