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