Page 1 of 1

BallroomDJ 4 Development Status

Posted: Mon Jan 10, 2022 9:06 am
by bll
BallroomDJ 4 is a complete rewrite of BallroomDJ with a completely new user interface.
Development is primarily done on Linux, but it is built on Mac OS and Windows on occasion.

The following lists are incomplete! If you do not see a feature you want, it does not mean it will be dropped.

(See also: wiki: Differences between BallroomDJ 3 and BallroomDJ 4)

If you want to make sure a feature you use is kept, please post a message here in the forums
( BDJ4 General Discussion ), or open a ticket
( BallroomDJ 4 Tickets @ SourceForge ) .

Features that will be dropped:
  • Playlist: Required Keywords (not very useful).
  • Synchronization (this is a lot of complicated code that is rarely used; Use 'export for ballroomdj' / 'import from ballroomdj' instead).
  • Client / Server Mode (not that difficult to implement, but does anyone need it? )
  • Mobile Marquee: internet mode.
  • Image display.
  • Built-in Help. I prefer to keep only one source of help up to date, and will concentrate on the wiki.
  • Raffle Games
  • New Years Countdown
  • Analog Clock
  • File Manager
Features that will be changed:
  • Playlist: Stop In/At <time> pause/continue (more complicated code).
    Becomes: Playlist: Stop at <time> (done)
  • Playlist: Stop After <song-count> pause/continue
    Becomes: Playlist: Stop After <song-count> (done; this is used by "queue dance").
  • Player: Pause each song option. (done)
    A per-queue configuration option to pause each song is available.
Player Features that will be kept:
  • Mobile Marquee. (done)
  • Playback Controls: Play/Pause/Fade/Next Song/Pause at End/Speed/Volume. (done)
  • Queue multiple playlists. (done)
  • Maximum Play Time: Global, per-playlist and per-dance in a playlist. (done)
  • Song start/Song end. (done)
  • Manual, Sequenced, Automatic playlists. (done)
  • Profiles. (done)
  • Song volume adjustments. (done)
  • Song speed adjustments. (done)
  • Remote Control of BallroomDJ. (done)
  • Seek in song. (done)
  • Multiple Music Queues (depends on how the user interface works out; could be moved to phase 2). (done)
  • Add requested songs to the music queue. (done)
  • Add a song from an external device to the music queue. (done).
  • Apply same-song information in sequenced and automatic playlists. (done)
  • History. (done)
Configuration:
  • Option configuation (done)
  • Table configuration (done)
    • Dances (done)
    • Genres (done)
    • Ratings (done)
    • Levels (done)
    • Status (done)
  • Organization configuration (done)
  • Display Settings (done)
  • Song Filter display settings (done)
  • iTunes Support (done)
Management features that will be kept:
  • Database creation / updates
    • Rebuild (done)
    • Check for new (done)
    • Update from tags (done)
    • Write tags (done)
    • Reorganize
    • Import from iTunes (done)
    • Load dance from genre tag. (done)
    • Allow entry of other folder locations to be added to the database. (done)
  • Song list creation / management.
    • Load (done)
    • Create Copy (done)
    • Save (done)
    • Mix (done)
    • Truncate (done)
    • Export to .M3U (done)
    • Import from .M3U (done)
    • Import from iTunes (done)
    • Export To BallroomDJ (done)
    • Import from BallroomdJ (done)
      • Allow an "Import from BallroomDJ" using BDJ3 files to work. This will require a BDJ3 installation.
    • Statistics display (done)
    • Create a song list from a playlist (done)
  • Playlist creation / management. (done)
  • Music manager. (done)
    • Mark as Same Song/Clear Same Song marks (done).
    • I also want a method that will use the appropriate musicbrainz tag to mark songs as the same.
  • Song Editor. (done)
    • Basic. (done)
    • Batch editing. (done)
    • BPM Counter. (done)
  • Sequence editor. (done)
  • Apply adjustments to a song. (done)

New features:
  • A global "stop at" time (done).
  • A global "play announcements" (done).
  • New: switch queue when empty (done).
  • Secondary installations (done).
    Has a link to the main bdj4 folder, but its own data/ folder.
    It needs an installation helper.
    This was possible in BDJ3, but it was never made easy to use.
  • Per music queue configuration (done).
Features I have not put any thought into:
  • Player Quick-Edit menu
    This would need to be a dialog box in BDJ4.
  • Restart after accidental exit.
    This is difficult.
Features to implement in phase 2 (after BDJ4 is released):
  • Audio identification.
  • Duplicate song finder (after audio identification).
  • Export playlist as MP3 files. (done)
Features to look at for Phase 2 (after BDJ4 is released):
  • Drag and Drop functionality (done)
----
2023-10-18:
I believe I have all the audio ID bugs fixed.
And the interface to ACRCloud is implemented.
Hopefully I can get a release out soon.

2023-10-11:
The wiki is up to date for version 4.4.1.2.
I am also trying to get the Russian translation better and more stable.
I have not made much progress elsewhere.

2023-10-1:
Many bug fixes in the 4.4.0 release and Russian translations in the 4.4.1.1 release.
Documentation updates.
Then the acrcloud interface for audio identification.

2023-9-21:
Audio identification is going well.
There are several other bugs that got fixed.
I want to finalize things and release the acoustid/musicbrainz lookup.
This may take another week, as I have internal cleanup to do and more testing.
Then I will work on the acrcloud interface for audio identification.

2023-9-19:
Audio identification is in progress.
I don't know if I will have time to finish the interface to ACRCloud before the free trial runs out.
The AcoustID and MusicBrainz interfaces are working, though more error handling capabilities may be needed.

