# 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 (&eg; 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;.