With the advent of MusicIP Mixer v1.5, there came the possibility of »custom tags«. Since until now (v1.8) MusicIP doesn’t natively support the TBPM (BPM), TORY (Original Year) and TLAN (Language) ID3v2 tags, I've decided to find a workaround, for the time being.
We can actually use MusicIP Mixer in conjunction with a modern and flexible Tagger like MP3Tag to do this. In this "How To" I will explain what's needed, using the BPM field as an example.
- Activate MusicIP Mixer's HTTP API
Download MusicIP's MMMExec helper tool. Save in the MusicIP Mixer folder (usually "C:\Program Files\MusicIP\MusicIP Mixer").
Get and install MP3Tag if you don't have it already. Be sure to have set up all needed settings (i.e., the output encoding for writing MP3 Tags under "Tools/Options/Tags/Mpeg/Write")!
For instance (in case you use ID3v2 with ISO-8859-1 encoding):
Also, I recommend to use "View/Customize columns" to include a column for BPM. For this add a new column containing this data:
Sort by: (leave empty)
I usually put this next to the "Genre" column but of course this is entirely up to you.
- Install MMMExec as a "Tool" for MP3Tag.
Under "Tools/Options/Tools", select "New" and enter the following:
Name: MusicIP Mixer - Set BPM (Custom Tag)
Path: (select location of "mmmexec.exe", see step (2))
Parameter: -set BPM=%bpm% "%_path%"
[x] for all selected files
(You might want to check my Actions to modify BPM: Double, Half, Round to Integer in order to have all BPM values formatted nicely before adding them to MusicIP Mixer's library.)
Find and edit your "powerwords.txt" file (in MusicIP Mixer's program folder) to include the follwing line:
bpm: field "BPM"
- To verify that all is working, use MP3Tag to select one or more songs you already have in the MusicIP Mixer Library, do a right-click and select "Tools/MusicIP Mixer - Set BPM (Custom Tag)" from the context menu.
Voilà! The custom BPM field has been transferred into MusicIP Mixer's Library as a custom tag.
You should now be able to use BPM in MusicIP queries like
?bpm >= 120 and bpm < 140
or define more Power Words like
fast: bpm > 180
which would let you search for "fast songs".
You can find more information at MusicIP Mixer Help - Custom Tags.
- If all this works, you can fill in the BPM for your whole library – either by selecting the whole library (Ctrl-A in Library view) and drag-/dropping it into MP3Tag, or by selecting the files you have in the MusicIP Mixer Library from MP3Tag (most people start their collections from a common "base folder" so that shouldn't be a problem).
Caveat: Try to do this in sensible "subsets" since MP3Tag will spawn a new mmmexec process for each and every file which would probably overload your system, or clobber the HTPP API too much. (I just tested using a set of 4,255 files: Looks awful, all those DOS boxes popping up, did not really break anything but the BPM entry on 21 files out of 4,255 was missing and had to be "tooled in" again.)
Looks a little crazy:
- Until MusicIP come up with native BPM support, this will be one possible (and quite usable) workaround. It might also be a way to include TORY (use -set ORIGYEAR=%origyear% and origyear: field "ORIGYEAR") and TLAN (use -set LANGUAGE=%language% and language: field "LANGUAGE"), for time being. (With MP3Tag, you can set up a maximum of 10 "tools" like this.)
Note: You might be tempted to do all these in one command, like
-set BPM=%bpm% -set ORIGYEAR=%origyear% -set LANGUAGE=%language% "%_path%"
This will not work. You cannot use more than one -set x=y on the mmmexec command line—only the last one would actually be used!
Only remember that a) you have to keep your information updated manually, and b) MusicIP Mixer's HTTP API has to be enabled for this to work. Remember: In times of about a zillion different »music databases« and »media libraries«, the obvious place to store all information is the digital audio files themselves! So all information about a piece of music can be stored next to it, moved around, transferred, backed up and then any fancy libraries can also be re-built easily. (A-hem: Did I mention you should store MusicIP Mixer's Analysis Data inside your files?!)
Now the only thing that’s left over is ask MusicIP nicely to support custom tags in filters and in the playlist view …