2023-9-13:
4.3.3.6 is release with the audio tag 'BDJ4 Internal' interface working.
I am working on audio identification now.
The user interface is working. I need to write the identification processing and the processing to save the changes.

2023-9-6:
4.3.3.5 is released.
Windows users should upgrade to this release.
Users of versions 4.3.3.1 through 4.3.3.4 should also upgrade.

In development, reading .wma file tags is working.
I do not plan on implementing writing of .wma audio file tags.
I will also be implementing reading .wav file tags (again, no writing of tags to .wav audio files).

2023-9-4:
4.3.3.4 is released and fixes a serious Windows issue introduced in 4.3.3.2.

2023-9-2:
Apparently, I really messed up the windows build in version 4.3.3.2.
I have a fix done. I just need to test everything again.
I am hoping to make a release on Monday.
This will include the new MP4 tagging library (used with the BDJ4-Internal audio tagging interface).

2023-8-29:
The MP4 tagging library is complete, and it has been integrated into BDJ4.

2023-8-23:
Progress on the MP4 tagging library is very good.

2023-8-18:
Still progressing on MP4 tagging library.

2023-8-17:
Progress on an MP4 tagging library is going well. It can read tags.

2023-8-16:
4.3.3.3 was released. The BDJ4-Internal audio tag interface now supports Opus files.
I am working on MP4 (.m4a) support now.

2023-8-9:
4.3.3.2 was released. A lot of work was done on the installer and alternate installer.
A new version of Linux was released, and I had to release two different installation packages to support both the older systems and the newer systems.

2023-7-27:
Working on code cleanup.
Especiailly focusing on the installer and getting the alternate installer fully working.
Adding new tests, fixing bugs, etc.

2023-7-20:
Working on adding new tests.

2023-7-18:
Working on cleaning up code (internal stuff).
Adding new tests to make sure everything works as it should.

2023-7-14:
Version 4.3.3 was broken.
Released version 4.3.3.1.

2023-7-11:
Version 4.3.3 has been released.
The Nederlands translations are complete, but not quality checked. Thanks Marimo for all the hard work.
I will be working on bringing the wiki up to date for version 4.3.3.
Then once that is done, I will start work on support audio tags for Opus. That work will be released as a new version.
Then work will start on supporting audio tags for MP4 (.m4a, .aac, etc.).

2023-7-9:
Close to a new release.
Will be working on some more testing.

2023-7-6:
Still working on debugging and fixing problems.
Found an issue with the database update on windows.
Database update was re-worked to resolve various issues.
It looks like the translations for Nederlands may be done (or almost done) for the next release.

2023-7-3:
On track for creating a new release.
Still some stuff to research and figure out, but it will get there.

2023-6-26:
Coding is done for the new audio tag interface.
Just need some more testing, need to check and research some more things.
Also need to update the installer.

2023-6-23:
Continuing work on the new audio tag interface.

2023-6-20:
Still working on the new audio tag interface. Progress is good.
I have some issues to work out with flac pictures and vorbis comments.
Some other code to write.
Then I'll be able to make a release supporting mp3, flac and ogg.
opus support and mp4 support will come later.

2023-6-14:
Good progress on the MP3 tag interface.

2023-6-13:
Excellent progress made on the MP3 (ID3) tag interface.

2023-6-12:
Continuing to work on audio tags.
The MP4 (.m4a) library I found has bugs. I am hoping they will fix them. Otherwise, I will have to write my own MP4 tag handling code, and that will take a long time, and not be very enjoyable.
I stopped working on the MP4 tags, and am currently working on MP3 (id3) tags.
I will need to go back and re-work flac and ogg tags. There's more code to write.

I also discovered that using audacity really mucks up the tags. It writes free-form tags out backwards, and doesn't handle multiple free-form tags.

2023-6-8:
The MP4 (.m4a) library has one bug. I've submitted a bug report. Worst case, I can put this particular tag data into a custom tag.
Reading tags is working for the five audio file types that I will support with this one exception.
I have to work on writing audio file tags next.

2023-6-7:
I forgot to update this log.
4.3.2.3 and 4.3.2.4 have various bug fixes.
4.3.2.4 changed the way bpm/mpm are handled internally.

I am currently working on a new module to handle audio tags. The goals are:
  • remove the dependency on python-mutagen
  • support reading and writing of mp3, ogg, opus, flac and m4a (mp4) audio tags.
  • never lose any audio tag data when updating an audio file.
At this time reading mp3, ogg, opus and flac audio tags are working. I found a library to handle mp4 files, so that should be implemented soon.

Then I will work on writing audio tags.

2023-5-11:
The 4.3.2.2 release will be delayed until early next week.
Still working on testing it.
I will continue on with wiki documentation also.

2023-5-9:
Release 4.3.2.2 with several bug fixes will be out soon.
Continuing work on wiki documentation.

2023-5-4:
Continuing work on wiki documentation.
Mac OS and Windows will now suspend and resume sleep when the player is in use.

2023-5-2:
4.3.2 released.
I will be working on the wiki documentation next.

2203-4-30:
export for bdj4 and import from bdj4 are working.
Need to do some more testing before creating a release.

2203-4-29:
A bunch of bugs fixed.
Still some more work to do on 'import from bdj4'.

2023-4-27:
Fixing various issues with the mobile marquee. A bit more to work to do here in the configuration.
"Create from Playlist" will now copy the playlist settings from the automatic or sequenced playlist to the new song list.
Still working on the import from bdj4.

2023-4-26:
Still working on export for bdj4 / import from bdj4.
export for bdj4 is working.

2023-4-23:
Working on export to bdj4 / import from bdj4

