Introduction
The SlimServer software is capable
of supporting many different conversions though a number of plugins. This
page comprises some of the details about the plugins I've written for it.
-
Amiga .mod conversion plugin
The plugin for Amiga tracker files uses 'mikmod' for the conversion to raw
output and converts this to MP3 using lame.
The plugin can be downloaded here [version 0.02 (17 Oct 2005)].
History:
0.01 (13 Oct 2005) - initial version created from a few other plugins
0.02 (17 Oct 2005) - added artist grouping
-
MIDI conversion plugin
The MIDI file plugin, uses Timidity to
convert to raw data. This is a little less sucessful than the Amiga .mod
conversion, as Timidity is somewhat more processor hungry and my 500Mhz PIII
struggles a little.
The plugin can be downloaded here [version 0.02 (17 Oct 2005)].
History:
0.01 (13 Oct 2005) - initial version created from MOD.pm
0.02 (17 Oct 2005) - added artist grouping
-
ABC conversion plugin
The ABC Plugin also uses Timidity, as well as abc2midi. For those who don't know, ABC is a
textual-based music description format designed for traditional and folk
music. The conversion uses abc2midi and Timidity to play the files.
The plugin can be downloaded here [version 0.02 (17 Oct 2005)].
History:
0.01 (13 Oct 2005) - initial version created from MIDI.pm
0.02 (17 Oct 2005) - added artist grouping
Installation on linux
The .pm files should be copied into the Plugins directory. If you read the
comments at the top of the source, it will tell you what is necessary to
install the Plugins and make them work. You should read those comments
anyhow. They are there for a reason. I didn't write them for my health. I've
tried to make it as painless as possible - the script itself adds to the
custom configuration files in a manner that is (hopefully) non-destructive
and can be upgraded in the future.
To summarise the installation process...
- ... you will require lame for encoding to MP3, mikmod for MOD playback,
abc2midi for ABC playback, and Timidity (and patches) for MIDI and ABC
playback.
- ... you should install the above tools - mikmod, lame, timidity,
abc2midi (the source comments tell you where to get them) in the system
path
- ... you should run '
perl -M<name> -e
Plugins::<name>::AddTypes
' to add the necessary types
to the configuration files.
- ... you should restart the server
But remember, you should read the installation notes in the scripts
themselves.
Installation on Windows
No idea. Anyone wanting to write the instructions for this should contact
me, or post to the SlimServer 3rd Party Plugins forum. The general
principles should be the same, but the details will differ.
Caveats and concerns
Now for some Caveats and concerns. I don't expect these to be perfect and
neither should you. This list should hopefully tell you what not to expect.
If any of these things can be addressed, or even just have suggestions,
it would probably help.
-
... The plugins don't provide duration information. This is because I've
not actually processed the files to produce that information. I don't
know of any mod information tools (for example) that might give that
information, and I'm not going to write another mod parser just to get
out the duration. In order to allow the files to be processed, the
plugins return -1 seconds as the duration. This seems to appear as 0:59
in the display, and the duration bar never increases whilst streaming.
Anyone who can suggest a better solution here, I'd love to know (smile).
-
... There's a long delay when MODs start. This is due to mikmod sleeping
between outputting data, even when it's piping to stdout. Nothing I can
do about that short of changing its source - however it does have the
advantage of keeping the server load down.
-
... The 'Comment' tag is supplied with the type of tracker file that has
been recognised. Not all types of tracker are recognised, but it does
try a little to get the most common ones right. The extensions supported
are those that I have commonly seen on the files.
-
... NO album tags are ever supplied. The artist tags are set to the name of
the format in square brackets (eg '[MIDI]'). This means that the files will
always be stored at the end of the artists lists, and have 'No album' in the
albums list. I'm not convinced this is a good solution, but it's preferable to the files appearing in random locations in your collection.
-
... MOD and ABC files will be given title tags based on the titles
present within the file. Many mods are titled oddly so this is not
always useful.
Support
Ok, now for the support thing. As you can understand, this is a spare-time,
fun thing, but remember the following things and you might find life less
painful.
-
... I don't have a hardware player; I was just doing this for the fun,
'cos I can, and because a friend suggested it as a silly idea (which it
is, but it's silly in a cool retro way). I've only tested this with the
SoftSqueeze 2 player. It works. I've heard it working down the phone on
my friends machine, so it definately worked on the hardware system.
-
... I don't have a lot of time to expend on this sort of thing, but I'm
happy to take suggestions, fix bugs and maybe add (simple) features, if
it doesn't take too long.
-
... and obviously there's the whole 'no warranty' thing. If it breaks your
SlimServer, machine, hardware, cat, universe, etc, then don't come crying to
me.
-
... oh, and I hadn't said it before, but because of the way the source
is structured, it's all under the GPL. I don't like the GPL, but I don't
have a lot of choice with that because that's what it's based on.
Thanks
I think it goes without saying, but many thanks to the people at Slim
Devices for producing such a system that's so easy to enhance in this way.
Thanks to the many people that wrote the plugins for the player, whose
ideas I've pinched, and whose code I browsed to see how to do stuff.
Thanks to Chris Johns for suggesting .mod playback.
This page is maintained by
Justin Fletcher
(gerph@gerph.org).