# Ferramentas do &arts;

Incluído com o &arts;, vem um conjunto de utilitários para controlar e configurar o seu comportamento. Você precisa de ter alguma familiaridade com a maioria dessas ferramentas para usar efectivamente o &arts;. Esta secção descreve cada um dos utilitários e as suas opções de comando.

## &kcontrol;

Ao correr o &arts; no &kde;, o &kcontrolcenter; oferece um grupo de opções do painel de controlo na categoria Som. Algumas dessas opções são usadas pelo &arts;. Você também poderá associar sons com vários eventos do gestor de janelas e do &kde; com o painel Aparência & Comportamento Notificações do Sistema. Veja o manual do &kcontrol; para saber como usar as opções do painel.

## &artsd;

O acesso aos recursos de 'hardware' de som é controlado pelo &artsd;, o servidor do &arts;. Isto permite às várias aplicações enviarem pedidos simultâneos ao servidor, onde poderão ser misturados e tocados. Sem um servidor de som centralizado, uma única aplicação que usasse um dispositivo de som iria impedir que as outras aplicações o usassem também.

Para usar o &arts;, deverá existir uma e apenas uma cópia do &artsd; a correr. É tipicamente executada quando o &kde; se inicia, se estiver activo no painel do &kcontrol; Servidor de Som do &kcontrol;.

O programa aceita os seguintes argumentos:

    artsd  -n -p -N -W n   -a método de audio -r taxa amostragem -b bits -d -D nome dispositivo -F fragmentos -S tamanho -s segundos -m nome da aplicação   -h -A -v -l nível

`-r `taxa de amostragem``

- Indica a taxa de amostragem a usar.

`-h`

- Mostra a utilização dos comandos.

`-n`

- Activa a transparência na rede.

`-p `porto``

- Define o porto de TCP a usar (implica o `-n`).

`-u`

- Público e sem autenticação (perigoso).

`-d`

- Activa a operação em 'full duplex'.

`-D `nome do dispositivo``

- Indica o dispositivo de áudio a usar (normalmente é o `/dev/dsp`).

`-F `fragmentos``

- Define o número de fragmentos.

`-S `tamanho``

- Define o tamanho de cada fragmento em 'bytes'.

`-s `segundos``

- Define o tempo de suspensão automática do servidor, em segundos. Um valor igual a zero desactiva a suspensão automática.

`-m `nome da aplicação``

- Indica o nome de uma aplicação para usar para mostrar as mensagem de erro, de aviso e informativas. Se você estiver a correr o KDE, poderá usar o utilitário artsmessage para isto.

`-N`

- Aumenta o tamanho dos tampões de rede para um valor adequado para correr numa LAN de 10 Mbps. Isto é equivalente a usar a opção '-w 5' (ver em baixo).

`-w `n``

- Ao correr o artsd sobre uma ligação de rede a outra máquina, você poderá querer usar um tamanho maior dos tampões ('buffers') para evitar cortes. O aRts fornece às aplicações um tamanho mínimo sugerido. Sem esta opção, o tamanho por omissão baseia-se no valor 'tamanho do fragmento' * 'número de fragmentos'. Se usar esta opção você poderá aumentar o tamanho predefinido por um factor de `n`.

`-l `nível``

- Indica o nível de informações - 3 (silencioso), 2 (avisos), 1 (informação), 0 (depuração).

`-v`

- Mostra o número da versão.

Na maioria dos casos, bastará correr o &artsd;.

## &artswrapper;

Para oferecer uma boa resposta em tempo-real, o &artsd; é normalmente executado como um processo em tempo-real (nas plataformas que suportem prioridades de tempo-real). Isto necessita de permissões do `root`, por isso, para minimizar as implicações de segurança, o &artsd; poderá ser iniciado com o pequeno programa de interface &artswrapper;, o qual simplesmente configura a prioridade de tempo-real (correndo como `root`) e executa depois o &artsd; como um utilizador que não o `root`.