2023-4-9:
4.3.0.4 was released.
Working on some bug fixes, mostly to do with multiple queues, and 4.3.0.5 will be released soon.

2023-4-4:
Version 4.3.0.4 is very close to being ready. Various small bug fixes.

2023-3-30:
Working (slowly) through the user interface after major code cleanup, finding any issues and bugs.

2023-3-28:
Still working on code cleanup.
I have one known bug to fix, then I need to QA all the changes.

2023-3-19:
Working on code cleanup.
Will be in this state for a while.

2023-3-9:
Released version 4.3.0.
BDJ4 is no longer in beta status. I have moved it to production status.

2023-3-8:
Working on batch editing.
Batch editing is working.
I re-worked the display settings configuration for the song editor, and it's easier to work with now.
I hope to get a new release out tomorrow.

2023-3-1:
Working on wiki updates.

2023-2-27:
Trying to track down a nasty display bug in the song editor / music manager.

2023-2-23:
Re-wrote 'Apply Adjustments / Normalize Volume' to use a different method.
The method used in 4.1.0-beta did not work well. It has been replaced in version 4.1.1-beta.
Released 4.1.1-beta.
Filters / Sort By / Date Added is not working. I've fixed that, but will wait to see if any other bugs need fixing.
I will be working on the wiki documentation.

2023-2-20:
Working on issues with "apply adjustments"

2023-2-16:
Working on creating a new release.
4.1.0 beta released.

2023-2-15:
Fixing minor bugs, finalizing apply adjustments.
Still some more testing to do.

2023-2-14:
Working on 'apply adjustments'.

2023-2-12:
4.0.10.1 was released to resolve a problem on Windows where BDJ4 conflicted with other applications.

2023-2-11:
Working on cleaning up various minor bugs and user interface cleanup.
Working on 'apply adjustments'.

2023-2-9:
Forgot to update this posting recently.
Progress continues on 'apply adjustments'.
Working with marimo on Dutch translation issues.

2023-2-2:
Released 4.0.10 fixing the reported import M3U bug on windows.
Progress is excellent today on the 'apply adjustments' functionality.
Still a few more things to take care of.

2023-2-1:
Bug reported in import M3U on windows.
Working on fixing this.

2023-1-31:
Working on apply adjustments.

2023-1-30:
Worked on wiki documentation.

2023-1-29:
Tracking down minor bugs.
Working on the wiki documentation.

2023-1-28:
Code cleanup.
Tracking down some minor bugs.

2023-1-26:
Worked on wiki documentation.
code cleanup.

2023-1-24:
Working on testing and creating the 4.0.9 release.
4.0.9-beta released.
Working on the wiki documentation.

2023-1-23:
I hope to make a release this evening including the export as mp3 functionality.

2023-1-21:
Progress is good on stomping bugs.
I need to review the 'export as mp3' function, make sure all the pieces are in place, then a new release can be made.

2023-1-20:
No work done. Have a few bugs to fix, and need to finish 'export as mp3'. Should be able to get a lot of this done Saturday.

2023-1-18:
Working on finding and fixing some serious issues with the music manager and song editor.
Released version 4.0.8.

2023-1-16:
Working on export as mp3.

2023-1-14:
4.0.7 released.

2023-1-13:
Working on various bug fixes.

2023-1-10:
Sick today. Probable food poisoning .

2023-1-9:
A few more minor bugs fixed.
Export as MP3 working for song lists, and almost working in the player.
Export as MP3 is working, also creates a M3U playlist.

2023-1-7:
Many bug fixes and some small enhancements.
Fixed a BDJ3 database conversion bug.
Released version 4.0.6.

2023-1-6:
Starting work on audio adjustments.

2023-1-5:
Working on creating a release.
And 4.0.5 is released (iTunes support).

2023-1-4:
Completed update the database from iTunes.
Tracking down various memory corruption and memory leak issues.
Once complete, I will create a new release.
I wrote a memory debugging utility, and that has been very helpful.
I hope to make a new release tomorrow.

2023-1-3:
itunes Parsing is working (I have a large iTunes XML flie from 2015 to test with, thanks to Doug M.)
import a song list from iTunes is working.
updating the database from itunes appears to be working. There's one more piece that needs to be implemented.

2023-1-2:
Working on the itunes interface.

2023-1-1:
Code cleanup.
Fixed the mistake I made in 4.0.3.
Released version 4.0.4

2022-12-31:
Code cleanup, testing.
Release 4.0.3. Turns out I broke the song list editor display.

2022-12-30:
Minor code cleanup.
Fixed a crash after the history tab was selected.
Two more bugs to track down before I can make a release.
Bugs are fixed. I plan on creating the release tomorrow morning.

2022-12-29:
Finalized fixing the linux ICU library issue.

2022-12-28:
Worked on fixing the linux ICU library issue.

2022-12-27:
Fixed shortcut creation.
Implemented a work-around for a windows gtk bug.

2022-12-25:
Working on the test suite.

2022-12-24:
There's a fix for a bug handling player per-queue configurations I want released.
Released version 4.0.1 beta.

2022-12-23:
fixed several small issues.

2022-12-22:
working on the test suite...
found one bug, fixed.

2022-12-21:
Re-wrote web site.
BDJ3 is end-of-life.

2022-12-20:
Created the beta release.
Need to re-write the web site.

2022-12-19:
just some minor cleanup.

2022-12-17:
working on wiki updates.

2022-12-16:
more small updates and fixes.
more wiki updates.

2022-12-15:
wiki updates.
more little bug fixes.

2022-12-14:
wiki updates.
minor cleanup of the ui.

2022-12-13:
wiki updates.

2022-12-12:
Fixing more small things, cleaning up, updating the wiki.

