# 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 efetivamente o &arts;. Esta seção descreve cada um dos utilitários e as suas opções de comando.

## &kcontrol;

Ao rodar o &arts; no &kde;, o &kcontrolcenter; oferece um grupo de opções do painel de controle na categoria Som. Algumas dessas opções são usadas pelo &arts;. Você também poderá associar sons com vários eventos do gerenciador 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 aos diferentes aplicativos enviarem pedidos simultâneos ao servidor, onde poderão ser misturados e tocados. Sem um servidor de som centralizado, um único aplicativo que usasse um dispositivo de som iria impedir que os outros aplicativos o usassem também.

Para usar o &arts;, deverá existir uma e apenas uma cópia do &artsd; sendo executada. É tipicamente executada quando o &kde; se inicia, se estiver ativo no painel 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 o modo de usar os comandos.

`-n`

  Ativa a transparência na rede.

`-p porta`

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

`-u`

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

`-d`

  Ativa 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 desativa a suspensão automática.

`-m nome do aplicativo`

  Indica o nome de um aplicativo para usar para mostrar as mensagem de erro, de aviso e informativas. Se você estiver rodando o KDE, poderá usar o utilitário artsmessage para isto.

`-N`

  Aumenta o tamanho dos buffers de rede para um valor adequado para rodar em uma LAN de 10 Mbps. Isto é equivalente a usar a opção '-w 5' (ver abaixo).

`-w n`

  Ao rodar o artsd sobre uma conexão de rede com outra máquina, você poderá querer usar um tamanho maior dos buffers para evitar cortes. O aRts fornece aos aplicativos um tamanho mínimo sugerido. Sem esta opção, o tamanho padrão baseia-se no valor 'tamanho do fragmento' * 'número de fragmentos'. Se usar esta opção você poderá aumentar o tamanho pré-definido por um fator 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á executar 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 (executando como root) e executa depois o &artsd; como um usuário 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 usuário malicioso faça estourar ou prejudicar o seu sistema. Além disso, nas máquinas multi-usuário, priorizar o áudio de alta-fidelidade poderá provocar uma perda de desempenho para os usuário que estão tentando fazer um uso produtivo da máquina.

## &artsshell;

O comando &artsshell; pretende ser um utilitário para efetuar 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 idéias).

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 o modo de usar os 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 estourar os aplicativos que estejam usando-o 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 inativo durante esse período de tempo. Um valor igual a zero desativa a suspensão automática.

`networkbuffers` `n`

  Define o tamanho dos buffers de rede para ser um fator de `n` vezes o tamanho pré-definido.

`volume` [volume]

  Altera o fator de escala para as saídas de áudio do servidor de som. O argumento volume é um valor de ponto flutuante. Sem argumentos, é mostrado o volume atual.

`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 removê-lo posteriormente. Poderá ser instalado no topo ou no fundo (o padrã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 arquivo de som. Ele aceita um único argumento que corresponde ao nome de um arquivo de som que é enviado para o servidor de som de modo a ser tocado. O arquivo de som poderá ser qualquer tipo de arquivo de som comum como o `wav` ou o `au`. Este utilitário é bom para testar se o servidor de som está funcionando. Se executar dois comandos em paralelo ou em sucessão rápida, você poderá demonstrar como os servidores de som misturam mais de uma fonte.

## artsdsp

O servidor de som só suporta os aplicativos que tirem partido do &arts;. Muitas dos aplicativos legadas querem acessar o dispositivo de som diretamente. O comando &artsdsp; oferece uma solução intermediária que permite à maioria desses aplicativos rodarem sem alterações.

Quando um aplicativo é executado com o &artsdsp;, todos os acessos ao dispositivo de áudio `/dev/dsp` são interceptados e mapeados em chamadas à API do &arts;. Embora a emulação do dispositivo não seja perfeita, a maioria dos aplicativos 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 tocador 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``

Alguns aplicativos funcionam melhor com a opção `--mmap`. Nem todas as funcionalidades do dispositivo de som estão emuladas por completo, mas a maioria dos aplicativos deverão funcionar. Se encontrar algum que não funcione, envie um relatório de erro detalhado para que os programadores possam corrigir. Mais uma vez, lembre-se que isto é uma solução intermediária e uma espécie de 'truque sujo'; a melhor solução será adicionar o suporte nativo do &arts; aos aplicativos. Se o seu aplicativo de som favorito não tem o suporte ao &arts;, peça ao programador para fornecê-lo.

## artscat

Este é um utilitário simples para enviar os dados brutos para o servidor de som. Você precisa 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 você use muito, mas poderá ser útil para fins de teste. A sintaxe do comando é a seguinte:

artscat [ opções ] [ nome do arquivo ]

Se não for indicado nenhum arquivo, 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 efetuar um determinado número de tarefas relacionadas com o servidor de som. A janela padrão mostra dois indicadores de nível do volume e uma barra para controlar o volume global. No menu Ver, você poderá selecionar outras funções:

Osciloscópio FFT

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

Gerenciador de Áudio

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

Estado do aRts

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

Gerenciador de MIDI

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

FreeVerb

  Conecta 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 nos '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 em um 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 arquivos &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 arquivo &IDL; como entrada e gera arquivos de inclusão e de código em C++ que implementam essa interface. O comando aceita a seguinte sintaxe:

mcopidl [ opções ] nome do arquivo

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

`-I` `diretório`

  Procura no `diretório` pelos arquivos de inclusão.

`-e` `nome`

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

`-t`

  Cria também os arquivos `.mcoptype`/`.mcopclass` que contêm a informação de tipo para o arquivo &IDL;.

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