Dear Joe Carter:
Here is my set of comprehensive and detailed bug reports for the USB music bugs, as I said I would write for you. There are six bugs, and a set of recommended long-term fixes to software engineering practice at Tesla. Please follow up with me.
Tesla Media Player USB Bugs: Detailed Report
I have been trying to report various USB Music bugs for five years without managing to communicate with anyone responsible. Reporting them to service centers, Tesla headquarters, by phone, email, etc. has totally failed previously. New bugs (regressions) have been introduced in software updates, meaning that I must not update my software until they are fixed, and nevertheless I have seen no progress on these bugs. Others I have talked to have reported these bugs also with no success. As a former programmer, I am disgusted with the absence of normal software engineering practices such as taking bug reports from customers, creating testsuites, and doing regression testing. I have recently managed to escalate to Joe Carter in management, and I hope this will have more effect.
I recently was able to drive a brand-new loaner Model S and test the current version of the software extensively so that I can detail the current status of the many critical bugs in USB music playback. Unfortunately it retains all the critical bugs of the older software, and new regressions have been introduced with later versions.
I have identified six important bugs in the current software. Two are critical, of which one is a critical regression.
Bug #1: Lack of Gapless Playback
Use case: Play a continuous album such as Oxygene (by Jean-Michael Jarre), Sgt. Pepper's Lonely Hearts Club Band, Dark Side of the Moon, or radio dramas such as Hitchhiker's Guide to the Galaxy, ripped from a CD or from vinyl. These are typically organized into multiple tracks, but play as one continuous story.
Test case: Rip Oxygene from CD to a folder in a lossless format (FLAC, WAV, or AIFF) with one file per track. Play the file by folder; start near the end of part one. This is a particularly easy-to-hear test; anyone with any hearing can tell if there's a gap.
Expected behavior: The music plays continuously, as the album is supposed to be played.
Actual behavior: There is a pause or gap (stuttering) between tracks. It is extremely irritating, particularly for radio dramas.
Workaround: Rip the entire hour-long album as a single file. This loses any ability to start directly at a specific track (particularly useful for radio dramas when you want to “continue where you left off” after someone else has been using the media player), so this is a very unsatisfactory workaround
Workaround 2: Carry a CD player and portable speakers in the car, powered off the 12V outlet. Not reasonable.
Suggested solution: Copy the algorithm from Audacious, which is a free and open source media player for Linux which gets this right. (I believe it prequeues the next song to guarantee continuous play.)
Versions where bug is present: This has been present since the first version of the software. I reported it in 2013, multiple times, through multiple channels, and again in 2014 multiple times, and again in 2015, 2016, and 2017, but with no response.
Severity: Critical. This makes it extremely difficult to play radio dramas or concept albums. It makes the Media Player worse for this purpose than a tape deck. This is a particularly infuriating bug as I used to listen to radio dramas in the car, and I simply can't do so in Model S.
Bug #2: Incorrect play order in Play By Folder
Use case 1: Rip a CD to a folder on a USB stick as multiple tracks, naming the files “1 – track name”, “2 – track name”, etc.. Attempt to play the album “by folder”. (Note that playing it “by album” does not work due to bug #4.)
Use case 2: Set up a folder on the USB stick with a collection of chosen songs from different sources named, for example, “1 – Please Please Me”, “2 – God Only Knows”, “3 – Achy Breaky Heart”. This is the only way to create playlists for Model S, and it's a perfectly good method. Attempt to play the album “by folder”.
Test case: Both of the above use cases should be used as test cases.
Expected behavior: The songs should play in alphanumeric order by filename, allowing for the USB stick owner to make custom playlists. This behavior was correct for the original Model S software.
Actual behavior: In the current software, the files are sorted in alphabetical order by the track name encoded inside the file. If there is no track name encoded inside the file, the order seems arbitrary. It is not the album order and it is not the playlist order. It is impossible to put a playlist in a specific order without hacking the actual files, a tedious and inappropriate thing to do.
Workaround: No practical workaround.
Severity: Critical regression. This needs to be fixed before anyone can be asked to update their software. I cannot update my software until this is fixed. I have been reporting this bug to service centers for a year.
Versions where bug is present: The bug is present in the most recent version of the software. It is not present in early versions of the software. This bug seems to have been introduced sometime in 2016 when the “new look” interface was introduced. I will not upgrade my software until this regression is fixed, as it breaks a common use case. I have reported this repeatedly over the last year with no response.
Suggested Solution: Restore the previous code for order of playing tracks “by folder”, ordering them by filename. In any case the current implementation is wrong; alphabetical order by internal track name is never correct.
Bug #3: Inappropriate names listed when playing “by folder”
Use case: Play a folder with several variants of the same song, with the same internal track name but different filenames.
Test case: Same.
Expected behavior: The filenames should be listed when playing “by folder”
Actual behavior: Track names encoded into the files are listed, if present; if not, the ordering is random
Severity: Serious. Particularly annoying with multiple variants of the same song.
Suggested Solution: When playing music “by folder”, restore the previous code for the “by folder” method, displaying filenames rather then internal track names.
Bug #4: USB sticks take very long time to load
Use case: Insert a new USB stick with a terabyte of obscure music from my collection, ripped from vinyl or CD-Rs, carefully organized by folder. Many of these tracks do not have internal track/album/artist ids, or they are incorrect.
Test case: Insert a fresh USB stick with a terabyte of music organized in folders.
Expected behavior: Play by Folder should be accessible immediately on inserting stick
Actual behavior: The software wastes a substantial amount of time doing some sort of indexing, which is unnecessary for Play by Folder. On the loaner, it took over ten minutes. No music is accessible until this is finished.
Workaround: No practical workaround.
Severity: Serious regression.
Versions where bug is present: While there has always been a delay doing unnecessary indexing, the delay is relatively short (under 30 seconds) on the older software. It is over 10 minutes on the newest software on the loaner.
Suggested solution: Make Play by Folder available immediately (it requires no indexing). Then index in the background before making Play by Album/Artist/etc. available.
Bug #5: Play by Album fails on large USB sticks
Use case: Insert a USB stick with a terabyte of music including album names from A to Z; attempt to access “By Album”.
Test case: Insert the stick, wait the 10 minutes for the index, then go to “By Album”. Attempt to scroll down to the letter Y.
Expected result: A list of albums starting with the letter Y.
Actual result: Either a blank screen or very long delays followed by a list of some albums beginning with another letter. Apparently the album index fails to index past a certain letter.
Severity: Moderate. This means that it is essential to access all albums “by folder”. Bug #2, unfortunately, breaks playback “by folder”.
Versions where bug is present: This bug appears to have been introduced when the new-look interface was introduced. I have not extensively tested it on the old software, because “by folder” works on the old software.
Suggested solution: Fix bugs #1, 2, 3, and 4 immediately; then work on the album indexing code.
Bug #6: Play by Album contains lots of spurious albums and can't find albums for some tracks
Use case: Insert a stick with obscure tracks ripped from vinyl, recorded at home, or ripped from compilation albums.
Actual result: A cluttered and confused list of albums many of which are not present on the USB stick, and a lot of songs which aren't listed as being in any album. (But only albums beginning with letters early in the alphabet, due to bug #5.)
Severity: Minor. This would not be a problem if Play By Folder worked.
Suggested Solution: Fix bugs #1, 2, 3, and 4. The album indxeing code cannot work well with confusing data, but it doesn't need to if Play By Folder is fixed.
RECOMMENDED LONG TERM FIXES:
Tesla's software engineering practices are disgracefully disorganized and need to be brought up at least to standard practice of 20 years ago: this requires regularly updated testsuites, regression testing. a bug tracking system with customer reporting and supervisor monitoring of the bugs, and prioritizing of programmer resources based on the bug reports.
First, it is evident from the severe longstanding regressions that there is no testsuite for Play by Folder, perhaps no testsuite for the USB music player at all. There needs to be one, immediately. I recommend the following three tests to start:
-- A USB stick containing (in one folder), as multiple tracks, in a lossless format (FLAC is easiest), the album Oxygene by Jean-Michael Jarre, ripped from CD. Each release should be tested by listening to the end of track 1 transitioning into the start of track 2. This is a particularly easy-to-hear test of gapless playback. This should be tested in both By Folder mode and By Album mode.
-- A USB stick containing a folder made up of a playlist of files from different albums, given names to specify a specific order of playback. Each release should be tested to see that correct track ordering works correctly in filename order, and names are displayed in filename order, when accessed through By Folder mode.
-- Any terabyte USB stick with a terabyte of music, sorted into folders and subfolders. This should be used to test the loading time for By Folder mode.
Second, there ought to be a “Bugzilla” for the car's software, and it ought to be possible for car owners to file bug reports in it, file followups to them, and to receive direct feedback from the programmers. There ought to be someone of high authority in the software engineering department who is specifically responsible for paying attention to and responding to such bug reports -- someone who has the power to order programmers to work on fixing 5-year-old critical bugs and year-old critical regressions rather than entertaining themselves writing easter eggs.
Third, bugs #1-4 should be fixed as the current top priority of the software engineering team. They are certainly more important than easter eggs or reskinning, which the team has been wasting its time on. Easter eggs are fine when the software is working right. But when critical bugs go unfixed for years, easter eggs are a slap in the face to your customers.
I will be happy to answer any questions you have about what basic functionality audiophiles with large collections of obscure music, such as myself, need in a car music player. I will be happy to provide further beta-testing and stress testing for the software, especially if you have a release which you believe fixes bug #1 – but I will not upgrade to any release until bug #2, the critical regression, has been fixed.
I very much want Tesla to be the best car company. (I have most of my wealth invested in Tesla!) But it isn't going to be as long as basic functionality bugs remain broken for five years. It seems to me that there are critical communications failures going on here; these bugs are fairly easy to fix, so somehow they have never been reported to the right person despite Tesla receiving many many reports over many years These communications failures really are the thing I hate about Tesla.
Sincerely,
Nathanael Nerode
<address and phone redacted>