Module Reader
This program is intended to output in readable form the contents of a "module" (a digital music format that I know from the Commodore Amiga) so that you can read it without needing to open a specialized module editor (also known as "music tracker"). This output is save in one or more text files.
A module is a file containing a number of samples, a number of patterns and a list showing in which order the patterns are to be played (and possibly repeated). A pattern is essentially a table showing at which moments in time the various samples are activated.
For more information see https://en.wikipedia.org/wiki/Music_tracker
How to use:
Type the name of a file containing module data. You can also select one using the browse button and the file selection dialog that subsequently pops up.
Press load module to load it into memory and get the names of the instruments used presented in the list on the left hand side.
Select one or more names and press -> and <- to move them back and forth between the two lists - the intention is to get all the drum samples on the right hand side and the rest on the left hand side.
Select a drum sample and use move up and move down to rearrange its position in the list. I have a predilection of having certain instruments at specific locations, so I like to be able to shuffle them around until they are in the correct order.
To prevent them from being forgotten in the output, all drum samples need to get assigned one or more letters. You can do this using assign letter or F2. As some samples may contain more instruments played at the same time, they should get multiple letters/identifications assigned. If you try to generate files before this is complete, you'll get an error message.
The directory where the files are to be placed is determined automatically and shown on the screen, with the option to change it.
Finally, press create transcription files to create files that contain the following data:
a summary of the samples and patterns in the module:
a time bar showing the combined drum instruments together:
The order of the instruments in the drums transcription is determined by the order of the samples to which only one letter is assigned. If an instrument is used that is not in a sample of its own, a dummy sample is generated and you'll be asked to move it to the correct location. If you've made a mistake and you don't need the dummy sample after correcting, it's possible to remove it.
a time bar showing the notes to be played for a melody instrument (shown in the left hand side list):
Of course (this being an application I built), all functions have their keyboard shortcuts. Moving samples around is done using Ctrl + Left/Right/Up/Down, the rest is indicated on the buttons. An overview can also be called up with F1:
Since I want to compare different types of files I've added support for other music file formats, even for non-tracker types, like MIDI.
Updates
As you move the samples to the right, the application will generate representation letters, and remove them again when you move the samples back to the left. When you move the sample to the right again, the previous assignment is remembered and used! The first letter of the name is used you may need to change the assignments occasionally.
Several settings were added. For often-used drum instruments/samples that you don't want to use the first letter of the name for, you can specify a different letter or symbol so that you don't have to retype them every time. The same is possible for MIDI drum instruments. It is also possible to set the locations the data is read from or where the transcripts are written to.
To improve comparability, printing the music as a continuous timeline instead of patterns that are reused is made possible. You can choose the number of events that are prined on one line. It is also possible to print all instruments and drums in the same file. For this, you can rearrange the (non-drums) instruments in the right-hand side listbox so as to guarantee the sequence in which they are printed.
When saving all the output in one file (thereby creating some form of complete musical score) it is now possible to "stretch" the drum events so that these are synchronized with the melodic instrument tracks: