Tags
A while ago I wrote about the Model S’s USB music player and lamented the missing shuffle functionality. An enterprising owner posted a comment on the article pointing me at a music randomizer application he created to solve this problem and I finally got a chance to check it out.
Application
The Randomizer application by Andy Keller is available as a free download over on GitHub. He’s made both the application and it’s source code available for anyone interested. I believe only an OSX version is available so you PC folks are out of luck.
The application is really easy to use. It’s not currently a signed application, so if you’re ok with that security model and have permissions to do so, right click and open the app and authorize it to run anyway.
I tested “Music Randomizer Beta 0.4.”
First Attempt
When you run the app the first screen prompts you for an output folder. This wording is a bit misleading as its really asking for what folder currently has music that you want to randomize. It will do that re-organization in place destroying the original format.
Randomizer does the randomization process in place changing the source layout so keep a second unaltered copy around somewhere.
You can pick a number of random folders for it to create (minimum is 5) or just keep the default of 10.
Clicking “Randomize Music” starts the process. My first attempt was a surprise as I didn’t understand what it was about to do. I picked an new output folder (that was the language in the first prompt) on the USB stick but then the next thing that shows is “Choose a music folder to randomize.” I figured this the second part of the equation and chose the source to be the USB stick with the music as I had laid it out before. When I started the randomization it got through a few hundred songs then just stopped. I looked at the USB stick and the original music was gone and only the random music files were there. This behavior wasn’t obvious.
You pick a single folder and then it gets randomized. Ignore the misleading prompt text — there is no source and output, to the app there is just one folder that will be both.
Randomization
Once I figured out the prompting process I started over. What happens is it creates the selected number of random folders with names like “Randomizer 01” then it takes all the songs it finds outside of these Randomizer folders and randomly distributes them among the folders prefixing each with a number before the filename, like “[3] 05 Good Problem.mp3”. The “[3]” part is what was added and means it was the 3rd song added to that folder.
The intent is that you choose one of these random folders and press play and you get random song order (random from your original selection, same order every time you play this folder). Pick a different folder for a different set of songs.
Results
I really appreciate the attempt to solve the problem and the application runs and is free. However, I think the algorithm it uses is not a great solution.
I know USB sticks can be limited in space, but I think the source data should never be modified. So there should be a Source and a Target and the source should never be changed. If you need to randomize data on a USB stick and there isn’t space on the stick for 2 copies of the songs then just copy off the USB stick to a local drive folder and use that as the source and the target as the USB stick.
I also think that the source structure (folders of music) should also be preserved with the only change being the filename prefixes randomly applied to each file in the source folder as its copied to the target. You should end up with the same folder names, same number of files, just ordered differently.
So if I start with 3 top level folders:
- 5 Star Country
- Best Country
- Gospel
I should end up with the same 3 top level folders on the target but the contents are randomly organized by adding a number prefix. I don’t want 5/10/50 folders with random names mixing songs from the 3 genres/folders I had originally.
The randomization algorithm is awkward.
In the current version of the application I end up with folder names that aren’t useful, a mix of genres, more folders (playlists) than I want, etc.
I haven’t set out to solve this myself mostly because in the end it can’t truly simulate a shuffle no matter what you do. Each time you play the folder it will start at the same song and proceed in order. Sure you won’t likely hear the same song twice in a row and if you don’t leave the playlist/area and come back you’ll keep progressing. But if you have to start over on a playlist it will always be in the same order. If it had the algorithm I propose above it would be a decent interim solution, but for now i’d wait for a new version with a better algorithm.
I’d wait for a new version with a better randomization algorithm.
Its great to see owners taking initiative and trying to solve some shortcomings in the Model S interface. What we need is a little more access to allow third party applications and a few simple APIs for them to be able to provide functions like Shuffle etc.
Great blog! Really enjoy your insights…
Now that the Tesla supports shuffle mode, I wrote a little script that will sync a flash drive with selected iTunes playlists. It automatically converts Apple Lossless to flac and renames the copied song’s genre to the playlist name. This work-around allows you to use the Genre option in the Tesla Media Player to access your playlists. (Although it does create duplicates files if your songs appear in multiple playlists.)
A thread at Tesla Motors Club is here:
http://www.teslamotorsclub.com/showthread.php/43914-Easy-iTunes-playlist-syncing-for-Tesla-USB-flash-drive
I’ve just moved the files to github and they can be directly accessed here:
https://github.com/lraesly/iTunesSync
Thanks for the great blog!
Thanks and thanks for sharing that.