AMP: Are we there yet?

I am aware that as new AMP feature follows new AMP feature, it can feel like a never-ending ride to who-knows-where, prompting the 'Oh God, not another one!' reaction, as well as the 'Will it never end?' one -as well as the one alluded to in the thumbnail at the right!

For the record, I think we are closing in on a feature-complete AMP that needs no major bug-fixes nor has use for substantial new pieces of functionality.

But we're not there quite yet!

Thus AMP Version 1.21 introduces one new feature and a pleasing bug-fix (pleasing, because I've been meaning to get around to doing it for ages and it turned out to be a lot simpler to implement than I expected!)

First, the genuine new feature is yet another override switch, triggered by the addition of --unplayed last time round. As I kind of expected it would, the ability to say "play me something by a composer who has not previously had anything played" triggered a request from one user for a "play me some composition (basically, a recording/album) which has not yet been played". This would be genuinely useful in making sure that a new addition to your music collection of (say) a new recording of Beethoven's 5th gets played. Beethoven as a composer has probably been played a bazillion times before... but this recording of a work of his is new, and the new switch makes sure it gets prioritised for random selection.

Frankly, with nearly 11,000 distinct 'recordings' in my collection, it's going to take me a l-o-n-g time before such a 'new recording' switch ever triggered the playing of a new acquisition in that way: there's a mountainous backlog of old recordings to get to before it can achieve that. But, I can see the point... and therefore I've added the --unplayedworks override switch. This switch triggers AMP to find specific recordings that have no record of a play in its PLAYS table (so, use of a database is required for it to achieve anything). Specifically, it's looking at the complete folder name in the PLAYS table -so, you could actually fool the system into thinking a recording is brand new by altering the physical folder name in some way. The point, anyway, is that we can see folders represented in your music collection but which are not yet represented in your PLAYS table -and it's that fact which triggers AMP into thinking a specific recording is hitherto an 'unplayed work'. Note that the new switch respects the excludes.txt and time bars, so if that new Rattle recording of Beethoven's 5th is theoretically a candidate for selection at 11AM, but you have previously played Solti's recording of Beethoven's 7th at 8.00AM, and you're using the default 6 hour time-bar, bad luck: the Rattle recording is time-barred from actually being selected for play. But excludes and time bars aside, the new switch will only allow previously-non-played folders of music to be eligible for the next play.

The pleasing bug-fix is this:

See how the performers of Gerard Victory's Ultima Rerum (a sort-of Irish version of Britten's War Requiem, only not so good) starts off nicely indented on the first line, so it aligns correctly with everything else in that part of the screen? And yet how, on the second line of text, it all goes horribly wrong and the list simply left-aligns, flush to the window edge? Yeah, well: that has annoyed me for a very long time. And the new fix is:

That's right: the indentation is now maintained for however long your list of performers and artists for a recording happens to be. The indentation is preserved; nothing wraps back to the window edge. Finally!

And now a pledge: I'm not going to tinker with AMP again for at least a couple of weeks... and the next release is going to be called version 2.0, because I think it will be feature-complete and as bug-free as I know how to make it (don't get your expectations on that score too high, mind!). If you have any particular feature requests for it before then, please get in touch and ask them now. Because once version 2.0 is out, development on it will slow significantly and you may be waiting a while for your longed-for new feature to make it in!