pub const JOIN_CONVENTION: &str = "consecutive notes of a mono line whose gap, the later onset \
minus the earlier end in the note list, is under 30 ms, and whose later onset lies less than 50 ms \
inside the earlier note's held part; dip_db is the 10th percentile of the \
level of the quieter note over up to 100 ms beside the join minus the lowest level from 25 ms before \
the onset, or from the earlier held end when that comes first, to 25 ms after it, on an RMS over one period of the lower note; centroid_change is the centroid over f0 \
after the join over the same before it, minus 1, over 20 ms or two periods each side, and the \
verdict does not read it, and it is null when either side holds no signal or runs past either end of the stem; \
legato when dip_db is under 1; dip_db and legato are null with no estimate when neither note has a \
level beside the join; confidence is low when the verdict is legato, as a retrigger with an instant \
attack keeps its level too, when no attack was read, when half a period before the earlier level window or one period before the dip read falls before the stem start, when one period past the 25 ms after the onset falls past the stem end, or when the median attack is over 100 ms, else \
medium";Expand description
The convention of a join.