2022-12-10:
Fixing little bugs, cleaning up, updating the wiki.

2022-12-8:
Fixed some database entry update issues.
More work on the wiki.

2022-12-7:
MacOS: fixed image locations.
MacOS: fixed pause-at-end toggle button getting constantly redrawn.
code cleanup.
Lots of work done on the wiki.

2022-12-6:
Management UI: Fixed the various interactions between song list editor, playlist management, and sequence editor.
Making smart programs creates all sorts of issues in the software.
Fixed the nasty bug caused by editing a song.

2022-12-3:
Fixed many issues today.
Still have one possible bug that I do not know how to re-create.
I will spend some time trying to reproduce next week.

2022-12-2:
Looks like I have several bugs to track down, two of which are serious.
I'll be working on these Saturday and next week.
Fixed some issues with the song selection filter display.
Found one of the major problems -- the interaction between the song list editor and music manager is fixed.

2022-12-1:
Player: Moved the 'request external' button into a menu.
Player: Added a 'queue 5' selection.
Player: The 'queue dance' and 'queue 5' dropdowns are only shown if the per-queue configuration 'show queue dance buttons' is on.
Various wiki updates.

2022-11-30:
Removed 'internet' mode for the mobile marquee.

2022-11-29:
Worked on the wiki.
Fixed 'create profile'.

2022-11-28:
Implemented pause each song.
The wiki pages for installation are done.
alpha release 2022-11-28 created.

2022-11-27:
Added pause-each-song to the per-queue configuration.
Not implemented yet.

2022-11-26:
Add per-queue configuration: fade-in time, fade-out time, maximum play time, play announcements.
Fixed an issue with the song selection sort-by filter display.

2022-11-23:
Working on tools to update the wiki.
Working on the installation help for the wiki.

2022-11-22:
Survived my bout with covid.
I am going to make a bdj3 release to fix a couple of issues with the database rebuild on macos.
Working on the test suite, installation issues.
Created an alpha release for bdj4.

2022-11-15:
The VLC installation is fixed for MacOS and Windows.
But I am sick with some virus. Nothing until next week.

2022-11-14:
Working on tests.
Found some VLC installation bugs on MacOS; these are fixed.
Working on other installer issues on Windows.

2022-11-12:
Created an alpha release.

2022-11-11:
A couple of minor fixes today.
I will make a new alpha release on Saturday, as 'Edit Song List / Actions / Mix'' is completely broken.

2022-11-10:
Dance selection is working much better (and 'Mix' is fixed).
This is my fifth major rewrite of this algorithm.

I will be looking at the song selection code next and make sure it is
working as expected.

2022-11-9:
Working on dance selection bugs.
Re-worked the mac volume again.
Created an alpha release.

Still not happy with dance selection; I'm going to see if I can improve the algorithm. Very difficult.

2022-11-7:
Working on getting an alpha release solid and ready to go.
Attempting to track down a bug in dance selection.

2022-11-6:
Macos volume issues have all been fixed.
Volume interfaces on Linux and Windows have been cleaned up also.

2022-11-5:
Fixing a few more bugs.
I want to do another alpha release soon, so I work towards that.
It turns out that installing on MacOS is a real problem due to the Mac trying to protect the user from malware -- I'll try to find a work-around for that.

2022-11-4:
Fixing various bugs I have found today.

2022-11-3:
Working on database update tests.

2022-11-2:
Working on tests.

2022-11-1:
Working on tests.

2022-10-31:
Fixed some installation issues relating to fonts (which caused strange issues on MacOS).
Code cleanup.
database update: Minor cleanup for the user interface.

2022-10-28:
Working on conversion / installation issues.
Working on MacOS issues.

2022-10-27:
An alpha release has been created.
(My birthday present).

2022-10-26:
Announcements are working again.
Starting work on another alpha release, several issues to fix.
Windows was being a pain today, but it is updated and working.
Still some issues to fix before an alpha release can be done.

2022-10-25:
Getting announcements working again.

2022-10-24:
The global stop-at time is working.
Working on the test suite.

2022-10-23:
Working on the test suite.
Added a global stop-at time.

2022-10-22:
Working on the test suite.
Working on playlist stop-at issues.

2022-10-21:
Working on the test suite.
Songlist editor: Fixed a bug loading a songlist with stop after or stop at time set.

2022-10-20:
Created an alpha release to get the various little bug fixes released.
Working on the test suite.

2022-10-19:
Working on the test suite.
Fixed issues in the player.
Fixed some display issues.

2022-10-18:
Working on the test suite.
player: Fixed play-when-queued when the queue already has a song.

2022-10-17:
Found another crash on macos. Tracking it down.
Various MacOS crashes are fixed.
Created an alpha release.
A MacOS M1 installer is now available.

2022-10-16:
Fixed a problem with the conversion process (missing the new datafile).
Song Editor: Added a copy button to copy the file path.
I will try to make another alpha release soon, since the conversion process and macos are broken at the moment.

2022-10-15:
MacOS audio output device selection is now working!
Code cleanup.
The MacOS player UI is crashing, have to figure that out.
Fixed the crash on MacOS.

2022-10-13:
Re-write of favorites is done and working.
Fixed bug w/inverted slider controls (reported by marimo)
Fixed a nasty low-level bug in the list code.
A new alpha release has been created.

2022-10-12:
Working on "request external".
Request external is working.
Working on a re-write of favorites; almost done.

2022-10-11:
Working on "request external".
Progress is excellent. I just have some form entry processing to do and need a check to see if the selected song is already in the database.
Found and fixed a low-level bug in international string comparison.

2022-10-10:
Working on request external.
database update: Fixed start/stop button states.

