# &arts;-værktøjer

Et antal værktøjer levereres sammen med &arts; til at kontrollere og indrette dens opførsel. Du skal kende en smule til de fleste af disse værktøjer for at kunne bruge &arts; på en effektiv måde. Dette afsnit beskriver hvert af værktøjerne og deres kommandoflag.

## &kcontrol;

Når man kør &arts; under &kde;, sørger &kcontrolcenter; for en gruppe af indstillinger i kategorien Lyd. Visse af disse bruges af &arts;. Man kan også tilknytte lyd til forskellige vinduehåndterings- og &kde;-begivenheder med dialogen Lyd Systembekendtgørelser. Se håndbogen for &kcontrol; for mere information om hvordan dialogens indstillinger bruges.

## &artsd;

Adgangen til lydkort kontrolleres af &artsd;, lydserveren for &arts;-dæmonen. Dette tillader at flere programmer samtidigt sender forespørgsler til serveren, hvor de kan blandes og afspilles. Uden en central lydserver ville et enkelt program som bruger en lydenhed forhindre andre programmer i at bruge det.

For at bruge &arts; skal der være en og kun en kopi af &artsd; som kører. Den startes typisk når &kde; startes hvis dette er aktiveret i &kcontrol;'s Lydserver-modul.

Programmet accepterer følgende flag:

    artsd  -n -p -N -W n   -a lydmetode -r samplingrate -b bit -d -D enhedsnavn -F fragmenter -S størrelse -s sekunder -m programnavn   -h -A -v -l niveau

`-r `samplingrate``

- Indstil samplingrate som skal bruges.

`-h`

- Vis kommandobrug.

`-n`

- Aktivér netværkstransparens.

`-p `port``

- Sæt TCP-port som skal bruges (forudsætter `-n`).

`-u`

- Offentlig, ingen godkendelse (farligt).

`-d`

- Aktivér fuld duplex.

`-D `enhedsnavn``

- Angiv lydenhed (almindeligvis `/dev/dsp`).

`-F `fragmenter``

- Sæt antal fragmenter.

`-S `størrelse``

- Sæt fragmentstørrelse i byte.

`-s `sekunder``

- Indstil forsinkelsen før autosuspendér aktiveres i sekunder. Værdien nul lukker af for autosuspendér.

`-m `programnavn``

- Angiv navnet på et program som bruges til at vise fejl, advarsler og informationsmeddelelser. Hvis du kører KDE kan du bruge værktøjet artsmessage til dette.

`-N`

- Forøg størrelsen af netværksbufferne til en værdi som er passende til at køre med et 10 Mbps lokalt netværk. Dette er det samme som at bruge flaget -w 5 (se nedenfor).

`-w `n``

- Når artsd køres via en netværkstilslutning til en anden værtsmaskine vil man ofte bruge en stor buffer for at undgå pauser. aRts foreslår en minimal bufferstørrelse for programmer. Uden denne valgmulighed baserer den standardstørrelsen på fragmentstørrelsen * antal fragmenter. Med dette tilvalg kan man øge størrelsen fra standardstørrelsen med en faktor `n`.

`-l `niveau``

- Indstil informationsniveau: 3 (tavs), 2 (advarsler), 1 (info), 0 (fejlsøgning).

`-v`

- Vis versionsniveau.

I de fleste tilfælde er det nok kun at køre &artsd;.

## &artswrapper;

For at give gode realtidsegenskaber køres &artsd; oftest som en realtidsproces (på platforme hvor realtidsprioriteter understøttes). Dette kræver `root`-rettigheder, så for at minimere sikkerhedsproblemerne, kan &artsd; startes med det lille omsluttende program &artswrapper; som helt enkelt skifter til realtidsprioritet (mens det kører som `root`) og derefter starter &artsd; som en anden bruger end `root`.

Hvis du gør &artswrapper; SUID `root`, kommer det formodentlig til at forbedre kvaliteten af lydgengivningen ved at reducere huller i musikken. Dog øges også risikoen for at en fejl i koden, eller en ondsindet bruger kan få maskinen til at bryde sammen eller skade den på anden måde. Desuden kan det at prioritere høj lydkvalitet på flerbrugermaskiner forårsage forringet ydelse for brugere som forsøger at bruge maskinen på en produktiv måde.

