Singles sorting mode is now ready!Changes in this release:
- Added: NEW! 'Singles' sorting mode - jukebox.ini > Settings > 'SongSort = Singles'.
- Added: NEW! 'SinglesRelaxed' sorting mode - jukebox.ini > Settings > 'SongSort = SinglesRelaxed'.
- Added: NEW! 'RandomSingles' sorting mode - jukebox.ini > Settings > 'SongSort = 'RandomSingles'.
- Added: Cosmetic change to button handling - depressed button indication.
- Added: Option: jukebox.ini > Settings > 'VisualiserChannelCount'.
- Added: Option: jukebox.ini > Settings > 'VisualiserTransitionRate'.
- Added: Option: jukebox.ini > Settings > 'VisualiserWaveReactivity'.
- Added: Right-click menu option to select audio visualiser (in real time).
- Fixed: Cosmetic bug: Number of Title Card pages now shows correctly.
- Fixed: Icon FocusColor and ShadowColor now used correctly.
- Fixed: Issue with Rainbow Marching Ants (Card border) colour cycling. Now wraps palette correctly, regardless of crawl speed. Also updated the ant path logic to smoothly flow around corners.
- Fixed: Issue with UpNext display initialisation on skin change (would sometimes only show 'Initialising...' until next track played).
- Fixed: Fonts changing size when flipping pages.
- Fixed: Subtle bug with page flip animation (could use incorrect flip direction when navigating horizontally in certain StripGrid layouts).
- Updated: CMD_PLAYSND now performs concurrently (improves performance, particularly with button press handling).
- Updated: Logic for splitting titles at brackets.
- Updated: Minor tweaks to skins.
- Updated: Screenshot capture process - now runs on a separate thread, and has a 5 second timeout.
- Updated: Selector keys (if enabled) now only display when a Track Title is present in that slot of a card.
For button handling, we've done away with the 'ripple' effect, and adjusted the icon handler so all icons 'press' when clicked/tapped by shrinking ever-so-slightly, and 'sinking' the image (to clearly indicate it is depressed).
We now also show when a 'toggle' button (like BTN_SHUFFLE, or BTN_POPULAR) is pressed, ie, the button stays 'down', requiring a second press to 'release' it back up.
Also added a button depress lock for selector keys (cleared when selection is complete/cancelled) to improve visual feedback. With the refactor, we've now also been able to wire up the focus color and shadow color (where specified in the skin.ini) correctly for each icon; a major improvement!
Another very significant change in this release which has been in the works for quite a while now, is the addition of new SINGLES sorting modes.
The 'Singles' mode will attempt to 'pair up' tracks from the same album, so they group nicely on dual-track cards. If this mode is active, whenever the skin specifies two songs/strip, tracks will be cleanly grouped together. Of course, if there is no 'B' side available, the card will only show the 'A' side.
Be aware this is a STRICT matching algorithm - If the Album ID is not an EXACT match, the two tracks will be given separate cards.
The 'SinglesRelaxed' mode (which is now the default if no SongSort is specified) is similar to 'Singles', except for the strict album matching. This mode will still group all artists and albums together, but will casually ignore album boundaries, so all tracks by a given artist will be grouped together, and will be assigned A/B sides. When the next artist is reached, rather than concatenate them, the 'B' side will be left blank if needed, and the new artist will get their own card.
The 'RandomSingles' mode uses the same A/B-slot grouping as 'Singles', but cards are shuffled after pairing so browse order is randomised while each A/B pair stays together. We also sort all tracks randomly for when the skin specifies two songs/strip (ie, solo cards are randomised, but shuffled in a different order than dual cards, so as to avoid A/B grouping).
In all of these new sort modes, if a track title is blank, the selector keys will be skipped for that track.
NB: When navigating, if the selector is on a 'B' track and we move to a non-existent/blank 'B' track, the pointer will silently move to the 'A' track.
Also, when changing skins, if the new skin uses a different card type (ie, switching between solo and dual cards) we do our best to ensure the currently selected track does not change.
When using this new functionality, the sorting procedures may take longer at startup, but usually still well under a second. For example, my test machine takes 203ms using 'SinglesRelaxed' to prepare 8070 track card entries, comprised of 6425 tracks in 1920 albums by 2497 artists (the rest are the blank 'B' sides being inserted). Plain old artist-by-album (no blanks) takes 15ms. I think it's a worthwhile trade-off though, to finally have TRUE singles, and the performance optimisations more than compensate in practice.
If Audio Visualisation mode is enabled, the 'VisualiserChannelCount' option allows you to set the number of 'channels' which will be displayed in equaliser modes (Bars, Zoned, Zone LED), and 'VisualiserTransitionRate' will set how responsive the equaliser bars are (ie, how quickly we fade from old values to new), while 'VisualiserWaveReactivity' adjusts how rapidly we recalculate the waveform/FFT data.
Just be aware that higher numbers here means higher CPU requirement (any modern-ish PC should have no trouble).
We've revisited the card layout logic. Now, when flipping pages, the minimum and maximum font sizes are precalculated for title and artist for all cards on the new page and applied before displaying the cards. Looks much cleaner and more consistent now that they are not calculated AFTER the flip, and eliminates any jarring font size stuttering mid-flip.
Also, the logic for splitting a title across multiple lines when title contains brackets has been improved - now, if the title font size would be reduced by more than our preset threshold (hardcoded at 35% right now) if we keep it on a single line, we'll allow the split, otherwise we just keep it on one line.
Link here:
VideoJuke - 0.970b