Se você tornar o 'artswrapper' 'SUID' `root`, ele irá provavelmente melhorar a qualidade da sua reprodução de áudio, reduzindo os cortes na música. Contudo, aumenta também o risco de que um erro no código ou algum utilizador malicioso faça estoirar ou prejudicar o seu sistema. Para além disso, nas máquinas multi-utilizador, se prioritizar o áudio de alta-fidelidade poderá provocar uma perda de 'performance' para os utilizadores que estão a tirar partido produtivo da máquina.

## &artsshell;

O comando &artsshell; pretende ser um utilitário para efectuar diversas funções relacionadas com o servidor de som. Pretende-se que o utilitário seja extendido com comandos novos no futuro (veja os comentários no código-fonte para ter algumas ideias).

O comando aceita o seguinte formato:

    artsshell  suspendstatus terminate autosuspend segundos networkbuffers n volume [volume] stereoeffect opções   -h -q

artsshell [options] `comando` [`opções do comando`]

São suportadas as seguintes opções:

`-q`

- Suprime todos os resultados.

`-h`

- Mostra a utilização dos comandos.

São suportados os seguintes comandos:

`suspend`

- Suspende o servidor de som.

`status`

- Mostra a informação de estado do servidor de som.

`terminate`

- Termina o servidor de som. Isto poderá confundir e/ou estoirar as aplicações que o estejam a usar no momento.

`autosuspend` `segundos`

- Configura o tempo de suspensão automática para o número de segundos indicado. O servidor de som suspender-se-á se estiver inactivo durante esse período de tempo. Um valor igual a zero desactiva a suspensão automática.

`networkbuffers` `n`

- Define o tamanho dos tampões de rede para ser um facto de `n` vezes o tamanho predefinido.

`volume` [`volume`]

- Altera o factor de escala para as saídas de áudio do servidor de som. O argumento `volume` é um valor de vírgula flutuante. Sem argumentos, é mostrado o volume actual.

`stereoeffect lista`

- Mostra todos os módulos de efeitos estéreo disponíveis.

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

- Introduz um efeito estéreo na pilha de efeitos. Devolve um identificador que poderá ser usado para o remover posteriormente. Poderá ser instalado no topo ou no fundo (o valor por omissão).

`stereoeffect remove` `identificador`

- Remove o efeito estéreo com o identificador `identificador` da pilha de efeitos.

## artsplay

O comando artsplay é um utilitário simples para tocar um ficheiro de som. Ele aceita um único argumento que corresponde ao nome de um ficheiro de som que é enviado para o servidor de som de modo a ser tocado. O ficheiro de som poderá ser qualquer tipo de ficheiro de som comum como o `wav` ou o `au`. Este utilitário é bom para testar se o servidor de som está a funcionar. Se correr dois comandos em paralelo ou em sucessão rápida, você poderá demonstrar como os servidores de som misturam mais do que uma fonte.

## artsdsp

O servidor de som só suporta as aplicações que tirem partido do &arts;. Muitas das aplicações legadas querem aceder ao dispositivo de som directamente. O comando &artsdsp; oferece uma solução intermédia que permite à maioria dessas aplicações correrem sem alterações.

Quando uma aplicação é executada com o &artsdsp;, todos os acessos ao dispositivo de áudio `/dev/dsp` são interceptadas e mapeadas em chamadas à API do &arts;. Embora a emulação do dispositivo não seja perfeita, a maioria das aplicações funciona desta forma, ainda que com alguma latência e degradação de performance.

O comando &artsdsp; segue o formato:

artsdsp [`opções`] `argumentos da aplicação`

São reconhecidas as seguintes opções:

`-h`, `--help`

- Mostra uma breve ajuda.

`-n` `--name` = `nome`

- Usa o `nome` para identificar o leitor no `artsd`.

`-m` `--mmap`

- Emula o mapeamento de memória (⪚ para o Quake).

`-v` `--verbose`

- Mostra os parâmetros.

Uma invocação típica é a seguinte:

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

