<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook V3.1//EN">
<article>

  <artheader>
    <title>Linux MP3 Branden van een CD mini-HOWTO</title>
    <author>
      <firstname>Greg</firstname>
      <surname>Wierzchowski</surname>
      <affiliation>
        <address><email>greg.wierzchowski@usa.net</email></address>
      </affiliation>
    </author>
<author>
<firstname>Vertaald door:</firstname>
<surname>Bokhorst</surname>
<affiliation>
<address><email>bokkie@nl.linux.org</email></address>
</affiliation>
</author>

    <pubdate>2001-05-29</pubdate>
    <abstract>
       <para>Een compleet recept voor het aanmaken van CD's met MP3 bestanden.</para>
    </abstract>

    <revhistory>
      <revision>
         <revnumber>1.5</revnumber>
         <date>19-11-2001</date>
         <authorinitials>GW</authorinitials>
         <revremark>Corrigeerde iets dat ontbrak in de Disc-At-Once 
         branden sectie.</revremark>
      </revision>
      <revision>
         <revnumber>1.4</revnumber>
         <date>17-11-2001</date>
         <authorinitials>GW</authorinitials>
         <revremark>Toegevoegd de sectie Disc-At-Once branden.</revremark>
      </revision>
      <revision>
         <revnumber>1.3</revnumber>
         <date>02-09-2001</date>
         <authorinitials>GW</authorinitials>
         <revremark>Nog een voorbeeld toegevoegd over het decoderen van MP3 
         bestanden met lame.</revremark>
      </revision>
      <revision>
         <revnumber>1.2</revnumber>
         <date>12-07-2001</date>
         <authorinitials>GW</authorinitials>
         <revremark>Kleine opmaakwijzigingen; De subsectie Vertalingen
        toegevoegd aan Krediet.</revremark>
      </revision>
      <revision>
         <revnumber>1.1</revnumber>
         <date>12-6-2001</date>
         <authorinitials>GW</authorinitials>
         <revremark>Kleine opschoning; Regexp fix voor MP3 naar WAV 
        naamconversie voorbeeld.</revremark>
      </revision>
       <revision>
         <revnumber>1.0</revnumber>
         <date>29-05-2001</date>
         <authorinitials>GW</authorinitials>
         <revremark>Initi&euml;le release.</revremark>
      </revision>
    </revhistory>
<keywordset>
 <keyword>
  MP3
 </keyword>
 <keyword>
  CD
 </keyword>
 <keyword>
  audio
 </keyword>
 <keyword>
  opnemen
 </keyword>
 <keyword>
  branden
 </keyword>
 <keyword>
  WAV
 </keyword>
 <keyword>
  muziek
 </keyword>
</keywordset>

  </artheader>


<section id="intro"><title>Introductie</title>

<para>
Deze mini-HOWTO werd gecre&euml;erd vanwege mijn ervaring met het
branden van muziek-CD's en het gebrek aan wat specifieke informatie over
geluidsnormalisatie op het Internet. Ik brand gewoonlijk muziek-CD's als
een mix - verschillende liedjes vanaf verschillende bronnen. Erg vaak
zit er tussen liedjes een enorm verschil in het volumeniveau. Dit is het
eerste obstakel. Ten tweede zijn veel van de bestanden op het Internet niet
CD-compatibel (16 bit, stereo, 44.1 kHz) en moeten ze worden geconverteerd.
Er zijn heel wat programma's om muziek-CD's van MP3 bestanden te branden,
en veel daarvan voeren de conversie transparant uit. Maar ik heb nog geen
enkel hulpmiddel gezien dat ook het volume normaliseert, dus daarom werkte
ik mijn eigen recept over CD-branden uit.
</para>

<para>
Ik veronderstel dat je een CD wilt branden met de verzameling liedjes
die je van verschillende bronnen hebt verkregen, allen vari&euml;rend in
kwaliteit, maar je wilt een CD met de best mogelijke geluidskwaliteit.
In deze mini-HOWTO worden de stappen uiteengezet die je daarbij wellicht
kunnen helpen.
</para>

