Releases: daiplusplus/TeslaTags
Release 6
Changes:
- Fixes the bug where MP3 files wouldn't save at all (whoops!): #10
- Fixes the bug where the Start/Stop buttons wouldn't disable/enable properly: #12
- Significantly refactored internal codebase: more maintainable and following modern idiomatic C#.
- Stopping before completion now leaves the progress-bar in-place with a yellow colour (errors are red).
- When clearing the Genre tag, the program no-longer considers
null
and""
as different values (so there's much less output). - Added Actual-files-changed and Proposed-files-changed columns.
- The messages table (in the pop-up table-row) now colour-codes the Severity column.
- Non-MP3 files (FLAC, etc) have their recovery information saved to a JSON file in the same directory as the music files - so their tag values can be restored by selecting the Undo feature.
- Changed "Hide empty directories" to "Hide uninteresting directories" so messages about directories with no problems are hidden, thus making it easier to find warnings and errors. Note that the main vertical scrollbar will behave strangely owing to how WPF's DataGrid works when rows are hidden.
Release 5 - Bugfixes, OOG and RIFF support. Auto configuration save/load.
[THIS IS AN OLD RELEASE!]
Please see this page for the latest release: https://github.com/Jehoel/TeslaTags/releases
Changes
- Added usage instructions to the README file, with links to other MP3 validation tools.
- Fixed crashes:
- Caused by DataGrid not being read-only (All DataGrids are now read-only).
- Caused by file access errors when writing to the log (this is now shown on-screen as a directory error),
- Added checkbox to hide Empty directories.
- Changed "Exclude iTunes" to arbitrary exclude list.
- Configuration (directory, genre tag preferences, exclude list, etc) now loaded and saved on program start, process start, and window close.
- Made the program smaller by replacing larger dependencies with smaller ones (e.g. replacing the Windows API helper assemblies with a thin, dialogs-only, assembly).
- Adds support for OGG and RIFF (
*.wav
) files.
Release 4
[THIS IS AN OLD RELEASE!]
Please see this page for the latest release: https://github.com/Jehoel/TeslaTags/releases
Screenshot:
Changes:
-
Fixes a crash if it encountered an
*.mp3
or*.flac
file that it could not read (the crash was not caused by the file itself, just not doing a null-check before adding it to the list of loaded files. This is why we need compile-time null-safety!) -
Fixed README link in UI.
-
See the changes in release 3.5, 3 and 2
Release 3.5 (1.0.6736.31473) - Bugfixes and stuff
[THIS IS AN OLD RELEASE!]
Please see this page for the latest release: https://github.com/Jehoel/TeslaTags/releases
- Added a program icon from Noun Project.
- Added a Help button with credits, links, and version info.
- Added button to exclude iTunes folders (speeds things up as iTunes often has a lot of folders without music files in them). Uncheck this if iTunes stores your music under "iTunes Media".
- Updated the README.md file.
- Attempting to fix another reported crash that I can't reproduce myself.
- Added a status bar to the bottom so the scrollbar is always accessible.
- Improved error reporting so a better stack trace, with source-code lines, is now written to the Application event log with Event ID
101
.
Release 3 - Genre abuse and undo support
[THIS IS AN OLD RELEASE!]
Please see this page for the latest release: https://github.com/Jehoel/TeslaTags/releases
Release 3
- This release changes the UI to make a better use of space. The progress bar is now inside the directory textbox.
- You can now select how the Genre tag should be abused for different types of folders:
- By default, the Genre tag in your files will be left alone ("Preserve").
- You can set it to clear the Genre tag in all files ("Clear").
- Tracks inside
AssortedFiles
folders are not accessible under the Tesla MCU Media Library's Artist view, but are listed under the Genres menu. If we change the Genre tag from an actual Genre to the Artist name or the name of the file's folder then it makes it easier to access those files without needing to go into the Folders view or the Songs view. - Tracks in
Compilations
can also have their Genre tag set to their original artist, to make up for how the artist tag is now "Various Artists" and the original artist value is now inside the Title field. - Tracks by guest-artists (
ArtistAlbum
) also also have their Genre tag set to their original artist, the same as Compilation tracks above.
- Fixes a crash that was reported by Reddit user bartonkt (thanks!).
- Adds undo support, with these caveats:
- It only works in MP3 files, not FLAC (sorry!)
- It only works in files that were first modified with this version, not any of the previous releases.
- I'm not sure how it will handle files with "real" multiple performers (Artists) and multiple genre values. Most files only have single values so they'll be fine and none of my own files have multiple values.
- It works by saving the original data to a JSON blob inside a new
PRIV
ID3v2 tag frame that is specific to this software so it won't collide with other tags in the file. - The tagging library I'm using: Mono's TagLib-Sharp, does not expose arbitrary tag fields/frames for FLAC files, which is why I can't do undo functionality that way. Though I could store the original data in an out-of-band file (e.g. a text file in the same folder). That's an idea for the future. Note that the changes are always stored in the log file anyway so you could manually recover your FLAC files' metadata that way.
Release 2: FLAC and GUI-quick-fixes
[THIS IS AN OLD RELEASE!]
Please see this page for the latest release: https://github.com/Jehoel/TeslaTags/releases
Release 2
Please see the previous release notes for more information: https://github.com/Jehoel/TeslaTags/releases/tag/initial-release
This release has the following:
- FLAC support -
*.flac
files are now handled and processed the same as MP3 files, so the Tesla MCU Media Library will display them as-intended after-processing. - Quick-fixes in the GUI - I've added the ability to remove APE tags, set album art, and reset track numbers all from within the WPF GUI.
Other changes:
- The "Music root" textbox is automatically set to your "My Music" folder location. NOTE THAT YOU SHOULD PROBABLY NEVER RUN this program against your music (MP3/FLAC) collection on your computer, only on the USB stick you put in your Tesla car!!!!!!!! Fortunately this software defaults to "Validate only".
- Missing ID3v2 track numbers are now a Warning instead of an Error.
- Added a new folder-type:
ArtistAlbumNoTrackNumbers
- to handle cases like video-game soundtracks where there are no meaningful track numbers.
Coming up next: I'll be experimenting with the Genre
tag and see how the Tesla MCU Media Library handles that.
Initial feedback
[THIS IS AN OLD RELEASE!]
Please see this page for the latest release: https://github.com/Jehoel/TeslaTags/releases
What is TeslaTags?
TeslaTags is a program that modifies the ID3v2 tags of MP3 files in-place so that they're displayed sensibly in Tesla's media library in Model S and Model X vehicles (I don't know how the Model 3 groups files).
Why do the ID3v2 tags need to be modified?
Tesla's music library software has some design flaws where it ignores certain tags which messes-up how a neatly-organised music collection is displayed on the MCU (centre console) display.
The main issue (bug, in my opinion) with the Tesla music library is that the Album-Artist tag is ignored completely, consequently if an album or compilation had more than 1 artist on it (as compilations do, by definition) then that album/compilation will be listed in duplicate in the Music > Albums view, and each artist will be listed separately under Music > Artists. It becomes impossible to play a compilation or multi-artist album because no view shows all tracks of that album together in the correct order. If you go into Folders view then the tracks will be grouped together but they will be displayed in track-name alphabetical order instead of track number or filename order. There is no good reason to display tracks like that.
This program works-around the issue by ensuring the Artist tag is set for each folder scenario described below (see Requirements). Note that if the Artist tag is ever set to something other than a track's actual artist (e.g. "Various Artists") then the actual artist name is prepended to the track title so you can still see and search for it.
The program also works-around another design issue where tracks that lack an Album are not accessible through the Artists list. Those tracks have their Album tag set to"No Album" so they show up. This program does not perform this trick for "Assorted" folders to prevent your Artists view from being filled with artists that only have 1 or 2 tracks in your MP3 collection, though you can still access those tracks through Folders view. I'm looking to see if I can abuse the Genres list as a way of getting to these single-track-artists or as a cheap substitute for playlist support.
BIG HUGE WARNING
This program modifies your MP3 files in-place. It does NOT make any backup copies of your files. Most of the heavy-lifting is done by the Mono TagLib-Sharp library ( https://github.com/mono/taglib-sharp ) which COMES WITH NO GUARANTEE. Unknown bugs in the software or already corrupted music files could be irrevocably destroyed.
So I recommend using this software by first copying your MP3 files onto your USB stick that you use in your car, and then running this program against that USB stick, instead of your original files in your desktop or other storage device.
Requirements
- .NET Framework 4.7.1 or later (Download 4.7.2 here: https://www.microsoft.com/net/download/dotnet-framework-runtime )
- Your MP3 collection must already be logically organized into separate folders such that each folder is one of the following:
- Artist-Album:
- A folder that contains songs from a single Album by a single Artist and Album-Artist
- Example: Queen - Innuendo
- ID3 Requirements:
AlbumArtist == Artist
in all files, andAlbum
is identical for all files in the folder.
- Artist-Album with Guest Artists:
- A folder that contains songs from a single Album from a single Album-Artist, but where some songs, or all songs, have a different Artist.
- Example: Daft Punk - Musique Vol 1, note that the last few tracks are by Scott Grooves and other artists.
- ID3 Requirements:
AlbumArtist
is identical for all files in the folder.Artist
varies.,
Album` is identical for all files in the folder.
- Artist-Assorted:
- A folder with a variety of songs by a single Artist. There must be no Album information present.
- Example: You downloaded some songs by an artist off Amazon's MP3 store and cleared their "Album" tags and saved them into the same directory.
- ID3 Requirements:
AlbumArtist == Artist
in all files, andAlbum
is empty.TrackNumber
andDiscNumber
should also be empty.
- Compilation:
- A folder that contains songs from a single multi-artist compilation album that is not attributed to any single artist. The AlbumArtist is "Various Artists" in all files.
- Example: Now That's What I Call Music or 100 Greatest Rock Songs.
- ID3 Requirements:
AlbumArtist == "Various Artists"
.Album
is identical for all files.Artist
is set correctly.
- Assorted-Files:
- A folder that contains songs from a variety of Artists but do not share an album or compilation.
- ID3 Requirements:
AlbumArtist == "Various Artists"
in all files,Album == ""
andTrackNumber == ""
in all files,Artist
is set correctly.
- Artist-Album:
Usage
TeslaTags.Gui.exe
Screenshot:
- Extract the zip.
- Open
TeslaTags.Gui.exe
- Select the root of your Music folder on your USB stick.
- To prevent your files from being modified, so you only get the validation report, ensure that `Validate only" is checked and click "Start"
- For each directory (recursively) under the root directory, the program will attempt to categorise the folder as one of the 5 folder types above (there is also "Empty" for folders without MP3 files and "UnableToDetermine" if it wasn't able to determine the folder type.
- The program will also inspect MP3 files for missing album-art images, and for the prescence of APE tags which I believe cause the Tesla music-player to fail to play the file (after removing APE tags it plays files fine).
When re-running the program, delete the TeslaTags_DoneDirectories.txt
file in your music root. This file is used to save time by skipping directories it's already inspected during partial and aborted runs. In a future build I'll remove this file from use.
You can also view the validation report in Excel by opening the TeslaTags_Log.txt
file as a tab-separated-values file.
TeslaTags.QuickFix.exe
This program currently does 3 things, see below. This program only operates on a single folder at a time, It does not process subdirectories.
- Automatically reset ID3v2 track-numbers based on filename:
- Run
TeslaTags.QuickFix.exe "C:\Path\To\Your\Album\Folder" auto-tracknumbers
- If an MP3 file starts with digit characters, then they're used as the track-number, so "
02 - Atom Bomb.mp3
" will be given track number2
. - If a file's filename doesn't start with numbers then it won't be set.
- Set the album-art for all files in a folder:
- Run
TeslaTags.QuickFix.exe "C:\Path\To\Your\Album\Folder" set-albumart "ImageFileName.png"
- (If
ImageFileName.png
is in the same folder as the album you don't need to set the full path) - Remove APE tags from MP3 files.
- Run
TeslaTags.QuickFix.exe "C:\Path\To\Your\Album\Folder" remove-ape
- Run
TeslaTags.exe
This is the command-line version of TeslaTags.Gui.exe
with similar output.