Announced full -audio compatibility with cdrecord

This commit is contained in:
Thomas Schmitt 2006-10-25 15:23:11 +00:00
parent aed70199e6
commit ac8feeaaf6
3 changed files with 94 additions and 88 deletions

View File

@ -46,9 +46,10 @@ protection against possible damages. You use this on your own risk.
Don't blame me or other authors of libburn if anything goes wrong. Don't blame me or other authors of libburn if anything goes wrong.
I used it on my own risk with : I used it on my own risk with :
SuSE 7.2, kernel 2.4.4, ide-scsi emulation, LITE-ON LTR48125S CD burner SuSE 7.2, kernel 2.4.4, ide-scsi emulation, LITE-ON LTR48125S CD burner, 2002
SuSE 9.0, kernel 2.4.21, ide-scsi emulation, LG GSA-4082B CD/DVD burner SuSE 9.0, kernel 2.4.21, ide-scsi emulation, LG GSA-4082B CD/DVD burner, 2004
RIP-14.4, kernel 2.6.14, no ide-scsi, with both above burners NEC ND-4570A CD/DVD burner, 2006
RIP-14.4, kernel 2.6.14, no ide-scsi, with all above burners
It fails to compile or run on SuSE 6.4 (kernel 2.2.14). It fails to compile or run on SuSE 6.4 (kernel 2.2.14).
It does not find the IDE CD burner on SuSE 7.2 without ide-scsi. It does not find the IDE CD burner on SuSE 7.2 without ide-scsi.
@ -124,17 +125,13 @@ On Linux 2.4 this would be some /dev/sgN and on 2.6. some /dev/hdX.
The output of cdrskin --devices might look like The output of cdrskin --devices might look like
0 dev='/dev/sg0' rwrwr- : 'TEAC' 'CD-ROM CD-532S' 0 dev='/dev/sg0' rwrwr- : '_NEC' 'DVD_RW ND-4570A'
1 dev='/dev/sg1' rwrw-- : 'LITE-ON' 'LTR-48125S' 1 dev='/dev/sg1' rwrw-- : 'HL-DT-ST' 'DVDRAM GSA-4082B'
So full and insecure enabling of both for everybody would look like So full and insecure enabling of both for everybody would look like
chmod a+rw /dev/sg0 /dev/sg1 chmod a+rw /dev/sg0 /dev/sg1
(The CD-ROM is in these examples only for demonstrating the presence of another
SCSI device. This /dev/sg0 may be left as it is and stay invisible for normal
users.)
I strongly discourage to run cdrskin with setuid root or via sudo ! I strongly discourage to run cdrskin with setuid root or via sudo !
It is not checked for the necessary degree of hacker safety. It is not checked for the necessary degree of hacker safety.
@ -147,7 +144,7 @@ Get an overview of cdrecord style addresses of available devices
Note: Adresses reported with dev=ATA are to be used with prefix "ATA:". You may Note: Adresses reported with dev=ATA are to be used with prefix "ATA:". You may
well use device file addresses as reported with --devices. Examples: well use device file addresses as reported with --devices. Examples:
dev=1,1,0 dev=ATA:1,0,0 dev=/dev/hdc dev=/dev/sg1 dev=0,1,0 dev=/dev/sg1 dev=ATA:1,0,0 dev=/dev/hdc
See also "Drive Addressing". See also "Drive Addressing".
Note: Address numbers have changed since cdrskin-0.2.2 in order to become Note: Address numbers have changed since cdrskin-0.2.2 in order to become
compatible with cdrecord numbers. To get the old number scheme, use compatible with cdrecord numbers. To get the old number scheme, use
@ -156,43 +153,44 @@ Note: Address numbers have changed since cdrskin-0.2.2 in order to become
Obtain some info about the drive Obtain some info about the drive
cdrskin dev=1,1,0 -checkdrive cdrskin dev=0,1,0 -checkdrive
Obtain some info about the drive and the inserted media Obtain some info about the drive and the inserted media
cdrskin dev=1,1,0 -atip cdrskin dev=0,1,0 -atip
Thoroughly blank a CD-RW Thoroughly blank a CD-RW
cdrskin -v dev=1,1,0 blank=all -eject cdrskin -v dev=0,1,0 blank=all -eject
Blank CD-RW sufficiently for making it ready for overwrite Blank CD-RW sufficiently for making it ready for overwrite
cdrskin -v dev=1,1,0 blank=fast -eject cdrskin -v dev=0,1,0 blank=fast -eject
Burn image file my_image.iso to CD Burn image file my_image.iso to CD
cdrskin -v dev=1,1,0 speed=12 fs=8m -sao driveropts=burnfree padsize=300k \ cdrskin -v dev=0,1,0 speed=12 fs=8m -sao driveropts=burnfree padsize=300k \
-eject my_image.iso -eject my_image.iso
Burn a compressed afio archive to CD on-the-fly Burn a compressed afio archive to CD on-the-fly
find . | afio -oZ - | cdrskin -v dev=1,1,0 fs=32m speed=8 -sao \ find . | afio -oZ - | cdrskin -v dev=0,1,0 fs=32m speed=8 -sao \
driveropts=burnfree padsize=300k tsize=650m - driveropts=burnfree padsize=300k tsize=650m -
Burn 6 audio tracks from files with different formats to CD. Burn 6 audio tracks from files with different formats to CD.
Anything except .wav files has to be converted into raw format first Anything except .wav or .au files has to be converted into raw format first.
See below "Audio CD" for specifications.
ogg123 -d raw -f track01.cd /path/to/track1.ogg ogg123 -d raw -f track01.cd /path/to/track1.ogg
oggdec -R -o track02.cd /path/to/track2.ogg oggdec -R -o track02.cd /path/to/track2.ogg
lame --decode -t /path/to/track3.mp3 track03.cd lame --decode -t /path/to/track3.mp3 track03.cd
madplay -o raw:track04.cd /path/to/track4.mp3 madplay -o raw:track04.cd /path/to/track4.mp3
mppdec --raw-le /path/to/track5.mpc track05.cd mppdec --raw-le /path/to/track5.mpc track05.cd
cdrskin dev=1,1,0 blank=fast fs=0 -eject \ cdrskin dev=0,1,0 blank=fast -eject speed=48 \
-audio -swab track0[1-5].cd /path/to/track6.wav -audio -swab track0[1-5].cd /path/to/track6.wav
Usage example with http://scdbackup.sourceforge.net Usage example with http://scdbackup.sourceforge.net
Address may be a cdrecord-style "scsibus,target,lun" as listed with Address may be a cdrecord-style "scsibus,target,lun" as listed with
cdrskin -scanbus (but not as listed with cdrecord -scanbus) : cdrskin -scanbus (and hopefully as listed with cdrecord -scanbus) :
export SCDBACKUP_SCSI_ADR="1,1,0" export SCDBACKUP_SCSI_ADR="0,1,0"
or a device file address as listed by --devices with an accessible drive : or a device file address as listed by --devices with an accessible drive :
@ -214,11 +212,6 @@ Therefore it has to be defaulted to mode SAO which needs to know the track
size in advance. non-cdrecord option tao_to_sao_tsize=650m causes each CD size in advance. non-cdrecord option tao_to_sao_tsize=650m causes each CD
to get burned up to 650 MB regardless of the payload size. to get burned up to 650 MB regardless of the payload size.
Audio features are incomplete in respect to cdrecord. Well prepaired track
files should get burned flawlessly, thanks to Lorenzo Taylor.
Builtin extraction of raw audio data from filetypes .au and .wav is not
implemented yet. See chapter "Audio CD" for details.
No multi session yet ... Please report your wishes. No multi session yet ... Please report your wishes.
@ -254,7 +247,6 @@ which are not listed by option --devices but point to the same SCSI addresses
as listed device files. This addressing via e.g. /dev/sr0 or /dev/scd1 is as listed device files. This addressing via e.g. /dev/sr0 or /dev/scd1 is
compatible with generic read programs like dd and with write program growisofs. compatible with generic read programs like dd and with write program growisofs.
Pseudo-SCSI Adresses Pseudo-SCSI Adresses
cdrecord and cdrskin share the syntax of SCSI addresses but not necessarily cdrecord and cdrskin share the syntax of SCSI addresses but not necessarily
@ -293,6 +285,7 @@ drive accessability.
Further busses may emerge as libburn evolves. "prefix" and "lun" may get Further busses may emerge as libburn evolves. "prefix" and "lun" may get
a meaning. To stay upward compatible, use addresses as printed by -scanbus. a meaning. To stay upward compatible, use addresses as printed by -scanbus.
User Defined Device Address Translation
Some programs or users have their own ideas about the address of their burner. Some programs or users have their own ideas about the address of their burner.
K3b 0.10 for example derives cdrecord addresses by own examination of the K3b 0.10 for example derives cdrecord addresses by own examination of the
@ -302,14 +295,14 @@ Standard mode will hopefully be fully compatible with their ideas.
Old frontends which do not know dev=ATA or dev=ATAPI and which do ask their Old frontends which do not know dev=ATA or dev=ATAPI and which do ask their
"cdrecord" via -scanbus may be well served with option --old_pseudo_scsi_adr . "cdrecord" via -scanbus may be well served with option --old_pseudo_scsi_adr .
To direct any stubborn callers to the appropriate drives, cdrskin allows to To direct any remaining stubborn callers to the appropriate drives, cdrskin
define device address aliases. Like allows to define device address aliases. Like
cdrskin dev_translation=+1,0,0+/dev/sg1 \ cdrskin dev_translation=+1,0,0+/dev/sg1 \
dev_translation=+ATA:1,0,0+/dev/sg1 \ dev_translation=+ATA:1,0,0+/dev/sg1 \
dev_translation=-"cd+dvd"-1,1,0 \ dev_translation=-"cd+dvd"-0,1,0 \
... ...
Any of the addresses dev=1,0,0, dev=ATA:1,0,0, dev=cd+dvd will be mapped to Any of the addresses dev=1,0,0, dev=ATA:1,0,0, dev=cd+dvd will be mapped to
/dev/sg1 resp. to its standard alias 1,1,0. /dev/sg1 resp. to 0,1,0.
The first character after "dev_translation=" defines the character which The first character after "dev_translation=" defines the character which
separates the two parts of the translation pair. (Above: "+" and "-".) separates the two parts of the translation pair. (Above: "+" and "-".)
@ -353,17 +346,23 @@ fs=16m
Lorenzo Taylor enabled option -audio in cdrskin (thanks !) and reports neat Lorenzo Taylor enabled option -audio in cdrskin (thanks !) and reports neat
results with audio data files which are : results with audio data files which are :
headerless PCM headerless PCM (i.e. uncompressed)
44100 Hz sampling rate 44100 Hz sampling rate
16 bits per sample 16 bits per sample
stereo (2 channels) stereo (2 channels)
little-endian byte order with option -swab little-endian byte order with option -swab, or big-endian without -swab
Files with name extension .wav get examined wether they are in Microsoft WAVE Files with name extension .wav get examined wether they are in Microsoft WAVE
format with above parameters and eventually get extracted by cdrskin itself. format with above parameters and eventually get extracted by cdrskin itself.
Files with name extension .au get examined wether they are in SUN's audio In the same way files with name extension .au get examined wether they are
format with above parameters. Their big-endianness gets handled properly. in SUN's audio format. For both formats, track format -audio and eventual
Any other formats are to be extracted by commands like those given above under endianness option -swab are enabled automatically.
"Usage examples".
Any other formats are to be converted to format .wav with above parameters
or to be extracted as raw CD track data by commands like those given above
under "Usage examples". Those raw files need option -audio and in most cases
option -swab to mark them as little-endian/Intel/LSB-first 16-bit data.
Incorrect endianness setting results in random noise on CD.
I myself am not into audio. So libburn-hackers@pykix.org might be the I myself am not into audio. So libburn-hackers@pykix.org might be the
best address for suggestions, requests and bug reports. best address for suggestions, requests and bug reports.

