Madman2003
Oct 5 2006, 15:06
I came into the gnu/linux world over a year ago, back then there was nothing meeting my needs.
Linuxrip is a secure ripper (test and copy, with autoretry (first a third, then a fourth, etc), 2 matching rips = ok).
It does xml style logging.
Uses cdparanoia or cdda2wav for ripping.
Can encode to flac(also support for flake), wavpack, vorbis, musepack and mp3.
Does (album) replayain for all types (mp3gain for mp3, because i included support for people who might have portables).
It's multithreaded in the sense it can do encoding and ripping at the same time (only one encode at a time currently).
It can retrieve cddb info.
Automaticly adds capital letters to each word (with an exclude list), to make a more unified appearance (it can be disabled).
Supports multiple naming convention (2 by default, custom ones can be added for those not completely alien to bash scripting).
Supports (simple) nfo's with the option to add notes.
It embeds logs into tags for flac and vorbis (which have a readily available commandline tagger).
I think that's most of the major features, one thing it (will probably never) doesn't support is single flac+cuesheet.
Linuxrip has had a little under 25 (mostly private) releases over a period of almost a year (i guess).
The Makefile is not perfect yet.
It has been tested on gentoo linux and arch linux (not the most recent version). Probably runs on other unix like systems if you can meet the dependencies.
I've been working a release ready for the public, consider this a beta.
Please make sure you have some space in /tmp (for a few small files), forgot to put that into readme.
Let me know what you think.
Currently only svn:
linuxrip page
Madman2003
Oct 5 2006, 19:39
An example log to serve (possible) curiosity.
CODE
<?xml version="1.0"?>
<linuxrip>
<linuxripversion>0.081</linuxripversion>
<logversion>0.05</logversion>
<albuminfo>
<artist>Joe Jackson</artist>
<album>Live</album>
<genre>Misc</genre>
<year>2004</year>
</albuminfo>
<settings>
<ripper>cdparanoia</ripper>
<ripperoptions>-X -z -O 6 -d /dev/hdb</ripperoptions>
<encodeflac>1</encodeflac>
<flacencoder>flake</flacencoder>
<flakeoptions>-10</flakeoptions>
<drive>Lite-On LTR-52327</drive>
<maxattempts>10</maxattempts>
<rex>1</rex>
<leo>1</leo>
</settings>
<tracks>
<track number="1">
<filename>01 - Prelude-hell of a Town.wav</filename>
<md5 pass="1">f11348b1f09cdf1441750c3b8505869c</md5>
<md5 pass="2">f11348b1f09cdf1441750c3b8505869c</md5>
<attempts>2</attempts>
</track>
<track number="2">
<filename>02 - You Can't Get What You Want 'til You Know What You Want.wav</filename>
<md5 pass="1">3bcb0cff913942e86ab342c242272d5e</md5>
<md5 pass="2">3bcb0cff913942e86ab342c242272d5e</md5>
<attempts>2</attempts>
</track>
<track number="3">
<filename>03 - Happyland.wav</filename>
<md5 pass="1">e716cb61094aa99f526b8620bef68360</md5>
<md5 pass="2">e716cb61094aa99f526b8620bef68360</md5>
<attempts>2</attempts>
</track>
<track number="4">
<filename>04 - Stranger than You.wav</filename>
<md5 pass="1">8adfe07b273ea317612875e2fdd33522</md5>
<md5 pass="2">8adfe07b273ea317612875e2fdd33522</md5>
<attempts>2</attempts>
</track>
<track number="5">
<filename>05 - Another World.wav</filename>
<md5 pass="1">d0b2c3288b3dc1607ccd3323437cc51b</md5>
<md5 pass="2">d0b2c3288b3dc1607ccd3323437cc51b</md5>
<attempts>2</attempts>
</track>
<track number="6">
<filename>06 - Is She Really Going Out with Him.wav</filename>
<md5 pass="1">96d26619a6670a30d1fd3e8a6fa1e550</md5>
<md5 pass="2">96d26619a6670a30d1fd3e8a6fa1e550</md5>
<attempts>2</attempts>
</track>
<track number="7">
<filename>07 - Home Town.wav</filename>
<md5 pass="1">7f38851de05331e1b63661af4fd20e4e</md5>
<md5 pass="2">7f38851de05331e1b63661af4fd20e4e</md5>
<attempts>2</attempts>
</track>
<track number="8">
<filename>08 - Real Men.wav</filename>
<md5 pass="1">8bd285da1b83491938ecf6d163310c92</md5>
<md5 pass="2">8bd285da1b83491938ecf6d163310c92</md5>
<attempts>2</attempts>
</track>
<track number="9">
<filename>09 - Stranger than Fiction.wav</filename>
<md5 pass="1">ebccefc84001094a0fca64985bc720f7</md5>
<md5 pass="2">ebccefc84001094a0fca64985bc720f7</md5>
<attempts>2</attempts>
</track>
<track number="10">
<filename>10 - Glamour & Pain.wav</filename>
<md5 pass="1">e18840a4d0d8a43083384025e892abba</md5>
<md5 pass="2">e18840a4d0d8a43083384025e892abba</md5>
<attempts>2</attempts>
</track>
<track number="11">
<filename>11 - Target.wav</filename>
<md5 pass="1">0232e4d13b459e3960c11495b6a723c1</md5>
<md5 pass="2">0232e4d13b459e3960c11495b6a723c1</md5>
<attempts>2</attempts>
</track>
<track number="12">
<filename>12 - Just Because.wav</filename>
<md5 pass="1">1d0c3c929527fd7d91b3ebb132c40c76</md5>
<md5 pass="2">1d0c3c929527fd7d91b3ebb132c40c76</md5>
<attempts>2</attempts>
</track>
<track number="13">
<filename>13 - Got the Time.wav</filename>
<md5 pass="1">af1d98a36bb2d2f57068397efe642be7</md5>
<md5 pass="2">af1d98a36bb2d2f57068397efe642be7</md5>
<attempts>2</attempts>
</track>
<track number="14">
<filename>14 - Slow Song.wav</filename>
<md5 pass="1">7c0daa14ab96396f5aaa4a6d63005afd</md5>
<md5 pass="2">7c0daa14ab96396f5aaa4a6d63005afd</md5>
<attempts>2</attempts>
</track>
</tracks>
</linuxrip>
rudefyet
Oct 5 2006, 19:46
How does this compare with rubyripper?
Madman2003
Oct 5 2006, 19:53
Never tried rubyripper, because i already had my own thing when it came out.
I suppose i could try.
Madman2003
Oct 5 2006, 20:26
Initial impressions(compared to what i did):
pros:
- asks for config settings
cons:
- can't select cddb server (and it doesn't work for me)
- logs are not the way i would do them (plaintext for one)
- less choices for encoding
- lacking all the little bits and finetuning i'm used to
Not meant for me, but then again i wrote my own script which suits me better (how unexpected :-) ).
Rubyripper's dependency on libraries does make it a smaller codebase, the cli ripper was 200-250 lines of code. My efforts required much more code (one reason is the lack of modules for bash), around 2500 lines (although many lines are short).
rudefyet
Oct 5 2006, 20:41
I'm mainly curious if the ripping method is similar
I've been getting better results with rubyripper + cdparanoia, then any other ripper for Windows even
I would welcome the same/similar method of ripping and comparing w/ more configuration options, especially if it's all CLI
I will give it a shot in a bit, I'm currently running windows so I could update my drives firmware.
Some comments after first look at the sources:
- Is it possible to separate internally used scripts (and put in something like /usr[/local]/lib/linuxrip) from end user scripts (like linuxrip and createnfo)? It will be simple to package such project.
- I have no nano editor at all!
I prefer vim. Maybe better to get editor name from $EDITOR and (if it's unset) find (by 'which') available editor from small list? Nano in requirements is nice! 
- For simple arithmetics you can use shell $((expression)) instead of 'echo expression | bc' (and one dependencies will go away again).
Anyway it's a great work for shell only program. If my (mainly admin related) code begins grow too quick I'm switching to more high-level language like python.
Real ripper work I'll test later, sorry.
Madman2003
Oct 5 2006, 21:04
The method seems similar, but the difference is that my script has a load of options for small things. I'm basicly calling cdparanoia with a set of options (which is are definable), it makes md5's after each rip, compares them, does another rip checks if two matches, etc. Then stores them. Very similar approach in terms of ripping
HotshotGG
Oct 5 2006, 21:05
QUOTE
I'm mainly curious if the ripping method is similar
It's the wiki if you want to take a look at the correction mechanism. It's a fairly straightforward approach that makes sense logically. The lead developer did a good job explaining it. It doesn't gurantee an MD5 sum on each rip. The approach is very similar
Madman2003
Oct 5 2006, 21:08
QUOTE (iGold @ Oct 5 2006, 12:03)

Some comments after first look at the sources:
- Is it possible to separate internally used scripts (and put in something like /usr[/local]/lib/linuxrip) from end user scripts (like linuxrip and createnfo)? It will be simple to package such project.
- I have no nano editor at all!
I prefer vim. Maybe better to get editor name from $EDITOR and (if it's unset) find (by 'which') available editor from small list? Nano in requirements is nice! 
- For simple arithmetics you can use shell $((expression)) instead of 'echo expression | bc' (and one dependencies will go away again).
Anyway it's a great work for shell only program. If my (mainly admin related) code begins grow too quick I'm switching to more high-level language like python.
Real ripper work I'll test later, sorry.
I will make the text editor an option, thanks for the $(()) advice, i guess i'll slowly start using/converting that.
My attempt to properly intergrate into the filesystem was just a first attempt, i will change that as well (at some point).
VCSkier
Oct 6 2006, 01:04
this sounds great, i just wish it supported flac images w/ cue sheets... i'll check it out anyway. thanks madman2003!
Madman2003
Oct 6 2006, 11:57
QUOTE (VCSkier @ Oct 5 2006, 16:04)

this sounds great, i just wish it supported flac images w/ cue sheets... i'll check it out anyway. thanks madman2003!
Find me a console based cue sheet generator or something like that and i might reconsider adding it

(the last broken cue sheet handler was a load of code and didn't work very well and i don't want to write it myself atm).
I used cdrdao read-toc + cueconvert before switched to EAC under Wine. To embed later into FLAC as the metadata block it's enough.
Madman2003
Oct 6 2006, 12:38
There might a problem using $(()), since integer math doesn't always do it for me.
Try to use decimal point in first used operand, something like $((2./3)) or $(($n./3)).
Madman2003
Oct 6 2006, 13:31
QUOTE (iGold @ Oct 6 2006, 03:44)

Try to use decimal point in first used operand, something like $((2./3)) or $(($n./3)).
Doesn't work.
VCSkier
Oct 6 2006, 14:28
QUOTE (Madman2003 @ Oct 6 2006, 06:57)

QUOTE (VCSkier @ Oct 5 2006, 16:04)

this sounds great, i just wish it supported flac images w/ cue sheets... i'll check it out anyway. thanks madman2003!
Find me a console based cue sheet generator or something like that and i might reconsider adding it

(the last broken cue sheet handler was a load of code and didn't work very well and i don't want to write it myself atm).
mkcue is what abcde uses apparently. i just pulled that link up w/ google... i have no idea if its up-to-date or accurate...
QUOTE
mkcue generates cue sheets from a CD's TOC (Table Of Contents).
But what about pre-gap info? It can be found only from tracks itself, not from TOC. cdrdao read-toc can read it (and also ISRC).
Madman2003
Oct 6 2006, 16:10
QUOTE (iGold @ Oct 6 2006, 05:38)

QUOTE
mkcue generates cue sheets from a CD's TOC (Table Of Contents).
But what about pre-gap info? It can be found only from tracks itself, not from TOC. cdrdao read-toc can read it (and also ISRC).
For the moment i'm using cdrdao with quicktoc option, the base for flac+cue ripping is there. Just no support for tags in cue (which doesn't matter for the built in cue, but does for the external one).
Also added option for text editor.
Will be in the next version.
Madman2003
Oct 7 2006, 09:48
New version in start post.
Added choosable text editor and initial flac+cue sheet support.
Madman2003
Oct 15 2006, 17:03
Added version 0.091, which adds cue sheet support for multiple flac file ripping (probably expanded to other codecs in the future, just not yet :-) ). It needs testing, especially on tracks with subtracks or strange pregap tracks (i only tested normal pregaps on one cd).
EDIT: the style is very similar to eac's non-compliant cue sheets
VCSkier
Oct 16 2006, 08:30