<section id="copyright"><title>Copyright en Licentie</title>
<para>Dit document is auteursrechtelijk beschermd 2001 door Greg Wierzchowski 
en het is uitgegeven onder de voorwaarden van de GNU Free Documentation License,
welke hierbij als referentie is opgenomen. Stuur feedback naar
<ulink url="mailto:greg.wierzchowski@usa.net"><citetitle>greg.wierzchowski@usa.net</citetitle></ulink>.
      </para>
    </section>
</section>

<section id="prepare"><title>Voorbereiden van de tracks</title>
<para>
<note><title>Noot</title><para>Alle opdrachten veronderstellen de bashshell</para></note>
</para>

<orderedlist>
<listitem><para>Verzamel alle MP3 bestanden in &eacute;&eacute;n
directory.</para></listitem>

<listitem><para>Als zich daaronder bestandsnamen met spaties bevinden,
zet je deze eerst om in onderstrepingstekens: </para>
<programlisting>
for i in *.mp3; do mv "$i" `echo $i | tr ' ' '_'`; done </programlisting>
</listitem>

<listitem><para>Converteer ze naar WAV met de opdracht: </para>
<programlisting>
for i in *.mp3; do mpg123 -w `basename $i .mp3`.wav $i; done </programlisting>
<para>Als het goed is, bevindt <citetitle>Mpg123</citetitle> zich in elke
Linux distributie, maar mocht je het niet hebben, dan kun je het ophalen van
<ulink url="http://www.mpg123.de/">http://www.mpg123.de/</ulink>.
</para><para><emphasis>NOOT</emphasis> 
Ik bemerkte bij een aantal MP3 bestanden dat de uitvoer van mpg123 werd
vervormd. Eerst dacht ik dat de MP3's slecht waren, maar toen ik dit
controleerde met een andere speler, klonken ze goed. Dus zocht ik naar een
andere MP3 speler welke WAV bestanden naar disk kon schrijven, en vond:
<citetitle>MAD mp3 decoder</citetitle> op
<ulink url="http://www.mars.org/home/rob/proj/mpeg/">http://www.mars.org/home/rob/proj/mpeg/</ulink>.
Met <citetitle>madplayer</citetitle>, luidt de opdrachtregel: </para>
<programlisting>
for i in *.mp3; do madplay -o `basename $i .mp3`.wav $i; done </programlisting>
<para>
Er is nog een andere manier om de conversie uit te voeren. Een aantal MP3
bestanden zorgen zowel met <command>mpg123</command> als met
<command>madplay</command> voor problemen bij het decoderen. De 
<command>lame</command> encoder, die een decodeer modus heeft, schijnt
moeilijke gevallen zeer goed af te handelen
(<command>lame</command> is te vinden op <ulink url="http://www.mp3dev.org/mp3/">http://www.mp3dev.org/mp3/</ulink>) :
     </para>
     <programlisting>
     for i in *.mp3; do lame --decode $i `basename $i .mp3`.wav; done
     </programlisting>
     <para>
     <emphasis>NOOT:</emphasis> 
De opdracht <command>`basename $i .mp3`.wav</command> vervangt MP3 extensies
door WAV. Er zijn 101 manieren om dat te doen, hier is een alternatief: 
     <command>`echo "$1" | sed 's/\.mp3$/.wav/'`</command>
     </para></listitem>

<listitem><para>Voer de opdracht &quot;<command>file *.wav</command>&quot; uit
en controleer de uitvoer op bestanden anders dan
16 bit, stereo 44100 Hz.</para></listitem>

<listitem><para>
Mochten er bestanden met verschillende karakteristieken zij, converteer ze
dan naar bovenstaande specs. Om bijvoorbeeld een bestand track01.wav
te converteren om een sample rate van 44.1 kHz te verkrijgen, zou je
kunnen gebruiken:
</para>
<programlisting>
sox track01.wav -r 44100 track01-new.wav resample</programlisting>
<para><citetitle>Sox</citetitle> is zo populair, dat het waarschijnlijk
al standaard is ge&iuml;nstalleerd bij elke distributie. Het kan worden
verkregen vanaf
<ulink url="http://www.spies.com/Sox/">http://www.spies.com/Sox/</ulink>.
De opdrachtregelopties zijn echter wat cryptisch voor de alledaagse
gebruiker (ikzelf). Kijk op
<ulink url="http://www.spies.com/Sox/sox.tips.html">http://www.spies.com/Sox/sox.tips.html</ulink>
voor wat tips over het gebruik.
</para></listitem>

<listitem><para>Normaliseer je WAV bestanden, om drastische verschillen in 
volumeniveaus te voorkomen. Ik gebruik een programma van
Chris Vaill (<email>cvaill@cs.columbia.edu</email>), genaamd
<command>normalize</command> - het is te verkrijgen vanaf
<ulink url="http://www.cs.columbia.edu/~cvaill/normalize/">http://www.cs.columbia.edu/~cvaill/normalize/</ulink>
     </para>
     <para>
Ik gebruik de volgende syntax
(-m is voor mix modus, waarbij alle bestanden zo luid mogelijk zouden moeten
zijn):
     </para>
     <programlisting>
     normalize -m *.wav</programlisting>
     </listitem>
</orderedlist>

</section>

<section id="burning"><title>Branden van je CD</title>
<para>
Er zijn heel wat programma's voor het maken van CD's met WAV bestanden. Ik
gebruik <command>cdrecord</command> voor het branden via de opdrachtregel en
<command>XCDROAST</command> tijdens het werken met een gui. 
Om <command>cdrecord</command> te kunnen gebruiken, moet je weten welk
SCSI-device je CD-writer is. Als je een ATAPI writer gebruikt, gebruik je
SCSI-emulatie (kernel module ide-scsi). Laten we ervan uitgaan dat je
ATAPI cdwriter is aangesloten op de tweede IDE-bus als master.
Dus dan heeft het de <filename>/dev/hdc</filename> device
file. Om de kernel te instrueren dat je het als een SCSI-device wilt
behandelen, voeg je de volgende regel toe aan
<filename>/etc/lilo.conf</filename>: </para>
<programlisting>
     append=" hdc=ide-scsi"
</programlisting>

<para>
Als de kernel de ide-scsi module niet automatisch laadt, dan moet je bovendien
<command>insmod ide-scsi</command> in het bestand <filename>rc.local</filename>
(of equivalente bestand) plaatsen. Zodra je CD-writer wordt herkend als een
SCSI-device, start je <command>cdrecord --scanbus</command> om erachter te
komen wat de "dev" parameter voor cdrecord is. Op mijn systeem, ziet de
uitvoer er ongeveer zo uit:
</para>
<programlisting>
     scsibus1:
     1,0,0 100) 'IOMEGA ' 'ZIP 250 ' '51.G' Removable Disk
     1,1,0 101) 'HP ' 'CD-Writer+ 7100 ' '3.01' Removable CD-ROM
