buffers 4 on-the-fly copy: read@12X write@4X?

  • Polo Talnir

    Polo Talnir - 2002-12-13

    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
    32X read.

    • Manuel Clos

      Manuel Clos - 2002-12-13

      --paranoia-mode 0

      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.

    • Polo Talnir

      Polo Talnir - 2002-12-14

      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. ??

      Thanks again!

      • Manuel Clos

        Manuel Clos - 2002-12-14

        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?
        cat /etc/init.d/hwtools
           hdparm -q -d 1 /dev/hda
           hdparm -q -d 1 /dev/hdb
           hdparm -q -d 1 /dev/hdc
           hdparm -q -d 1 /dev/hdd

        I do!
        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 ;)

    • Polo Talnir

      Polo Talnir - 2002-12-18

      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!


Log in to post a comment.

Get latest updates about Open Source Projects, Conferences and News.

Sign up for the SourceForge newsletter:

JavaScript is required for this form.

No, thanks