2022-10-9:
Working on the test suite.
Found and fixed three issues in BDJ4.

2022-10-8:
Working on the test suite.

2022-10-7:
Working on the test suite.

2022-10-5:
Working on the test suite.
Created an alpha release to roll up all the latest bug fixes.

2022-10-4:
Fixed repeat + pause-at-end.

2022-10-3:
Working on fixing some internal issues with the player.

2022-10-2:
Working on the test suite.

2022-10-1:
Working on fixing some issues introduced during code cleanup and other fixes.
Fixing gap issues.

2022-9-28:
Working on the test suite.

2022-9-27:
Working on the test suite.

2022-9-26:
Fixed the broken windows installer and created a new alpha release.
Working on the test suite.

2022-9-24:
Fixed various bugs and issues.
Created an alpha release.

2022-9-21:
Working on adding BDJ4 compatibility features to BallroomDJ 3.

2022-9-20:
Working on test suite.

2022-9-19:
Back to work.
Fixing a few bugs, trying to everything working again.
I want to create a alpha release so that nasty duplicate-playback-on-pause bug will be fixed.
Created an alpha release.

2022-9-15:
I am sick. Some virus.
Not going to get anything done for several days.

2022-9-14:
Working on the test suite.
Player: Fixed song duplicate playback when pause button was pressed.
Player UI: Fixed position display when paused.
Player UI: Disable position slider when paused.

2022-9-12:
Working on the test suite.

2022-9-10:
Fixed a crash making a request.
Fixed requests creating duplicated songs.
Created an alpha release.

2022-9-9:
Fixed some music manager bugs.
Working on cleaning up the tests and getting the tests to work properly on all platforms.
Trying to get an alpha release out, but I don't know if it will be today.
I need to stop work and get a playlist set up for tonight.
Ok, definitely not today.
There's an issue I want to fix, and I need to make sure bdj4 works on windows.
But I think this release will be a good one.
Tomorrow, hopefully.

2022-9-8:
The same-song filter to prevent more than one song marked as a same-song from being selected is working.

2022-9-7:
More of the test suite has been finished.
The next couple modules to work on in the test suite are : auto dance selection and auto song selection.
I want to get the same-song filtering working for song selection during that time.
And at that point I want to get these latest changes and fixes out in an alpha release.
Progress is good on the test suite for auto dance selection.
I need to do some thinking -- I believe there are portions of this code that can be cleaned up.

2022-9-5:
Had a few days off from programming.
Finding and fixing bugs, creating test frameworks.
More work on testing.

2022-8-31:
Song Editor: Fixed save of tags.
Song Editor: Clear changed flags on first/next/previous.
Music Manager/Song Selection: Fix mark color to also display when selected.
Some other fixes caused by the 8-30 rework.

2022-8-30:
Music manager: Mark as Same Song/Clear Same Song Marks working.
Song Editor: Will now traverse the selections when more than one selection is active.
When only one selection is active, it traverses the song list or song selection as before.
A lot of work today. Busy, busy.

2022-8-29:
Wrote the same-song module and all the tests for it.
Now I need to write the code that uses it.
And still working on testing.

2022-8-27:
Finished getting the player history tab working.
Management: Fixed broken player display.
Created an alpha release.

2022-8-26:
I had jury duty interfering with development, so bdj4 got stalled a bit.
I need to fix some issues, do some testing and get an alpha release out.
Then I will continue work on the test suite.

2022-8-25:
Things are a bit broken at the moment.
Working on fixing everything.

2022-8-24:
continuing to works on tests.
Rearranged a bunch of code and am now using the ICU library to handle some internationalization issues.
I'm planning on making an alpha release, as the new library fixes search issues in song selection.

2022-8-22:
conversion: cleaned up handling of samesong and adjustment flags.
Working on tests.

2022-8-18:
Working on tests.

2022-8-16:
Continuing to work on tests.

2022-8-15:
Created a new alpha release on 8-12.
Still working on testing.

2022-8-10:
Working on tests.
Found various file handling issues on windows (international names).
It also appears that locale processing is broken.
I'll create a new alpha release, but I need to re-test the itunes configuration/installation handling thoroughly.

2022-8-8:
Working on tests.
There will be no user visible changes for a while.

2022-8-4:
Worked on some infrastructure.
Working on parsing the itunes XML file.

2022-8-3:
Some more code cleanup.
iTunes configuration is complete.
New installations and BallroomDJ 3 conversion will handle iTunes properly.

2022-8-2:
Still working on code cleanup (configuration).
Working on iTunes configuration.

2022-8-1:
Working on the "mix" function in the song list editor (done).
I will also verify that "automatic" playlists and "sequenced" playlists are working correctly.
Rearranging the configuration user interface code. A tiring process.

2022-7-30:
The MacOS minimize/restore issue has been fixed.
MacOS installation is fixed.
Some installer problems were fixed.
Created an alpha release.

2022-7-28:
Good progress on writing audio tags.
The database update function 'write tags to audio files' is working.
Created an alpha release.

I have a fix for the MacOS dock icon minimize/restore issue.
I will fix up that and MacOS installation issues and make a new release within a couple of days.

2022-7-27:
Working on writing audio tags.
BallroomDJ 3 compatibility mode is working.

2022-7-26:
Working on code to write the audio tags.
Had some issues with strange output from the mutagen utility that I had to parse.
The underlying code is working now.
I need to implement 'BallroomDJ 3' compatibility mode, and hook it in to the main code.

2022-7-24:
Some fixes for the marquee iconify/de-iconify.
Created an alpha release.

2022-7-23:
The "favorite" item (use for favorites, requests, whatever you want) is now working from both music queues and song selections.

