Skip to content

Releases: daiplusplus/TeslaTags

Release 6

01 Jul 12:06
Compare
Choose a tag to compare

Changes:

  1. Fixes the bug where MP3 files wouldn't save at all (whoops!): #10
  2. Fixes the bug where the Start/Stop buttons wouldn't disable/enable properly: #12
  3. Significantly refactored internal codebase: more maintainable and following modern idiomatic C#.
  4. Stopping before completion now leaves the progress-bar in-place with a yellow colour (errors are red).
  5. When clearing the Genre tag, the program no-longer considers null and "" as different values (so there's much less output).
  6. Added Actual-files-changed and Proposed-files-changed columns.
  7. The messages table (in the pop-up table-row) now colour-codes the Severity column.
  8. 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.
  9. 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.

18 Jun 09:22
Compare
Choose a tag to compare

[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

12 Jun 00:54
Compare
Choose a tag to compare

[THIS IS AN OLD RELEASE!]

Please see this page for the latest release: https://github.com/Jehoel/TeslaTags/releases

Screenshot:

image

Changes:

Release 3.5 (1.0.6736.31473) - Bugfixes and stuff

12 Jun 00:30
Compare
Choose a tag to compare

[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

11 Jun 22:23
Compare
Choose a tag to compare

[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

10 Jun 11:58
Compare
Choose a tag to compare
Pre-release

[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.

image

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

09 Jun 08:46
Compare
Choose a tag to compare
Initial feedback Pre-release
Pre-release

[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

  1. .NET Framework 4.7.1 or later (Download 4.7.2 here: https://www.microsoft.com/net/download/dotnet-framework-runtime )
  2. 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, and Album 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, and Album is empty. TrackNumber and DiscNumber 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 == "" and TrackNumber == "" in all files, Artist is set correctly.

Usage

TeslaTags.Gui.exe

Screenshot:

image

  1. Extract the zip.
  2. Open TeslaTags.Gui.exe
  3. Select the root of your Music folder on your USB stick.
  4. To prevent your files from being modified, so you only get the validation report, ensure that `Validate only" is checked and click "Start"
  5. 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.
  6. 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.

  1. Automatically reset ID3v2 track-numbers based on filename:
  2. Run TeslaTags.QuickFix.exe "C:\Path\To\Your\Album\Folder" auto-tracknumbers
  3. 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 number 2.
  4. If a file's filename doesn't start with numbers then it won't be set.
  5. Set the album-art for all files in a folder:
  6. Run TeslaTags.QuickFix.exe "C:\Path\To\Your\Album\Folder" set-albumart "ImageFileName.png"
  7. (If ImageFileName.png is in the same folder as the album you don't need to set the full path)
  8. Remove APE tags from MP3 files.
    1. Run TeslaTags.QuickFix.exe "C:\Path\To\Your\Album\Folder" remove-ape

TeslaTags.exe

This is the command-line version of TeslaTags.Gui.exe with similar output.