Arquivos históricos do BR-Linux.org apresenta:

Linux in Brazil (CDRDAO )

Gravando CDs de áudio com o CDRDAO

Maurice Amais Bracero (maurice@cti.com.br)

Nota do editor: este artigo considera que você já configurou corretamente seu gravador de CD-ROM. Temos outro artigo disponível que explica como realizar a configuração.


O programa mais usado para gravação de CDs no Linux é, acredito eu, o Cdrecord. Ele é usado tanto no modo texto, como no modo gráfico, já que muitos programas, como o Xcdroast, são apenas front ends para o Cdrecord. Eu usava o Cdrecord para gravar CDs, tanto de áudio, quanto de dados, mas percebi um problema: limitações quanto à gravação de CDs de áudio no modo Disk At Once.

O Cdrecord grava CDs de áudio, por default, no modo Track At Once (TAO), o que significa que as faixas são gravadas com uma pausa de 2 segundos entre elas. No modo Disk At Once (DAO), entretanto as faixas de áudio são gravadas sem essa pausa, o que pode ser melhor, principalmente com gravações ao vivo. O Cdrecord pode até gravar no modo DAO, mas com limitações, o CD pode ter os últimos dois segundos de cada faixa cortados ou até não funcionar. É aí que entra o Cdrdao.

Para acompanhar este pequeno tutorial, você já deve ter seu gravador configurado no Linux. Você precisa também do programa Cdrdao, se estiver incluído na sua distribuição, você pode fazer o download em http://cdrdao.sourceforge.net/.

Com o Cdrdao você pode tanto gravar como copiar CDs. Para copiar um CD, você pode usar o seguinte comando:

	cdrdao read-cd novo.toc

Você pode substituir novo.toc pelo nome que quiser. Este é simplesmente um arquivo de texto gerado pelo programa, contendo informações sobre o CD. Aqui pode ter surgido o primeiro problema. Para o comando acima funcionar, você deve ter um link "/dev/cdrecorder" apontado para o seu dispositivo de gravação, mas você pode, em vez disso, apenas acrescentar mais uma opção na linha de comando, como veremos a seguir. Entre com o comando abaixo:

	cdrdao scanbus

Deve ter aparecido algo parecido com isso:

	0,0,0: CREATIVE, CD-RW  RW8433E, 1R04

Se não obteve uma resposta como essa, contendo a identificação do seu gravador, é porque ele não está corretamente configurado. Lembre-se que você precisará entrar como root para ter acesso ao gravador, a não ser que seu sistema esteja configurado para que um usuário comum tenha acesso ao gravador de CDs. Se estiver logado como usuário comum e não conseguiu uma resposta como a de cima, tente se logar como root (ou usar o comando su), e repetir o comando.

Bom, se tudo deu certo, você obteve o modelo do seu gravador e a identificação do dispositivo SCSI (real ou emulado). De posse dessa informação, tente este comando, substituindo "0,0,0" pelo número que você obteu, se for o caso:

	cdrdao read-cd --device 0,0,0 novo.toc

Você pode ter simplesmente obtido essa mensagem de erro:

	ERROR: Cannot setup device 0,0,0.

É que o Cdrdao não conseguiu identificar o seu drive. Nesse caso você terá que entrar manualmente um driver. Você deve ter visto, junto com a mensagem de erro, uma lista dos drivers disponíveis:

cdd2600
generic-mmc
generic-mmc-raw
plextor
plextor-scan
ricoh-mp6200
sony-cdu920
sony-cdu948
taiyo-yuden
teac-cdr55
toshiba

No diretório de documentação do Cdrdao (no meu sistema é /usr/share/doc/cdrdao-1.1.5/) você encontra um arquivo README contendo, entre outras informações, uma lista de gravadores e leitores suportados, com os respectivos drivers. Por exemplo, suponhamos que se drive seja um CREATIVE CD-RW RW4424. Pesquisando na tabela do arquivo README, descobrimos que o driver para ele é generic-mmc. Então o comando deverá ser esse:

	cdrdao read-cd --device 0,0,0 --driver generic-mmc novo.toc

É bem provável que o seu gravador não esteja listado, como o meu CREATIVE CD-RW RW8433E. Isso não significa necessariamente que o seu gravador não é suportado. O meu, por exemplo, funciona com o driver generic-mmc. Você poderá tentar usar com um dos drivers disponíveis, mas, ATENÇAO: NÃO SEI O QUE PODE ACONTECER SE VOCÊ USAR UM DRIVER ERRADO. USE POR SUA CONTA E RISCO. Se quiser ir em frente, note que os drivers mais comuns, principalmente para os modelos mais recentes, são o generic-mmc e o generic-mmc-raw. Tente também procurar informação mais atualizada no site do Cdrdao.