## &artsshell;

Kommandoen &artsshell; er beregnet som et værktøj til at udføre diverse funktioner som hører sammen med lydserveren. Formodentlig vil værktøjet blive udvidet med nye kommandoer i fremtiden (se kommentarerne i kildekoden for nogle idéer).

Kommandoen accepterer følgende format:

    artsshell  suspendstatus terminate autosuspend secs networkbuffers n volume [volume] stereoeffect options   -h -q

artsshell [flag] `kommando` [`kommandotilvalg`]

Følgende flag understøttes:

`-q`

- Undertryk al udskrift.

`-h`

- Vis kommandobrug.

Følgende kommandoer understøttes:

`suspend`

- Suspendér lydserveren.

`status`

- Vis statusinformation for lydserveren.

`terminate`

- Afslut lydserveren. Dette kan forvirre og/eller forårsage sammenbrud for programmer som for øjeblikket bruger den.

`autosuspend` `sekunder`

- Indstil forsinkelsen for aktivering af autosuspension til det angivne antal sekunder. Lydserveren vil blive suspenderet hvis den er inaktiv så længe. Værdien nul deaktiverer autosuspension.

`networkbuffers` `n`

- Indstiller størrelsen af netværksbufferne til en faktor `n` gange standardstørrelsen.

`volume` [`volume`]

- Indstiller lydstyrkeskalering for lydserverens lyduddata. Parameteren `volume` er et decimaltal. Uden parameter vises den nuværende lydstyrke.

`stereoeffect liste`

- Vis alle tilgængelige stereoeffektmoduler.

`stereoeffect insert [top|bottom]` `navn`

- Indsæt en stereoeffekt i stereoeffekt-stakken. Returnerer en identifikator som senere kan bruges til at fjerne den. Effekten kan installeres længst oppe eller længst nede (normalværdien).

`stereoeffect remove` `id`

- Fjerner stereoeffekten med identifikatoren `id` fra effektstakken.

## artsplay

Programmet artsplay er et enkelt værktøj til at afspille en lydfil. Det accepterer en enkelt parameter som svarer til navnet på lydfilen som sendes til lydserveren for at spilles. Lydfilen kan være en hvilken som helst almindelig lydfiltype, såsom `wav` eller `au`. Dette værktøj er godt til at prøve om lydserveren virker. Ved at køre to kommandoer parallelt eller i hurtig rækkefølge kan man demonstrere hvordan lydserveren blander mere end en lydkilde.

## artsdsp

Lydserveren håndterer kun programmer som understøtter &arts;. Mange gamle programmer vil ønske at komme direkte til lydenheden. Kommandoen &artsdsp; sørger for en interimløsning som lader de fleste af disse programmer køre uforandrede.

Når et program køres med &artsdsp; fanges alle forsøg på at komme til lydenheden `/dev/dsp` og forvandles til kald til &arts; programmeringsgrænseflade. Selv om enhedsemuleringen ikke er perfekt, så virker de fleste programmer på denne måde, omend med en vis forværring i ydelse og latenstid.

Kommandoen &artsdsp; følger formatet:

artsdsp [`flag`] `programargumenter`

Følgende flag genkendes:

`-h`, `--help`

- Vis kortfattet hjælp.

`-n` `--name` = `navn`

- Brug `navn` til at identificere en afspiller for `artsd`.

`-m` `--mmap`

- Emulér hukommelsesafbildning (f.eks for Quake).

`-v` `--verbose`

- Vis parametre.

Et typisk kald er:

``artsdsp` `-v` `-m` `realplay `song.mp3```

Visse programmer virker bedre med flaget `--mmap`. Lydenhedens funktioner er ikke alle fuldstændigt emulerede, men de fleste programmer skulle virke. Hvis du finder et som ikke gør det, så indsend en detaljeret fejlrapport så udviklerne kan ordne det. Igen, husk at dette er en midlertidig løsning og noget af en grim hurtigløsning. Den bedste løsning er at tilføje indbygget støtte for &arts; i programmerne. Hvis dit favoritlydprogram ikke har støtte for &arts;, så bed udviklerne om at sørge for det.

