Chapter 1. Introduction


Why "yet another MP3 tagger?"

When I tried to organize my MP3 collection I came up with the vision of organizing the tag editing as a spreadsheet. Editing should be easy as with the power of spreadsheet formulars and editing failities as cut and paste or automatic filling the corrections should be much quicker than I was used to. It stayed as a vision as I didn't had that many songs and I stopped the dream of a common tag format of my collection again. The need raised again with the complete digitalization of my CD collection. The MP3' number raised again and I wanted to have a nice directory layout to easily find the albums and titles. I did not yet do that. But since then I try to rip new CD's immediately and add them to my collection. Therefore I started a project with the goal

  • to have an editing component based on the idea of a spreadsheet

  • to have not the need of a database (databases with tag information tend to be outdated in my system when I need them)

  • to have quick responsiveness to all user input. This includes mobing IO operations to background tasks if possible.

  • to have a foundation for my ideas about duplicate detection and completing missing functionality

Features of Texel

Texel offers you the following main features:

  • Spreadsheet editing mode of meta tags. Free navigation through all cells, copy/paste suport also for external spread sheets. "Fill Down" of cells.

  • Powerful and fast string formulars to derive filenames from tags or vice versa. Formular dependencies are deteced an recalculalion of dependent conent takes place when a cell is altered.

  • Duplicate detection which does also detect similar tags but is still quite fast (due to algorithmic optimzations and scale out on al cores).

  • FreeDB lookup of albums which can use an own index to improve album matching s no CD table of content is available where freed does normally rely on.

  • Scanning of files is quick and done in the background. Well, however, normal wrking is not possible while loading. Room for improvement

  • Many supported audio formats

  • Works without database even with large sets of audio files. 50.000+ songs use less then 250 MB if residential main memory.

  • Scanned and modified iems can be stored in a file to continue editing later on.

  • Modification can take place without audio collection being mounted (currently not true for deleting files).

  • Optional background verification of artist names with musicbrainz

  • Fast grouping, Filtering and sorting of loaded tags


This list shows possible improvements and extensions of Texel. There is a rough separation into before release 1.0 and afterwards.

Until release 1.0

  • Fix bugs. Currently at least two annoying bugs are still there: When doing an undo on a sorted model after deleting rows the application might crash. Also, when scanning audio files in the background to load tags quitting the application leads to a crash.

  • Increase usebility and allow reaching a functionality over different ways.

  • Complete Phrases. The phrases spreadsheet does not allow cut and paste, Import/Export does not work, the hotkeys are not checked against currently defined keys. Also the consistence checks must be completed.

  • Provide a formular editor to build the formulares and phrases.

  • Complete freedb lookup functionality. This includes downloading the index from the application, marking differences between freedb sugestion and current tags, add menu option to take over individual entries and not only all. Increase information in error messages.

  • Increase the KDE integration. Many of the possiblities are included, but not yet the configuration of hotkeys, etc. Also the integration of libcddb is missing as the provided interfaces do not match the needs of Texel.

  • Provide an additonal column with a checkbox to delete files (remove permanently from disk). This helps to delay access to the filesystem even when deleting tracks.

After release 1.0

  • Provide multiple views onto the loaded tags. Each view maintains an individual setting for sorting, filtering or grouping. Generally the implementation allows multiple views already, but some functions must be adopted to use the right source. Its simple risky and takes time.

  • Increase Musicbrainz integration and include album and titles. Its not so simple as ths includes a comlete set of background data structures to maintain te loaded suggestions and provide them to the user.