Se tudo deu certo, você obteve uma cópia do CD e um arquivo novo.toc (ou outro nome, caso você tenha preferido). Agora para gravar, digite, não se esquecendo de substituir os valores pelos do seu gravador:

	cdrdao write --device 0,0,0 --driver generic-mmc novo.toc

Até aqui vimos como copiar um CD de áudio, criando uma imagem de um no HD e depois gravando essa imagem num novo CD. Agora devemos ver como gravar arquivos wav num CD.

Em primeiro lugar, é aconselhável que voê tenha um diretório separado para colocar os arquivos wav que você irá gravar, por exemplo, /cdtmp, e mova os arquivos que você irá gravar para ele. Em seguida é bom verificar o tempo total de seus arquivos, para ver se cabem no CD. Você pode verificar isso com o comando "du -c *.wav" (74 minutos são aproximadamente 750 Mb de arquivos wav) ou então usar o script abaixo, para obter o tempo aproximado de todos os arquivos wav de seu diretório:

#/bin/bash
clear
TAM1=`du -cb *.wav | tail -n 1 | cut -f 1`
TAM=`expr $TAM1 / 176400`
if [ $TAM -ge 60 ]
  then TAM2=`expr $TAM / 60`
  else TAM2=0
fi
if [ $TAM2 -gt 0 ]
   then TAM3=`expr $TAM - $TAM2 \* 60`
   else TAM3=$TAM
fi
echo "======================================="
echo "tamanho: " $TAM2  " minutos e "  $TAM3  " segundos"
echo "======================================="
if [ $TAM2 -ge 74 ] && [ $TAM3 -gt 0 ]
   then echo "*** Cuidado! Sua compilação tem mais de 74 minutos. ***"
fi
echo

Caso o tempo não tenha ultrapassado a capacidade do CD que você irá gravar, basta gerar um arquivo toc e gravar com o mesmo comando usado para gravar a imagem do CD, que você viu acima. Gerar um arquivo toc pode ser chato, mas não difícil. por exemplo, no caso de termos 3 músicas, 1.wav, 2.wav e 3.wav e quisermos gravar as três inteiras, sem pausas, nosso arquivo toc pode ser apenas isso:

CD_DA
TRACK AUDIO
FILE "01.wav" 0
TRACK AUDIO
FILE "02.wav" 0
TRACK AUDIO
FILE "03.wav" 0

Podemos também inserir comentários, pausas, gravar só parte das músicas e muito mais, mas não vou me estender sobre isso aqui. Para quem quiser se aprofundar sobre assunto, é só ler a documentação do Cdrdao.

A seguir, temos um script que automatiza a tarefa de gravar um CD de áudio. Você deverá completá-lo, para que funcione. Na linha em que aparece "DEV=", complete com o id SCSI de seu gravador, que você já viu como obter, e na linha onde aparece "DRI=", complete com o driver que você irá usar.

#!/bin/bash
#gerar arquivo .toc e gravar CD
# Coloque aqui o id SCSI de seu gravador. Veja "cdrdao scanbus"
# Ex: DEV=0,0,0
DEV=
# Coloque aqui o driver de seu gravador
# Ex: DRI=generic-mmc
DRI=
echo CD_DA > new.toc
echo >> new.toc
for i in *.wav
 do echo "TRACK AUDIO" >> new.toc
 echo "FILE \""$i"\" 0" >> new.toc
 echo >> new.toc
done
cdrdao write --device $DEV --driver $DRI new.toc

Bom, vou ficando por aqui. Espero ter ajudado aqueles que estiverem intessados neste excelente programa. Você pode fazer mais coisas com o Cdrdao, mas fica pra a próxima.

Até Mais!


Maurice Amais Bracero (maurice@cti.com.br)


O Arquivo Histórico do BR-Linux.org mantém no ar (sem alteração, exceto quanto à formatação) notícias, artigos e outros textos publicados originalmente no site na segunda metade da década de 1990 e na primeira década do século XXI, que contam parte considerável a história do Linux e do Open Source no Brasil. Exceto quando indicado em contrário, a autoria dos textos é de Augusto Campos, e os termos de uso podem ser consultados na capa do BR-Linux.org. Considerando seu caráter histórico, é provável que boa parte dos links estejam quebrados, e que as informações deste texto estejam desatualizadas.