Can you please explain why you need to be able to filter on songs that are cropped, annotated or have notes? That does not seem like an action that most users would ever need. If you need an advanced query like that, you could always run SQL queries against the database yourself (I can help provide those queries). If enough users chime in that this would be useful to them, then I'm certainly open to adding a separate screen to perform complex queries against the library, but if you have a large library (say 2000+ songs or more) and I have to cache in memory all of the information for every song, that is going to add up very fast. The other option would be to just query the database and not cache the results, and then provide a display of that information, but once again, if you have a large library, you may encounter considerable delays for each query (easily multiple seconds or more any time anything is changed).
One last option is for me to support those filters, but if they are used, it will cache in memory everything for every song. There are a few places in the application where that information winds up getting cached anyways (library sync, library backup/restore) so it's not without precedent. I have a few test libraries with around 5000 songs, so I can try to see what the memory impact of doing that is. There will probably be a delay after the first query is run using those new filters as everything is loaded into memory, but then it would be fast after that. I just would like to hear the usefulness of adding those new filters before doing the work (again) that is required.
Thanks,
Mike
One last option is for me to support those filters, but if they are used, it will cache in memory everything for every song. There are a few places in the application where that information winds up getting cached anyways (library sync, library backup/restore) so it's not without precedent. I have a few test libraries with around 5000 songs, so I can try to see what the memory impact of doing that is. There will probably be a delay after the first query is run using those new filters as everything is loaded into memory, but then it would be fast after that. I just would like to hear the usefulness of adding those new filters before doing the work (again) that is required.
Thanks,
Mike