I have published the “MOD files” plugin that adds support for loading various music tracker module formats to Picard. The plugin is available from the official plugin repository, you can download and install it directly in Picard in Options > Plugins.
Loading and saving the track name (as title
tag) is supported for most of the formats that support storing this information in the file. See the table below for details.
I tested this with some files from my collection and additional files in various formats from https://modarchive.org/
Please use this with care and don’t forget to make backups!
Supported formats
The table below lists the supported formats. The columns “Supported tags” shows the internal tag names in Picard supported and the maximum length of these fields in parentheses.
Name | Extensions | Supported tags | Text encoding |
---|---|---|---|
MOD | .mod |
title (20) |
CP850 |
Extended Module | .xm |
title (20)encodedby (20) |
ISO-8859-1 if encodedby is “OpenMPT”, otherwise CP850 |
Impulse Tracker | .it |
title (26) |
CP850 |
Impulse Tracker (OpenMPT) | .mptm |
title (26) |
ISO-8859-1 |
AHX | .ahx |
title (unlimited) |
CP850 |
MED | .med | - | - |
MTM | .mtm |
title (20) |
CP850 |
S3M | .s3m |
title (20)encodedby (8) |
CP850 |
ULT | .ult |
title (32) |
CP850 |
Composer 669 | .669 |
comment (108) |
CP850 |
Oktalyzer | .okt | - | - |
Important notes
- I tested this with quite a few files, but there can be some variation in the files depending on what software generated them. These formats originated most often from a specific implementation for a specific tracker software, but then both the formats and the original software got adapted by others. Let me know if some variation of the files listed above does not load for you.
- The file formats have very limited support for metadata. Usually there is only a single field that can hold a name or title. As this is very limited in length (often around 20 characters length, see table above) mod file authors often got creative filling these fields.
- When saving the tag content will get truncated to the maximum supported length.
- Text encoding is not well defined for module files. Basically you should stick to ASCII. There are only very few examples of files that are not using ASCII. I did some testing with various tracker software and existing files set default encodings for the different formats that worked for these examples (see table). But you might encounter files with differently encoded metadata. If not specifically defined CP850 is being assumed, which seems to work well. I might add user preferences to change the encoding in a future update to the plugin. The plugin also uses Picard’s functionality to convert punctuation characters to ASCII if possible.
- Calculation of playback duration is currently not implemented. This could be added in the future, but requires more extensive parsing of the various formats (including in some cases several different format versions).
- File names and the contained metadata are usually considered part of the file, as the authors often took care of both. So if you have a collection of mod files you probably would not want to alter these. Maybe you’ll use Picard just for reading this information and maybe even for organizing the files in folders.
Is this plugin useful? Tell me!
If you use this plugin I would appreciate your feedback and comments below. If there is some interest I might extend this plugin with more options in the future.
If you report some issues with reading specific files or formats or if you want an additional format being supported please always provide some example file with which the issue can be reproduced. Otherwise I won’t be able to look into the reported issue.