Is it possible to record audio directly to a computer’s optical drive

audioaudio-cdosxreal time

There's a question over at audio.SE at the moment and I thought it may attract some answers here. I asked the user and he's happy to have it posted here to see if anyone has some ideas. Here it is verbatim:


I'm working with a client who needs to minimize the time between when recording is done and when the finalized audio CD ejects from the drive.

All of the computer recording software I'm aware of will generate a file which can then be burned to an Audio CD. I know there is external hardware I could buy that would burn an analog stream directly to disc, but I'm wondering if any software exists that can achieve this with a computer's internal optical drive. Ideally for Mac, though if it only exists for Windows or Linux I would be interested to hear about it.

(Other alternatives have been explored; I would much rather not deal with optical media at all, but this is a highly specialized situation.)


As to the source: "It would likely be an external USB audio interface."

If you need more info let me know.

Best Answer

Well, you could do it with some command line tools.

cdrecord (wodim on debian) can burn audio CDs on the fly, but it needs an *.inf files that specify track sizes etc. You can generate an inf file upfront with a dummy CD that has (say) one large audio track (74 minutes) using cdda2wav (icedax on debian).

In the live setting you record from an audio device of your choice with arecord in one xterm to a temporary file x. Use as argument of --duration the track size in seconds.

In another xterm you can start after a few seconds (to allow some buffering) cdrecord which reads the audio from a pipeline from x and uses the prepared inf file. You have to make sure that you specify speed=1 for writing.

Of course, you have to test this setup a bit (first times with cdrecord -dummy ...!) and lookup the right options.

But the manpage of cdrecord already contains an on the fly example as starting point:

To copy an audio CD from a pipe (without intermediate files), first run

icedax dev=1,0 -vall cddb=0 -info-only

and then run

icedax dev=1,0 -no-infofile -B -Oraw - | \
wodim dev=2,0 -v -dao -audio -useinfo -text *.inf

But after you have everything figured out, you can create a script that automates all these steps.

Related Question