Warning: session_start(): open(/var/lib/php/sessions/sess_673bv0djt2fgn5246qrbg7pibt, O_RDWR) failed: No space left on device (28) in /var/www/tb-usercake/models/config.php on line 51
Warning: session_start(): Failed to read session data: files (path: /var/lib/php/sessions) in /var/www/tb-usercake/models/config.php on line 51
sclass RenderFrequencySample_SquareWave extends Meta is RenderFrequencySample {
public double get(Complex c, double frac) {
double abs = c.abs();
if (abs == 0) ret 0;
frac = frac_nonNeg(frac + c.fracAngle());
ret abs * (frac < .5 ? 1 : -1);
}
@Override
public void subtractPeriodFrom(IAddPlateau audio, DoubleRange period, Complex intensity) {
double goHigh = fracNonNeg(-intensity.fracAngle());
double abs = intensity.abs();
double goLow = fracNonNeg(goHigh+.5);
double t1 = period.start, t2 = period.end, n = l(period);
if (metaGet("scaffolding") != null)
printVars(+t1, +t2, +goHigh, +goLow, +abs, +n);
if (goHigh < goLow) {
audio.subtractPlateau(t1, t1+goHigh*n, -abs);
audio.subtractPlateau( t1+goHigh*n, t1+goLow*n, abs);
audio.subtractPlateau( t1+goLow*n, t2, -abs);
} else {
audio.subtractPlateau(t1, t1+goLow*n, abs);
audio.subtractPlateau( t1+goLow*n, t1+goHigh*n, -abs);
audio.subtractPlateau( t1+goHigh*n, t2, abs);
}
}
}