</programlisting>

<para>
Dus de opdracht <command>cdrecord</command> bevat
<command>dev=1,1,0</command> om het device aan te geven.
Dit is de volledige opdracht voor mijn systeem: </para>
<programlisting>
     cdrecord dev=1,1,0 -eject speed=2 -pad -audio *.wav
</programlisting>

<note><title>NOOT</title><para> Het -pad argument is noodzakelijk, omdat
alle audio tracks op de CD moeten worden aangepast op de juiste 
gegevenslengte, wat niet altijd het geval is met mp3 bestanden.
</para></note>

</section>
<section id="dao-burning"><title>Branden van een DAO CD</title>
<para>
DAO, Disc-At-Once, is op het moment de enige methode om een CD te branden
zonder een 2 seconden durende pauze tussen de tracks. Het is handig voor
het branden van party mixen. Het programma voor het branden van CD's in
DAO modus is <command>cdrdao</command>, beschikbaar vanaf SourceForge, 
<ulink url="http://sourceforge.net/projects/cdrdao/">http://sourceforge.net/projects/cdrdao/</ulink>.
</para><para>
Het programma <command>cdrdao</command> maakt gebruik van beschrijvende
bestanden genaamd <emphasis>TOC</emphasis> (Table Of Contents=inhoudsopgave, 
natuurlijk).  Er zijn twee manieren om een dergelijk bestand te schrijven. 
Ten eerste met behulp van een shellscript, welke wordt gedistribueerd met
de <command>cdrdao</command> broncode (in de directory 
<filename>contrib</filename>, genaamd <command>generate_toc.sh</command>. 
Het accepteert als argument een lijst met <filename>.wav</filename> 
bestanden en produceert een <filename>cd.toc</filename> bestand. 
De tweede manier is eenvoudigweg zelf een dergelijk bestand te schrijven
in een teksteditor naar keuze. Hier is een voor zichzelf sprekend voorbeeld:
</para>
<programlisting>
CD_DA

TRACK AUDIO
AUDIOFILE "mix-01.wav" 0

TRACK AUDIO
AUDIOFILE "mix-02.wav" 0

TRACK AUDIO
AUDIOFILE "mix-03.wav" 0

TRACK AUDIO
AUDIOFILE "mix-04.wav" 0

TRACK AUDIO
AUDIOFILE "mix-05.wav" 0
</programlisting>

<para>
De <emphasis>0</emphasis> (nul) achter de wave bestandsnaam betekent: start
vanaf het begin van het bestand. Er kan nog een tweede nummer worden opgegeven
dat de lengte (in tijd) van het bestand naar het record aangeeft. De 
<command>xcdroast</command> maakt vergelijkbare <emphasis>TOC</emphasis> 
bestanden aan. Er bevinden zich ook voorbeelden in de directory
<filename>testtocs</filename> van de broncode van <command>cdrdao</command>.
</para>
<para>
De <command>cdrdao</command> gebruikt standaard het device
<filename>/dev/cdrecorder</filename>, wat een link moet zijn naar het
cdwriter device. Maak als volgt (als root) de link aan, ervan uitgaande dat 
je cd recorder device het bestand <filename>/dev/scd0</filename> is: 
</para>
<programlisting>
ln -s /dev/scd0 /dev/cdrecorder
</programlisting>
<para>
Dan in de veronderstelling dat het <emphasis>TOC</emphasis> bestand de naam
<filename>cd.toc</filename> heeft, is de opdracht om de cd te branden
eenvoudigweg:
</para>
<programlisting>
cdrdao write cd.toc
</programlisting>
</section>

<section id="credits"><title>Krediet</title>
<para>
Speciale dank gaat uit naar al die mensen die een bijdrage aan de Linux
gemeenschap leverden en die deze HOWTO mogelijk maakten.
</para>
<section id="translations"><title>Vertalingen</title>
<itemizedlist>
<listitem>
<para>
  Im Eunjea - Vertaalde dit document naar Koreaans, URL is <ulink url="http://kltp.kldp.org/eunjea/mp3_burning/">http://kltp.kldp.org/eunjea/mp3_burning/</ulink>.
</para>
</listitem>
<listitem>
<para>
  Mendel L Chan - Vertaalde dit document naar de Chinese taal, URL is <ulink url="http://www.linux.org.tw/CLDP/mini/MP3-CD-Burning/">http://www.linux.org.tw/CLDP/mini/MP3-CD-Burning/</ulink>.
</para>
</listitem>
</itemizedlist>

</section>
<section id="othercredits"><title>Overige krediet</title>

<itemizedlist>
<listitem>
<para>  Greg Ferguson - Converteerde dit document in eerste instantie van
HTML naar SGML.
</para></listitem>
<listitem>
<para>  Rob Russell - Corrigeerde mijn naamconversievoorbeeld.
</para></listitem>
<listitem>
<para>  Terry Davis - Deed de suggestie mijn HOWTO aan te leveren bij linuxdoc.
</para></listitem>
<listitem>
<para>Chris Vaill - Maakte het <command>normalize</command> programma.
</para></listitem>
<listitem>
<para>Jamie Kellogg - Kwam als oplossing met 
<command>lame</command> om probleembestanden te decoderen.
</para></listitem>
</itemizedlist>
</section>
</section>
</article>

