TagSheet

About this project
ID3 Tag editor
Wiki / Home

Overview

TagSheet is a Windows WPF desktop application that allows easy viewing and editing of files containing ID3 v2.2, v2.3, v2.4 and v1.x tags. ID3 tags are traditionally associated with MP3 audio files.

The application is specifically designed to look and feel like a spreadsheet so that potentially large amounts of tag information can be quickly visually scanned, and it's easy to cut-and-paste tag information into many files at once.

A dialog window can be opened for a file to display and edit tag data in a detailed and more compact view.

TagSheet Screenshot

TagSheet is a hobby project, so to reduce coding time no attempt has been made to localise or internationalise it.

The application and all source code is in the public domain for educational or utility purposes. Please send bug reports or feedback to the author gfkeogh@gmail.com.


Supported Frames

Different types of data within ID3 tags are stored in Frames. The following Frames are fully editable (the prefix is the ID3 V2.3 Frame ID).

  • TPE1 Artist
  • TIT2 Title
  • TALB Album
  • TRCK Track Number / Track Count
  • TYER Year
  • TCON Genre
  • COMM Comment
  • TXXX User Text
  • TCOM Composer
  • TOPE Original Artist
  • TCOP Copyright message
  • TENC Encoded By
  • WXXX User Url
  • TPE2 Band
  • TPE3 Conductor
  • TOWN Owner
  • TMED Media
  • USLT Unsynchronised Lyrics
  • APIC Pictures
  • POPM Popularity (rating)

The following non-editable addition information is also provided whenever it's available.

  • File name
  • File created time
  • File modified time
  • File length in bytes
  • Tag types found (V1 and/or V2)
  • Audio bitrate
  • Audio duration
  • Audio frequency
  • Audio stereo mode

Other Application Features

  • The application window has a standard look-and-feel with menus, toolbar, status bar, tool tips and shortcut keys.
  • The font size of the spreadsheet grid is adjustable.
  • Long running operations such as scanning or saving large numbers of files run as a background task and the application shows a busy indicator with a Cancel button.
  • Files and frames within files can be selected individually or in rectangular ranges using the standard Windows Ctrl+Click and Shift+click shortcuts.
  • Files can be deleted, with confirmation.
  • Tracks of multiple selected files can be sequentially renumbered (1/n, 2/n, 3/n, etc).
  • Tag data can be bulk erased from selected frames.
  • The tool bar contains a set of controls to "quick filter" the grid of files and tags to show only rows that match certain criteria (artist, file name, title, and more).
  • The columns in the grid can be dragged and dropped into different orders and they are sortable by clicking on the column headers.
  • Frames allowed to contain multi-line strings are safely displayed and edited to prevent incorrect contents.
  • The grid contents can be copied to the Windows clipboard as XML.
  • The last scanned folder may be optionally auto-rescanned when the application starts.
  • The editor window provides full control of picture frames and their attributes.
  • Build 1.1.31 (05-May-2017) introduces a feature to filter-and-scan so that a subset of files is selected for display and editing. Files can be selected by regular expressions on the file name or by certain frame values (artist, album, band, etc). This feature is useful for example if you want to scan thousands of files but only display those that have no artist.

External Library Dependencies

NTagLite

The ID3 V2 standard is so absurdly complicated that TagSheet does not attempt to read and write the tags itself, it relies upon external libraries to perform the low-level work of moving tag information to-and-from files. Early versions of TagSheet used the advanced technique of discovering and dynamically loading different tag processing libraries at runtime into separate AppDomains . In January 2016 the dynamic loading technique was determined to be worthless overkill and the code was stripped down and simplified to use a single tag processing library.

Very early versions of TagSheet provided a choice of UltraID3Lib and NTagLite as the dynamically loaded tag processing libraries. By late 2015 the NTagLite library had overtaken the features available in the Ultra library by a wide margin, so it was dropped and NTagLite remains as the single built-in tag processor. For more information see the History topic on the NTagLite Wiki Home Page.

NTagLite.Controls

A separate project and NuGet package named Orthogonal.NTagLite.Controls is used to edit tag details in a tabbed dialog window shown in the following screenshots.

Edit Dialog (Frames tab)

Edit Dialog - Frames tab

Edit Dialog (Pictures tab)

Edit Dialog - Pictures tab

Edit Dialog (Lyrics tab)

Edit Dialog - Lyrics tab

Edit Dialog (Information tab)

Edit Dialog - Information tab

Edit Dialog (Dump tab)

Edit Dialog - Dump tab

Orthogonal Programming Link