A track imported from a file has no artwork, so its library row and the now-playing square both show the same music note icon. In a library of uploads every row looks identical, and the one thing the row could say about the file, what kind it is, goes unsaid.
What was meant to happen
The top bar rework in #665 was supposed to show the file's extension (WAV, FLAC, MP3) in place of the note wherever a track has no artwork. The styling for it shipped: .thumb-ext and .np-art-placeholder[data-ext] are both in daw.css, and the comment above them says they are "paired with extLabel() in catalog.js".
extLabel() does not exist. It is not in any commit on any branch. The JavaScript half was lost when that work was rebuilt into commits, so the CSS has been styling nothing since it was released.
Constraints for whoever fixes it
- The extension comes from
sourceUrl, which is local:<filename> for an upload. That is the same field deriveQuality already reads.
- It ends up in markup, so it needs validating, not just uppercasing. A name with no dot, a leading dot or something that is not an extension should fall back to the note.
- The now-playing square has to be cleared when the studio empties. Otherwise the empty state keeps showing the last track's extension.
A track imported from a file has no artwork, so its library row and the now-playing square both show the same music note icon. In a library of uploads every row looks identical, and the one thing the row could say about the file, what kind it is, goes unsaid.
What was meant to happen
The top bar rework in #665 was supposed to show the file's extension (WAV, FLAC, MP3) in place of the note wherever a track has no artwork. The styling for it shipped:
.thumb-extand.np-art-placeholder[data-ext]are both indaw.css, and the comment above them says they are "paired with extLabel() in catalog.js".extLabel()does not exist. It is not in any commit on any branch. The JavaScript half was lost when that work was rebuilt into commits, so the CSS has been styling nothing since it was released.Constraints for whoever fixes it
sourceUrl, which islocal:<filename>for an upload. That is the same fieldderiveQualityalready reads.