Craptune/Effector

※書きかけなので、書かれてない機能が使えたり書かれてる機能がまともに動かなかったりする可能性があります

@e1=default
サンプルの減衰音(defaultって名前だけどデフォルトではありません)

@e1=flat
何もしない

@e1=adsr,ATTACKB,DECAYB,SUSTAINB,RELEASEB,ATTACKV,DECAYV,SUSTAINV,RELEASEV
  ATTACKB = #Bound#(0)
  DECAYB = #Bound#(0)
  SUSTAINB = #Bound#(1)
  RELEASEB = #Bound#(1)
  ATTACKV = #Volume#(0.5)
  DECAYV = #Volume#(1)
  SUSTAINV = #Volume#(1)
  RELEASEV = #Volume#(0.5)
音量をATTACK→DECAY→SUSTAIN→RELEASEの順にBの場所でVの値に最大で3回変化させて、擬似ADSRをかける

@e1=tremolo,DELAY,SPEED,STRENGTH
  DELAY = #Length#(10000)
  SPEED = #Length#(2000)
  STRENGTH = #Volume#(1.35)
トレモロする

@e1=vibrato,DELAY,SPEED,STRENGTH
  DELAY = #Length#(10000)
  SPEED = #Length#(2000)
  STRENGTH = #Pitch#(1.01)
ビブラートする

@e1=composite,EFFECTOR1,EFFECTOR2,...
  EFFECTOR[n] = #Effector#
複数のEffectorを順に適用する(おそらくインライン合成Effectorの方が便利です)

@e1=sampletkit,SAMPLET0,SAMPLET1,...
  SAMPLET[n] = #Samplet#
登録したSampletを鳴らす
※ノート番号=N、登録Samplet数=Mの場合、鳴るSampletはSAMPLET[N mod M]
※12個登録するとそのままc,c+,d,d+,e,f,f+,g,g+,a,a+,bという風に割り当てられます
※このエフェクタを使用すると、通常の波形は鳴らなくなります(Sampletしか鳴りません)

但し、
#Length#はノート発音中のタイミング(サンプル数):int
#Bound#はノート発音中のタイミング(ノートの発音タイミングが0、次のノートの発音タイミングが1):Number
#Volume#は再生される音量にかかる倍率:Number
#Pitch#は周波数にかかる倍率:Number
#Samplet#はSampletの番号:int
#Effector#はEffectorの番号:int

インライン合成Effector

セミコロンで区切って書いて下さい

@e1=@w1;default;

右辺には、普通のEffector定義の他に定義の済んだEffectorやWaveformへの参照も書けます
Waveformを指定すると、波形が切り替わります
(実質的にcomposite Effectorの上位互換です)

@w1 定義済みのWaveformの参照
@e1 定義済みのEffectorの参照