2022-7-21:
Created an alpha release.
The 'create from playlist' function in the song list editor is working.

The following are not in the 7-21 alpha release:
Song selection / Requests : marks indicating the song is in the song list are working.
Added delete to the edit menu for song lists, playlists and sequences.
Added 'delete profile' to the starter ui menu.
File Manager tab has been removed from the management ui.
Same song marks are now displayed in the music manager.

2022-7-20:
It appears that a playlist's stop-time is not being processed correctly.
Working on fixing that.
Also working on creating a song list from a playlist, which needs the playlist stop-time to work correctly.

2022-7-18:
Created an alpha release.

2022-7-16:
Working on getting an alpha release out.
Updating the installer for windows, testing, making sure things work right.

2022-7-14:
Working on various odds and ends.

2022-7-13:
Progress is a bit slow. Planning for a new alpha release.
Also planning on how to get to beta.

2022-7-11:
Audio output selection is working on MacOS.
There are a couple of other MacOS bugs that need fixing.
BDJ3 and BDJ4 will now interoperate (volume changes on startup and shutdown) correctly (in the common case).

2022-7-9:
Multiple instances of bdj4 will now handle the volume correctly.

2022-7-8:
installer: cleaning up some issues. Add a selection button for the install folder.
Song editor: fixed some issues with song start and song end.

2022-7-7:
Song list editor: import M3U is done.

2022-7-6:
Song list editor: export to M3U is done.
installer: Checksum verification is working on windows.

2022-7-5:
Added checksum verification to the installer.

2022-7-4:
Profiles are all working nicely now.
Song list editor statistics tab is working.

2022-7-2:
Started working on the song list editor statistics tab (not much progress)
Various internal fixes and cleanup.
Fixed music queue duration calculation.

2022-6-29:
BPM Counter is finished.

2022-6-28:
Working on the BPM counter. Progress is good.
Ran into an issue that needs to be resolved in the song editor.

2022-6-27:
More cleanup for database update processing.
Made an alpha release (2022-6-27).

2022-6-26:
Busy with stuff today, won't get any programming done.
But the database update process made good progress yesterday, functionality and robustness was improved.

2022-6-25:
Working on making the database update / organization path more robust.
Getting dance-from-genre working.

2022-6-24:
A folder other than the main music folder can now be specified for the database update process.

2022-6-23:
Various issues fixed.
Remote control and mobile marquee were completely broken.
Made an alpha release (2022-6-23).

2022-6-22:
I've got a couple issues (including a crash) in the management user interface to fix.
After that, I'm going to go back to the database update process and do further testing and improvements.

2022-6-21:
Well, the good news is that (so far), I am not experiencing the Windows crash
when testing on native windows. I have not allowed my windows system to install the
latest patches from microsoft. I'm rather scared of them now, now that all of my
windows virtual machines are unusable.
I have a couple of issues to fix, then I can work towards creating an alpha release.
Alpha release created.

2022-6-20:
Moving forward slowly to create an alpha release.
Working on tracking down what change de-stabilized the windows build.
I am wondering if the Windows version ever worked...
All my virtual machines are unusable at the moment, it's going to be a bit slow moving forward.

2022-6-19:
Moving slowly forward to create an alpha release.
MacOS looks good.
Have to find the Windows bug.

2022-6-18:
Slowly forward moving to create an alpha release.
The latest patch for Windows 10 de-stabilized my Windows VM (virtual machine).
I can't even do a fresh install of Windows 10 on a VM now.
So I am building and developing on Windows 8.1 now.
There appears to be a bug in BDJ4 for the Windows version.
Might take a while to figure out.

2022-6-16:
Slowly moving forward to create an alpha release.

2022-6-15:
Progress was very slow today.
But got some user interface issues fixed.

2022-6-14:
More progress on the song editor.
A basic save from the song editor is working.
I have a few various issues that need to be resolved.
I will fix those, then make a new alpha release.

2022-6-13:
Song editor change tracking is done.
Need to implement the save.
Batch edits may be put on hold until later, as there are other things I want to get working first.
After I get the save working, I want to make another alpha release.

2022-6-12:
Working on the song editor change tracking.
Fixing other bugs as I run across them.

2022-6-11:
Infrastructure cleanup and rewrite to support the song editor.
Song editor is progressing.
All of the fields are displaying in the song editor.
Now I have to work on determining when a field changes and saving the data.

2022-6-9:
Fixing bugs associated with the song selection interface.
Cleaning up the song filter dialog (once the playlist selection is included, it gets complicated).
I just have a few more user interface issues and changes to do (fortunately easy ones),
then I can get back to actually making the song editor edit songs.

2022-6-8:
My brain hurts.
Getting all the song selection / song list editor and song editor integrated and synchronized was quite difficult.
But it seems to be working now how I want it.
I hope it works for my users also.

2022-6-5:
Getting the song selection, song list editor and song editor all working together in an intuitive manner is difficult.
Making progress. Integrating the song list editor and song editor is going to be a bit slow.

2022-6-4:
Making song selection and the song list editor easier to use.
Fixed player ui queue handling / song selection.

2022-6-3:
Song editor navigation is working.
Song selection handling in the management ui has been improved.
Now I'm reworking a big chunk of code...more things will break.

2022-6-1:
While digging into the song editor, I ran into a bunch of bugs that I created.
Fixed that stuff.
The song editor is progressing, a bit slowly at the moment, but it is coming together.

2022-5-31:
Back to work on the song editor.
Busy in the afternoon, I don't expect too much progress today.

2022-5-30:
Took the day off from programming.
No progress.

2022-5-29:
I was fatigued for a couple of days after my second covid-19 booster shot.
And busy getting a computer set up for the allegro ballroom.
No progress.

