<!doctype linuxdoc system>
<!-- Nagekeken door Nine Matthijssen, smurfin@nl.linux.org -->
<linuxdoc>
<article>
<titlepag>
<title>De Linux MP3-HOWTO </title>
<author><name>Door Phil Kerr, <tt>phil@plus24.com</tt> <newline>
Vertaler: <htmlurl url="http://people.zeelandnet.nl/reggye" name=" Reggy
Ekkebus">, <htmlurl url="mailto:reggy@zeelandnet.nl" name="reggy@zeelandnet.nl">
</name></author>
<date>v1.40, April 2000</date>
<abstract>
Dit document beschrijft de hardware, software en procedures benodigd om
<em>MP3</em> sound files te encoderen, afspelen en streamen onder Linux.
</abstract>
</titlepag>
<toc>

<sect><heading>Introductie.</heading>
<p>
Dit document beschrijft de hardware, software en procedures benodigd om
MP3 sound files te encoderen, afspelen en streamen onder Linux. 

Het houdt in:</p>
 
<p>MP3's encoderen van een live of externe bron.</p>
<p>MP3's encoderen van audio cd's.</p>
<p>MP3's streamen over het netwerk.</p>
<p>MP3's beluisteren.</p>
<p>MP3's mixen</p>
</sect>

<sect><heading>Copyright van dit document.</heading>
<p>
Deze HOWTO is auteerusrechtelijk beschermd. Copyright 2000 Phil Kerr.

Tenzij anders verklaard, berust het copyright van Linux Howto documenten 
bij de eigenlijke auteur. Linux Howto documenten mogen worden
gereproduceerd en gedistributeerd in het geheel of gedeeltelijk, in elk medium
fysiek of  elektronisch zolang de copyright-vermelding op elke kopie blijft
staan. Commercie&euml;le redistributie is toegestaan en wordt aangemoedigd;
hoewel de auteur hier wel van op de hoogte gebracht wil worden.

Alle vertalingen, afgeleide werken of verzamelde werken waarbij een
Linux Howto is betrokken moeten uitgebracht worden onder dit copyright.
Dat houdt in dat je geen afgeleid werk van een Howto mag maken en daar
enkele restricties op zetten. Uitzonderingen op deze regels kunnen gemaakt
worden onder bepaalde voorwaarden; neem contact op met de Linux Howto
co-ordinator op het adres hieronder gegeven.

In het kort, we moedigen verspreiding van deze informatie aan door zoveel
mogelijk kanalen. Hoewel, we wel willen dat het copyright op elk document 
blijft, en we willen op de hoogte gebracht worden van elke herdistributie
van de HOWTO's. 

Als je vragen hebt, neem dan contact op met Tim Bynum, De Linux HOWTO
co-ordinator, op <em>linux-howto@metalab.unc.edu</em> via email.</p>
</sect>

<sect><heading>Waar kun je dit document halen?</heading>
<p>
De meest recente offici&euml;le versie van dit document kan verkregen worden
van het Linux Documentation Project <url
url="http://http://www.linuxdoc.org/">.

De homepage voor deze HOWTO is:  <url url="http://www.mp3-howto.com"></p>

<sect1><heading>Vertalingen</heading>
<p>
Deze HOWTO is vertaald in de volgende talen:

<em>Onthoud dat de vertalingen van dit document verouderd kunnen zijn,
het vertalen vergt tijd.</em>

<em>Koreaans</em>

<url url="http://kldp.org/HOWTO/MP3-HOWTO"> Door Lee,So-min
&lt;animator@nownuri.net&gt;

<em>Frans</em>

<url url="http://www.freenix.org/unix/linux/HOWTO/MP3-HOWTO.html"> Door
Arnaud Gomes-do-Vale &lt;arnaud@carrosse.frmug.org&gt; 

<em>Hongaars</em>

<url url="http://free.netlap.hu/howto/MP3-HOGYAN.html"> Door Andras Timar
&lt;atimar@itp.hu&gt; 

<em>Italiaans</em>

<url url="ftp://ftp.pluto.linux.it/pub/pluto/ildp/HOWTO/MP3-HOWTO"> Door
Mariani Dario &lt;darkpand@uni.net&gt; 

<em>Spaans</em>

<url url="http://www.insflug.org/documentos/MP3-Como"> Door Arielo
larocka@yahoo.com

<em>Japans</em>

<url url="http://www.linux.or.jp/JF/JFdocs/MP3-HOWTO.html"> By Saito Kan &lt;can-s@geocities.co.jp&gt;


Veel dank aan de vertalers hierboven.
Als je deze HOWTO kunt vertalen, stuur de auteur dan een mailtje. 
Geef ook de URL waar de vertaling staat.</p>
</sect1>
</sect>

<sect><heading>Erkentenis.</heading>
<p>
Bij het schrijven van deze HOWTO heb ik veel gehad aan de <em>Sound-HOWTO</em>
door Jeff Tranter, en de <em>Sound-Playing-HOWTO</em> door Yoo C. Chung.

Ook dank aan de andere HOWTO auteurs waar ik het werk van gebruikt heb:

<em>Linux System Administrators Guide</em> door Lars Wirzenius.

<em>Linux Network Administrators Guide</em> door Olaf Kirch.

<em>Multi Disk System Tuning HOWTO</em> door Stein Gjoen.

En ook veel dank aan de mensen die mij feedback, commentaar of 
fout rapporten hebben gestuurd.

Speciale dank aan al mijn collega's van het WebSentric AG, speciaal   Mark
S. Fischer &amp; Peter Conrad voor hun commentaar, feedback en hulp.</p>
</sect>

<sect><heading>Disclaimer.</heading>
<p>
Gebruik de informatie in dit document op eigen risico.

Ik weiger elke soort van aansprakelijkheid voor dit document.

Gebruik de concepten, voorbeelden en andere inhoud in dit document op eigen
risico

Alle copyrights zijn eigendom van hun eigenaren, niet als het speciaal is
aangegeven

Het gebruik van een term in dit document moet niet gezien worden als een
bestaand handels of service merk.

Namen van particuliere producten of merken moeten niet gezien worden als
bekrachtiging.

Je wordt ten sterkste aangeraden om een backup te maken van je systeem voor de
echte installatie op verschillende tijden.</p>
</sect>

<sect><heading>Hardware Vereisten & Performance onderwerpen.</heading>
<p>
Digitaal audio verwerken is een bron intensieve taak die zwaar steunt op
de
processor en I/O capaciteiten van je systeem. Ik raad een minimum van een
Pentium Soort computer aan.

Als je gaat encoderen van een analoge audio bron via de line-in of microfoon,
geeft een PCI geluidskaart het beste resultaat. De I/O uitvoering tussen
een ISA en PCI kaart zijn aanmerkelijk, 132 MBytes/sec voor PCI (getal genomen
uit de <em>PCI-HOWTO</em>). Natuurlijk, hoe beter de kwaliteit van de
geluidskaart in termen van z'n signal-to-noise ratio, hoe beter het
geencodeerde MP3tje. Ik gebruik de Soundblaster PCI128 en ben net overgestapt
op een Soundblaster Live Value; beide kaarten geven goede audio performance,
maar Live heeft aanmerkelijk betere S/N rations, goed genoeg voor semi-pro
audio werk. Onthoudt: de oude date verwerkings grondstelling:- vuilnis in -
vuilnis uit!  

Creative heeft een Beta driver voor de Soundblaster Live! die
hier gedownload kan worden van:

<url url="http://developer.soundblaster.com/linux/">

Als je analoge audio opneemt naar je Hard disk, meestal direct to disk of d2d
opnemen, is de performance van de disk en zijn interface kritiek. Als
je een IDE gebaseerd systeem gebruikt, mode 4 of UDMA is dat goed genoeg. Als
de overdrachts snelheid hoog genoeg is, gaat de overdracht zonder veel problemen.

De ideale oplossing zou een SCSI gebaseerd systeem zijn, omdat de drives
en interface een veel snellere doorstroom hebben, van 5 mbits/sec voor SCSI 1
tot 80 mbits/sec voor utra/wide SCSI. Ide tot iets van 8.3 MB/s tot 33 MB/s 
voor Ultra-ATA maar deze snelheden zijn pieken, meestal zijn de transfers
langzamer. Als je er een kan vinden of betalen, een AV SCSI drive, neem er
dan een. AV drives hebben de lees/schrijf head geoptimaliseerd voor
continu data overdracht; andere SCSI en IDE drives kunnen normaal geen continu
datastroom aan als de schrijf hoofden warm worden!