View File

@ -114,7 +114,7 @@ wishes as well as on the development of libburn.</DT>
Option -audio is enabled but by default not advertised via option -help, Option -audio is enabled but by default not advertised via option -help,
because no beheading of .au or .wav files takes place yet. because no beheading of .au or .wav files takes place yet.
<BR>Note: In development version 0.2.3 there is automatic extraction of <BR>Note: In development version 0.2.3 there is automatic extraction of
.wav files but not of .au. .wav and .au. So -audio is fully supported.
</LI> </LI>
<LI> <LI>
Burns only a single closed session. No -multi option yet. Burns only a single closed session. No -multi option yet.
@ -196,12 +196,13 @@ cdrskin_0.2.2-x86-suse9_0-static.tar.gz</A>, (250 KB), -static compiled,
<LI>cdrecord compatibility with addresses of form [ATA:]Bus,Target,Lun.</LI> <LI>cdrecord compatibility with addresses of form [ATA:]Bus,Target,Lun.</LI>
<LI>Drives adressable via links and device siblings (/dev/cdrom , /dev/scd0). <LI>Drives adressable via links and device siblings (/dev/cdrom , /dev/scd0).
</LI> </LI>
<LI>Automatic -audio extraction with .wav files and .au files.
<BR>&nbsp;$ cdrskin -v dev=1,1,0 track1.wav track2.au -audio -swab track3.raw
</LI>
<LI>Comments and empty lines allowed in startup files.</LI> <LI>Comments and empty lines allowed in startup files.</LI>
<LI>Options -scanbus and --devices print SORRY messages about busy drives. <LI>Options -scanbus and --devices print SORRY messages about busy drives.
</LI> </LI>
<LI>Track source files with ending .wav are checked for compliance and <LI>Drive buffer fill indicator reports realistic percentage numbers.</LI>
extracted automatically.</LI>
<LI>Drive buffer fill indicator reports are realistic percentage numbers.</LI>
<LI>Option -toc is supported, drive firmware revision gets displayed.</LI> <LI>Option -toc is supported, drive firmware revision gets displayed.</LI>
</UL></DD> </UL></DD>
<DD>&nbsp;</DD> <DD>&nbsp;</DD>
@ -293,6 +294,18 @@ is a GUI frontend which uses cdrecord for CD burning.)
<DD><KBD>scsibus2:</KBD></DD> <DD><KBD>scsibus2:</KBD></DD>
<DD><KBD>&nbsp;&nbsp;&nbsp; 2,2,0 &nbsp;&nbsp; 1)&nbsp; 'LITE-ON' 'LTR-48125S' '?' Removable CD-ROM</KBD></DD> <DD><KBD>&nbsp;&nbsp;&nbsp; 2,2,0 &nbsp;&nbsp; 1)&nbsp; 'LITE-ON' 'LTR-48125S' '?' Removable CD-ROM</KBD></DD>
<DD>$ <KBD><B>export SCDBACKUP_SCSI_ADR="2,2,0"</B></KBD></DD> <DD>$ <KBD><B>export SCDBACKUP_SCSI_ADR="2,2,0"</B></KBD></DD>
<!-- 0.2.4
<DD><KBD>...</KBD></DD>
<DD><KBD>&nbsp;&nbsp;&nbsp; 2,0,0 &nbsp;&nbsp; 0)&nbsp; 'TEAC' 'CD-ROM CD-532S' '?' Removable CD-ROM</KBD></DD>
<DD>$ <KBD><B>cdrskin -scanbus dev=ATA</B></KBD></DD>
<DD><KBD>...</KBD></DD>
<DD><KBD>&nbsp;&nbsp;&nbsp; 1,0,0 &nbsp;&nbsp; 1)&nbsp; 'LITE-ON' 'LTR-48125S' '?' Removable CD-ROM</KBD></DD>
<DD>$ <KBD><B>export SCDBACKUP_SCSI_ADR="ATA:1,0,0"</B></KBD></DD>
-->
<DD>$ <KBD><B>export SCDBACKUP_CDRECORD="cdrskin -v -v tao_to_sao_tsize=650m"</B></KBD></DD> <DD>$ <KBD><B>export SCDBACKUP_CDRECORD="cdrskin -v -v tao_to_sao_tsize=650m"</B></KBD></DD>
<DD>$ <KBD><B>scdbackup_home</B></KBD></DD> <DD>$ <KBD><B>scdbackup_home</B></KBD></DD>
</DL> </DL>
@ -317,6 +330,16 @@ and try again.
<DD><KBD>&nbsp;&nbsp;&nbsp; 1,0,0 &nbsp;&nbsp; 0)&nbsp; 'TEAC' 'CD-ROM CD-532S' '?' Removable CD-ROM</KBD></DD> <DD><KBD>&nbsp;&nbsp;&nbsp; 1,0,0 &nbsp;&nbsp; 0)&nbsp; 'TEAC' 'CD-ROM CD-532S' '?' Removable CD-ROM</KBD></DD>
<DD><KBD>&nbsp;&nbsp;&nbsp; 2,2,0 &nbsp;&nbsp; 1)&nbsp; 'LITE-ON' 'LTR-48125S' '?' Removable CD-ROM</KBD></DD> <DD><KBD>&nbsp;&nbsp;&nbsp; 2,2,0 &nbsp;&nbsp; 1)&nbsp; 'LITE-ON' 'LTR-48125S' '?' Removable CD-ROM</KBD></DD>
<DD><KBD>------------------- end of SCSI device list</KBD></DD> <DD><KBD>------------------- end of SCSI device list</KBD></DD>
<!-- 0.2.4
<DD><KBD>&nbsp;&nbsp;&nbsp; 2,0,0 &nbsp;&nbsp; 0)&nbsp; 'TEAC' 'CD-ROM CD-532S' '?' Removable CD-ROM</KBD></DD>
<DD><KBD> ------------------- end of SCSI device list</KBD></DD>
<DD><KBD> ------------------- ATA devices. To be used like ATA:0,0,0
<DD><KBD>&nbsp;&nbsp;&nbsp; 1,0,0 &nbsp;&nbsp; 1)&nbsp; 'LITE-ON' 'LTR-48125S' '?' Removable CD-ROM</KBD></DD>
-->
<DD><KBD>...</KBD></DD> <DD><KBD>...</KBD></DD>
<DD><KBD>&nbsp;&nbsp;&nbsp; * Your cdrecord offers -driveropts=burnfree with your recorder.</KBD></DD> <DD><KBD>&nbsp;&nbsp;&nbsp; * Your cdrecord offers -driveropts=burnfree with your recorder.</KBD></DD>
<DD><KBD>...</KBD></DD> <DD><KBD>...</KBD></DD>

