I copied a music cd using on-the-fly copy with the read and
write speed as in the Subject (R 12X, W 4X).
With all my naive intuition, if I read at 12X and write at only 4X
a modest number of buffers should be enough to compensate
for the possible small flutuations in resources availability in the
I ran the above with 64 buffers and got an underrun almost
immediately (a few seconds). I increased to 256 buffers and
it was able to copy 4 songs before the underrun, reporting
how the buffer utilization went down from 100% to 0%
which is when the underrun occured.
Eventually, I increased the buffers to over a thousand,
and the 16 songs got copied.
Although it succeeded, this makes NO sense to me.
If I read faster than I write, for the most part there should
be very little need for buffering. 2-3 buffers are a good
precaucionary idea, but should be seen consistently full
at 100% (or somewhere between 90% - 100%).
Where does my reasoning fail?
Thanks for any enlightenment!!
Ah, one more question ... can I set the read speed at
some number? I know that the CD-ROM drive supports
this way a sector is only read once so you get the real cdrom speed. In this mode no checkings or corrections are made. Get a good audio reader if you are going to use this.
also, if the drives are IDE, check that both devices are not on the same cable. If one drive is master and the other is slave on the same ide bus, you will get coasters all the time. This, with the addition of the default read audio mode (full checking and correction -> man cdrdao) helps you get the buffer underrun.
Thanks! good info. Indeed, both drives are on the same IDE cable,
master/slave. Will try the paranoia 0 param and see what happens.
The curious thing is that when I am on Windoze, using popular
CD burning programs (e.g. Easy CD Creator or Nero) I can
do DAO on-the-fly with this setup w/o a problem.
Is there a way to increase the read speed?. cdrdao decides to
read at 12X while the CD-Reader can do 32X.
I also can not increase the number of buffers beyond 1000 as
I get a "can not allocate memory" message from cdrdao. ??
buffers = 100 -> buffer 100 audio seconds
100 audio seconds = 17.19 Mb
1000 audio seconds = 171.88 Mb !!!
you really don't need this buffer :)
100 audio seconds / 4X = 25 writing seconds of buffer
This is, you can be writing during 25 seconds at 4x without reading from the source CD! This is sufficient when the source CD has some scratch.
It works under windows, so:
* do you have DMA enabled in windows? and in linux?
hdparm -q -d 1 /dev/hda
hdparm -q -d 1 /dev/hdb
hdparm -q -d 1 /dev/hdc
hdparm -q -d 1 /dev/hdd
WARNING!!!! -> I have DMA enabled for some time and it works well, be aware that you can have problems if your chipset is buggy!!!!!
* does your writer support burnproof (4X -> probably not), but check that if it supports burnproof cdrdao uses it. You will need a recent release for it to work.
* all in all, if it works under windows, it should work under linux. It is just a matter of configuration, remember that windows does not do miracles ;)
Thank you for the detailed help. I do appreciate it!!
Will check my settings and post the results. That
may help some other members.
Thanks a lot again!
Sign up for the SourceForge newsletter:
You seem to have CSS turned off.
Please don't fill out this field.