Natuurlijk een drive met cache geeft nog konsekwenter resultaat dan een die
dat niet heeft, cache werkt als een buffer als de kop oplicht of de stroom het
even niet aan kan.

Als je drive niet van deze specificaties is, zal de opname lijden onder
de uitval en lichte storingen, waar de drive gefaald heeft om het signaal
op te nemen. Als je aan-uit evenementen opneemt, zoals live uitvoeringen,
investeer dan in een goed SCSI systeem.

Een andere oorzaak van d2d uitval is een zwaar beladen systeem. Achtergrond
taken kunnen tijdelijke storingen veroorzaken. Het is aan te raden zo min
mogelijk achtergrond taken te draaien, vooral netwerk gebaseerde taken. Voor
meer informatie over setup scripts en over het instellen van netwerk services
zie de <em>SAG</em> en <em>NAG</em> gidsen.

Virtueel geheugen veroozaakt ook lichte storingen, dus draai met zoveel
mogelijk intern geheugen, Ik raad op z'n minst 32 MB aan, maar nog meer is
beter.

Voor de mensen die het meest uit hun systeem willen halen, kan de kernel 
optimaliseren geen kwaad.

Zolang de hardware specificatie hierboven je een bescheiden systeem geven
om audio data te encoderen, weiger niet oudere te gebruiken.

Het kan een goede uitdaging voor sys-admin zijn om een laag gespecifeerd
systeem een goed resultaat te geven, en het einde kan zijn een gelukkigere Linux
box.

Een andere belangrijk onderwerp is de audio bekabeling. Goedkope, slechte 
kwaliteits kabels en verbinders resulteren in een slechte opname kwaliteit.
Als je geluidskaart de optie biedt voor een hoofdtelefoon, soms aangegeven
als RCA, connectors, gebruik ze dan. Goud geplateerde contacten helpen ook
de audio kwaliteit behouden; houd ook audio kabels uit de buurt van data
kabels: er is kans van storing.

Maar vergeet niet, een fortuin spenderen aan de beste audio bekabeling
is verspilling als de rest van je systeem niet geoptimaliseerd is.

Voor het opnemen van Mp3's van CD-ROM, zal de tijd dat het duurt bepaald
worden door type en snelheid om de ruwe data eraf te lezen. Een single speed
drive is veel te traag zelfs voor de geduldigste.

Je cd-rom moet aangesloten zijn op je geluidskaart als je wilt horen wat je
opneemt, door de interne connector of door de hoofdtelefoon aan te sluiten
op de cd-rom. Je kan geen Mp3 luisteren door de hoofdtelefoon connector
van de cd-rom!

Voor gedetailleerde instructies over het instellen van je geluidskaart, 
lees je de <em>Sound-HOWTO</em>.</p>
</sect>

<sect><heading>Software Vereisten.</heading>
<p>
Audio converteren naar MP3's is normaal een 2 stappen proces, eerst de audio
opnemen als Wav en dan de Wav converteren naar een MP3. Sommige tools doen
beiden in een keer voor je.
 
Het formaat waarvan je audio wilt encoderen, CD of direct audio, geeft aan
met welke tool je Wav's moet maken.

Als je wilt encoderen van audio input heb je een tool nodig dat opneemt vanaf de 
geluidskaart input en die dit omzet in Wav formaat. Hieronder staan een
aantal handige programmaatje's. (Het meeste commentaar is van de web site van
het programma).</p>

<sect1><heading>Rippers & WAV Recorders</heading>
<p>
Om te grabben van analoog audio line-in:
<em>Wavrec</em>

Waverec is gedistributeerd als deel van wavplay, welke te downloaden is van:-

<url url="ftp://sunsite.unc.edu/pub/Linux/apps/sound/players/">

Om Cd audio data te converteren naar Wav, soms bekends als Cd ripping:

<em>CDDA2WAV</em>

<url url="http://metalab.unc.edu/pub/Linux/apps/sound/cdrom/">

<em>Cdparanoia</em>

Cdparanoia is een Compact Disc Digital Audio extraction tool, vaak bekend op
het net als  een 'ripper'. De applicatie is gebouwd op de Paranoia
bibliotheek, die het echte werk doet (de Paranoia bron code is opgenomen in de
Cdparanoia source distributie). Net als de originele cdda2wav, leest
Cdparanoia package audio van de Cd direct als data, zonder een analoge stap
ertussen en schrijft de data naar een file of pipe in Wav, Aifc of raw 16 bit
linear PCM. In tegenstelling to cdda2wav is het veel trager maar het geeft een
beter resultaat zelfs als er krassen en moeilijke stukjes op de cd zitten. 

<url url="http://www.xiph.org/paranoia/index.html">

<em>RipperX</em>

RipperX is een GTK programma om Cd audio te rippen en mp3s te encoderen. Het
heeft plug-ins voor Cdparanoia, BladeEnc, Lame MP3 encoder, XingMp3enc, lame
en de Iso v2 encoder. Het heeft ook support voor Cddb en id3 tags.

<url url="http://www.digitallabyrinth.com/linux/ripperX/">

<em/Grip/

Grip is een GTK gebaseerde CD spelen en CD-ripper/MP3-encoder. Het heeft de rip mogelijkheden van cdparanoia
ingebouwd, maar het kan ook een externe ripper gebruiken (zoals cdda2wav). Het heeft ook een geautomatiseerd 
frontend voor MP3 encoders, het laat je een cd pakken om deze gelijk in MP3s om te zetten. Het CDDB protocol
wordt ook ondersteund om track informatie van disc database server te ontvangen. Grip werk met DigitalDJ
om een "gecomputeriseerde" versie van je muziek collectie aan te bieden. 

</P></sect1>
<sect1><heading>Encoders</heading>
<p>
Om Wav om te zetten in Mp3 heb je een encoder nodig:

<em>Blade's MP3 Encoder</em>

BladeEnc is een gratis Mp3 encoder. Het is gebaseerd op de zelfde ISO
compressie routines als  mpeg3enc, dus je kan ruwweg de zelfde, of betere
kwaliteit verwachten. Het hoofd verschil is  het optreden en de snelheid.
BladeEnc heeft geen mooi, gebruikers vriendelijk interface net  als mpegEnc,
maar het is meer dan 3 keer sneller en het werkt met populaire front-end
graphical  user interfaces.

<url url="http://bladeenc.cjb.net">

<em>Lame</em>

In de grote historie van Gnu namen, staat Lame voor Lame Ain't an Mp3 Encoder.
Lame is geen mp3 encoder. Het is een Gpl'd patch van de dist10 ISO
demonstratie source. Lame is totaal ongeschikt voor het maken van mp3 stream.
Het is ongeschikt voor het compileren van zichzelf. Je moet de ISO source
hebben om deze software te laten werken. De ISO demonstratie source is ook
gratis verkrijgbaar, maar enkel commercieel gebruik heeft een licentie
agreement nodig van Fhg (Fraunhofer Gesellschaft, Duitsland).

<url url="http://www.sulaco.org/mp3/">

<em>Gogo</em>

Gogo is een zeer snelle MP3 encoder voor x86-CPU, die gebaseerd is op LAME 
versie 3.29beta en geoptimaliseerd door PEN@MarineCat, Keiichi SAKAI, URURI, 
kei en shigeo.
(Je moet NASM downloaden om de source te compileren, die te vinden is op <url
url="http://www.web-sites.co.uk/nasm/">).

<url url="http://homepage1.nifty.com/herumi/gogo_e.html">
</p></sect1>

<sect1><heading>Spelers</heading>
<p>
Om MP3's af te spelen moet je natuurlijk een speler hebben:

<em>Xmms (Formeel bekend als X11Amp)</em>

Deze speler heeft de meeste eigenschappen die Winamp (Windows 95/98/NT) ook
heeft, maar het heeft ook eigenschappen die alleen in Linux beschikbaar zijn.

<url url="http://www.xmms.org">

<em>Xaudio</em>

Xaudio is een zeer snelle en zeer robuuste Multi-platform oplossing voor
Digitaal Audio afspelen, vooral gericht op MPEG (MP1, MP2 en MP3) decoderen.

<url url="http://www.xaudio.com">

<em>AlsaPlayer</em>

