d1940b639f10352cc08bb09185101c9449dfcef5
morituri is a CD ripper aiming for accuracy over speed.
Its features are modeled to compare with Exact Audio Copy on Windows.
RATIONALE
---------
For a more detailed rationale, see my wiki page 'The Art of the Rip'
at https://thomas.apestaart.org/thomas/trac/wiki/DAD/Rip
FEATURES
--------
* support for MusicBrainz for metadata lookup
* support for AccurateRip verification
* detects sample read offset and ability to defeat cache of drives
* performs test and copy rip
* detects and rips Hidden Track One Audio
* templates for file and directory naming
* support for lossless encoding and lossy encoding or re-encoding of images
* tagging using GStreamer, including embedding MusicBrainz id's
* retagging of images
* plugins for logging
* for now, only a command line client (rip) is shipped
REQUIREMENTS
------------
- cdparanoia, for the actual ripping
- cdrdao, for session, TOC, pregap, and ISRC extraction
- GStreamer and its python bindings, for encoding
- gst-plugins-base >= 0.10.22 for appsink
- python musicbrainz2, for metadata lookup
- python-setuptools, for plugin support
- python-cddb, for showing but not using disc info if not in musicbrainz
- pycdio, for drive identification (optional)
GETTING MORITURI
----------------
If you are building from a source tarball or checkout, you can choose to
use morituri installed or uninstalled.
- getting:
- Change to a directory where you want to put the morituri source code
(For example, $HOME/dev/ext or $HOME/prefix/src)
- source: download tarball, unpack, and change to its directory
- checkout:
git clone git://github.com/thomasvs/morituri.git
cd morituri
git submodule init
git submodule update
./autogen.sh
- building:
./configure
make
- you can now choose to install it or run it uninstalled.
- installing:
make install
- running uninstalled:
ln -sf `pwd`/misc/morituri-uninstalled $HOME/bin/morituri-git
morituri-git
(this drops you in a shell where everything is set up to use morituri)
RUNNING MORITURI
----------------
morituri currently only has a command-line interface called 'rip'
rip is self-documenting.
rip -h gives you the basic instructions.
rip implements a tree of commands; for example, the top-level 'changelog'
command has a number of sub-commands.
Positioning of arguments is important;
rip cd -d (device) rip
is correct, while
rip cd rip -d (device)
is not, because the -d argument applies to the rip command.
Check the man page (rip(1)) for more information.
RUNNING UNINSTALLED
-------------------
To make it easier for developers, you can run morituri straight from the
source checkout:
./autogen.sh
make
misc/morituri-uninstalled
GETTING STARTED
---------------
The simplest way to get started making accurate rips is:
- pick a relatively popular CD that has a good change of being in the
AccurateRip database
- find the drive's offset by running
rip offset find
- wait for it to complete; this might take a while
- optionally, confirm this offset with two more discs
- analyze the drive's caching behaviour
rip drive analyze
- rip the disc by running
rip cd rip --offset (the number you got before)
FILING BUGS
-----------
morituri's bug tracker is at https://thomas.apestaart.org/morituri/trac/
When filing bugs, please run the failing command with the environment variable
RIP_DEBUG set; for example:
RIP_DEBUG=5 rip offset find > morituri.log 2>&1
gzip morituri.log
And attach the gzipped log file to your bug report.
KNOWN ISSUES
------------
- no GUI yet
GOALS
-----
- quality over speed
- support one-command automatic ripping
- support offline ripping (doing metadata lookup and log rewriting later)
- separate the info/result about the rip from the metadata/file generation/...
CONFIGURATION FILE
------------------
The configuration file is stored according to
http://standards.freedesktop.org/basedir-spec/basedir-spec-latest.html
when possible.
It lives in $XDG_CONFIG_HOME/morituri/morituri.conf
The configuration file follows python's ConfigParser syntax.
There is a "main" section and zero or more sections starting with "drive:"
- main section:
- path_filter_fat: whether to filter path components for FAT file systems
- path_filter_special: whether to filter path components for special
characters
- drive section:
All these values are probed by morituri and should not be edited by hand.
- defeats_cache: whether this drive can defeat the audio cache
- read_offset: the read offset of the drive
CONTRIBUTING
------------
- Please send pull requests through github.
- You can always flattr morituri to donate:
https://flattr.com/submit/auto?%20%20user_id=thomasvs&url=https://thomas.apestaart.org/morituri/trac/&%20%20title=morituri&%20%20description=morituri&%20%20language=en_GB&tags=flattr,morituri,software&category=software
rip command tree
----------------
rip
accurip
show
show accuraterip data
offset
find
find drive's read offset using AccurateRip
verify
verify drive's read offset using AccurateRip
cd
rip
rip the cd
debug
encode
encode a file
htoa
find
rip
rip the htoa if it's there
image
verify
verify the cd image
encode
encode to a different codec
retag
retag the image with current MusicBrainz data
Languages
Python
93.6%
TeX
4.7%
C
0.9%
Dockerfile
0.5%
Shell
0.3%