DJSync

UPDATE: My DJ has died a horrible death. I now own an iRiver H10 (and lovin' every minute of it) and it has much easier Linux support. Anyway, this project is now deprecated! However, please feel free to contact me if you have any questions about DJSync.

Current version: 0.5

About


DJSync is a command line perl script to sync MP3s from your Dell DJ to your filesystem (and vise-versa). The Gnomad2 project is a great GUI program to manage your music tracks, but does not have a synchronization option. This script arose from that necessity. It uses a modified version of the libnjb sample files.

Requirements


The DJSync Package. See the code.
The MP3::Info perl package. This is a wonderful package to manipulate / fetch info from MP3 audio files.


Installation

  • Untar the DJSync package.
  • Compile and install the libnjb utilities included in this package. See the INSTALL file in libjb-2.0/ for more:

  • # cd libnjb-2.0
    # ./configure --prefix=/usr
    # make
    # make install
    # make install-samples

  • Install the MP3::Info perl module.
  • Edit the djsync-version.pl file and change the $host_mp3_dir variable to match where your MP3s to be synch'd are located. The script will recurse through all subdirectories. You probably don't need to change the $djtracklist variable.
  • Copy the djsync-version.pl executable to somewhere in your path:

  • # cp djsync-0.5.pl /usr/bin

  • Run djsync-version.pl. The output will tell you what tracks are being added to the DJ and what tracks are being deleted from the DJ.

  • WARNING

    Although this works fine on my system, it may not on yours. It might be a good idea to do a test run to see what will happen without actually doing anything. You can do this by placing a comment sign in front of the 3 system() calls in the djsync-version.pl script, such as:

    # system("deltr $dj_id");

    If you are satisfied, remove the # signs and re-run. I have also included some crude debugging print statements in the script. Uncomment these to get more information as the script is running.

    Limitations and Caveats

  • I have only tested this on the Dell Pocket DJ, although I suspect any Creative Nomad-compatible jukebox will work. If anyone tries it on another device, please email me the results.
  • DJSync synchronizes off filenames only. Although it is possible to store the same file multiple times on the DJ, the script will not (and probably never will) synchronize tracks off anything other than filenames.
  • Currently this works with MP3 files only. Further plans are to have all music formats supported as well as data files.
  • Multiple tracks with the same filename on the DJ get only the first track deleted. However, running the script multiple times will eventually get all instances of that track deleted.


  • To Do

  • Have better error checking for sending/deleting tracks
  • Log skipped files somewhere. Skipped files are non-MP3 files and zero length MP3s
  • Include support for all music formats and data files
  • Get workaround written to delete all instances of multiple tracks with the same filename


  • Comments and Code Submissions

    I welcome any comments or code submissions you have to further this project. I can be reached at dan at daniel.net