crip  
Charlton's RIP, encode, and tag script for making music files under Linux/UNIX.
Introduction            Documentation            Screenshots            Download            FAQ


crip tutorial - last updated:  Tue Nov 12 21:56:26 CST 2002
-------------------------------------------------------------------------------

This tutorial was written to show how to use crip.
It also serves newcomers as an easy way to see the process of using crip
to create professional-quality and properly labeled music files.

This tutorial was written for v2.5 of crip.  If you are still into making
MP3 files (now obsolete) look at the README for crip v1.0.

-----------------------------------------------------------------------------

USAGE:
------

The following is an example of a crip session that I cut-and-pasted from
my terminal (notice that the first line is the shell from which I ran crip).

For an explanation on how to answer the questions that are prompted to you,
scroll down past the example.  This document is intended to be the crip
tutorial as well as the documentation.

[=============================================================================]
bach /u3/rip (116)>crip
crip v2.5 (http://bach.dynet.com/crip)
Encoder: OggEnc v1.0 (libvorbis 1.0) -q 4
Retrieving Disc Information...
Retrieving CDDB Information...

DiscID:   740cad08
cddbID:   740cad08
artist:   Beethoven
title:    Symphonies Nos.1 & 2
category: misc

total number of tracks: 8
track  1:      182 -    36569  [ 8:05.16]: Symphony No.1£º1. Adagio molto
track  2:    36570 -    66831  [ 6:43.48]: Symphony No.1£º2. Andante cantabile con moto
track  3:    66832 -    85381  [ 4:07.32]: Symphony No.1£º3. Menuetto
track  4:    85382 -   109081  [ 5:15.98]: Symphony No.1£º4. Adagio - Allegro molto e vivace
track  5:   109082 -   158631  [11:00.65]: Symphony No.2£º1. Adagio molto
track  6:   158632 -   199331  [ 9:02.65]: Symphony No.2£º2. Larghetto
track  7:   199332 -   215569  [ 3:36.49]: Symphony No.2£º3. Scherzo. Allegro
track  8:   215570 -   243556  [ 6:13.14]: Symphony No.2£º4. Allegro molto



Enter the track numbers that you want to go in each group.
Delimit the track numbers in each line by a space.  Each line
represents a different group that will be normalized & trimmed.
You can also enter "all" or "each" for grouping all tracks as
one group, or each track as a separate group respectively.

Note that only the tracks you specify will be ripped.
Also note that if you mention a track more than once in a list it
will be unnecessarily ripped more than once (don't do it).
If input is "all" or "each" then the entire CD is ripped.
Type "end" to go on to the next section.

> 1 2 3 4

> 5 6 7 8

> end


Here are the lists of tracks you picked:

1 2 3 4 
5 6 7 8 

Enter the genre for this album (single space = null): [misc]: classical
Since this is classical, there should be a composer.
If the composer is different for each group/list, just set the
value to null and add the composer tag manually with each list.
Enter composer (single space = null): [Beethoven]: Ludwig van Beethoven
Would you like to set the artist and miscellaneous labelling info for
the whole CD right now, or would you prefer to set it for each list?
(list/cd) [list]: 
Enter album name (single space = null): [Symphonies Nos.1 & 2]: 
Enter label name (single space = null): []: Arte Nova Classics
Enter label catalog number (single space = null): []: 74321 63645 2

Here is some of the info that will go into the tag:
***************************************************
Disc ID: 740cad08
Album:   Symphonies Nos.1 & 2
Genre:   classical
***************************************************

Track/filename labeling section...
Enter a single space to go back.

New List

Name for track 1 - [Beethoven_-_Symphony_No11_Adagio_molto]: Beethoven_-_Symphony_1_1
Naming track 1 to Beethoven_-_Symphony_1_1
Name for track 2 - [Beethoven_-_Symphony_No12_Andante_cantabile_con_moto]: Beethoven_-_Symphony_1_2
Naming track 2 to Beethoven_-_Symphony_1_2
Name for track 3 - [Beethoven_-_Symphony_No13_Menuetto]: Beethoven_-_Symphony_1_3
Naming track 3 to Beethoven_-_Symphony_1_3
Name for track 4 - [Beethoven_-_Symphony_No14_Adagio__Allegro_molto_e_vivace]: Beethoven_-_Symphony_1_4
Naming track 4 to Beethoven_-_Symphony_1_4
-------------------------------------------------------------------------------
Enter conductor.  If there isn't one, enter null.
 (single space = null): [Beethoven]: David Zinman            
You have entered a conductor so this will be your artist's name.

Enter the date of recording -
(formatting notes: no format is specifically required, but it is definitely
 preferable to include all FOUR digits of the year,  and since it'll never
 always be clear whether it's MM-DD or DD-MM, it is actually preferable
 to spell out the month (at least the first 3 letters anyway) and then the day,
 but if you really want to use a numeric format, chose the ISO-8601 standard
 (YYYY-MM-DD),  however note that it may still be unclear to some which number
 is the month and which is the day.  So I recomment "March 24, 1994",
 "March, 1994", or "1994" (depending on how much information you have).
Enter the date of recording (single space = null): [don't put one]: December, 1998
Type the name of a field tag that you'd like to add to
 all these .ogg files (or make up your own field tag name).
You can enter the fieldname then enter the data for that fieldname,
or you can enter fieldname=data all on one line.

Possible tag recommendations:
  ensemble  opus
  location  performer  copyright  license

Just press  (with nothing on the line) to finish.
ensemble=Tonhalle Orchestra Zurich
location=Zurich Tonhalle, Switzerland
opus=Op.21


New List

Name for track 5 - [Beethoven_-_Symphony_No21_Adagio_molto]: Beethoven_-_Symphony_2_1
Naming track 5 to Beethoven_-_Symphony_2_1
Name for track 6 - [Beethoven_-_Symphony_No22_Larghetto]: Beethoven_-_Symphony_2_2
Naming track 6 to Beethoven_-_Symphony_2_2
Name for track 7 - [Beethoven_-_Symphony_No23_Scherzo_Allegro]: Beethoven_-_Symphony_2_3
Naming track 7 to Beethoven_-_Symphony_2_3
Name for track 8 - [Beethoven_-_Symphony_No24_Allegro_molto]: Beethoven_-_Symphony_2_4
Naming track 8 to Beethoven_-_Symphony_2_4
-------------------------------------------------------------------------------
Enter conductor.  If there isn't one, enter null.
 (single space = null): [David Zinman]: 
You have entered a conductor so this will be your artist's name.
Enter the date of recording (single space = null): [December, 1998]: 
Type the name of a field tag that you'd like to add to
 all these .ogg files (or make up your own field tag name).
You can enter the fieldname then enter the data for that fieldname,
or you can enter fieldname=data all on one line.

Possible tag recommendations:
  ensemble  opus
  location  performer  copyright  license

Just press  (with nothing on the line) to finish.
ensemble=Tonhalle Orchestra Zurich
location=Zurich Tonhalle, Switzerland
opus=Op.36




Ready to Rip!!!
Press  to continue (or ctrl-C to quit):
[=============================================================================]

As you can see in the above example,  I have chosen to make .ogg files of
Beethoven's 1st and 2nd symphonies.


When you run crip the first thing you will see is a listing of the tracks
and their titles (provided it can connect to the CDDB database and find
the CD info).  It doesn't matter too much if it's not there though.  The
information is just used to populate the defaults for the filenames and
tags in order to help you name and label your .ogg files.

The first prompt you get is a ">" where I just typed in the numbers of the
tracks (seperated by spaces) I wanted to rip & encode.  On the first line
I typed "1 2 3 4" and pressed .  This corresponded to the first
piece, or, the first group of tracks.  On the second line I typed
"5 6 7 8" and pressed .  This was the 2nd piece/group/list.
I then typed 'end' on a line by itself to go on to the next phase.

At the ">" prompt you can also type 'each' or 'all'.  'each' will
group each track separately as individual songs/pieces.  This is probably
what you'd want to do on most non-classical CDs.  'all' will treat all
tracks on the CD as one group.  Each group will have silence trimmed
from the beginning of the first track of that group,  and from the end of
the last track of that group (if you have $trimsilence set to "on" - which
it is by default),  and if the group is just one track,  silence will be
trimmed from the beginning and end of that track.

Also each track in a group is vorbisgained/normalized to the same level.
By default normalization is turned off though because it is technically
inferior to using vorbisgain.  And vorbisgain/replaygain is fast becoming
the standard for volume equalization.

To normalize means that the volume of the track(s) will be adjusted to the
loudest possible level without losing information (quality).  When I refer
to trimming,  I mean to trim off the silence from the beginning and end
of each group.  What I mean by silence is all of the zeros at the
beginning and end of the .wav file(s) to be trimmed.  There may still be
some silence as part of the recording that gets encoded.  But at least
it will probably be trimmed a little bit.

For the next few prompts,  it will ask information that will go in the
tags of the file.  Most of this information is nice to have,  but not
mandatory.  So if you want to leave something blank just enter a single
space.  Just hitting enter will accept the default (usually picked from
the CDDB info).  Keep in mind though that you really should have all this
information populated where applicable because many people want to be able
to populate a database (with all corresponding artist, performer, and
recording info) automatically straight from the tag information of the
music file.  Also it is preferable to use a character-mapping application
(like Gnome Character Map) in order to type those foreign names properly
into your artist info or wherever.

Next it will ask you to enter the genre of the CD.  It is expected that you
will answer in all lower case,  but if the first letter is capitalized
that's okay.

Then, depending on if the genre is classical it will ask for a composer.
For this field (as well as conductor and performer) I usually put the
full name of the composer with the firstname first and the lastname last.

Note that if you have different groups of pieces by different composers
on the same CD,  just enter null (single space) here and specify the
composer in each list.  Since the vast majority of classical CDs have
all one composer's pieces on them,  this question is asked here instead
of on each group/list.

Once I had a CD that had classical composers and performers but the CDDB
info claimed it was jazz (and indeed it was).  I entered the genre as jazz
but found I needed to include composer, conductor, ensemble, and performer
fields manually.  I was able to do this manually,  but since this CD is the
exception and not the rule, I wouldn't want crip to ask all these fields for
every jazz CD.  So I only have it ask these fields for the classical genre.

You will then be asked if you want to label per list or for the whole CD.
Enter "list" or "cd" depending on which you want.  You will probably want
to just go with the default.  But labeling by "list" makes it possible to
give different information for each piece/group/list (I use these 3 words
interchangably, sorry).

Next you will be prompted for the album name.  Again this will be defaulted
to what came from the CDDB database query (unless no CDDB info could be
found).

For non-classical CDs,  you will be asked for an album abbreviation.
This field is not necessary,  but I typically like to have my files
named like this:

Artist_-_AB04_Song_Name.ogg

Where "AB" is the album abbreviation and "04" is the track from that
album.  This way if you have a whole bunch of OGGs like this in a
directory,  the filenames are ordered in the same way the tracks are
on the CD,  and not by alphabetical order of the Song Name.

Next is the label and labelno tags.  Filling these out is generally a
good idea because almost ALL CDs have a label name (such as "Deutsche
Grammophon" or "Sony Classical" or "Windham Hill").  Also if it has a
label then it is bound to have a label number (usually can be found on
the spine of the CD case).  This information is important so include it.
It's easy enough and you only have to enter it once per CD.

Next it'll spit out some (but not all) of the info it'll put in the tags.
After that is the individual filename queries.  Put what you want the
script to name your files (minus the .ogg extension).  For non-classical
CDs I find that all I have to do is hit  to accept the defaults
because they are almost always right-on.  For classical CDs I usually
give it a filename and use the 'cut-and-paste' as needed.  If you make
any mistakes,  you can go back by entering a single space on a line by
itself.  You will then be able to rename the last track that you have
entered.  You can keep going back by entering a single space on each
line,  but you will have to retype all the names again when you go
forward.

When you finished entering the filenames for the files in your list,  it
will then ask you some additional questions.  It will ask you the date of
the recording,  which is always VERY important to have in your OGG tags.
Note that this should be the date of the RECORDING,  not when the piece
was written,  or when the recording was mastered, or anything else.
Some people put the copyright date or the "circle-P" date.  This is NOT
correct.  Look inside the documentation that came with the CD to find
this information.  It is sometimes hard to find,  but it is always
valuable to have.

Finally it will ask you to put your own specific tags for that list/cd.
This is where you can put various performers and other information that
seems appropriate to include with the music.  You can either type these
by entering "fieldname=data" on each line,  or you can just enter the
fieldname,  and then it'll prompt you for the data (if there's no "=" on
the line it'll assume this is the case).
When you've finished just hit  on a line by itself.

Once you've finished all your lists it'll prompt you that it's ready
to rip!  Now you can press  and go have a beer.

The script uses cdparanoia to rip,  oggenc to encode,  and vorbiscomment
to add the tags.  The time it will take varies greatly by the speed of
your CPU and the speed at which your CDROM drive is capable ot ripping
under cdparanoia.  If cdparanoia detects that your CDROM drive made a
mistake while ripping,  it will re-rip that frame of the CD until
it is ripped correctly.  So if you have a weird CD it may take a
long time to rip it.  If you have a bad CD it may just take forever.
So if you come back to your computer in an hour or so and there is
no progress being made with cdparanoia,  you may have to kill the
cdparanoia process.  At which point the script will encode what
it has and exit.  You will need to redo all tracks after the
track that was hung.  This is unfortunate,  but it should only
happen if you have a bad CD.  The speed of your CPU will make a
difference on how fast the file gets encoded.  Also note that you CAN
change the cdparanoia command-line down in the script to not include the
'-z' option if you don't want to have to face the possibility of having
cdparanoia hung on you after entering all that info!  But then it is
possible to have imperfect rips so I just leave the '-z' in by default.

With my Plextor UltraPlex (12/20) drive and Pentium-III 500,  it
usually takes about an hour to rip & encode a CD.

After everything is done scroll back and look at what was tagged.
In the above example the output looked like this for the first file:
[=============================================================================]
Encoding Beethoven_-_Symphony_1_1
Opening with wav module: WAV file reader
Encoding "Beethoven_-_Symphony_1_1" to 
         "Beethoven_-_Symphony_1_1.ogg" 
at quality 4.00
	[100.0%] [ 0m00s remaining] |

Done encoding file "Beethoven_-_Symphony_1_1.ogg"

	File length:  8m 05.0s
	Elapsed time: 4m 00.2s
	Rate:         2.0201
	Average bitrate: 113.2 kb/s

Tagging Beethoven_-_Symphony_1_1.ogg
title=Symphony No.1£º1. Adagio molto
artist=David Zinman
album=Symphonies Nos.1 & 2
date=December, 1998
genre=classical
tracknumber=01
comment=Produced using crip v2.5 (http://bach.dynet.com/crip) on Tue Nov 12 21:55:21 CST 2002
contact=charlton@dynet.com
sourcemedia=CD
discid=740cad08
encoding=OggEnc v1.0 (libvorbis 1.0) -q 4
composer=Ludwig van Beethoven
conductor=David Zinman
label=Arte Nova Classics
labelno=74321 63645 2
part=1
ensemble=Tonhalle Orchestra Zurich
location=Zurich Tonhalle, Switzerland
opus=Op.21
Done.
[=============================================================================]

Looks good to me!

If you make any mistakes in the question section you will be able to see
them here,  but you can always touch up the comments by using vorbiscomment
manually.



Additional notes:

Currently as of v2.4 crip will fill in the comment with the discID-track
followed by what is set in the header of the script, followed by a
date/timestamp.  The idea here is to include enough information about
the CD in the newly created music file to do a CDDB-lookup even without
the original CD.  However,  some CDDB databases (freedb.org - which is
default) will require a genre as well as a discID in order to look up
the CDDB information.  But since picking a genre isn't always an exact
science,  it sometimes doesn't match what's in the CDDB database.
I'm not sure what the most appropriate way to handle this is (it seems
like a fault in the freedb.org CDDB query design),  but tagging for this
may change in future versions of crip.  If you have any suggestions on
how this should be handled e-mail me.


Charlton
charlton@dynet.com




Related Links:

Ogg Vorbis page
FLAC page
LAME page
cdparanoia page
sox page
CDDB_get page




charlton@dynet.com


If you have green websites, submit them to green list directory.
Namenslexikon


This page has been hit times since Feb 28, 2001.



Back to bach