Algumas aplicações funcionam melhor com a opção `--mmap`. Nem todas as funcionalidades do dispositivo de som estão emuladas por completo, mas a maioria das aplicações deverá funcionar. Se encontrar alguma que não funcione, envie um relatório de erro detalhado para que os programadores o possam corrigir. Mais uma vez, lembre-se que isto é uma solução intermédia e uma espécie de 'truque sujo'; a melhor solução será adicionar o suporte nativo do &arts; às aplicações. Se a sua aplicação de som favorita não tem o suporte do &arts;, peça ao programador para o fornecer.

## artscat

Este é um utilitário simples para enviar os dados em bruto para o servidor de som. Você precisa de indicar o formato dos dados (a taxa de amostragem, o tamanho da amostra e o número de canais). Este não é provavelmente um utilitário que use muito, mas poderá ser útil para fins de teste. A sintaxe do comando é a seguinte:

artscat [ `opções` ] [ `nome do ficheiro` ]

Se não for indicado nenhum ficheiro, irá ler do 'standard input'. São suportadas as seguintes opções:

`-r` `taxa de amostragem`

- Configura a taxa de amostragem a ser usada.

`-b` `bits`

- Define o tamanho da amostra a usar (8 ou 16).

`-c` `canais`

- Define o número de canais (1 ou 2).

`-h`

- Mostra a utilização do comando e sai.

## &artscontrol;

Este é um utilitário gráfico para efectuar um dado número de tarefas relacionadas com o servidor de som. A janela por omissão mostra dois indicadores do nível do volume e uma barra para controlar o volume global. No menu Ver, você poderá seleccionar outras funções:

Osciloscópio FFT

- Abre uma janela que mostra um visualização do tipo de analisador de espectro em tempo-real.

Gestor de Áudio

- Mostra as fontes de áudio activas e permite-lhe ligá-las a qualquer um dos barramentos disponíveis.

Estado do aRts

- Mostra se o servidor de som está a correr e se o escalonamento é feito em tempo-real. Indica quando o servidor se suspende automaticamente e permite-lhe suspendê-lo imediatamente.

Gestor de MIDI

- Mostra as entradas e saídas activas de &MIDI; e permite-lhe criar ligações [TODO: Isto ainda funciona? São precisos mais detalhes].

FreeVerb

- Liga um efeito de reverberação FreeVerb à pilha dos efeitos de saída do &arts; e permite-lhe controlar graficamente os parâmetros do efeito.

Mostrador de volume com Leds

- Muda os indicadores de volume da janela principal para usar um mostrador colorido com LEDs em vez de usar barras de progresso.

## artsc-config

Este é um utilitário para ajudar os programadores a usar a API de C do &arts;. Ele mostra as opções apropriadas do compilador e do editor de ligações que são necessárias ao compilar e ao gerar um executável com o &arts;. Pretende-se que seja usado nas 'Makefile's para ajudar na portabilidade. O comando aceita três opções:

`--cflags`

- Mostra as opções do compilador que são necessárias ao compilar com a API de C do &arts;.

`--libs`

- Mostra as opções do editor de ligações que são necessárias ao gerar o executável que usa as bibliotecas da API de C do &arts;.

--version

- Mostra a versão do comando `artsc-config`.

O resultado típico do comando é mostrado em baixo:

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

Você poderá usar este utilitário numa Makefile para uma regra do tipo:

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

## &mcopidl;

O comando &mcopidl; é o compilador de ficheiros &IDL; para o &MCOP;, o 'Multimedia Communication Protocol' usado pelo &arts;. As interfaces no &arts; são definidas em &IDL;, uma 'Interface Definition Language' independente da linguagem. O utilitário &mcopidl; aceita um ficheiro &IDL; como entrada e gera ficheiros de inclusão e de código em C++ que implementam essa interface. O comando aceita a seguinte sintaxe:

mcopidl [ `opções` ] `nome do ficheiro`

As opções válidas são:

`-I` `directoria`

- Procura na `directoria` pelos ficheiros de inclusão.

`-e` `nome`

- Exclui a estrutura, interface ou tipo enumerado `nome` da geração de código.

`-t`

- Cria também os ficheiros `.mcoptype`/`.mcopclass` que contêm a informação do tipo para o ficheiro &IDL;.

Para mais informações sobre o &MCOP; e o &IDL;, poderá ver a secção Interfaces e &IDL;.