i apologize if this is a very noobish request, but do any of you know of any online how-to's or anything that would teach me how to install things in ubuntu that are not any any repo's, and don't have deb's.
simply put, i'm very interested in linuxrip, but i have no idea how to use it...
Madman2003
Oct 16 2006, 17:31
There are two ways, making proper debs or just a package with no dependency checking or anything like that (a package just to be able to uninstall it).
(Source:
http://ubuntuforums.org/showthread.php?t=2683)checkinstall:
http://www.ubuntuforums.org/showthread.php?t=2356debian's maintainer guide (meant for developers):
http://www.debian.org/doc/maint-guide/In this case (because it's just a script and just for you) i would use checkinstall.
Mr_Rabid_Teddybear
Oct 17 2006, 13:39
Here's a somewhat simpler article too:
http://www.debian-administration.org/articles/336And some source packages (*.tar.gz or *.tar.bz2, usually) are nice enough to come with a "debian" directory. In which case you can build your *.deb by simply doing such in the root directory of the source:
fakeroot debian/rules binary
or, if you want to pass configure options:
DEB_BUILD_OPTIONS="--enable-something --enable-somethingelse" fakeroot debian/rules binary
variables are also possible:
CC=gcc-3.4 DEB_BUILD_OPTIONS="--enable-something" fakeroot debian/rules binary
then to clean:
fakeroot debian/rules clean
and to install:
dpkg -i somepackage.deb
But ofcourse, not all source packages are so well behaved. You can check out
CheckInstall as Madman2003 mentioned. But it doesn't always work. But if what it installs won't run; atleast you can simply uninstall what was installed, so it's no hassle.....
[EDIT]
Here's a tutorial on CheckInstall too:
http://www.debian-administration.org/articles/147And here are mentioned some of it's limitations:
http://asic-linux.com.mx/~izto/checkinstall/faq.phpPersonally I recently tried to use it on
FAAC 1.25. I could install it by first running "find . -type f -exec dos2unix -f '{}' \;" over the sources to get rid of all the DOS lineendings, then doing "./bootstrap" and then finally "./configure", "make" and "sudo make install". But I first tried "checkinstall" instead of "make install", but it didn't install several files or any of the symlinks, so the program wouldn't run. When using old "make install" I got a functioning program.....
[/EDIT]
Madman2003
Oct 18 2006, 11:56
If anyone has makefile suggestion's (if something doesn't work), then please recommend. Also keep in mind that this is just a script, so no compiling is needed. The makefile is just to facilitate a normal "way" of installing. I have never used debian or ubuntu, the install is only tested on gentoo.
VCSkier
Oct 23 2006, 07:01
on more quick question... can it be configured to encode to multiple formats from a single rip (aka WACK, REACT, etc)?
Madman2003
Oct 23 2006, 09:09
QUOTE (VCSkier @ Oct 22 2006, 22:01)