Alsaplayer is een nieuw type van PCM speler. Het is zwaar multi-threaded en
probeert de  ALSA bibliotheek te gebruiken om een beetje te draaien. Het heeft
zeer interessante eigenschappen uniek voor Linux/Unix spelers. Het doel is om
een volledig pluggable framework voor playback te maken voor alle soorten
media met de focus op PCM audio data. <em> Full speed (pitch) control,
positief *en* negatief! Eerst Linux- alleen GPL player dat doet het!!  MP3's
en CD's doen verschillende snelheden :) </em>

<url url="http://www.alsa-project.org/~andy/">

<em>mpg123</em>

Wat is mpg123? Het is een snelle, gratis en portable MPEG audio speler voor
Unix. Het bied ondersteuning voor MPEG 1.0/2.0 layers 1, 2 en 3 (de beroemde
"mp3" files) en het is getest op een paar zeer verschillende platformen,
onder andere Linux, FreeBSD, NetBSD, SunOS, Solaris, IRIX, HP-UX en andere. Om
Cd kwaliteit mp3's af te spelen, is een Pentium (of snelle 486),
SPARCstation10, DEC Alpha of zo'n soort CPU nodig. Mono en/of gereduceerde
kwaliteit afspelen (22 kHz of 11 kHz) is zelfs mogelijk op langzamere 486
CPUs.

<url url="http://dorifer.heim3.tu-clausthal.de/~olli/mpg123/">

<em>Freeamp</em>

FreeAmp is een uitbreidbare, cross-platform audio speler. Het is een
geoptimaliseerde versie van de GPLed Xing MPEG decoder welke het een van de
snelste en beste geluids spelers verkrijgbaar maakt. FreeAmp heeft een aantal
van de belangrijkste eigenschappen, gebruikers kommen in een makkelijke en
vriendelijk interface.

<url url="http://www.freeamp.org/">
</p>
</sect1>

<sect1><heading>Streaming Servers</heading>
<p>

Streaming servers stellen je in staat om MP3's te 'rond te sturen' over het
netwerk, dit kan je intranet zijn of het internet.

<em>Icecast</em>

Welkom! Icecast is een Mpeg Layer III Audio broadcasting system het the 
linuxpower.org team. Icecast komt gebundeld met iceplay en icedir. iceplay is
een playlist streamer die je in staat stelt geencodeerde files te zenden
naar je icecast server.

<url url="http://www.icecast.org/">

<em>Fluid</em>

Fluid Streaming Server is een programma voor het streamen van
media over netwerken, nu gebruikt het het mp3 formaat.

<url url="http://www.subside.com/fluid/"> (oude site)
<url url="http://fluid.sourceforge.net/"> (nieuwe site)
</p></sect1>

<sect1><heading>Mixen</heading>
<p>

<em/LiveIce/

LiveIce is de source client voor Icecast wat een mpeg stream encodeerd voor broadcast. Niet als clienten
als Shout en IceDJ staat dit het uitzenden van live audio toe, anders dan voorgeencodeerde mp3's.

Live is gebundeld met Icecast, nieuwere versies samen met documentatie kan gevonden worden op de website
hieronder:
   
<url url="http://star.arm.ac.uk/~spm/software/liveice.html">

<em/eMixer/

eMixer is een makkelijk te gebruiken front-end voor mpg123 dat je in staat stelt twee mp3 streams samen te
mixen. De mogelijk heid twee mp3's te mixen maakt eMixer een soort cross-fader, dit geeft de gebruiker DJ
mogelijkheden voor de computer. eMixer is er goed voor in een "real time" party omgeving. eMixer is gebaseerd
op de originele mix code waar liveice met werkt.

<url url="http://emixer.linuxave.net/">
</p>
</sect1>

<sect1><heading>Misc</heading> 
<p> <em>Volume normalisatie</em>

<em>Wavnorm</em>

Als je live audio hebt ge-encodeerd, of je hebt van oudere cd's geencode,
kun je variaties vinden in het algemene geluids niveau.</p>

<p>
Om het geencode volume niveau van MP3's te veranderen moet je ze
normaliseren met wavnorm.

<url url="http://www.zog.net.au/computers/wavnorm/"></p>

<p>
Sox is een erg handig sound conversie tooltje welke is aan tebevelen 
en je hebt het nodig als je wav norm wilt gebruiken.</p>

<p>
<url url="ftp://sunsite.unc.edu/pub/Linux/apps/sound/convert/"></p>

<p>
Je hebt misschien ook een mixer programma nodig; Xmixer werk goed en is
meegeleverd met de meeste distributies.</p>
</sect1>
</sect>

<sect><heading>Je systeem instellen.</heading>
<p>
Deze sectie zal de basis instellingen van je linux systeem beschrijven
die je nodig hebt om audio analoog of van Cd-rom op te nemen.

Ik baseer deze sectie op mijn Intel gebaseerd Linux systeem welke Redhat 
draait, maar het zou distributie neutraal moeten zijn. Ik heb kort op de
Sparc platform versie gewerkt. (als je succes hebt gehad met andere hardware
dan in deze HOWTO geef het dan door).

Natuurlijk een logische noodzakelijkheid is een werkende geluidskaart. Op
dit punt is het een goed idee om de <em>Linux Sound HOWTO</em>, door Jeff
Tranter te lezen. En daarna kun je de <em>Linux Sound Playing HOWTO</em>, door
Yoo C. Chung lezen. Beide van de hierboven vermelde howto's vertellen de
details van het aan de praat kijgen van een sound systeem onder Linux veel
beter dan ik dat kan doen.</p>

<sect1><heading>Instellen voor Analoge Geluids opname </heading>
<p>

Stel eerst je audio in. Er zijn heel veel wegen om je audio te routeren
voordat het in je Linux box komt, enkele algemene zijn:
 
Line out naar geluidskaart Line in. De meeste audio apparaten hebben een
Line out. Line level is een standaard die aan geeft welke voltage het audio
apparaat zend.  Als ik me goed herinner is dat 500mV voor huishoudelijke en
Semi-Pro apparaten, en 750mV voor Pro audio apparaten. Ik denk dat de
standaard voor de meeste geluids kaarten op 500mV staat, maar sommige van de
nieuwere Pro audio kan op de hogere standaard staan. Het zou niet veel
verschil moeten maken, tenzij je op de hogere kanalen gaat openen.

De line level output wordt normaal gebruikt om HIFI uitrusting aan te sluiten
op een amplifier, zodat dingen als een cassettedeck, Radio tuner, CD speler,
Dat machines en Mini-Disc spelers zonder problemen kunnen worden aangesloten.
Draai-tafels kunnen een groter probleem zijn, zie hieronder voor meer
informatie.

Je kan ook audio van Video's opnemen. De meeste Video's hebben een Line out
voor geluid, of je kan een line out hebben voor een Scart kabel als je 
video er een heeft.

Amplifier Tape out naar geluidskaart Line in, geluidskaart Line out naar
Amplifier  Tape in. Deze configuratie vervangt essentieel het traditionele
cassettedeck verbonden aan je HIFI amplifier met je Linux systeem. De
geluidskaart Line out naar de Tape in staat het nagaan van het opneem niveau
toe. 

Microfoon naar geluidskaart Microfoon in. De voltages gegenereerd door
microfoons is  veel kleiner dan de voltages gebruikt bij een Line level
device. Als je een Microfoon in je Geluidskaart Line in plugt, heb je kans
dat je helemaal niets opneemt.

<em>WAARSCHUWING: een line device in je geluidskaart
microfoon in pluggen kan schade aan je geluidskaart veroorzaken!!</em>

Draaitafel in microfoon in.

Veel dank aan Mark Tranchant voor het volgende. 

<em>
De ruwe uitvoer van een record deck cartridge is op een erg laag niveau.
Hoewel, je het niet direct in je microfoon in kunt pluggen en dan een goed
resultaat verwachten. De output heeft equalizatie nodig, als opnamen zijn
gedaan met weinig bass en veel treble om de fysica van de bewegende naald te
verbeteren. Deze equalizatie wordt nauwkeurig beschreven en verwezen als RIAA
equalizatie. Je *moet* de uitvoer door een microfoon pre-amp draaien, en dan
in de line in.</em>

Keyboards en synths moeten worden aangesloten op de Geluidskaart in, met
gitars verboden aan de Line in via DI (Direct Injection, gebruikt om het
signaal te converteren naar Line niveau) box.

Voordat je alles in je geluidskaart plugt, weet dan zeker dat het volume niveau 
geminimaliseerd is, of als je een microfoon gebruikt dat hij uit of weg van
de speakers is.</p>
</sect1>

