Skip to content

elperepat/mp3tofid

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

<html>
<head>
<title>
mp3tofid README
</title>
</head>
<body>
<font face="Verdana,Arial,Helvetica" size=2>
<h2>mp3tofid README</h2>
mp3tofid is a Linux utility that will convert your directory tree of
MP3 files to FID's, ready for uploading to your empeg using
rsync, or any other uploading tool.
mp3tofid and
<a href="http://rsync.samba.org/"> rsync</a>
together will enable you to synchronise any
change you make to your MP3 directory to your empeg automatically
and efficiently.
<p>
mp3tofid will create a directory structure filled with symbolic
links to your MP3's and FID playlists that reflect your directory
structure. You can create additional playlists by just making
symlinks inside your MP3 directory tree. These symlinks may
be either target MP3's or directories containing MP3's.
Make sure these symlinks stay inside this directory tree,
or your FID playlists will be invalid. symlinks should not nest.
<p>
mp3tofid will calculate the target FID number based on the inode
number of your MP3 file. So if you rename or move your MP3's,
your MP3 will not need to be reuploaded, as its FID number
remains the same. If you change ID3 tags, rsync will make sure
only the differences between old and new files are transmitted.
<p>
But even if a file has to be transferred completely, rsync still
is faster than emplode. And it is very stable; I uploaded 70 GB
in one run. And if you can't wait for an upload, just interrupt
it; rsync will pick up where it has left the previous run.
<p>
mp3tofid and rsync completely bypass emplode, now even for
building the player database. mp3tofid will build it in
seconds on a beefy Linux box, rather than in tens of minutes
on your player.
<p>
You'll need rsync both on your player and on your PC.
rsync is usually distributed with your operating system.
For the player, you can find it
<a href="http://www.macroscoop.nl/~pim/empeg/rsync/">here</a>.
<p>
Here's how I use mp3tofid and rsync:<br>
My MP3's live in /mp3.<br>
My FID tree is in /home/pim/empegfids.<br>
I convert my MP3 tree using
<pre>
mp3tofid -Ii /mp3 /home/pim/empegfids
</pre>
The target directory must exist.
The first run runs at about 75 GB per hour on my PC.
Next runs take less than a minute, if nothing much has changed.
<p>
I use my Linux box as an rsync server, and my empeg as an rsync
client. Here's how I set up my /etc/rsyncd.conf file:
<pre>
[empegfids]
path = /home/pim/empegfids
read only = yes
hosts allow = myempeg.mydomain.com
use chroot = no
</pre>
On my empeg, I run this script:
<pre>
#!/bin/sh

rsyncserver=192.168.23.45
modulename=empegfids

set -x
swapon -a
rwm
rsync \
        $@ \
        --times \
        --delete \
        --verbose \
        --recursive \
        --copy-unsafe-links \
        --exclude=config.ini \
        --exclude=lost+found \
        ${rsyncserver}::${modulename}/drive? /
rom
swapoff -a

</pre>
That's it. Restart the player by pressing CTRL-D.
Or just power cycle it.
<h3>Testing</h3>

If you follow this example, <b>ALL of your existing music will be removed.</b>
If you want to see what rsync would do without actually doing it,
add the option <b>--dry-run</b>.
In order to test this software, I recommend you rename your existing
fid directories on your empeg and create new ones. This will preserve
your music in case you prefer emplode after all. Then upload a small
batch to see if everything works. You can still use emplode to make
changes afterwards, but mp3tofid/rsync will undo all these changes later.

<h3>Command line options</h3>
-h: show help<br>
-v: show version<br>
-i: ignore case in sorting<br>
-I: "intelligent" sorting: ignore "The", "A" and "An"<br>
-2: percentage of FID's to put on second drive. Default is 50<br>
-b: compensate a broken second drive. skip all tunes on this drive<br>
-s: spread playlists across both drives. by default, all playlists go in /drive0/fids<br>
-d: debug option. Default  "sSm"<br>
-n: start with a new inode-to-fid database. This will optimize fid number allocation,
but require all tunes to be re-uploaded. Use with caution.<br>
-o: use old player directory structure. This is required for player versions older
than 2.0b13, and is also necessary for correct hijack playlist generation
(until mlord fixes this)<br>
<p>
debug options:<br>
d: show directories being scanned<br>
i: show inode database operations<br>
m: show MP3's being scanned<br>
M: show MP3's being skipped<br>
r: show fids being removed<br>
s: show stages of program<br>
S: show statistics<br>

<h3>Requirements</h3>

In order to compile mp3tofid, you need 
<a href="http://mad.sourceforge.net/">libmad</a>
<p>
libmad comes with Red Hat 7.3 as an RPM, which installed
nicely on my RH 7.1 system. Since version 2.00, mp3tofid
uses libid3tag instead of id3lib.
libid3tag is written in C rather than C++ and is included with libmad.
<p>

<h3>Bugs and limitations</h3>
<li>only MP3 support. No wav/wma/ogg/whatever support.
<li>no support for special attributes, like "ignore as child"
<li>no playlist consistency checking (yet)
<li>no warning for or disabling of untagged MP3 files (yet)
<li>MP3 scanning could be much faster, probably
<li>there's no man page
<li>no checking for tags that are too long or contain newlines

<h3>Licensing</h3>
mp3tofid is released under the GPL. Please read the file named COPYING.

<h3>Author</h3>
<a href="mailto:pim@zandbergen.org">Pim Zandbergen</a>
</font>
</body>
</html>

About

offline empeg database and filesystem constructor

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published