Two halves of the same number. The warning is the moment it happened and the colour is how things stand: it fires on the way down through a quarter of a tank and then holds its peace, and the gauge stays red until a base fills the lander up, which also allows the warning again. Once, because a lander is at its most careful in the last few seconds before it touches, and something repeating in its ear through that is not a warning, it is a distraction. Checked where the fuel actually moves rather than once a frame - the tank only changes in takeFuel and payFuel, so there is nowhere else it can cross a threshold. Channel two, with the crash on three. Separate channels rather than one reused, because a crash while the warning is still sounding should not cut it off, and on a machine with four voices there is no reason to be clever. Half and a tenth are the obvious next thresholds and are deliberately not here: one is enough to find out whether being told at all is welcome. ---- And the crash sound is the one that was designed for it ---- Crash.json, which carries voice_gate itself, so the program's own trigger write is gone - it would have masked a deliberate choice rather than backing one up. The note moved from 24 to 60 by ear, and the comment saying it was low went with it. ---- A check that could not tell a beep from a nag ---- Counting bursts of sound cannot: without the latch the warning fires every tick the tank drops, far faster than the sound decays, so the beeps run into each other and a burst counter sees one long burst either way. It measures the LENGTH now - 26,944 samples against 490,348 - which is the difference between six tenths of a second and ten seconds of it.
55 lines
1.3 KiB
JSON
55 lines
1.3 KiB
JSON
{
|
|
"osc0_waveform": 5,
|
|
"osc0_dutyCycle": 0.500000,
|
|
"osc0_detune": 0.000000,
|
|
"osc0_gain": 4.000000,
|
|
"osc0_active": 1,
|
|
"osc0_octave": 2,
|
|
"osc0_modRouting0": 0,
|
|
"osc0_modRouting1": 2,
|
|
"osc0_modRouting2": 0,
|
|
"osc0_modDepth0": 0.000000,
|
|
"osc0_modDepth1": 180.000000,
|
|
"osc0_modDepth2": 4.000000,
|
|
"osc1_waveform": 5,
|
|
"osc1_dutyCycle": 0.545000,
|
|
"osc1_detune": -15.000000,
|
|
"osc1_gain": 4.000000,
|
|
"osc1_active": 1,
|
|
"osc1_octave": 1,
|
|
"osc1_modRouting0": 0,
|
|
"osc1_modRouting1": 2,
|
|
"osc1_modRouting2": 0,
|
|
"osc1_modDepth0": -0.750000,
|
|
"osc1_modDepth1": 1104.000000,
|
|
"osc1_modDepth2": 4.000000,
|
|
"ampEnv_attack": 2.000000,
|
|
"ampEnv_decay": 0.100000,
|
|
"ampEnv_sustain": 0.000000,
|
|
"ampEnv_release": 0.001000,
|
|
"modEnv_attack": 0.001000,
|
|
"modEnv_decay": 0.603263,
|
|
"modEnv_sustain": 0.000000,
|
|
"modEnv_release": 2.000000,
|
|
"lfo0_rate": 8.796101,
|
|
"lfo0_waveform": 0,
|
|
"lfo0_active": 0,
|
|
"lfo0_mode": 0,
|
|
"lfo1_rate": 1.000000,
|
|
"lfo1_waveform": 0,
|
|
"lfo1_active": 0,
|
|
"lfo1_mode": 0,
|
|
"filter_cutoff": 13294.700195,
|
|
"filter_resonance": 0.574200,
|
|
"filter_type": 0,
|
|
"filter_active": 1,
|
|
"filter_modRouting": 2,
|
|
"filter_modDepth": 11600.000000,
|
|
"filter_resModRouting": 0,
|
|
"filter_resModDepth": 0.000000,
|
|
"voice_levelSource": 2,
|
|
"voice_gate": 1,
|
|
"master_volume": 1.000000,
|
|
"master_pitchBendRange": 2.000000
|
|
}
|