<sect1><heading>Je CD-rom instellen voor het opnemen van audio</heading>
<p>
Je Linux systeem instellen voor het opnemen van audio data van CD-ROM is
redelijk gemakkelijk.

Als je een track kan horen spelen van je CD-ROM door je speakers of amplifier,
verbonden met je geluidskaart, dan is er een goede kans dat je het er van
kan opnemen.  </p>
</sect1>

<sect1><heading>Extra setup</heading>
<p>
Login als normaal op je systeem, dan kun je door het gebruik van een mixer
programma het opname niveau regelen tot deze luid genoeg is, om je een
bescheiden opname niveau te geven, maar niet te luid en vervormd. Ik doet
dit normaal met het oor, na een tijdje weet je welk niveau het beste is
voor jouw kit.

Ik raad aan om alle onnodige services uit te zetten of switchen naar het
1ste runlevel, vooral bij het encoden van een audio bron. Dit is om zeker te
weten dat het minimale aantal diensten draait en dus systeem obstakels
minimaliseerd zijn tijdens het opnemen.

Ik heb een aparte SCSI disk geinstalleerd, exclusief om de audio naar op te
nemen, die ik aangeef als /mp3. Dit heb ik speciaal gedaan voor de performance
winst bij het gebruik van een SCSI drive. Ook, opnemen op een speciale drive, 
waar je bijna zeker van weet dat de kop niet ineens naar een ander deel van
de drive gaat als je er audio data naartoe schrijft, dat is een goed idee :)

Voor de details van het instellen van een Linux systeem met meerdere schijven,
kun je de <em>Multi-Disk-HOWTO</em>, door Stein Gjoen lezen.</p>
</sect1>
</sect>

<sect><heading>Audio encoden.</heading>
<p>
Eerst, weet zeker dat je genoeg ruimte hebt op je schrijf. Op CD kwaliteit,
44.1 Khz 16 Bit stereo, is 1 minuut bijna 10 Mb (5 MB per kanaal).

Ik neem normaal op met DAT kwaliteit op, wat 48 Khz 16 Bit stereo is.

Als ik wavrec gebruik, gebruik ik het volgende commando:

/usr/local/bin/wavrec -t 60 -s 48000 -S /mp3/temp.wav

Het eerste deel is het volledige path naar wavrec. De '-t 60' specificeert
de lengte van tijd om op te nemen, in seconden.

De derde optie, -s 48000 geeft de sample rate aan in samples/sec. (48000 is
het geval bij DAT, 44100 is CD)

De laatste optie is het path naar de output file.

Om het volledige aantal opties te zien, draai waverec -help, of kijk in z'n
man page.

Dit produceert een WAV file. Daarna moet je deze encoden naar MP3.

Gebruik Bladeenc met het volgende commando:

/usr/local/bin/bladeenc <em/[bron file] [uitvoer file]/ -br 256000

De -br optie stelt de bit rate in, in dit geval heb ik de bit rate op maximaal
gezet 256k bits/s. Het path naar bladeenc kan ook anders zijn op je systeem
dan degene die ik heb gebruikt.

Om het volledige aantal opties te zien, draai dan 'bladeenc -help', eigenlijk
is dit een verkeerde optie, maar laat de lijst van opties wel zien.

Dezelfde encoding maar dan met Lame (net als met Gogo omdat het erop gebaseerd
is), geeft het volgende commando:

/usr/local/bin/lame <em/[bron file] [uitvoer file]/ -b 256
</p>
</sect>

<sect><heading>Encoderen van CD-ROM.</heading>
<p>
Op dezelfde manier als encoden van audio, is encoderen van CD een 2 stappen
proces.  Eerst de audio data van de cd afhalen en converteren naar een wav
file. En dan de wav file naar MP3 converteren.</p>
<p>
Er zijn 2 types encoders, console gebaseerd en X gebaseerd. Beiden doen het
zelfde, maar de X gebaseerde zijn makkelijker te gebruiken (en zien er leuker
uit).

Weer, voordat je begint met encoderen, kijk of je genoeg harde schrijf
ruimte hebt op je systeem. </p>

<sect1><heading>Command Line encoderen</heading>
<p>

Ik heb een zeer simpel Perl script geschreven dat tracks van een Cd zal
rippen en encoderen.

<tscreen><code>
#!/usr/bin/perl

if ($ARGV[0] ne "") {

$count = 1;

do {
 
$cdcap = system("cdparanoia", $count, "/mp3/cdda.wav");
$track = "$ARGV[1]/track".$count.".mp3";
$enc = system("bladeenc  /mp3/cdda.wav $track -br 256000");
$count++;

}
until $count > $ARGV[0];
exit;
}

else {
print "Usage cdriper [no of tracks] [destination directory]\n\n";
}
</code></tscreen>
Onthoud: Het script hierboven is erg basic en heeft niks moderns, zoals
error checking. Verbeter als je wilt. :)

De belangrijkste regels zijn:

<code>$cdcap = system("cdparanoia", $count, "/mp3/cdda.wav");</code>

Deze regel roept de CD ripper, cdparanoia aan. Cdparanoia converteert ruwe CD
audio data in het Wav formaat.

Ik gebruik Cdparanoia, maar als je CDDA2Wav wilt gebruiken zou het commando
zo moeten zijn:

<code>$cdcap = system("cdda2wav", $count, "/mp3/cdda.wav");</code>

De opvallenste opties zijn $count, welke het nummer van de track om te rippen is,
en dan het path voor de uitgevoerde Wav file. In mijn voorbeeld gaat dit door
een tmp directory op mijn MP3 SCSI disk.

De Wav file wordt geconverteerd naar MP3 door het gebruik van BladeEnc.

Ik heb het Perl script geschreven om te voorkomen dat je elke track apart moet
encoderen en rippen, en zodat je de batch mode van Cdparanoia niet nodig hebt.
Dit vermindert het aantal benodigde vrije Mb's, omdat Cdparanoia een hele Cd 
in een keer ript, en dit neemt tot 600 MB. 

Als je Lame of Gogo wilt gebruiken, verander de encoder regel dan naar:
<code>
$enc = system("lame  /mp3/cdda.wav $track -b 256");
</code>
of
<code>
$enc = system("gogo  /mp3/cdda.wav $track -b 256");
</code>

Hier is een dump van de verkrijgbare opties voor elke encoder.

BladeEnc
<code>
BladeEnc 0.91    (c) Tord Jansson          Homepage: http://bladeenc.mp3.no
===============================================================================
BladeEnc is free software, distributed under the Lesser General Public License.
See the file COPYING, BladeEnc's homepage or www.fsf.org for more details.

Usage: bladeenc [global switches] input1 [output1 [switches]] input2 ...

General switches:
  -[kbit], -br [kbit]  MP3 bitrate instellen. Standaard is 128 (64 voor mono uitvoer).
  -crc                 checksum data in MP3 file steken.
  -delete, -del        Sampel verwijderen na succesvol encoderen.
  -private, -p         Stel de private flag in de uitvoer file in.
  -copyright, -c       Stel de copyright flag in de uitvoer file in.
  -copy                Verwijdert de originele flags in de output file.
  -mono, -dm           Produceer een mono Mp3 door de stereo kanalen te combineren.
  -leftmono, -lm       Produceer een mono Mp3 van het linker stereo kanaal.
  -rightmono, -rm      Produceer een mono Mp3 van het rechter stereo kanaal
  -swap                Swap het linker en rechter stereo kanaal.
  -rawfreq=[freq]      Specificeer de frequentie van Raw samples. Standaard is 44100.
  -rawbits=[bits]      Specificeer de bits per kanaal voor Raw samples. Standaard is 16
  -rawmono             Specificeer dat de Raw samples mono zijn en niet stereo.
  -rawstereo           Specificeer dat de Raw samples stereo zijn. (standaard).
  -rawsigned           Specificeer dat de Raw samples gesigneerd zijn. (standaard).
  -rawunsigned         Specificeer dat de Raw samples niet gesigneerd zijn.
  -rawbyteorder=[order]Specificeer byteorder van Raw samples, LITTLE of BIG.
  -rawchannels=[1/2]   Specificeer het aantal kanalen voor Raw samples. doet hetzelfde
                       als -rawmono en respectivelijk -rawstereo.

