LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   Slackware (http://www.linuxquestions.org/questions/slackware-14/)
-   -   Methods to rip CDs with Slackware and FLAC Playback Quality (http://www.linuxquestions.org/questions/slackware-14/methods-to-rip-cds-with-slackware-and-flac-playback-quality-851178/)

gargamel 12-19-2010 04:26 AM

Methods to rip CDs with Slackware and FLAC Playback Quality
 
Hi everyone,

first of all: I am not sure, if this is the right forum, as I don't know, if it is Slackware-relatedm, or if it is a general thing affecting other distros with KDE, as well. If the latter is the case, please let me know, where to post this (Linux Software or Linux Desktop forum?).

BTW, I am on Slackware64-13.1 (stable).

Currently, I am trying to copy all my music CDs on a harddisk. I thought, this would be a very simple thing to do, but whatever I do I run into another issue.


1. K3B and WAV
The easiest and fastest way to get the content of a music CD onto a harddisk I found, is using K3B. It is totally stable and works really fast. But it only really rips the WAV files and copies them onto the harddisk.
At first, I was quite happy with the results, sound quality of the CDs are preserved 100% (K3B seems to use cdparanoia to ensure a similar quality as EAC, the well-known Windows program).
However, when playing the WAV files, Amarok endlessly tried to download the song text, but never made it. This may have to do with the missing support for tagging in the WAV format. Also, WAV is not supported in streaming servers, and only a few of them support transcoding.

RESULT: My music is on the harddisk, but I can't use it as conveniently as I was hoping for.


2. KAudioCreator, WAV and FLAC

Then I converted the WAV files of a couple of albums already stored on my harddisk to FLAC with KAudioCreator. But Amarok still was unable to load song texts.
So I tried to rip CDs with KAudioCreator directly, instead of converting WAV files on my harddisk. And guess what: This time Amarok was able to load the song text for the created FLAC files. (I also tried to just rip WAV files, but Amarok didn't find any song texts, againg --- no such problem with FLAC).
What is generally annoying is, that KAudioCreator stops working after a few albums. It still puts jobs in its queue, and it's possible to manipulate the queue, but it's never being processed. Also, whenever I change a DVD in my second DVD drive, KAudioCreator duplicates the jobs in its queue. Therefore I did another research, and came to this:


3. Dolphin/Konqueror with WAV and FLAC

This method is by far the most convenient. Insert a CD and click on the CD icon in Dolphin or Konqueror, and you will see the content of the CD plus a view "virtual folders". Drag any of them to your harddisk, und you will have the content of the CD in this format there. E. g., if you drag the folder FLAC to a directory on your harddisk, a FLAC director is created there, and FLAC files for all the WAV files are created and copied into it.
However: Amarok can't load song texts, if you use this method, although Dolphin/Konqueror rely on KAudioCreator to do the hard work, if I understand it correctly... :mad:


4. VLC with FLAC

I tried this, too, but I ran into issues. When I converted WAV files on my harddisk to FLAC, Amarok didn't find song texts.
Trying to convert directly from CD also didn't work, because the file dialog either only showed the virtual folders created by Dolphin/Konqueror, but not the WAV files, or came up with an error message: "You can only select local files". I guess, this indicates an incomplete integration with KDE.


5. Conclusion: Use KAudioCreator

Seems, I have to rely on KAudioCreator, despite its snags and bugs. What it does, it doew well, when it does it. But it behaves inconsistently, at time, and it is US English only. (There's an option to change the language, but only one language can be selected). This will make the whole task a little more tedious and time-consuming, as the only way to get reliable results with KAudioCreator for me seems to be to close and restart the program after each ripped CD.

Now, ok, I found a way to do it, somehow. Of course, the reason why I put all my music on a harddisk is, that I want to play it from there, possibly streaming it to more than one room in the midterm. As I mentioned above, I decided to use the FLAC format. It is free and lossless, and I found many statements and reports that it preserves the exact sound quality of WAV.


Remarks: Playback Quality of FLAC
Well, I tried it, and have to say, that I am heavily disappointed. I started using Amarok and directly compared the FLAC and WAV files with my AKG K701, and could tell reliably the difference. The FLAC version lacked spatial information, it sounded "flat", and a little harshness was added to higher frequencies. Just to make sure I tried other players, including VLC, MPlayer, Kaffeine and Xine. The biggest difference between FLAC and WAV was in VLC. In the other players it was smaller. In MPlayer, however, FLAC was not better than in VLC, but WAV was worse...

I was totally confused. How could this be? FLAC is lossless, and there are hundreds of posts in the internet, that it guarantees identical sound with the WAV file from which it is created.

So, to make sure, the conversion was correct, I converted some of the FLAC files on my harddisks back to WAV, compared the files with the original CD versions and listened again. Believe it or not: There was no difference compared to the original WAV files, and the original sound quality was there, again!

So it is obviously true, that FLAC is a lossless format, and the conversion was correct. However, Linux players seem to struggle with the double task of decompressing and playing it.

But I didn't want to give up, and tried Play, the command line player included with SoX. And this time, the difference between FLAC and WAV was so small, that I am not sure, if it was just, because I *wanted* to hear a difference, after the experiments with other players before. At least, the playback quality of FLAC is so close to WAV with SoX, that I am satisfied with it.
FLAC sounds good with Kaffeine, too, and most of the time it's good enough. MPlayer generally sounds a little "darker", less "transparent", than the other, but still has good resolution at the price of slightly higher noise. Still, FLAC files can be enjoyed with MPlayer, although WAV files sound better. With VLC, however, FLAC was no fun. It sounds like really poor MP3.


Remarks: Playback Quality of Ogg Vorbis
Finally, I converted some of the WAV files directly from CD to Ogg Vorbis with KAudioCreator. It's hard to believe, but with VLC the Ogg Vorbis version was much closer to the original WAV than the FLAC version! There was a noticeable roll-off at higher frequencies, but the spatial information, that FLAC was lacking so painfully, was there, and there was no sign of harshness. This is not to say, that Ogg Vorbis would match the quality of the original WAV. It doesn't. But when played with VLC, the Ogg Vorbis was more fun than FLAC. And it sounded good in the other players, too. Much better, than MP3 files I have heard in the past.


Remarks: Sound Quality and Usability of Linux Audio Players
Although it wasn't my original intent to do a comparison of sound players for Slackware, I was forced to do just that.
If sound quality is all that counts, then SoX is the way to go. It is the only one that preserves WAV quality when playing FLAC, and it sounds better with WAV than all the others I have tried. However, it is a powerful command line program, that can do a lot more than just play music. However, most people will prefer a nice, intuitive (G)UI, when they just want to enjoy some music.
Overall, Kaffeine is my favourite player for just about anything. I have been using it for years, as it is the only complete solution for watching TV via DVB-T for Linux. But it also offers convincing sound quality, and shines with usability. None of the other programs mentioned above make it so easy, even for a newbie, to just throw something onto it in order to play it. Everything seems to be in the right place in Kaffeine. Regarding sound quality it is my personal number 2.
Just about equal in overall sound quality and very powerful is MPlayer. It plays about every format there is with maximum detail, but is generally a little darker than the others, regarding the "colour" of sound. If you like NAD hifi equipment, MPlayer will be your favourite, if you prefer Rotel, look for something else. It's more a question of personal taste than of objective quality. The default UI is, however, something you'll have to get used to...
VLC is the most flexible of them all, but at the price of complexity. The UI has made great progress over the years, and it is admirable, what is hidden behind the, at first sight, lean and modern GUI. But still, some things aren't obvious and others are incomplete. E. g., VLC supports DVB-T, like Kaffeine, but it takes ages to scan channels, and then finds only a small fraction of what Kaffeine is capable to receive. Regarding VLC as CD ripper, I ran into trouble in KDE. I suppose that is possible to rip CDs with VLC, but in my KDE desktop VLC interprets files on audiocd:/ as a remote protocol, as it seems. Unfortunately, replacing this with /dev/dvd etc. doesn't help.
Regarding sound quality, with WAV and Ogg Vorbis, VLC is very good. But it appears to really be struggling with FLAC.


How do YOU do it?
So much for now. I'd really been interested to read, how you would go about the whole topic of playing music from a harddisk, be it for simple, local usage or for network streaming and multiroom solutions, using Slackware.

Merry Christmas and a Happy New Year to everyone!

gargamel

vdemuth 12-19-2010 04:36 AM

k3b is capable of ripping to many formats. You just have to choose what output format you want. (Assuming you have installed all of the conversion utils of course)

The K3b handbook is the place to look.

For streaming you might want to google for Jinzora or Ampache.

Daedra 12-19-2010 05:23 AM

You could try recompiling k3b from source. I always do that since there are libraries that the stock slackware version (for copyright reasons im sure) doesn't include. This just makes k3b more robust IMO.

gargamel 12-19-2010 05:28 AM

Thanks, I just looked into the "handbook" --- apparently it's a single web page, currently: K3B Handbook. It doesn't explain, how to set encoding.

Then I looked into the configuration options. In fact, there are several "modules" for encoding to and decoding from different formats. For FLAC there's a dedicated decoding module, and encoding to FLAC should be supported by the SoX module, I guess.

However, when I insert a CD, I don't find where to set the encoding. Where is it? Where can I set the target format?

Or is this one of the things, that is not supported in the Slackware stock version of K3B? But as I said: Modules are there and found by K3B...

EDIT: Just found it --- must have been blind before!
It's in the "Start Ripping" dialog, and it cannot be overlooked, except by me, it seems... :mad:


Thanks again

gargamel

andrew.46 12-19-2010 06:29 AM

For the actual ripping and encoding have you considered the huge script abcde? There is a pretty basic ~/.abcde.conf file here for flac:

http://www.andrews-corner.org/abcde.html#flac

which is easy enough to further embellish and a slackbuild for abcde itself on slackbuilds.org. And a happy Xmas for yourself as well :)

Andrew

gargamel 12-19-2010 06:44 AM

Thanks!

abcde looks interesting, I'll try it. Up to now I avoided it, because I wanted to see, how far I can get with stock Slackware tools.

gargamel

devnull10 12-19-2010 07:30 AM

I rip cd's onto my HDD using this script I wrote...

Code:

#!/bin/bash

if [ $# -lt 1 ]
then
  echo "Usage: " `basename $0` "<output directory> [device]"
  exit
fi

if [ ! -d $1 ]
then
  echo "$1 is not a valid directory"
  exit
fi

#Default device to /dev/sr0 unless $2 is set
if [ $2 ]
then
  device=$2
else
  device="/dev/sr0"
fi

# Need determine the number of tracks on the disc
n_files=`cdparanoia -d $device -Q 2>&1 | egrep "^ *[0-9]+\." | wc -l`

if [ $n_files -lt 1 ]
then
  echo "ERROR - Can't find any tracks - is the CD inserted?"
  exit
fi

echo -e "Ripping $n_files files..."

for i in `seq 1 $n_files`
do
  cdparanoia -d $device -q $i - | lame --silent -h --vbr-new -V 4 - `printf "%s/track_%02d.mp3" $1 $i`
  echo  - Sucessfully ripped track $i
done

echo "Ripping complete"


titopoquito 12-19-2010 08:26 AM

Maybe take a look at rubyripper and deadbeef player. Both are found on slackbuilds.org. rubyripper is a quite convenient ripper that can read freedb data and convert to multiple output formats (simultaneously). deadbeef is a handsome little music player with multiple playlists (tabbed) which uses much less CPU on my machine than for example audacious2.

I output my music by an external USB soundcard to my hifi rack or share it over SAMBA to my wife's computer (Windows machine), so I use no real streaming. No clues here :-|

gargamel 12-19-2010 09:33 AM

Good hints and tips, all the way, thanks!

Meanwhile I tried abcde. It works fine!

I also tried to explore the options of K3B a bit, still sticking ot FLAC as the target format. One thing I am playing around with is paranoia. Unfortunately, with any other setting than 0 here, K3B gets stuck when trying to extract the last track on a CD. CPU load is at 100% for one core, and 45% for the other, then. I am not sure, if K3B would complete the task after a while, but I am not so patient. After waiting more than 20 minutes I killed the K3B process (the UI didn't respond, when I clicked on "Cancel").

Apart from that, K3B and abcde seem to do a good job. Maybe I'll try ruby-ripper, soon, too.

gargamel

samac 12-19-2010 10:24 AM

Quote:

K3B gets stuck when trying to extract the last track on a CD.
That happens with me as well, I just wait until the cd and hdd lights go off then kill k3b. I find that the job has been completed at that stage.

samac

rmjohnso 12-19-2010 01:20 PM

Just to add my two cents, I use asunder http://littlesvr.ca/asunder/. There is a build script at SlackBuilds.org, but the version they link to is a bit old. Just grab the latest version, change the version in the SlackBuild script, and you should be ready to go. Asunder should also let you rip using FLAC, assuming you already have FLAC installed.

tuxrules 12-19-2010 08:05 PM

I would recommend asunder as well. Since you are experimenting, can you also try python-audiotools?

I've been maintaining this build script for a while and would like to know how it performs. I've done a few rips with python-audiotools and they seems to be of excellent quality but then I'm not a audiophile by any measure :-)

disturbed1 12-19-2010 11:10 PM

Quote:

Originally Posted by gargamel (Post 4196543)
Hi everyone,

How do YOU do it?
So much for now. I'd really been interested to read, how you would go about the whole topic of playing music from a harddisk, be it for simple, local usage or for network streaming and multiroom solutions, using Slackware.

Merry Christmas and a Happy New Year to everyone!

gargamel

I use ruby ripper to mass rip my discs in wav format to the hard disc. Can never seem to buy just one CD at a time. Then smp_encode to encode multiple files at a time to oggvorbis (-q7). Goggles Music Manager for local playback and library management. ogg123 for CLI vorbis and flac single/couple file quick playback.

For remote playback, we use XBMC on our HTPC's, not a fan of MythMusic. Linked the music directory to our local web server for streaming on my CR-48 (Google Chrome OS notebook). It does direct streaming html5 playback of .ogg/.ogv files. Thinking of giving ampache another look.

http://code.google.com/p/rubyripper/
http://freshmeat.net/projects/smpencode
http://code.google.com/p/gogglesmm/
http://code.google.com/p/gogglesmm/
http://ampache.org/

lumak 12-20-2010 12:54 AM

I'm a little OCD about the names of my files and the locations they are stored at.

So I use abcde, it's a very complex bash script that uses all the command line programs you already have, plus a few more to automatically search cddb, rip the cd, tag and encode to multiple formats. So far, it's the only thing that I've used that's simple and doesn't put a limitation on how you want the files named.

I store to flac for backup and mp3 for quicker transfers to other devices and personal listening. Some players don't handle effects or equalizer when playing flac files and 192 VBR MP3s sound just as good through most speakers

BoydRice 12-20-2010 01:30 AM

Another vote for abcde. I love abcde and all the options it allows for. I found this abcde.conf file on the ubuntu forum a while back and just commmented out the ogg options and changed the bit rate for mp3 to the insane preset for lameopts. I use it to rip all my music to flac and mp3. Definitely the best I have found

Code:

##################################################################
# Andrew's ~/.abcde.conf file to encode to ogg, flac and mp3 at  #
# the same time. The 3 filetypes will then be tagged or          #
# commented and dispersed to seperate directories.              #
# http://people.aapt.net.au/~adjlstrong/ubuntu.html              #
##################################################################

# What are the names of the encoding programs?
OGGENCODERSYNTAX=oggenc                # Specify encoder for ogg
MP3ENCODERSYNTAX=lame                  # Specify encoder for mp3
FLACENCODERSYNTAX=flac                  # Specify encoder for flac

# What program to rip the tracks from CD?
CDROMREADERSYNTAX=cdparanoia            # CD reader program to use

# Where are the encoding programs?
OGGENC=/usr/bin/oggenc                  # Path to ogg encoder
LAME=/usr/bin/lame                      # Path to lame encoder
FLAC=/usr/bin/flac                      # Path to flac encoder
               
# Where are the tagging / commenting programs?
ID3=/usr/bin/id3                        # Path to id3 editor
ID3V2=/usr/bin/id3v2                    # Path to id3v2 editor
VORBISCOMMENT=/usr/bin/vorbiscomment    # Path to vorbiscomment
METAFLAC=/usr/bin/metaflac              # Path to metaflac

# Where are the other programs?
CDPARANOIA=/usr/bin/cdparanoia          # Path to cdparanoia
CDDISCID=/usr/bin/cd-discid            # Path to cd-discid

# What options should be used for encoding?
OGGENCOPTS='-q 6'                      # Options for ogg
LAMEOPTS='--preset standard'            # Options for mp3
FLACOPTS='--best'                      # Options for flac
OUTPUTTYPE="ogg,mp3,flac"              # mp3 +/- ogg +/- flac

# Where do the encoded tracks go to?
OUTPUTDIR="$HOME/music/"                # Base directory for the music

# This divides the music into 3 folders:
#  mp3 goes to $HOME/music/mp3/
#  ogg goes to $HOME/music/ogg/
# flac goes to $HOME/music/flac/
OUTPUTFORMAT='${OUTPUT}/${ARTISTFILE}--${ALBUMFILE}/${TRACKNUM}.${ARTISTFILE}--${TRACKFILE}'

# Put spaces in the filenames.
mungefilename ()
{
  echo "$@" | sed s,:,-,g | tr / _ | tr -d \'\"\?\[:cntrl:\]
}

# What extra options?
PADTRACKS=y                            # Makes tracks 01 02 not 1 2
EXTRAVERBOSE=y                          # Useful for debugging
EJECTCD=y                              # Please eject cd when finished :-)



All times are GMT -5. The time now is 10:56 AM.