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.
59 lines
2.3 KiB
NASM
59 lines
2.3 KiB
NASM
; AlarmPatch, converted from Programs/Sounds/LowFuel.json by SoundPatch.
|
|
; Designed in soundThing, where it can be heard. Do not edit the numbers
|
|
; here: change the patch and convert it again.
|
|
|
|
#Data
|
|
|
|
AlarmPatch:
|
|
0d50 ; how many pairs follow
|
|
0x00 0d1 ; oscillator 0, waveform
|
|
0x01 0d255 ; gain
|
|
0x02 0d128 ; duty
|
|
0x03 0d128 ; detune, in cents
|
|
0x04 0d130 ; octave
|
|
0x05 0d1 ; on
|
|
0x06 0d0 ; what moves its width
|
|
0x07 0d128 ; and how far
|
|
0x08 0d3 ; what moves its pitch
|
|
0x09 0d83 ; and how far
|
|
0x0A 0d1 ; what moves its gain
|
|
0x0B 0d255 ; and how far
|
|
0x10 0d1 ; oscillator 1, waveform
|
|
0x11 0d255 ; gain
|
|
0x12 0d128 ; duty
|
|
0x13 0d128 ; detune, in cents
|
|
0x14 0d128 ; octave
|
|
0x15 0d1 ; on
|
|
0x16 0d0 ; what moves its width
|
|
0x17 0d128 ; and how far
|
|
0x18 0d3 ; what moves its pitch
|
|
0x19 0d83 ; and how far
|
|
0x1A 0d1 ; what moves its gain
|
|
0x1B 0d255 ; and how far
|
|
0x20 0d4 ; amplitude envelope, attack
|
|
0x21 0d97 ; decay
|
|
0x22 0d255 ; sustain
|
|
0x23 0d33 ; release
|
|
0x30 0d9 ; modulation envelope, attack
|
|
0x31 0d90 ; decay
|
|
0x32 0d0 ; sustain
|
|
0x33 0d40 ; release
|
|
0x40 0d0 ; filter, on
|
|
0x41 0d0 ; type: 0 low, 1 high, 2 band
|
|
0x42 0d221 ; cutoff, in hertz
|
|
0x43 0d0 ; resonance
|
|
0x44 0d0 ; what moves the cutoff
|
|
0x45 0d128 ; and how far, in hertz
|
|
0x46 0d0 ; what moves the resonance
|
|
0x47 0d128 ; and how far
|
|
0x60 0d1 ; LFO 0, on
|
|
0x61 0d2 ; waveform
|
|
0x62 0d180 ; rate, in hertz
|
|
0x63 0d1 ; 0 free, 1 starts with a voice
|
|
0x70 0d0 ; LFO 1, on
|
|
0x71 0d0 ; waveform
|
|
0x72 0d127 ; rate, in hertz
|
|
0x73 0d0 ; 0 free, 1 starts with a voice
|
|
0x50 0d1 ; what shapes the level
|
|
0x51 0d1 ; 0 gated, 1 triggered
|