Globale instellingen:
  -quit, -q            Quit zonder te wachten op een toetsdruk als het klaar is.
  -outdir=[dir]        Sla Mp3's op in gespecificeerde directory.
  -quiet               Het scherm uitvoer uit.
  -nocfg               Haal geen instellingen ui configuratie file.
  -prio=[prio]         Zet de taak prioriteit voor BladeEnc. Goede instellingen zijn
                       HIGHEST, HIGHER, NORMAL, LOWER, LOWEST(standaard) en IDLE
  -refresh=[rate]      Refresh rate voor de progress indicator. 1=snelst, 2=normaal.
  -progress=[0-8]      Welke programma indicator gebruiken. 0=Uit, 1=Standaard.

Input/output files kunnen worden verplaatst met STDIN en STDOUT.
</code>

Lame
<code>
LAME version 3.50 (www.sulaco.org/mp3) 
GPSYCHO: GPL psycho-acoustic model version 0.74. 

USAGE   :  lame [options] <infile> [outfile]

<infile> and/or <outfile> can be "-", which means stdin/stdout.

OPTIONS :
    -m mode         (s)tereo, (j)oint, (f)orce of (m)ono  (standaard j)
                    force = force ms_stereo op alle frames. Snelst en
                    gebruikt speciale Mid en Side masking schaal
    -b <bitrate>    stel de bitrate in, default 128kbps
                    (voor VBR, dit stelt de toegestaan minimale bitrate in)
    -s sfreq        sampling frequency van input file(kHz) - standaard 44.1
  --resample sfreq  sampling frequency van output file(kHz)- standaard=input sfreq
  --mp3input        input file is een MP3 file
  --voice           expirimentele geluids mode.

    -v              gebruik variabele bitrate (VBR)
    -V n            qualiteits instelling voor VBR. standaard n=4
                    0=hoogste qualiteit,grotere files. 9=kleinere files
    -t              schakel Xing VBR informatie tag uit
    --nohist        schakel VBR histogram weergave uit

    -h              gebruik (misschien) betere kwalatiet improvements
    -f              snele mode (lage kwaliteit)
    -k              schakel sfb=21 cutoff uit
    -d              sta toe dat kanalen verschillende blocktypes hebben 
  --athonly         gebruik alleen de ATH voor masking

    -r              input is raw pcm
    -x              forceer byte-swapping van input
    -a              downmix van stereo naar mono file voor mono encoderen
    -e emp          de-emphasis n/5/c  (verouderd)
    -p              fout protectie. Voegt 16bit checksum toe aan elk frame
		    (de checksum is goed berekend)
    -c              markeer als copyright
    -o              markeer als niet-origineel
    -S              print geen vooruitgangs rapport, VBR histogrammen 

  Een van deze opties meegeven zal een ID3 tag toevoegen
     --tt <titel>     titel van het liedje (max 30 karakters)
     --ta <artiest>   artiest die het liedje zingt (max 30 karakters)
     --tl <album>     album waar het van komt (max 30 karakters)
     --ty <jaar>      jaar waarin het liedje/album is gemaakt (max 4 karakters)
     --tc <commentaar>toegevoegde informatie (max 30 karakters)


MPEG1 samplerates(kHz): 32 44.1 48 
bitrates(kbs): 32 48 56 64 80 96 112 128 160 192 224 256 320 

MPEG2 samplerates(kHz): 16 22.05 24 
bitrates(kbs): 8 16 24 32 40 48 56 64 80 96 112 128 144 160
</code>

Gogo
<code>
GOGO-no-coda ver. 2.24 (Feb 12 2000)
Copyright (C) 1999 PEN@MarineCat and shigeo
          Special thanks to Keiichi SAKAI, URURI, Noisyu and Kei
This is based on LAME3.29beta and distributed under the LGPL
usage
gogo inputPCM [outputPCM] [options]

 inputPCM is input  wav file