## artscat

Dette er et enkelt værktøj til at sende rå lyddata til lydserveren. Man skal angive dataformatet (samplingsfrekvens, samplingsstørrelse og antal kanaler). Dette er formodentlig ikke et værktøj som man behøver bruge ofte, men det kan være bekvemt for testformål. Kommandosyntaksen er:

artscat [ `flag` ] [ `filnavn` ]

Hvis intet filnavn angives læser programmet fra standardinddata. Følgende flag understøttes:

`-r` `samplingsfrekvens`

- Sæt den samplingsfrekvens som bruges.

`-b` `bit`

- Sæt samplingsstørrelse som bruges (8 eller 16).

`-c` `kanaler`

- Sæt antal kanaler (1 eller 2).

`-h`

- Vis kommandobrug og afslut.

## &artscontrol;

Dette er et grafisk værktøj til at udføre et antal opgaver som hører sammen med lydserveren. Standardvinduet viser to lydstyrkeindikatorer og en skyder til at indstille den generelle afspilningslydstyrke. Fra menuen Vis kan du vælge andre funktioner:

FFT-omfang

- Åbner et vindue som viser en skærm med en realtidsspektrumanalysator.

Lydhåndtering

- Viser aktive lydkilder og lader dig forbinde dem til alle tilgængelige busser.

aRts status

- Viser om lydserveren kører og om realtidsskemalægning bruges. Angiver når serveren vil autosuspendere og tillader dig at suspendere med det samme.

Midihåndtering

- Viser aktive &MIDI; ind- og udgange og tillader dig at lave forbindelser [HUSK: virker dette endnu? Behøver flere detaljer].

FreeVerb

- Tilslutter en FreeVerb efterklangseffekt til stakken af &arts; udskriftseffekter og lader dig kontrollere lydeffektindstillingerne grafisk.

Led-lignende lydstyrkevisning

- Ændrer lydstyrkeindikatorerne i hovedvinduet til at bruge et visningsformat med farvede lysdioder i stedet for bjælker.

## artsc-config

Dette værktøj er der for at hjælpe udviklere som bruger C-API i &arts;. Det angiver de rigtige oversætter- og linkflag som behøves når man kompilerer og linker med &arts;. Det er beregnet til at bruges i make-filer for at hjælpe til med flytbarhed. Kommandoen accepterer tre flag:

`--cflags`

- Viser oversætterflag som behøves når man kompilerer med &arts; C-API.

`--libs`

- Viser linkerflag som behøves når man linker med &arts; C-API.

---version

- Viser versionen af kommandoen `artsc-config`.

Typisk udskrift fra kommandoen vises nedenfor:

    % artsc-config --cflags
    -I/usr/local/kde2/include/artsc
    % artsc-config --libs
    -L/usr/local/kde2/lib -ldl -lartsc -DPIC -fPIC -lpthread
    % artsc-config --version
    0.9.5

Man skal kunne bruge dette værktøj i en make-fil med en regel såsom:

    artsc: artsc.c
            gcc `artsc-config --cflags` -o artsc artsc.c `artsc-config --libs`

## &mcopidl;

Kommandoen &mcopidl; er &IDL;-fil oversætteren for &MCOP;, multimedia-kommunikationsprotokollen som bruges af &arts;. Grænseflader i &arts; defineres med &IDL;, et sproguafhængig grænsefladesdefinitionssprog. Værktøjet &mcopidl; accepterer en &IDL;-fil som inddata og laver C++ deklarations- og kildekodefiler for en klasse som implementerer grænsefladen. Kommandoen accepterer følgende syntaks:

mcopidl [ `flag` ] `filnavn`

Gyldige flag er:

`-I` `mappe`

- Søg i `mappe` efter deklarationsfiler.

`-e` `navn`

- Spring over en struct, grænseflade eller nummereringstypen `navn` ved kodegenerering.

`-t`

- Opret også `.mcoptype`/`.mcopclass` filer som indeholder typeinformation for &IDL;-filen.

Mere information om &MCOP; og &IDL; findes i afsnittet Grænseflader og &IDL;.