2022-5-27:
Created a project on crowdin.com for BDJ4 translations: https://crowdin.com/project/ballroomdj-4
Lots of work on getting the Nederlands translation cleaned up and all the supporting scripts for translations working.

2022-5-26:
Started working on the song editor.
configuration: fixed some 'display settings' issues.

2022-5-25:
Just some cleanup today.
Re-worked the switch widget and gave it a couple of nice images.

2022-5-24:
Cleaned up some interactions between the song list editor, sequence editor and playlist management.
Created an alpha release.
Now to figure out what to work on next.

2022-5-23:
Fixes for en-us localization, windows packaging, installer, database update, other small issues.
Preparing for an alpha release, but more testing must be done.

2022-5-22:
Well the stupid anti-virus programs are now marking the mini-unzip program as malware.
This is a very small unzip utility I use to unpack the downloaded archive.
It isn't malware, it's just a very small unzip program.

I have reworked the archive method for windows and it no longer uses the mini-unzip program.
There is no longer a possibility of it being marked as malware, since it now uses standard windows programs.

As long as the anti-virus companies don't mark my homegrown self-extractor, it will all be good.

2022-5-21:
Playlist management is close to being done.
I also have some infrastructure cleanup to do, lots of testing, then I'll make another alpha release.

2022-5-20:
Still working on playlist management.
Mostly infrastructure updates that are needed for playlist management.

2022-5-18:
Working on playlist management.

2022-5-17:
Just some code cleanup and rearrangement.
Thinking about how the playlist management screen will designed.
Updated the "differences" post on the forum.

2022-5-16:
Lots of user interface code cleanup.

2022-5-15:
New installation helper process is working.
Created an alpha release.

2022-5-14:
Working on new installation helper process.

2022-5-13:
Sequence editor is working.

2022-5-12:
A bunch of fixes and an alpha release.
(As I had broken the interface to the database update).

2022-5-11:
An alpha release has been created.
Rearranging and cleaning up code today.

2022-3-10:
Cleaning up various little issues on windows and macos in preparation for an alpha release.

2022-3-9:
I have one more item on my task list that I want to get fixed.
Then lots of testing, look for bugs and other issues, then I can make another alpha release.

2022-3-8:
Various user interface issues fixed.
A few more user interface items on my to do list to resolve for the song list editor.

2022-3-7:
The save of a manual song list and associated playlist are working.
There are some user interface issues that need to be worked out.
Perhaps another alpha release in a week or so.

2022-3-6:
Lots of tedious work getting the user interface to display correctly.
The save of a manual song list is working.
I still need to make sure there is an associated playlist.
And the user interface for the song list editor still needs some more work.
Once the song list editor is done, I will create a new alpha release.

2022-3-5:
Load of a manual song list is working.
No save yet.
Started an optional easy song list editor interface (making more work for myself).

2022-3-3:
Infrastructure cleanup.

2022-3-2:
Various bugs and issues fixed.
MacOS is in much better shape now.
The song list editor is progressing.

2022-3-1:
Various odds and ends.
Fixed a bug in the conversion process (dances/dance types).

2022-2-30:
Various bug fixes and progress with the management user interface.
Configuration of filter display is working.

2022-2-28:
Database update: I have the filename matching working pretty well.
The database update process will use the audio file tags by preference, then it will use any data found in the filename as
determined by the organization path.
I will be testing with some of the databases that were sent along with support messages.

2022-2-27:
More bugs and issues fixed.
Code cleanup.
Created an alpha release.

2022-2-25:
More bugs and issues fixed.

2022-2-24:
Many bug fixes to allow a new installation to work.
Management interface to database updater is fully working.

2022-2-23:
The management ui is interfacing with the database updater; not quite perfect as yet, but almost there.
Various other issues implemented, cleaned up and fixed.

2022-2-22:
Interface to send support messages is complete.
Trying to work out in my head how the management user interface will work.

2022-2-21:
Progress is being made.

2022-4-20:
An alpha release has been made.

Working on rearranging computer code right now.

2022-4-19:
Last little changes are done.
I'm going to do some more testing of the installer on windows, make sure everything works.
Hopefully get a new alpha release out tomorrow.

2022-4-18:
Very close to creating a new alpha release.
More little fixes for the installation process.

2022-4-17:
Fixing issues with the installer now.
Moving closer to creating an alpha release.

2022-4-15:
Testing and working through various issues and fixing them in preparation for another alpha release.

2022-4-14:
Removed the marquee font auto-sizing. It was too complicated and fragile.
Marquee font sizes are now set from a dialog in the player user interface.
Player: Switch queue when empty: now works better.
Player: clear the current song display when there is no more music to be played.
Completion message when the playlist is finished is now working.
Fixes and improvements to the database rebuild process.

2022-4-13:
Configuration UI is finally mostly complete (iTunes configuration is not implemented yet).
The display settings are all working for the Music Queue and the Request selection.
Fixed some Linux audio initialization/playback issues.
Configured Startup/Shutdown scripts (Linux, generally) are now working.

I have four items on my to-do list I want to fix/complete, then I will be testing on Windows, and
then I want to create a new alpha release.

2022-4-11:
Display settings configuration is now complete.

2022-4-8:
The display settings are now being used by the music queue display and the request display.

2022-4-7:
Display settings (configuration user interfaces) is in progress.

2022-4-5:
Dance table configuration is done.

2022-4-4:
Table edits (genre, ratings, levels, status) are working in the configuration user interface.
Save of dance table is mostly working. Still need to implement add and remove.

2022-4-3:
Table edits are progressing nicely.

2022-4-2:
Started working on the table edits (ratings/status/levels/genres) in the configuration user interface.
They are all displaying correctly, still need to write the edited tables to disk.