if input.wav is `stdin' then stdin-mode
outputPCM is output mp3 file (omissible)

options
-b  kbps     bitrate [kpbs]
-br bps      bitrate [ bps]
-silent      geef geen vooruitgangs rapport weer 
-off         {3dn,mmx,kni(sse),e3dn}
-v {0,..,9}  VBR [0:hoge kwaliteit 9:hoge compresie]
             Je moet dit combineren met de -b optie
alleen voor RAW-PCM input
-offset       bytes overslaan header grootte
  -8bit       8bit-PCM [dflt 16bit-PCM]
  -mono       mono-PCM [dflt stereo-PCM]
  -bswap      hoge, lage byte swapping voor 16bitPCM
  -s kHz      freq van PCM [dflt 44.1kHz]
-nopsy        schakel psycho-acoustics uit
-m  {s,m,j}  output formaat s:stereo, m:mono, j:j-stereo
-d  kHz      verander sampling-rate van output MP3
-emh {n,c,5} de-emphasis
-lpf {on,off} 16kHz filter [dflt use als <= 128kbps; niet gebruiken als >= 160kbps]
-test        benchmark mode
-delete      verwijder input file, na encoden
</code>
</p>


<sect2><heading>RipEnc</heading>
<p>
RipEnc doet de zelfde taak als de code bovenaan, maar het is geschreven in shell en is makkelijker
te gebruiken :)

Hier is hoe het eruit ziet.

<code>
RipEnc version 0.7, Copyright (C) 1999  Michael J. Parmeley
<mjparme@asde.com>, RipEnc comes with ABSOLUTELY NO WARRANTY

There is currently NO encoding process running in the background
Your encode.log file is 982607 bytes long.

<Enter 'd' for details, 'v' to view the encode log, or 'del' to delete the encode log>


1) Verander de werk directory..................[/megajukebox/tmp]
2) kies encoder................................[lame]
3) Kies ripper.................................[cdparanoia]
4) Kies id3 tool...............................[none]
5) Zet CDDB benaming aan of handmatig..........[handmatig]
6) Setup XMCD_LIBDIR variabel voor CDA.........[/var/X11R6/lib/xmcd]
7) Hoe de naam van een liedje eruitziet........[artist-name_of_song.mp3]
8) Rip de hele CD?.............................[no]
9) Zet de kleine schijf optie aan..............[no]
10) Kies je Cd-Rom device......................[/dev/cdrom]
11) Stel de Bitrate in voor de encoded MP3's...[256]
12) Laat de file's zien in je werk directory
13) Start
14) About
?

</code>
</P>
</sect2>
</sect1>
<sect1><heading>GUI gebaseerde encoders</heading>
<p>

GUI gebaseerde encoders hebben dezelfde functionaliteiten als console
gebaseerde encoders, maar het is allemaal in een mooi en makkelijk te
gebruiken interface gestopt. Grip en RipperX zijn hetzelfde in werking, ze
bieden je beiden aan om enkele of alle tracks van een Cd te rippen en
converteren. Ze hebben ook CDDB support wat je in staat stelt om de informatie
van een album en zijn nummers te ontvangen van een server en bespaart je dat
je informatie met de hand moet invoeren.</p> </sect1>

<sect1><heading>Encoder snelheid</heading>
<p>
In de encodeer secties heb ik 3 verschillende encoders vermeld: bladeenc,
lame en gogo.  Het grote verschil zit in hun snelheid van encoderen (hoewel ze
verschillende opties hebben die we eerder hebben laten zien).

Een klein voorbeeld. Ik heb een track van een Cd geript en deze geencodeerd
met verschillende encoders. Alle encoders draaiden op hetzelfde systeem en
produceerden allemaal stereo mp3's.  <code>
[dj@megajukebox]$ ls -l cdda.wav 
-rw-rw-r--   1 dj       dj       59823164 Feb 10 00:56 cdda.wav

[dj@megajukebox]$ bladeenc cdda.wav -br 256

BladeEnc 0.91    (c) Tord Jansson          Homepage: http://bladeenc.mp3.no
===============================================================================
BladeEnc is free software, distributed under the Lesser General Public
License. See the file COPYING, BladeEnc's homepage or www.fsf.org for more
details.

Files to encode: 1

Encoding:  ../test.wav
Input:     44.1 kHz, 16 bit, stereo.
Output:    128 kBit, stereo.

Completed. Encoding time: 00:05:58 (0.78X)                                   

All operations completed. Total encoding time: 00:05:58

--------------------------------------------------------------------------------

[dj@megajukebox]$ lame cdda.wav -b 256
LAME version 3.50 (www.sulaco.org/mp3) 
GPSYCHO: GPL psycho-acoustic model version 0.74. 
Encoding ../test.wav to ../test.wav.mp3
Encoding as 44.1 kHz 128 kbps j-stereo MPEG1 LayerIII file
    Frame          |  CPU/estimated  |  time/estimated | play/CPU |   ETA
 10756/ 10756(100%)| 0:02:28/ 0:02:28| 0:02:29/ 0:02:29|    1.9074| 0:00:00 

--------------------------------------------------------------------------------

[dj@megajukebox]$ gogo cdda.wav -m s -b 256
GOGO-no-coda ver. 2.24 (Feb 12 2000)
Copyright (C) 1999 PEN@MarineCat and shigeo
          Special thanks to Keiichi SAKAI, URURI, Noisyu and Kei
MPEG 1, layer 3 stereo
inp sampling-freq=44.1kHz out sampling-freq=44.1kHz bitrate=256kbps
inp sampling-freq=44.1kHz out sampling-freq=44.1kHz bitrate=128kbps
input  file `../test.wav'
output file `../test.mp3'
{  10751/  10755} 100.0% (  2.94x)  re:[00:00:00.03] to:[00:01:35.42]
End of encoding
time=  95.430sec

</code>

Het ziet ernaar uit dat Gogo een meer geoptimaliseerd algoritme voor
encoderen heeft dan Lame. </p>
</sect1>
</sect>

<sect><heading>MP3's streamen.</heading>
<p>
Een streaming server stelt je in staat om MP3 files over een Tcp gebaseerd
netwerk te transporteren. dit kan het internet zijn of je lokale netwerk /
intranet.

De connectie principes zijn bijna gelijk aan die van een web server, files
worden gestreamd als een client (de MP3 speler) verbinding maakt met de server.

Een streaming server instellen is erg simpel. Ik fokus eerst op Icecast en dan Fluid.
</p>

<sect1><heading>Icecast</heading>
<p>

Na het downloaden en untarren, zou een goede kijk in de doc/ directorie geen
kwaad kunnen, de HTML handleiding is erg handig en omvattend. 

Als je de bron code hebt gedownload, volg dan de instructies voor het
compileren die relevant zijn voor je systeem.

Icecast zal niet goed werken als je de servernaam in de configuratie file,
icecast.conf, welke in de etc directory staat niet goed instelt. Het moet de
naam zijn die je IP adres kan ophelderen.  
Als je het volgende zie als Icecast opstart heb je problemen:
<code>
-> [05/Jan/2000:17:21:04] WARNING: Resolving the server name [your.server.name] does not work!
</code>
 
Edit de icecast.conf welke zich bevindt in de etc directory en zoek de regel
die het woord "server_name" bevat en voer je server naam in. Als je onzeker
bent kun je je hostname uitvissen met het <em>hostname</em> commando, of door
een kijkje in /etc/hosts.

Als je de nodige veranderingen hebt gemaakt moet je of de conf file naar de
bin directory kopie&euml;ren of icecast starten met de -c optie en de locatie
aangeven, zoals dit: <code>
./icecast -c ../etc/icecast.conf
</code>

Als alles goed is geconfigureerd, zie je iets wat lijkt op:
<code>
[dj@megajukebox bin]$ ./icecast -c ../etc/icecast.conf -d /home/dj/mp3/icecast/  
Icecast Version 1.3.0 Starting...
Icecast comes with NO WARRANTY, to the extent permitted by law.
You may redistribute copies of Icecast under the terms of the
GNU General Public License.
For more information about these matters, see the file named COPYING.

[05/Jan/2000:18:36:30] Icecast Version 1.3.0 Starting..
[05/Jan/2000:18:36:30] Using stdin as icecast operator console
[05/Jan/2000:18:36:30] Tailing file to icecast operator console
[05/Jan/2000:18:36:30] Server started...
[05/Jan/2000:18:36:30] Listening on port 8000...
[05/Jan/2000:18:36:30] Using [megajukebox] as servername...
[05/Jan/2000:18:36:30] Max values: 1000 clients, 1000 clients per source, 10 sources, 5 admins
-> [05/Jan/2000:18:36:30] [Bandwidth: 0.000000MB/s] [Sources: 0] [Clients: 0] [Admins: 1] [Uptime: 0 seconds]

</code> 

De -d optie zet de directory voor log files en templates.

Hieronder is de lijst van command-line opties:

<code>
	-c [filename] 

Geef een configuratie file door. Onthoud, dat elk command-line
optie die je meegeeft de waarden in de configuratie file 'vervangt',
dus alles in de icecast.conf wat niet is overschreven door de nieuwe
file wordt gebruikt voor de server.

	-P [port] 

Dit is de poort gebruikt voor alle client, source en admin connecties. Standaard
staat het op 8000.

	-m [max clients] 

Staat dit aantal client connecties toe. Als dit is berijk worden alle client
connecties geweigerd met 'HTTP/1.0 504 Server Full'.

	-p [encoder password] 

Dit stelt het paswoord dat de encoder moet gebruiken om naar de server
te streamen. Onthoud dat als je de server met crypt() hebt gecompileerd
dat hier ook een versleutelde string moet staan.

	-b 

Dit zend de icecast server in de achtergrond (een deamon process).
Om de admin commando's nu te gebruiken moet je connectie maken met de server
als een admin, met een soort van telnet client.

	-d [directory] 

Zorg dat icecast alle logfiles die hij maakt en alle templates waar hij naar
zoek in deze directorie.

</code>

Zo, de server is gestart, maar nu moeten we een MP3 bron er aan verbinden.
</p>

<sect2><heading>Shout</heading>
<p>
Shout voorziet Icecast van een statische playlist van MP3's om te streamen.

Je maakt een playlist van de MP3 files die je wilt streamen met het volgende
commando:

<code>
find [MP3 directory] -name *.mp3 -print > playlist
</code>

Het is heel makkelijk om het shout service te starten, geef het volgende
commando:

<code>
[dj@megajukebox bin]# ./shout megajukebox -P hackme -p playlist
</code>

De -P optie is het paswoord dat nodig is om een mount-punt toe tevoegen aan
Icecast, dit is normaal ingestelt als <em>hackme</em>..... Ik raad je sterk
aan dit te veranderen voordat een ander het doet :) De -p optie specificeert
de lokatie van de playlist file.

Hieronder is een lijst van alle command line opties:

<code>
[dj@megajukebox bin]# ./shout
Usage: shout <host> [options] [[-b <bitrate] file.mp3]...
Options:
	-B <directory>	- Gebruik deze directory voor alle shout files
	-C <file>	- Gebruik file als configuratie file
	-D <dj_file>	- Draai dit voor elk liedje (system())
	-P <password>	- Gebruik als paswoord password
	-S		- Geef alle instellingen weer en exit
	-V		- Gebruik verbose uitvoer
	-X <desc>	- Gebruik gespecificeerde beschrijving
	-a		- schakel automatisch bitrate (transfer) correctie 
	-b <bitrate>	- Start met het gespicifeerde bitrate
	-d		- Schakel de dj in.
	-e <port>	- Verbind op poort met server.
	-f		- Sla files over die niet de goed bitrate hebben
	-g <genre>	- Gebruik een specifiek genre
	-h		- Laat deze tekst zien
	-i		- Gebruik oude icy headers
	-k		- Vermink de interne playlist niet
	-l		- Ga voor altijd door (loop)
	-m <mount>	- Gebruik het gespecificeerde mount punt
	-n <name>	- Gebruik de gespecificeerde naam
	-o		- Schakel bitrate autodetectie uit
	-p <playlist>	- Gebruik deze file als een playlist
	-r		- Shuffle playlist (random play)
	-s		- (Geheim) Zend geen meta data naar directory server
	-u <url>	- Gebruik de gespecificeerde url
	-v		- Laat versie zien
	-x		- Update de cue file niet (spaart cpu)
	-z		- Ga in de achtergrond (Daemon mode)
	-t		- Schakel titel streaming in

</code>
</p>
</sect2>

<sect2><heading>LiveIce</heading>
<p>

LiveIce kan in 2 modes werken, het kan een playlist doorgeven aan Icecast of kan live audio van de
geluidskaart doorgeven.

Na het untarren en lezen van de README betreffende het compileren van het pakket, zorg dan dat mpg123 is
geinstalleerd en dat LiveIce het kan gebruiken als LiveIce het nodig heeft.

Er zijn twee manieren om LiveIce te configureren. De config file editten met vi/emacs/of wat dan ook of
doormiddel van een TK gebaseerde configuratie tool, wat een mooie manier van editten is :)

De best plaats voor beschrijvingen over de internals van liveice.conf kan worden gevonden op
de LiveIce homepage waar Scott alle opties beschrijft.

Dit is een kopie van mijn config file met LiveIce ingesteld in de mixer mode (streamen van een lijst MP3's)

NOTITIE: Ik heb commentaar toegevoegd aan de file, dus als je kopie en paste doet zorg dan dat
er geen tekst op de volgende regel verschijnt anders werkt LiveIce niet :)
<code>
# liveice configuratie file
# Automatisch gegenereerd

SERVER megajukebox		# Je server naam * MOET DE NAAM ZIJN HOE DE SERVER IS GENOEMD *

PORT 8000			# De poort waar Icecast op draait.

NAME Megajukebox		# Informatie met betrekking to de server naam die wordt gezonden
                                # naar de MP3 spelers en de directory servers.
				# Voorbeelden 'Sarah FM' of 'ThisTown: Loud and Heavy Jazz -Internet Radio 24/7' 

GENRE Live			# Informatie over het genre. Bijvoorbeeld 'Talk' of 'Dance'

DESCRIPTION			# Informatie over het station. Voorbeeld 'The best for reggae in the North'

URL http://megajukebox:8000	# De URL en poort van de serverThe URL and port of the server.

PUBLIC 0			# Zet hier 1 als wilt dat Icecast je station lijst en details moet doorgeven.
				# laat het anders op 0 staan

XAUDIOCAST_LOGIN		# Kan ICY_LOGIN zijn of X_AUDIOCAST_LOGIN. X_AUDIOCAST is beter. 

MOUNTPOINT /techno		# Stelt de naam van het mountpunt van de stream in voor Icecast.
				# Wordt alleen gebruikt als X_AUDIOCAST is gebruikt. De default is icy_0

PASSWORD hackme			# Het admin paswoord van Icecast.

SAMPLE_RATE 44100		# De sample rate van de stream
STEREO				# kan MONO of STEREO zijn

NO_SOUNDCARD			# Zie hieronder

HALF_DUPLEX			# Stelt de soundkaar duplex mode in. Kan HALF_DUPLEX of FULL_DUPLEX zijn

USE_GOGO			# Stelt de encoder in die moet worden gebruik. Kijk in de README voor een lijst

BITRATE 128000			# Stelt de bit rate van de stream in (zie hieronder)

VBR_QUALITY 1			# Stelt de variabele bit rate kwaliteit in.

MIXER				# Zie hieronder

PLAYLIST /megajukebox/playlist	# Lokatie van de playlist (zie details op het find commando later
                                # in dit hoofdstuk)

TRACK_LOGFILE track.log		# Filenaam en lokatie om de lijst van MP3's te dumpen die gestreamt worden

Als je de config file hebt start je LiveIce op deze manier:
<code>
[dj@megajukebox liveice]$ ./liveice
/megajukebox/playlist
1
opening connection to megajukebox 8000
Attempting to Contact Server
connection successful: forking process
opening pipe!...
writing password
Setting up Interface
Soundcard Reopened For Encoding
Input Format: 16Bit 44100Hz Stereo
Output Format: 256000 Bps Mpeg Audio
IceCast Server: megajukebox:8000
Mountpoint: /techno
Name: megajukebox - this and that radio - broadcasting 24/7
Genre: Techno
Url: http://megajukebox
Description: a load of digital noise -> but i know you like it :)

 Press '+' to Finish
adding /megajukebox/demotunes/track_1.mp3
adding /megajukebox/demotunes/track_2.mp3
adding /megajukebox/demotunes/track_3.mp3
adding /megajukebox/demotunes/track_4.mp3
/megajukebox/demotunes/track_4.mp3
Adding New Channel 1
Adding New Channel 2
Channel 1 selecting 
 /megajukebox/demotunes/track_1.mp3
Channel 2 selecting 
 /megajukebox/demotunes/track_1.mp3
Playing track_1.mp3
searching for Id3v2
searching for Id3v1
copying the data
fixing the nulls
adding the url
closing input file
Using log track.log
</code>

The last line is a peak meter.

Dit zijn de toetsenbord controls voor de mixer mode:
<code>
Actie                           	Kanaal 1 toets  Kanaal 2 toets
~~~~~~                          	~~~~~~~~~~~~~~   ~~~~~~~~~~~~~~
Selecteer volgende track op kanaal      1                a
Selecteer vorige track op kanaal    	q                z
Start/Stop kanaal               	2                s
Reset kanaal                    	w                x
Verhoog volume op kanaal        	3                d
Verlaag volume op kanaal        	e                c
Verhoog snelheid op kanaal      	4                f
Verlaag snelheid op kanaal      	r                v
Sticky mode Aan/Random/Uit              5                g
Preview kanaal                          t                b
Random Track                            u                m
</code>

De bovenstaande liveice.cfg is voor mixermode. Om LiveIce in audio mode te gebruiken verander dan de regel
met MIXER naar NOMIXER en maak NO_SOUNDCARD, SOUNDCARD en herstart LiveIce.

De correctie opties vergeten instellen kan lijden to enkele interesante waarschuwingen ;)
<code>
   946:Error: Line In mode *en* geen soundkaart??????? Eeejit!
</code>

Als je alles goed hebt ingesteld en een externe bron hebt ingeplugd, moet je kunnen streame =:)
<code>

[dj@megajukebox liveice]$ ./liveice
/megajukebox/playlist
0
Initialising Soundcard
16Bit 22050Hz Stereo Full Duplex 
opening connection to megajukebox 8000
Attempting to Contact Server
connection successful: forking process
opening pipe!...
writing password
Setting up Interface
Soundcard Reopened For Encoding
Input Format: 16Bit 22050Hz Stereo
Output Format: 32000 Bps Mpeg Audio
IceCast Server: megajukebox:8000
Mountpoint: /daves_band_live_at_the_club
Name: megajukebox - Dave and the Dynamite - Live at the Roxy  
Genre: Live/Rock
Url: http://megajukebox
Description: megajukebox::Louder than a frog in a trashcan..... and 
sical
 Press '+' to Finish
Lvl: L:   8704 R:  11776 
</code>
De laatste regel is een signaal meter, als het input signaal te hoog is krijg je een *clip* waarschuwing.
Als je de gain van de input source zachter zet.

De slim goed geoogedenn onder jullie heeft misschien gezien dat in
liveice.cfg de eerste regel commentaar laten
zien dat de file automatisch is gegenereerd. Als je de TK gebaseerde GUI liveiceconfigure.tk gebruikt
en je hebt handmatige veranderingen gemaakt ben je die kwijt. Gebruik de GUI of leer vi/emacs :)
</p>
</sect2>
</sect1>

<sect1><heading>Fluid</heading>
<p>
Na het untarren van de bundel cd naar de directory, lees dan de README :)

Fluid heeft drie basis modes van operatie, verzenden, ontvangen en doorsturen. 
Ik focus alleen op verzenden.

De configuratie files die te maken hebben met transmit staan in
config/MP3TX.cfg. Om de server met het volgende te testen zouden de standaard
settings ok moet zijn:

java Fluid TX

Natuurlijk moet je een vorm Java eerst geinstalleerd hebben. Je kan de
Blackdown port  van JDK gebruiken verkrijgbaar op  <url
url="http://www.blackdown.org"> of als je  Redhat gebruikt, Kaffe.

Fluid komt met een paar voorbeeld MP3 files, Dus als er iets werkt zou je
iets als dit  moeten zien
(Ik heb de server in dit voorbeeld met Kaffe gestart, je kan het ook starten
met java): 

<code>
[dj@megajukebox Fluid-Beta2J]$ kaffe Fluid tx
------- Fluid Streaming Server Beta 2 ------- 
This program is ShareWare(tm) and it will not 
be crippled in any way because of it. However 
if you do like the program and will use it    
commercial purposes, we ask of you to contact 
us at the address below for pricing info:     
                                              
 Eldean AB                  E-mail:           
 Sjoangsvagen 7             fluid@subside.com 
 S-192 72 Sollentuna                          
 SWEDEN                                       
                                              
   Fluid is Copyright Subside (C) 1998        
       written by Lars Samuelsson             
         http://www.subside.com               
--------------------------------------------- 

* Transmission mode *
Reading config from: config/MP3TX.cfg
Reading playlist: playlist.m3u
Server started on port: 2711
Accepting administrator login on port: 2710
P| Dr. Nick - Hello Everybody

</code>

Als je zo ver komt, ziet het er naar uit dat het werkt, maar ik weet zeker
dat je meer wilt  streamen dan alleen de demo files! 

Je moet een playlist van MP3's die je wilt streamen compileren. Dit is een
statische lijst,  gebruikers kunnen geen aanvragen maken. Deze playlist is
playlist.m3u en staat standaard in de root directory.

Om een playlist van alle MP3's in een bepaalde directory (of disk) te
compileren gebruik  dan dit commando:

<code>
find [MP3 directory] -name *.mp3 -print > playlist.m3u
</code>

Standaard gebruikt de server poort 2711, dit is waar je luisteraars
verbinding mee maken, als je dit wilt veranderen kan dat in de configuratie
file.

De server kan op afstand worden beheerd door te telnetten naar de admin poort,
standaard poort 2710: 
<code>
[dj@megajukebox Fluid-Beta2J]$ telnet localhost 2710
Trying 127.0.0.1..megajukebox
Connected to localhost.localdomain.
Escape character is '^]'.
jaguar
You are connected to the -Fluid- Streaming Server
Type "help" for a command reference
help
The following commands are available:
 help conn curr exit
curr
Information about the currently broadcasted song:
Title:   Beer Talk
Artist:  Homer Simpson
Album:   The Simpsons
Year:    1996
Comment: Borrowed this as an example
Genre:   Comedy

</code>

Het woord "jaguar" is het admin password, dit is standaard. Er is geen
prompt voor het password dus wacht er niet op! Ik raad je aan dit te
veranderen of je nodigt een hacker uit! Het kan veranderd worden in de
configuratie file, welke er zo uitziet:

<code>
[dj@megajukebox config]$ cat MP3TX.cfg 
2711
2710
5
4096
32
1000
jaguar
playlist.m3u
current.txt

# --- De regels zijn ---
# 1. POORT nummer (welke de server gaat gebruiken)
# 2. POORT nummer (voor het onderhouden van de server)
# 3. Maximaal aantal connecties (voor de server)
# 4  Packetgrootte bij het lezen/zenden (in bytes)
# 5. Bitrate van de mp3s in kbit/s (alle mp3s moeten dezelfde bitrate hebben)
# 6. Tijd tussen liedjes (in milliseconden)
# 7. Paswoord voor op afstand beheren
# 8. Playlist naam (lijst in .m3u formaat)
# 9. Naam van de file om de song info naar toe te schrijven (van ID3-tag)
</code> 

De opmerking op de playlist is dat deze in m3u formaat is wat betekent dat
het in het zelfde formaat is als het find commando eerder. </p>
</sect1>

<sect1><heading>Bandbreedte afwegingen</heading>
<p>

Audio streamen kan ontzettend veel bandbreedte innemen als de bit-rate van de
MP3 server te hoog staat.

Overweeg dit scenario. Een T1 link heeft een capaciteit van ongeveer 1.55
Mb/Sec. Als je je MP3' streamt op 128K/Bps stereo, zal elke speler 256K/Bps
gebruiken, dus er kunnen maar 6 gebruikers verbinding maken met je MP3 server
op elk tijdstip zonder problemen. En 256K/Bps, kunnen veel gebruikers niet
door hun modem krijgen!

Dus je moet een beslising maken niet alleen in te stellen op wat de server
kan, maar op wat een client kan. 24K/Bps geeft een redelijke kwaliteits
signaal waar 56K modem gebruikers naar kunnen connecten, en dezelfde T1 line
kan nu 32 connecties aan. 

Als je server op een Intranet draait, telt bandbreedte nog steeds mee vooral
als je een 10M/Sec netwerk hebt.

Maar laat a.u.b je ISP of sys admin weten dat je gaat streamen anders zorg je
voor opschudding. Sommige ISP's laten je betalen voor bandbreedte als je een
limiet overschreidt en sys admins willen weten waarom hun netwerk zo traag is
:)</p> </sect1>

<sect1><heading>Copyright onderwerpen</heading>
<p>

Ik denk dat het logisch is dat platenmaatschappijen het niet leuk vinden als
je hun materiaal zonder hun toestemming of betaling gaat streamen! Dus wat kun
je streamen? 

Dit is een gebied waar je je bewust moet zijn van legaliteit, omdat jij
degene bent die schuldig is.

Hieronder staan twee links, een van de Electronic Frontier Foundation, welke
advocaten zijn welke de beperkingen van de omliggende technologie vrijer
willen maken. De andere link is naar de  Recording Industry Association of
America, welke artiesten beschermt tegen piraterij.

Ik raad je sterk aan beide sites te bezoeken en andere waar je fysiek op
gebaseerd bent.

<url url="http://www.eff.org/cafe/">

<url url="http://www.riaa.com/weblic/weblic.htm">
</p>
</sect1>
</sect>

<sect><heading>MP3's luisteren</heading>
<p>
Hopelijk heb je nu enkele MP3 files om te beluisteren, en je hebt de keuze
om van stream of file te spelen.</p>

<sect1><heading>Spelen van een File </heading>
<p>

Spelen van een file is bij alle spelers erg simpel. Het enige verschil is
dat sommige command-line gebaseerd zijn en ander X gebaseerd.

Om een MP3 te spelen van een file moet je de mp3 file doorgeven als een
parameter, zoals dit: 

<code>
[dj@megajukebox]$ mpg123 /mp3_files/SampleFile.mp3

of

[dj@megajukebox]$ xaudio /mp3_files/SampleFile.mp3

</code>

Als je een serie files wilt spelen, geef ze dan een lijst:

<code>
[dj@megajukebox]$ alsaplayer /mp3_files/SampleFile1.mp3 /mp3_files/SampleFile2.mp3
</code>

Om tracks in een directory te spelen, gebruik dan een wildcard om alle files
te selecteren:

<code>
[dj@megajukebox]$ xmms /mp3_files/*.mp3
</code>
</p>
</sect1>

<sect1><heading>MP3 spelen van streams</heading>
<p>

Mp3's spelen van een MP3 stream is ook best simpel, gewoon de file met de
streams url en poort nummer:

<code>
mpg123 http://localhost:8000

of

freeamp http://megajukebox:2711
</code>
</p>
</sect1>

<sect1><heading>Mixen</heading>

<sect2><heading>eMixer</heading>
<p>

eMixer geeft je de mogelijkheid MP3's te mixen net als bij een menpaneel van een DJ.

Niewere versies ondersteunen 2 geluids kaarten zodat je je mix uit kan voeren op de ene kaar en de volgende
track beluisteren op de andere geluids kaart.

Als normaal als je hebt geuntart, kijk je in de readme file hoe je het pakketje moet compileren.

Je moet een playlist met MP3 files maken, doe dit met het find commando dat in de Streaming sectie staat.

Je moet zorgen de mpg123 is geinstalleerd voordat je eMixer kunt gebruiken.

Hier zijn de controle toetsen (uit de readme file)

<code>
KEYBOARD CONTROLS

"up, down"              door de playlist scrollen
"page up, page down"    door de playlist scrollen met bladzijden per keer
"enter"                 start/stop track
"tab"                   verander kanaal
"}","]"                 Volume en snelheid controle/scherm
"space"                 herstart de actieve track
"left, right"           fader controls
"insert"                verhoog  volume/snelheid in kanaal een  
"home"                  verlaag  volume/snelheid in kanaal een  
"delete"                verlaat  volume/snelheid in kanaal twee  
"end"                   increase volume/snelheid in kanaal twee  
"< , / , >"             links, center & rechts posities van fader
" + , = "       (NEW)   wissel tussen faders 
" q "                   start/stop kanaal een
" w "                   start/stop kanaal twee
" p "                   Verwissel de playmodes - single, loop, continous, random
" a "                   stop alle kanalen
" f "                   file menu
" u "                   util menu
" h "                   help menu
" ~, ` "                annuleer menu
" s "                   zet sim play aan
                        (SIM Play start de zelfde track in beide kanalen
                        tegelijk ) 
</code>

</p>
</sect2>
</sect1>
</sect>

<sect><heading>Feedback.</heading>
<p>
Nieuwe hardware en software wordt altijd gereleased. Als je nieuwe versie
van hardware en / of software in deze gebruikt, of als je iets kan toevoegen,
zend dan je informatie voor toevoeging naar <em>phil@plus24.com</em> en ik zet
het in de volgende release. 

Omdat ik alle vragen beantwoord, onthoud dan dat ik niet altijd kan terug
mailen omdat ik ook moet werken.

Happy MP3'ing!!
</p>
</sect>
</article>
</linuxdoc>
 
