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 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 * 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 - 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: svn co https://thomas.apestaart.org/morituri/svn/trunk morituri cd morituri ./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-trunk morituri-trunk (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. 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 - 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 offset find find drive's read offset using AccurateRip verify verify drive's read offset using AccurateRip cd rip rip the cd 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