The problem
The two rows of the track analysis header do not line up, and a split vocal has
nowhere to show.
The columns interleave. The top row is seven metadata cards; the row under
it is six presence cards. Neither is aware of the other, so their dividers land
at different x positions all the way across, and the header reads as two
unrelated strips stacked rather than one panel.
A split vocal collapses into one card. The on-demand lead/backing split
(#275) produces two stems, but the presence row still shows a single
Vocal presence. There is no way to see that the split happened, or how the two
halves compare, which is most of the reason to run it.
The part that is not just layout
Even given two cards to fill, there is nothing to put in them. split_vocals
never touches stem_presence, so after a split neither lead_vocals nor
backing_vocals has a presence figure anywhere in the job.
Recomputing it is not free. Presence is a stem's RMS as a percentage of the
loudest stem in the job, and that loudest value is not stored: only the
percentages are. Deriving it the obvious way means decoding all eight stems
again, purely to place two of them on a scale the other six already sit on.
Anything that fills these cards has to solve that without a second full pass, or
be honest that it cannot and show nothing.
Constraints
- Every user-facing string goes through the i18n layer, in all nine tables.
vocals, lead_vocals and backing_vocals are mutually exclusive for a
given job: vocals.wav is never deleted by the split, so "present on disk"
alone cannot decide which cards to show.
The problem
The two rows of the track analysis header do not line up, and a split vocal has
nowhere to show.
The columns interleave. The top row is seven metadata cards; the row under
it is six presence cards. Neither is aware of the other, so their dividers land
at different x positions all the way across, and the header reads as two
unrelated strips stacked rather than one panel.
A split vocal collapses into one card. The on-demand lead/backing split
(#275) produces two stems, but the presence row still shows a single
Vocal presence. There is no way to see that the split happened, or how the twohalves compare, which is most of the reason to run it.
The part that is not just layout
Even given two cards to fill, there is nothing to put in them.
split_vocalsnever touches
stem_presence, so after a split neitherlead_vocalsnorbacking_vocalshas a presence figure anywhere in the job.Recomputing it is not free. Presence is a stem's RMS as a percentage of the
loudest stem in the job, and that loudest value is not stored: only the
percentages are. Deriving it the obvious way means decoding all eight stems
again, purely to place two of them on a scale the other six already sit on.
Anything that fills these cards has to solve that without a second full pass, or
be honest that it cannot and show nothing.
Constraints
vocals,lead_vocalsandbacking_vocalsare mutually exclusive for agiven job:
vocals.wavis never deleted by the split, so "present on disk"alone cannot decide which cards to show.