Add thruster Faust patch with an rpm control
Sustained heavy thruster: low rotor rumble, blade-chopped noise rasp, high-Q hull rattle modes, tanh clip. Compiled as Faust source through CompileSource; not a .aqua script and not indexed in library.yaml. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
parent
3b43b7bd72
commit
36ff76f03a
1 changed files with 27 additions and 0 deletions
27
patches/thruster/thruster.dsp
Normal file
27
patches/thruster/thruster.dsp
Normal file
|
|
@ -0,0 +1,27 @@
|
|||
// thruster: sustained, heavy, brittle-hull thruster with an RPM control.
|
||||
// Compile as Faust source (AquaSynthPatchCompiler.CompileSource); it is not a .aqua script.
|
||||
// Control: rpm (300..6000). Rotor tone = 28 Hz + rpm*0.025 (about 36..180 Hz); three blades chop the rasp at 3x that.
|
||||
declare name "thruster";
|
||||
import("stdfaust.lib");
|
||||
|
||||
rpm = hslider("rpm", 1200, 300, 6000, 1) : si.smooth(ba.tau2pole(0.2));
|
||||
load = (rpm - 300) / 5700;
|
||||
shaft = 28 + rpm * 0.025;
|
||||
|
||||
// effort: slow random wander of the shaft speed
|
||||
wander = no.noise : fi.lowpass(2, 5) : *(0.35);
|
||||
f0 = shaft * (1 + 0.04 * wander);
|
||||
|
||||
// low rumble: saw at shaft speed plus a square a sub-octave down, low-passed
|
||||
rumble = (os.sawtooth(f0) + 0.7 * os.square(f0 * 0.5)) : fi.lowpass(3, 60 + 2.5 * shaft);
|
||||
|
||||
// blade pass: rasp noise chopped at 3x shaft, band tracks rpm
|
||||
chop = 0.5 + 0.5 * os.osc(f0 * 3) ^ 2;
|
||||
rasp = no.noise : fi.resonbp(700 + rpm * 0.6, 1.5, 1) : *(chop);
|
||||
|
||||
// brittle hull: high-Q modes rattled by noise, louder with load
|
||||
mode(f, q) = no.noise : fi.resonbp(f, q, 1);
|
||||
rattle = (mode(173, 40) * (0.3 + 0.7 * load) + 0.8 * mode(311, 35) + 0.6 * mode(467, 30) + 0.4 * mode(1130, 25)) * (0.1 + 0.9 * load ^ 2) * 3;
|
||||
|
||||
mix = rumble * (0.5 + 0.5 * load) + rasp * (0.3 + 0.6 * load) + rattle;
|
||||
process = mix * (0.4 + 0.6 * load) : *(2.2) : ma.tanh : *(0.5);
|
||||
Loading…
Reference in a new issue