on more quick question... can it be configured to encode to multiple formats from a single rip (aka WACK, REACT, etc)?
Yes, in settings there are a bunch encodeXXX vars around, ripping can happen to all formats at once. There are a few limitations, cue sheets are only for flac (haven't got around to make it useable for more than one format), embedding log files only happens for flac and vorbis (the others i couldn't find a useable commandline tagger to embed it).
Enabling all formats will make ripping take a bit longer (it rips and encodes parallel, but the encode system uses a queue). So from a speed point of view i wouldn't go beyond 2 codecs (even on a modern computer).
VCSkier
Oct 23 2006, 16:44
cool, thanks.
marsanpin
Oct 26 2006, 16:59
Hi Madman2003 and thread participants,
I'v e been trying to use your script but must've missed something on the settings_file:
from ~/linuxrip, where i untarred the arch, i run
./linuxrip and get:
mario@ubuntu02:~/linuxrip-0.091$ ./linuxrip
Ripping to /dev/null
Select drive: (default is 1)
1: Drivename (/dev/cdrom)
2: ASUS (/dev/cdrom1)
2
./linuxrip: line 311: cdspeed: command not found
Select ripper: (default is 1)
1: cdparanoia
2: cdda2wav
1
A rex rip requires the '-X -z' switches for cdparanoia (Drive 2).
although I didn't enable the option nor have it installed 8-|
"rex", as well, is not enabled but linuxrip insists in cdparanoia config. switches.
Could any of you help me on getting this going? - Thanks a lot.
Below is my settings_file (in ~/linuxrip). BTW do I need to copy this settings_file to /etc/linuxrip ? and the "Makefile" ? does one have to run it? or...
#! /bin/bash
### These settings override the default linuxrip settings, uncomment what you want to change
### Base configuration, this needs to be set properly
## cdrom device location
#device[1]='/dev/cdrom'
device[2]='/dev/cdrom1'
## drivename, will only be put in nfo and xml file, array
#drivename[1]='Drivename1'
#drivename[2]='Asus'
## device id, only needed for cue sheet creation, use "cdrdao scanbus" for info
#deviceid[1]='ATA:0,0,0'
deviceid[2]='ATA:0,1,0'
## rippath
#rippath='/dev/null'
### Optional configuration, recommended to look at
## text editor command
texteditor='nano'
## maximum amount of rip attempts before giving up
defaultries='10'
## freedb server
cddbserver='freedb2.org'
## freedb user
cddbuser='linuxrip'
## FreeDB email address
cddbemail='localhost@localhost'
## cddb port number
cddbport='8880'
## interactive mode, 0 = no, 1 = yes
interactive='1'
## rip single file flac
ripsinglefile='1'
## toc read options, add --fast-toc to skip pregap detection
#readtocoptions=""
## generate cue, only for flac atm
generatecuefile='1'
## encode flac, 0 = no, 1 = yes
encodeflac='1'
## reference flac encoder options
flacoptions='-V -6'
## flake flac encoder options
#flakeoptions='-10'
## flake doesn't verify on it's own, so flac -t can be used for that
#flakeverify='1'
## flac encoder, 'flac' and 'flake' are the choices
#flacencoder='flac'
## encode wavpack, 0 = no, 1 = yes
#encodewavpack='0'
## wavpack encode options
#wavpackoptions=''
## encode mpc, 0 = no, 1 = yes
#encodempc='0'
## mpc encode options
#mpcoptions='--quality 8'
## encode ogg vorbis, 0 = no, 1 = yes
#encodevorbis='0'
## ogg vorbis encode options
#vorbisoptions='-q 8'
## encode mp3, i had better not catch you using this for storage purposes :-)
#encodemp3='0'
## mp3 encode options
#lameoptions='-V 2 --vbr-new'
## ripper, either cdparanoia or cdda2wav
#ripper[1]='cdparanoia'
#ripper[2]='cdda2wav'
## remove wav files, 0 =no, 1 = yes
#removewavs='1'
## folder template
#setfoldertemplate='1'
## file template
setfiletemplate='1'
## filetemplate 2: when exceeding 60 character base(xml file for example) filename(excluding extensions), it will switch to just "albumname.extension"
#maxfilenamecharacters='60'
## file tag
#filetag='anon'
## create nfo
#createnfo='1'
## add drivename to nfo and xml logfile, set drivename below
#adddrivename='1'
## add rippername to nfo, use 'none' if it should not be added
#rippername='none'
## track names (and other things) start with capital letters, even if cddb gives a small letter. 1=capital letter, 0=no capital letter.
capitalletter='1'
## noprocess means the tags will not be changed in any way
#noprocess='0'
## use cdparanoia instead of cd-discid to determine amount of tracks (cdparanoia ignores data tracks), 1=yes, 0=no
## note: with this option on the question if the amount of tracks is right will default to yes instead of having no default.
#improvedtrackdetect='1'
## verbose ripping output
verbose='1'
## use cdspeed to set maximum drive speed
#cdspeed='0'
#maximumspeed='15'
### Expert configuration
## script folder (automaticly determined from the current folder if autodetect, but this is the override)
#scriptpath='autodetect'
## set the drive read offset here, array
#driveoffset[1]='0'
#driveoffset[2]='0'
## cdparanoia options, array
#cdparanoiaoptions[1]="-X -z -O ${driveoffset[1]} -d ${device[1]}"
#cdparanoiaoptions[2]="-X -z -T ${driveoffset[2]} -d ${device[2]}"
## cdda2wav options, array
#cdda2wavoptions[1]="--paranoia --paraopts retries=999 -o ${driveoffset[1]} -D ${device[1]}"
#cdda2wavoptions[2]="--paranoia --paraopts retries=999 -o ${driveoffset[2]} -D ${device[2]}"
## some cd's have destructive copy protections, such as cds200, most drives are (probably) not capable of a 100% rip, be sure to listen very carefully to rips with this setting turned on
#allowmismatchingmd5s='0'
## manually edit info send from the cddb server, in case something is messed up a bit and rewriting costs a lot of time, only works for track names
#manuallyeditcddbinfo='0'
## create rips that are in line with the goals of the rex-guide (http://rex-guide.de.vu), rex guide only specifies exact audio copy atm
#rex='0'
## leo stands for Lossless Exact Original and should only be turned when ripping original cd's and rex switch is on
## this switch only affects a tag in the log and in the foldername
#leo='0'
TIA
Mario
...Just Elliott
Oct 30 2006, 21:09
QUOTE
It embeds logs into tags for flac and vorbis (which have a readily available commandline tagger).
Is this disableable, along with the logs? I don't like keeping clutter like that