2022-3-30:
Continuing progress on the configuration user interface.

2022-3-29:
More fixes to localization and associated infrastructure.
Continuing progress on the configuration user interface.

2022-3-27:
Continued progress on the configuration user interface.

2022-3-26:
Excellent progress today on the configuration user interface.

2022-3-23:
I discovered that the localization extraction process created an incorrect output file.
That's been fixed, and localization settings now work properly on windows and linux.
Continuing to work on the configuration user interface.

2022-3-21:
Started working on the configuration user interface.

2022-3-20:
Progress is being made, though no specifics to report.

2022-3-16:
Working on processing audio files and building a database from the audio file tags.
This is a lot of work, and it needs to be very robust.
I will also need to make it work if no audio file tags are present (which is a pain).

2022-3-12:
An alpha release has been made that you can try out if you want.

2022-3-10:
Just a few more issues to fix on windows.

The marquee on windows has a couple of display issues (one fixed; one unable to fix).

International characters are almost fully working on windows.
One function has to be rewritten for windows (not yet started), and there's an additional problem to address (done).

2022-3-7:
Fixed one issue on windows that has been driving me crazy.
There's one more issue that appears on macos and windows. Once that is solved, I can make a new alpha release.
And I know why that one more issue is happening. I just need to figure out a new method to do what I want.
MacOS is not nearly as stable as Linux or Windows.

2022-3-6:
Working through everything, finding problems, but have not solved the windows instability.
Progress is slow. I'm also busier with other activities than before (more dancing), so I have less time
to work on BDJ4.

2022-3-3:
I am working on creating a new alpha release.
The program is not working well on Windows right now.
There are many issues on Windows that need to be resolved.

2022-3-2:
Nothing exciting to report, but progress is being made.

2022-2-26:
Song selection filters are working. There's more user interface cleanup to do.

2022-2-25
Fixed Windows locale settings.
Stop at <time> is working.

Current roadmap:
- Finish song selection filter dialog (done 2-26)
- Fix queue from song selection tab (requests) (done 3-2)
- Player user interface: save and restore options and settings (done 3-3)
+ Player: support stop at <time>; make sure conversion from bdj3 process handles this.
(Now I am remembering why this supposedly simple item is so complicated).
Done (2-25)
- Create some wiki pages for installation help.
- Make a new alpha release.

2022-2-24
The song selection filter is starting to come together.
There is still a bit more infrastructure to write to handle some more filters.

The installer has been improved to detect and install VLC and python.

2022-2-22
Still working on the filter for song selection. Progress is slow here.
I have to write the underlying infrastructure as I progress.

Localization has been improved and is in very good shape.
I am doing everything I can to re-use the Nederlands translation from BallroomDJ 3.

2022-2-20
The song selection portion of the player user interface is mostly working.
It still needs a dialog for advanced filter selection.
Queuing a requested song still has some issues to fix.
Lots of code cleanup and reworking of code so it is easier to use.

2022-2-16
The 'next song' button is working properly now. The 'position' slider is working.

A basic song selection screen (for requests) is working (will need a good deal more work to support sorting and filtering).

I'm not entirely sure where the request will be inserted into the music queue. That may need a configuration setting.

I hope to get an alpha release out so that the adventurous people can try it out the player. There are still a few more pieces I need to get working before I can do that.

2022-2-14
More work and clean up on installation processes.
It still needs to be more robust.
Localization is working.

Found a work-around for a MacOS display problem in the music queue.
This uncovered another issue bringing the selected item into view, which I don't think has a work-around.
I may just have to turn that piece of code off for MacOS.

2022-2-11
Installation is finally working properly on windows, linux, mac os.
It's a lot of work.

2022-2-10
Finally got the Windows packaging / installation working.
There are other bugs extant. Working on it all.

2022-2-9
I've been working on packaging and installing.
Getting this done now will allow me to release alpha and beta packages that people can test out.
Linux is generally working, Windows is well on its way.
Also stomping on various bugs and issues with the player user interface and the marquee.

2022-2-4
I spent one full day reworking the build system.
It now builds properly and runs on Linux, MacOS and Windows.
The player user interface has some glitches on MacOS that need working on.

2022-2-3
The player user interface is almost all working.
Dual queues are working.
The song selection (requests) and request external song are not implemented yet.
"Next Song" is not working in all situations.

2022-2-1
The player user interface is partly working.
It's almost usable.

2022-1-27
The marquee is working.

2022-1-26
Programming the marquee has been started.

2022-1-24
All of the playback controls and playlist queuing functions available in the remote control web interfaces are working.
Music Queue manipulation (move up/down, move to top, remove, insert (request)) are working.
There are still glitches and bugs that will need to be found and worked on.
Next step is to get what I have working to work on Windows and Mac OS.
Then I can start working on user interfaces.
The Marquee will probably be first, as that's relatively easy.

2022-1-20
Automatic playlists are working.

The remote control web interface is not quite all working. The playback controls all work.
Queuing playlists is not working right, and queuing dances is not yet implemented.

Some of the music queue manipulation controls have been implemented.

2022-1-16
Mobile Marquee internet mode is working.

2022-1-15
Playlist controls (gap, max play time, dance max play time) and filters (bpm low/high, level, rating, status) are working.
Pause at end, pause, fade are working.
Announcements are working.
Mobile Marquee (local mode) is working.

2022-1-13
Sequenced playlists are working.

2022-1-10 :
Conversion scripts that convert the BallroomDJ 3.x files to BDJ4 are working.
A manual playlist can be played. Gap, fade-in and fade-out are working.

2021-12-14 (approximately):
Started