Open GoogleCodeExporter opened 8 years ago
Request accepted. This especially makes sense now we allow image ripping. But
implementing this is quite complicated IMHO. Let me add three other things that
touches this...
Caveat #3 - Rubyripper needs to add the ability of creating and stripping wav
containers. Each wav file that is outputted by cdparanoia has a little wav
container
overhead. When comparing sectors these have to be stripped ofcourse.
Caveat #4 - The ripped chunks need to be large enough to circumvent the drive
cache
problem. When rereading we do want the drive to read the audio disc, not it's
cache.
Does anyone know how big the cache of a cdrom drive can get?
Caveat #5 - Not only do we need to be able to rip a certain amount of chunks
from the
mismatches on, but we need to account for the problem that we're at the end of
the
audio disc. This also happens the other way around ofcourse for the start of the
disc.
Original comment by rubyripp...@gmail.com
on 5 Aug 2008 at 7:49
#3. Forgot to mention the intricacies with splicing wav files (and dealing with
headers). One option is to have cdparanoia output in a different format:
-p --output-raw : output raw 16-bit PCM in host byte
order
-r --output-raw-little-endian : output raw 16-bit little-endian PCM
-R --output-raw-big-endian : output raw 16-bit big-endian PCM
-w --output-wav : output as WAV file (default)
-f --output-aiff : output as AIFF file
-a --output-aifc : output as AIFF-C file
I'm not sure if any of the encoders can handle raw PCM so it might be pointless
if
the have to be turned into wav anyway.
#4. Drive cache is a terrible thing for ripping! Don't some of them have 2 MB
buffers?
#5. cdparanoia, if not rr, will know where the tracks start and end.
Shouldn't be
too difficult to code (I hope)... but caveat #4 makes this harder than it needs
to
be. What do other rippers do about drive cache? Surely EAC works with /
around it,
right?
Original comment by mordbr...@gmail.com
on 5 Aug 2008 at 9:05
cdparanoia can output to raw PCM:
-p --output-raw : output raw 16-bit PCM in host byte
order
-r --output-raw-little-endian : output raw 16-bit little-endian PCM
-R --output-raw-big-endian : output raw 16-bit big-endian PCM
FLAC can handle raw input with the --force-raw-format option.
oggenc:
-r, --raw Raw mode. Input files are read directly as PCM data
-B, --raw-bits=n Set bits/sample for raw input. Default is 16
-C, --raw-chan=n Set number of channels for raw input. Default is 2
-R, --raw-rate=n Set samples/sec for raw input. Default is 44100
lame:
Input options for RAW PCM:
-r input is raw pcm
-x force byte-swapping of input
-s sfreq sampling frequency of input file (kHz) - default 44.1 kHz
--bitwidth w input bit width is w (default 16)
--signed input is signed (default)
--unsigned input is unsigned
--little-endian input is little-endian (default)
--big-endian input is big-endian
So seems like there is no problem with working with raw PCM. I imagine that
ripping
only errant chunks could be an option and, if checked, it also works with PCM
instead
of wav.
Original comment by mordbr...@gmail.com
on 5 Aug 2008 at 10:36
The problem of the wav header might not be that big. We just have to skip
reading and
writing the first 44 bytes of each wav file. The creation of wav headers is only
needed when we're not reading at least one track completely first. But looking
again
at your request, this is not what you're asking.
Original comment by rubyripp...@gmail.com
on 6 Aug 2008 at 9:45
44 bytes isn't bad to strip. Just pointing out that it is possible to work
entirely
with PCM. Since you're the one coding the choice is entirely yours, naturally.
Original comment by mordbr...@gmail.com
on 7 Aug 2008 at 4:39
Original issue reported on code.google.com by
mordbr...@gmail.com
on 5 Aug 2008 at 1:40