And can I make it run a specified plugin after a full successful rip? (cover downloading)
Madman2003
Oct 30 2006, 22:48
QUOTE (...Just Elliott @ Oct 30 2006, 12:09)

QUOTE
It embeds logs into tags for flac and vorbis (which have a readily available commandline tagger).
Is this disableable, along with the logs? I don't like keeping clutter like that

And can I make it run a specified plugin after a full successful rip? (cover downloading)

I'll consider that a feature request for next version.
EDIT: do you mean you want to run a command from the rip folder? does any information need to be input to this command?
QUOTE (marsanpin @ Oct 26 2006, 07:59)

Hi Madman2003 and thread participants,
I'v e been trying to use your script but must've missed something on the settings_file:
from ~/linuxrip, where i untarred the arch, i run
./linuxrip and get:
.....
A few things, the only config file that exist (besides the script itself) is /etc/linuxrip/settings.
(i'll see if i can implement a per user config file).
If you want to change things from the default, then you must not have a commented (starts with #) option.
Uncomment it.
So edit the file /etc/linuxrip/settings and keep in mind that if you add a drive[2] all the other driverelated things like variable[1] must also have a variable[2].
If you want i can make a config file for you as example. I recommend this, because i have a feeling you are making some mistakes (which will reveal what i cannot assume).
EDIT: normally you shouldn't edit the script itself
...Just Elliott
Oct 30 2006, 23:07
QUOTE (Madman2003 @ Oct 30 2006, 21:48)

QUOTE (...Just Elliott @ Oct 30 2006, 12:09)

QUOTE
It embeds logs into tags for flac and vorbis (which have a readily available commandline tagger).
Is this disableable, along with the logs? I don't like keeping clutter like that

And can I make it run a specified plugin after a full successful rip? (cover downloading)

I'll consider that a feature request for next version.
EDIT: do you mean you want to run a command from the rip folder? does any information need to be input to this command?
Information insofar as the directory names. But yeah, commands from the rip folder.
VCSkier
Oct 31 2006, 07:53
I'm embarrassed to say that I have still not gotten this working. I'm convinced that there is something simple that I have missed, and please forgive me for my ignorance. I checked to make sure that I had all of the dependencies. I extracted the tar.gz, cd'ed into the directory ran sudo checkinstall; it created and installed the deb happily. I then opened up /etc/linuxrip/settings and edited all of the settings that pertained to me, un-commenting all of the lines that I changed. I then saved it, and opened a new terminal window and ran the command "linuxrip". Ubuntu reminded me...
CODE
bash: /usr/bin/linuxrip: Permission denied
So I tried again... "
sudo linuxrip" Here was the output.
CODE
reed@ubuntuedgy:~$ sudo linuxrip
Password:
/usr/bin/linuxrip: 49: device[1]=/dev/cdrom: not found
/usr/bin/linuxrip: 52: deviceid[1]=ATA:0,0,0: not found
/usr/bin/linuxrip: 55: drivename[1]=Drivename: not found
/usr/bin/linuxrip: 133: ripper[1]=cdparanoia: not found
/usr/bin/linuxrip: 134: ripper[2]=cdda2wav: not found
/usr/bin/linuxrip: 180: driveoffset[1]=0: not found
/usr/bin/linuxrip: 183: Syntax error: Bad substitution
So basically, nothing worked.

I'm sorry guys... Here's the first part of my /etc/linuxrip/settings file, if it helps. If you need the rest of it, let me know, it was just too long to post.
CODE
#! /bin/bash
### These settings override the default linuxrip settings, uncomment what you want to change
### Base configuration, this needs to be set properly
## cdrom device location
device[1]='/dev/cdrom'
#device[2]='/dev/cdrom1'
## drivename, will only be put in nfo and xml file, array
drivename[1]='LG Electronics - RW-DVD GCC-4242N'
#drivename[2]='Drivename2'
## device id, only needed for cue sheet creation, use "cdrdao scanbus" for info
deviceid[1]='ATA:1,0,0'
#deviceid[2]='ATA:0,0,0'
## rippath
rippath='/dev/null'
My goal is to output flac files (for now; in the future, when I figure out how to split and transcode images, I will do images)
and LAME mp3's (-V5).
And just for good measure, I'm running Ubuntu Edgy on a Pentium M Laptop. Thanks
edit: i appologize for the very long original post... i thought because i wrapped my settings file in code tags, it would have been scaled down, and given a scroll bar. i've taken most of the settings file out. if you need the rest of it to diagnose the problem, let me know and i'll put it back up, or send it to you in a pm.
Madman2003
Oct 31 2006, 10:31
QUOTE (VCSkier @ Oct 30 2006, 22:53)

I'm embarrassed to say that I have still not gotten this working. I'm convinced that there is something simple that I have missed, and please forgive me for my ignorance. I checked to make sure that I had all of the dependencies. I extracted the tar.gz, cd'ed into the directory ran sudo checkinstall; it created and installed the deb happily. I then opened up /etc/linuxrip/settings and edited all of the settings that pertained to me, un-commenting all of the lines that I changed. I then saved it, and opened a new terminal window and ran the command "linuxrip". Ubuntu reminded me...
CODE
bash: /usr/bin/linuxrip: Permission denied
So I tried again... "
sudo linuxrip" Here was the output.
CODE
reed@ubuntuedgy:~$ sudo linuxrip
Password:
/usr/bin/linuxrip: 49: device[1]=/dev/cdrom: not found
/usr/bin/linuxrip: 52: deviceid[1]=ATA:0,0,0: not found
/usr/bin/linuxrip: 55: drivename[1]=Drivename: not found
/usr/bin/linuxrip: 133: ripper[1]=cdparanoia: not found
/usr/bin/linuxrip: 134: ripper[2]=cdda2wav: not found
/usr/bin/linuxrip: 180: driveoffset[1]=0: not found
/usr/bin/linuxrip: 183: Syntax error: Bad substitution
So basically, nothing worked.

I'm sorry guys... Here's the first part of my /etc/linuxrip/settings file, if it helps. If you need the rest of it, let me know, it was just too long to post.
CODE
#! /bin/bash
### These settings override the default linuxrip settings, uncomment what you want to change
### Base configuration, this needs to be set properly
## cdrom device location
device[1]='/dev/cdrom'
#device[2]='/dev/cdrom1'
## drivename, will only be put in nfo and xml file, array
drivename[1]='LG Electronics - RW-DVD GCC-4242N'
#drivename[2]='Drivename2'
## device id, only needed for cue sheet creation, use "cdrdao scanbus" for info
deviceid[1]='ATA:1,0,0'
#deviceid[2]='ATA:0,0,0'
## rippath
rippath='/dev/null'
My goal is to output flac files (for now; in the future, when I figure out how to split and transcode images, I will do images)
and LAME mp3's (-V5).
And just for good measure, I'm running Ubuntu Edgy on a Pentium M Laptop. Thanks
edit: i appologize for the very long original post... i thought because i wrapped my settings file in code tags, it would have been scaled down, and given a scroll bar. i've taken most of the settings file out. if you need the rest of it to diagnose the problem, let me know and i'll put it back up, or send it to you in a pm.
This smells of strange issues, either permission related (a normal user should be able to rip). Or some kind of shell problem. I'm not quite sure without diagnosing the problem myself. So i'm going to be bold and ask if you can create an account for me if you have a ssh server (if and when questions lead nowhere). But first there are one or two things you can try.
What are the permissions of linuxrip? (ls -l /usr/bin/linuxrip)
Do the commands 'bash' and 'sh' work properly? (both should produce shells, looking a bit different)
At worst you can do a debug run of linuxrip and dump it into a file. (sh -x /usr/bin/linuxrip &> ~/linuxripdump.txt) And give me that file. If that reveals nothing, i probably can't help without interactive acces to your system. But let's first try this
...Just Elliott
Oct 31 2006, 12:22
Could I include a frontend to this in my in-planning-stages MPD client written with ruby/Qt? I'd make it say "You do not appear to have linuxrip. Click OK to go to a place where you can download it" going to this thread, or I'd bundle it if you'd allow that - I'd give proper credit in the interface, of course.
Madman2003
Oct 31 2006, 15:38
If the license will be gplv2 you didn't even have to ask. Still i would prefer that you link to this thread (or some other place at a future time). You do know this script was never made to interface with a gui?
...Just Elliott
Oct 31 2006, 15:44
QUOTE (Madman2003 @ Oct 31 2006, 14:38)

If the license will be gplv2 you didn't even have to ask. Still i would prefer that you link to this thread (or some other place at a future time).
Yes, of course

QUOTE
You do know this script was never made to interface with a gui?
Neither was DOS... and look where windows is now

(let's avoid "at the bottom" remarks

)
VCSkier
Oct 31 2006, 15:58
here's what i have.
CODE
reed@ubuntuedgy:~$ ls -l /usr/bin/linuxrip
-rwxr--r-- 1 root root 49858 2006-10-31 01:05 /usr/bin/linuxrip
"bash" didn't seem to do anything (no error messages, just a new, identical terminal line was entered, just like as if i had hit *enter* with no command).
CODE
reed@ubuntuedgy:~$ bash
reed@ubuntuedgy:~$
So then, I tried "sudo bash"
CODE
reed@ubuntuedgy:~$ sudo bash
Password:
root@ubuntuedgy:~#
I then closed my terminal window, and opened a new one, so I would be back to standard user rights, then I entered "sh"
CODE
reed@ubuntuedgy:~$ sh
$
Finally, here's what was returned after the debug run of linuxrip.
CODE
reed@ubuntuedgy:~$ sh -x /usr/bin/linuxrip
+ linuxripversion=0.091
+ logversion=0.05
+ device[1]=/dev/cdrom
/usr/bin/linuxrip: 1: device[1]=/dev/cdrom: not found
+ deviceid[1]=ATA:0,0,0
/usr/bin/linuxrip: 1: deviceid[1]=ATA:0,0,0: not found
+ drivename[1]=Drivename
/usr/bin/linuxrip: 1: drivename[1]=Drivename: not found
+ rippath=/dev/null
+ texteditor=nano
+ defaultries=10
+ cddbserver=freedb2.org
+ cddbuser=linuxrip
+ cddbemail=localhost@localhost
+ cddbport=8880
+ interactive=1
+ ripsinglefile=0
+ readtocoptions=
+ generatecuefile=1
+ encodeflac=1
+ flacoptions=-V -6
+ flakeoptions=-10
+ flakeverify=1
+ flacencoder=flac
+ encodewavpack=0
+ wavpackoptions=
+ encodempc=0
+ mpcoptions=--quality 8
+ encodevorbis=0
+ vorbisoptions=-q 8
+ encodemp3=0
+ lameoptions=-V 2 --vbr-new
+ ripper[1]=cdparanoia
/usr/bin/linuxrip: 1: ripper[1]=cdparanoia: not found
+ ripper[2]=cdda2wav
/usr/bin/linuxrip: 1: ripper[2]=cdda2wav: not found
+ removewavs=1
+ setfoldertemplate=3
+ setfiletemplate=3
+ maxfilenamecharacters=60
+ filetag=anon
+ createnfo=1
+ adddrivename=1
+ rippername=none
+ capitalletter=1
+ noprocess=0
+ improvedtrackdetect=1
+ verbose=0
+ cdspeed=1
+ maximumspeed=15
+ driveoffset[1]=0
/usr/bin/linuxrip: 1: driveoffset[1]=0: not found
/usr/bin/linuxrip: 183: Syntax error: Bad substitution
thanks again!
Madman2003
Oct 31 2006, 16:47
I have a theory, your bash does not support arrays. Which version of bash do you have?
VCSkier
Oct 31 2006, 17:06
My package manager reports bash 3.1-5ubuntu3. Its the default in Ubuntu Edgy.
Madman2003
Oct 31 2006, 17:19
QUOTE (VCSkier @ Oct 31 2006, 08:06)

My package manager reports bash 3.1-5ubuntu3. Its the default in Ubuntu Edgy.
Please ask the ubuntu people if the configure option --enable-array-variables was used or how you can find out.
VCSkier
Oct 31 2006, 17:28
QUOTE (Madman2003 @ Oct 31 2006, 12:19)

QUOTE (VCSkier @ Oct 31 2006, 08:06)

My package manager reports bash 3.1-5ubuntu3. Its the default in Ubuntu Edgy.
Please ask the ubuntu people if the configure option --enable-array-variables was used or how you can find out.
Ok, I'll get around to that soon, but I just noticed that what I posted in post 38 does not resemble the settings I had previously set in my /etc/linuxrip/settings file. For instance, I has set LAME to use -V5, but the default -V2 is what was returned. Is this to be expected?
QUOTE (VCSkier @ Oct 31 2006, 19:58)

here's what i have.
CODE
reed@ubuntuedgy:~$ ls -l /usr/bin/linuxrip
-rwxr--r-- 1 root root 49858 2006-10-31 01:05 /usr/bin/linuxrip
You have no execute permission as user, only owner of the file (root) can run it. Try "sudo chmod 755 /usr/bin/linuxrip" and also for others similar executables from the linuxrip bandle. May be it will help.
VCSkier
Oct 31 2006, 21:39
How can I tell which other files need to be chmod'd?
VCSkier
Oct 31 2006, 22:10
I chmod'd /etc/linux/settings, then I tried linuxrip again, and it started working. It threw up an error message regarding permissions about /usr/lib/linuxrip/nfowriter and /usr/lib/linuxrip/xmlwriter. So I then ran the chmod command on each of them, and now it's running (apparently) sucessfully! Thanks everyone who has taken the time to read my ignorant questions... lol. So far, I'm very happy about linuxrip. Thanks Madman2003. I'll probably be back with more questions/comments later, after I get to play around with some things.
So far, the only thing that I would have different is the lack of verbose nature of linuxrip's usage of cdparanoia. abcde shows a progress bar of cdparanoia's progress through each track, right inside the terminal. Is there a way to make linuxrip do this? I should look at the settings file more carefully.
edit: typo's
edit2: Oh, and what version of cdspeed do you use? I google'd and came across the source for a version 0.4, and I installed it, but I had a hard time finding anything about it. Is there a more recent version that someone could share?
Madman2003
Oct 31 2006, 22:25
QUOTE (VCSkier @ Oct 31 2006, 13:10)

I chmod'd /etc/linux/settings, then I tried linuxrip again, and it started working. It threw up an error message regarding permissions about /usr/lib/linuxrip/nfowriter and /usr/lib/linuxrip/xmlwriter. So I then ran the chmod command on each of them, and now it's running (apparently) sucessfully! Thanks everyone who has taken the time to read my ignorant questions... lol. So far, I'm very happy about linuxrip. Thanks Madman2003. I'll probably be back with more questions/comments later, after I get to play around with some things.
So far, the only thing that I would have different is the lack of verbose nature of linuxrip's usage of cdparanoia. abcde shows a progress bar of cdparanoia's progress through each track, right inside the terminal. Is there a way to make linuxrip do this?
edit: typo's
edit2: Oh, and what version of cdspeed do you use? I google'd and came across the source for a version 0.4, and I installed it, but I had a hard time finding anything about it. Is there a more recent version that someone could share?
Currently you have two choices, either you get no feedback or the normal cdparanoia output. It's a verbose something option.
About the lame level, did you uncomment the parameter in settings?
This is the ebuild gentoo uses for cdspeed-0.4
VCSkier
Nov 1 2006, 05:51
Everything seems to be working excellent for the most part. At the end of the rip process, this was displayed (starting with the successful rip of the last track, track 12):
CODE
Track 12: Success! Encoding track ...
Replaygaining files ...
Creating cue file...
(standard_in) 2: parse error
(standard_in) 2: parse error
(standard_in) 2: parse error
(standard_in) 2: parse error
(standard_in) 2: parse error
(standard_in) 2: parse error
(standard_in) 2: parse error
(standard_in) 2: parse error
(standard_in) 2: parse error
(standard_in) 2: parse error
(standard_in) 2: parse error
(standard_in) 2: parse error
/usr/bin/linuxrip: line 1415: /home/reed/rip/00 - Jars of Clay - Good Monsters (2006).toc: No such file or directory
rm: cannot remove `/home/reed/rip/00 - Jars of Clay - Good Monsters (2006).toc': No such file or directory
/usr/bin/linuxrip: line 1459: ((: 1 <= : syntax error: operand expected (error token is " ")
/usr/bin/linuxrip: line 1479: ((: > 0 : syntax error: operand expected (error token is "> 0 ")
/usr/bin/linuxrip: line 1479: ((: > 0 : syntax error: operand expected (error token is "> 0 ")
/usr/bin/linuxrip: line 1479: ((: > 0 : syntax error: operand expected (error token is "> 0 ")
/usr/bin/linuxrip: line 1479: ((: > 0 : syntax error: operand expected (error token is "> 0 ")
/usr/bin/linuxrip: line 1479: ((: > 0 : syntax error: operand expected (error token is "> 0 ")
/usr/bin/linuxrip: line 1479: ((: > 0 : syntax error: operand expected (error token is "> 0 ")
/usr/bin/linuxrip: line 1479: ((: > 0 : syntax error: operand expected (error token is "> 0 ")
/usr/bin/linuxrip: line 1479: ((: > 0 : syntax error: operand expected (error token is "> 0 ")
/usr/bin/linuxrip: line 1479: ((: > 0 : syntax error: operand expected (error token is "> 0 ")
/usr/bin/linuxrip: line 1479: ((: > 0 : syntax error: operand expected (error token is "> 0 ")
/usr/bin/linuxrip: line 1479: ((: > 0 : syntax error: operand expected (error token is "> 0 ")
/usr/bin/linuxrip: line 1479: ((: > 0 : syntax error: operand expected (error token is "> 0 ")
Creating md5 file(s)
Creating m3u file(s)
Ripping complete!
I haven't been able to test out my cue file yet, but I'm curious what those error's mean.
Also, turning off the "capital letter" settings seems to lowercase all of my letters. I would like to have the files tagged with the same capitalization as the cddb entry, and then have the option to edit the capitalizations just before the rip, if there are any errors. Sorry, that is what the noprocess settings is for... I'm dumb sometimes.Thanks Madman2003, that was the same version of cdspeed that I found and was using, and the lame settings is fixed, now that I chmod'd the necessary files.

Overall, I'm very happy with linuxrip. I think it will become my primary means of ripping for the time being.
Madman2003
Nov 1 2006, 10:01
If i had to guess you have cue sheet creation on and don't have cdrdao installed, or i made assumptions that don't work over there. Does the command cdrdao exist?
EDIT: The lack of toc file suggest if there even if is a cue sheet, it's a big mess containing mostly junk (the toc file is used to create the cue sheet).
VCSkier
Nov 1 2006, 17:55
cdrdao seems to be installed properly...
CODE
reed@ubuntuedgy:~$ cdrdao
Cdrdao version 1.2.2 - (C) Andreas Mueller <andreas@daneb.de>
SCSI interface library - (C) Joerg Schilling
Paranoia DAE library - (C) Monty
...
Here are the contents of my cuesheet.
CODE
REM GENRE "Rock"
REM DATE "2006"
REM COMMENT "linuxrip 0.091"
PERFORMER "Jars of Clay"
TITLE "Good Monsters"
FILE "01 - Work.flac" WAVE
FILE "02 - Dead Man (carry Me).flac" WAVE
FILE "03 - All My Tears.flac" WAVE
FILE "04 - Even Angels Cry.flac" WAVE
FILE "05 - There Is a River.flac" WAVE
FILE "06 - Good Monsters.flac" WAVE
FILE "07 - Oh My God.flac" WAVE
FILE "08 - Surprise.flac" WAVE
FILE "09 - Take Me Higher.flac" WAVE
FILE "10 - Mirrors & Smoke.flac" WAVE
FILE "11 - Light Gives Heat.flac" WAVE
FILE "12 - Water Under the Bridge.flac" WAVE
I'm still trying to find a program that can burn cd's from cuesheets, so I don't have any way to test it out, but it looks fine to me...
Madman2003
Nov 1 2006, 18:27
QUOTE (VCSkier @ Nov 1 2006, 08:55)

cdrdao seems to be installed properly...
CODE
reed@ubuntuedgy:~$ cdrdao
Cdrdao version 1.2.2 - (C) Andreas Mueller <andreas@daneb.de>
SCSI interface library - (C) Joerg Schilling
Paranoia DAE library - (C) Monty
...
Here are the contents of my cuesheet.
CODE
REM GENRE "Rock"
REM DATE "2006"
REM COMMENT "linuxrip 0.091"
PERFORMER "Jars of Clay"
TITLE "Good Monsters"
FILE "01 - Work.flac" WAVE
FILE "02 - Dead Man (carry Me).flac" WAVE
FILE "03 - All My Tears.flac" WAVE
FILE "04 - Even Angels Cry.flac" WAVE
FILE "05 - There Is a River.flac" WAVE
FILE "06 - Good Monsters.flac" WAVE
FILE "07 - Oh My God.flac" WAVE
FILE "08 - Surprise.flac" WAVE
FILE "09 - Take Me Higher.flac" WAVE
FILE "10 - Mirrors & Smoke.flac" WAVE
FILE "11 - Light Gives Heat.flac" WAVE
FILE "12 - Water Under the Bridge.flac" WAVE
I'm still trying to find a program that can burn cd's from cuesheets, so I don't have any way to test it out, but it looks fine to me...
I can assure you this is very wrong. This doesn't mention start times of tracks or anything like that.
Could you give me the output of 'cdrdao scanbus', i suspect the problem may lie with a improperly chosen drive (which only affects cue creation).
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please
click here.