View File

@ -2,7 +2,7 @@
cdrskin Wiki - plain text copy cdrskin Wiki - plain text copy
-------------------------------------------------------------------------- --------------------------------------------------------------------------
cdrskin is the cdrecord compatibility middleware of libburn. cdrskin-0.2.3 is the cdrecord compatibility middleware of libburn.
Its paragon, cdrecord, is a powerful GPL'ed burn program included in Joerg Its paragon, cdrecord, is a powerful GPL'ed burn program included in Joerg
Schilling's cdrtools. cdrskin strives to be a second source for the services Schilling's cdrtools. cdrskin strives to be a second source for the services
@ -16,14 +16,8 @@ can be found in cdrskin/README .
-------------------------------------------------------------------------- --------------------------------------------------------------------------
cdrskin with CD media fails to match its paragon cdrecord on three major cdrskin with CD media fails to match its paragon cdrecord on two major
fields: convenient TAO burn mode, multi session, audio features. fields: convenient TAO burn mode and multi session.
Audio features are the only topic where cdrskin did not yet exploit current
libburn to the maximum. This is due to my own lack of audiophile motivation
and due to the lack of sincere users who provide me with cdrecord use cases,
help me to explore the original cdrecord behavior and serve as dedicated
testers for eventual newly introduced cdrskin audio features.
cdrskin does not provide DVD burning yet. See advise to use dvd+rw-tools cdrskin does not provide DVD burning yet. See advise to use dvd+rw-tools
at the end of this text. at the end of this text.
@ -80,45 +74,6 @@ has to offer both, r- and w-permission.
-------------------------------------------------------------------------- --------------------------------------------------------------------------
eject_device=<path> is needed to work around yet broken tray ejection of
drives. cdrskin makes a bold shell call to program "eject" and regrettably
this program does not like our addresses for SCSI devices.
/dev/hdX work fine and /dev/sg0 is quite safely guess-translated to
/dev/sr0 . /dev/sg1 et.al. need the user's help. <path> must work with eject.
--------------------------------------------------------------------------
dev_translation=<sep><from><sep><to> is needed to foist cdrskin to frontend
programs of cdrecord which do *not* ask cdrecord -scanbus but which make
own assumptions and guesses about cdrecord's device addresses.
cdrskin project - at least for now - refuses to try to provide a similar
guesswork but uses own cdrecord style addresses which have a mere
semi-automatic text mapping to real libburn addresses. See cdrskin/README,
"Pseudo-SCSI Adresses".
If you need to foist cdrskin under a frontend then you may be lucky and
both ideas of an address coincide. Especially if the frontend has the
decency to ask its "cdrecord" via option -scanbus for a list of drives.
If not, look into the error protocol of the frontend, look at the output
of a run of cdrskin --devices and give cdrskin the necessary hint.
If your frontend insists in using "0,0,0" and --devices reported
dev='/dev/sg0' resp. cdrskin -scanbus reported "1,0,0" then this
would be the appropriate translation
dev_translation=+0,0,0+/dev/sg0
The "+" character is a separator to be choosen by you.
Currently i am not aware of the need to choose any other than "+"
unless you get playful with custom translations like
dev_translation=-"cd+dvd"-1,0,0
See http://scdbackup.sourceforge.net/k3b_on_cdrskin.html
for an illustrated example with K3b 0.10 .
--------------------------------------------------------------------------
--fifo_start_empty is a throughput enhancer for unsteady data streams --fifo_start_empty is a throughput enhancer for unsteady data streams
like they are produced by a compressing archiver program when piping to like they are produced by a compressing archiver program when piping to
CD on-the-fly. It makes better use of the general property of a FIFO CD on-the-fly. It makes better use of the general property of a FIFO
@ -177,6 +132,35 @@ be a failure in any way.
-------------------------------------------------------------------------- --------------------------------------------------------------------------
dev_translation=<sep><from><sep><to> may be needed to foist cdrskin to
frontend programs of cdrecord which do *not* ask cdrecord -scanbus but
which make own assumptions and guesses about cdrecord's device addresses.
Normally, cdrskin understands all addresses which are suitable for cdrecord
under Linux. See cdrskin/README, "Pseudo-SCSI Adresses".
This option is mainly for (yet unknown) exotic configurations or very
stubborn frontend programs.
If a frontend refuses to work with cdrskin, look into the error protocol
of that frontend, look at the output of a run of cdrskin --devices and give
cdrskin the necessary hint.
Example: Your frontend insists in using "0,0,0" and --devices reported
dev='/dev/hdc' resp. cdrskin dev=ATA -scanbus reported "1,0,0" then this
would be the appropriate translation:
dev_translation=+0,0,0+/dev/hdc
The "+" character is a separator to be choosen by you.
Currently i am not aware of the need to choose any other than "+"
unless you get playful with custom translations like
dev_translation=-"cd+dvd"-1,0,0
See http://scdbackup.sourceforge.net/k3b_on_cdrskin.html
for an illustrated example with K3b 0.10 .
--------------------------------------------------------------------------
DVD advise: DVD advise:
For burning of DVD media the cdrskin project currently advises to use For burning of DVD media the cdrskin project currently advises to use