Hiya,

*** Note: There's a lot of words here - don't be put off. If you just
want the Plugins and don't care about my ramble, find the URL below,
download the Plugins and read the comments in them. ***

In a fit of madness, and at the request of a friend who owns a hardware
player, I've written a Plugin for Amiga tracker files. It uses mikmod
for the conversion to raw output and converts this to MP3 - I had
problems getting wav output to work properly. This was the first plugin
I'd written so if, when you see it, you think "oh my god that's not the
way to do things" then let me know and I'll tweak things.

Pleased by the fact that the Tracker support worked, I then wrote a
MIDI file plugin, which uses Timidity to convert to raw data. This was
a little less sucessful as Timidity is somewhat more processor hungry
and my 500Mhz PIII struggles a little.

And then finally, I was feeling silly, so wrote an ABC Plugin as well.
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. I had hoped that SlimServer
would infer the conversion if I told it how to do 'abc' -> 'mid'; it
could have infered 'mid' -> 'wav' or 'mid' -> 'mp3'. But this didn't
seem to work, so I added the extra stage manually.

Anyhow. The plugins themselves can be found at :

http://usenet.gerph.org/SlimServer/

They 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. I've tried to make it as
painless as possible - I don't know if there's an installation
convention or process so I've settled on something that seems sane -
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 copy install the above (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

I have *only* tested this - and only have access to test this - on
Linux. I honestly do not know what is necessary on Windows, but the
general principles should be the same.

Now for some Caveats and concerns...

... 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.

... 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 artist, or album tags are ever supplied. This means that the
files will always be stored under 'No artist', 'No album'. I'm
personally opposed to this, but I'm not sure of a solution - it might
be sensible to label them with artist set to '_Tracker' so that they
all sort together, out of the way of your main music collection, maybe
with the variant in the album tag.

... MOD files 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.


Ok, now for the support thing...

... 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.

... I will get around to doing a little information page about the
plugins, rather than a regular Apache file listing on the page :-)

It probably goes without saying, but the fact that I picked up the
server and updated it to support these things within a day, without
paying out any money is pretty a pretty impressive feat, so Kudos to
Slim Devices for good design and a good model. Now all of you with the
even more cool hardware can (well, if I've done it all right and got
the installation instructions sensible) listen to your 10 year old MOD
files and silly MIDI ringtones on your very expensive hifi kit around
your house. Yeah, I shouldn't write announcements this late at night.

Enjoy. Hopefully.


-- 
gerph
_______________________________________________
plugins mailing list
[email protected]
http://lists.slimdevices.com/lists/listinfo/plugins

Reply via email to