pub const DROP_CONVENTION: &str = "f(t) = f_end + df exp(-t / tau) fitted by least squares to \
the sub-band line from 7 ms to 400 ms after the onset, or to the end of the note; tau by a log \
grid and golden-section search from 3.04 ms, where exp(-7 ms / tau) = 0.1, to 1 s, f_end and \
df linear for each tau; a fit with tau under 10 ms, or after a strike whose full-band RMS rises \
20 dB, is fitted again on the line with its high-pass at 10 Hz, and the refit counts; \
df_st = 12 log2((f_end + df) / f_end); onset_s is the first sample after the lowest point of \
the onset search where the 20 to 200 Hz envelope, averaged over a centred 10 ms, reaches half \
the peak that follows; a strike whose full-band RMS over the 20 ms after the onset lies more \
than 40 dB below the loudest 25 ms frame of the stem, or whose 20 to 200 Hz RMS over those \
20 ms lies more than 18 dB below the loudest 25 ms frame of that band, is no candidate; a drop \
with tau under 10 ms needs an envelope that takes 30 ms or less from 10 to 90 % of its peak; a \
drop with tau under 10 ms, one that starts at 200 Hz or above, or one whose envelope takes over \
30 ms from 10 to 90 % of its peak needs the full-band RMS over the 20 ms after the onset 6 dB or \
more above the 20 ms that end 25 ms before it; residual is the RMS of the fit's error, averaged \
over half a period of f_end when tau is 10 ms or more and over a full period when tau spans 1.5 \
periods or more, over the fitted fall from 7 ms on, df exp(-7 ms / tau); a drop counts when \
df_st is above 2 and at most 36, that fall is above 2 semitones too, tau is above the bound of \
the search, residual is below 0.15, and f_end lies within 100 cents of a note that starts 150 \
ms or less before the onset and sounds at some point from 5 tau after the onset, or from the end \
of the fit span if that comes first, to the end of the fit span; a fit after a 6 dB strike that is no \
drop is fitted again on the note line, whose low-pass sits at 1.5 times the note's pitch, when \
that lies under 200 Hz, with its span ending one period of the note before the note line's \
frequency first falls to 0 Hz, and the refit counts with tau of 10 ms or more and an RMS \
envelope over its fall, from 7 ms to 5 tau, at most 6 dB below the line the first fit read; a \
search that starts where the previous note's search ended, before the drop read last has \
settled, 5 tau after its onset, finds that strike again when its 20 to 200 Hz envelope, \
averaged over a centred 2 periods of the note, is lowest at its first sample";Expand description
The convention of a drop, as layers.json names it.