Download 0.8b Contact the Developer
The rip module allows you to extract audio tracks from an IDE
CD-ROM drive to save to your hard drive in Wave file format. It is based on
DAGRAB, a package
written by Marcello Urbani.
Currently rip is only expected to run on Linux/Unix. It has been tested
on FreeBSD and Debian Linux.
The module defines the following items:
/dev/cdrom.
Returns a 2-tuple containing information about the tracks on the CD-ROM, of the form ( numtracks, [audio_track1, audio_track2, ... audio_trackX] ) . The second variable in the tuple is a list of integers with each integer representing the track number of a valid audio track.
As with track_info, device defaults to /dev/cdrom.
path is the path to the resulting wave file. It defaults to ./track<track_num>.wav.
The file at path will be chmod to mode, which defaults to 0644
unless specified otherwise.
See the section below for options.
callback is a python function that will be called each time call_every percent (default 5) of the track has been
read and extracted. rip expects that callback will return non-zero if it should continue to extract
the current track, and zero if it should terminate.
Making use of callback is recommended, even if only to return 1. rip will not
process KeyboardInterrupt exceptions while in C, so taking advantage of this function call is an easy way to
allow keyboard TERM signals to affect program execution.
options is a dictionary that specifies a number of performance options that are analogous to their DAGRAB counterparts. Consequently, the descriptions below are lifted right from the program man page.
The key constants, which can be found in rip are:
O_OVERLAP -- overlap sets the number of sectors which are used
for jitter correction. Shouldn't be too high or you
will get "jumps" in your dump. The default value is 3.
O_SECTORS -- number of sectors to be read per request from
the cdrom driver.
O_KEY_LENGTH -- key length is the number of keys which must be equal
for a match in jitter correction. Default value is 12.
O_RETRIES -- sets the number of times to reread sectors
before a jitter error is given. Default is 40 times.
O_OFFSET -- sets the maximum offset to search for jitter
correction. Default is 12.
As per the original DAGRAB code, rip will
adjust these variables if unusual or impractical extremes are provided by the programmer.
Example:
import rip
def go_on():
return 1
# rip track 3 from /dev/acd1c, to fileout3.wav,
# -rw-rw-r--, call go_on each 5 percent
rip.rip(3,"/dev/acd1c","fileout3.wav",0664,callback=go_on)
# rip track 7 from /dev/cdrom1, with some options
rip.rip(7,"/dev/cdrom1",options={
rip.O_RETRIES : 42,
rip.O_KEY_LENGTH : 9,
rip.O_OVERLAP : 4,
})
# rip all of /dev/cdrom
trackinfo = rip.track_info()
for track in trackinfo[1]:
rip.rip(track)