Please note that the latest information on this topic is available at my Gihub repo and it's corresponding GitHub.io page.
I have a Kenwood in-car stereo that can play music and podcasts stored on a USB memory stick. Unfortunately some of the functionality offered by the stereo (such as creating playlists and searching by artist, album or genre) is only available after a database has been created on the USB stick. This database is created using a Windows-only application called "Kenwood Music Editor Light" (KMEL).
I store all my podcasts and music on my desktop machine - which is running Linux. The workflow to create this database therefore involves updating the USB key with the music and podcasts I want and then borrowing my partner's Windows laptop to generate the database. This is not ideal.
The other issue I have with KMEL is it's poor handling of playlists. Essentially you have to copy media files into a directory structure that is below where you usually place your media, and then tell the application the directory levels from which to create the playlists. This means that you now have two copies of each media file - one in the album where it belongs, and one in the playlist. I would like a more intelligent way of processing playlists.
To this end, I have decoded the database format produced by KMEL and written two Python3 applications, one to decode the database and one to produce them. These applications currently run on Linux - but could be adapted to other platforms.
The database format is now completely described (sufficient, at least, for generating an equivalent to KMEL). The format is described in this markdown file at GitHub.
I have named the database generator "DapGen.py", given that it generates a file called "kenwood.dap". If run without parameters it will attempt to index every FAT filesystem. To prevent this, give the path to the top of the directory tree you want it to index (the mount point for the FAT filesystem).