<para>Primeiro que tudo, ao tentar correr o &arts-builder; , você deverá correr também o servidor de som (o &artsd;). Normalmente, quando você usa o &kde; 2.1, este já deverá ser o caso. Se não for, você poderá configurar o arranque automático do servidor de som no &kcontrol; em <menuchoice><guilabel>Som</guilabel><guilabel>Servidor de Som</guilabel></menuchoice>. </para>
<para>Quando você está a executar o &arts;, ele corre sempre módulos pequenos. O &arts-builder; é uma ferramenta para criar estruturas novas a partir de pequenos módulos interligados. Você simplesmente carrega os módulos para dentro da grelha. Para o fazer, escolha-os no menu <guimenu>Módulos</guimenu>, e carregue então algures no avião verde-e-cinzento. </para>
<para>Os módulos normalmente têm portos (onde normalmente entram e saem os sinais de áudio). Para ligar dois portos, carregue no primeiro, o que normalmente faz com que ele fique laranja, e carregue depois no segundo. Você poderá ligar apenas um porto de entrada (na parte de cima) com um porto de saída (na parte inferior de um módulo). Se você quiser atribuir um valor fixo a um porto (ou desligá-lo), faça duplo-click no mesmo. </para>
<para>Você precisa de um módulo Synth_AMAN_PLAY para ouvir a saída que está a criar. Por isso crie um módulo Synth_AMAN_PLAY, seleccionando-o em <menuchoice><guimenu>Módulos</guimenu> <guisubmenu>Síntese</guisubmenu> <guisubmenu>E/S de Som</guisubmenu> <guisubmenu>Synth_AMAN_PLAY</guisubmenu></menuchoice> e carregue no espaço em branco do módulo. Coloque-o por baixo da quinta linha ou algo do género, porque serão adicionadas aqui algumas coisas. </para>
<para>O módulo irá ter um parâmetro <parameter>title</parameter> ou título (o porto do lado esquerdo), um <parameter>autoRestoreID</parameter> (ao lado do porto do lado esquerdo) para o encontrar. Para os preencher, faça duplo-click nesses portos, seleccione um valor constante e escreva <userinput>tutorial</userinput> no campo de texto. Carregue em <guibutton>OK</guibutton> para aplicar. </para>
<para>Seleccione <menuchoice><guimenu>Ficheiro</guimenu><guimenuitem>Executar a estrutura</guimenuitem> </menuchoice>. Você não irá ouvir absolutamente nada. O módulo de reprodução ainda necessita de uma entrada... ;) Se você tiver 'ouvido' o silêncio um pouco, carregue em <guibutton>OK</guibutton> e vá para o Passo 2 </para>
<para>Crie um módulo Synth_WAVE_SIN (em <menuchoice> <guimenu>Módulos</guimenu> <guimenuitem>Síntese</guimenuitem> <guimenuitem>Formas de onda</guimenuitem></menuchoice>) e coloque-o por cima do módulo Synth_AMAN_PLAY. (Deixe um espaço de uma linha entre eles). </para>
<para>Como poderá ver, ele produz algum resultado, mas necessita de um <guilabel>pos</guilabel> como entrada. Primeiro, vai-se ligar a saída ao altifalante. Carregue no porto <guilabel>out</guilabel> (saída) do módulo Synth_WAVE_SIN e depois no porto <guilabel>left</guilabel> (esquerda) do Synth_AMAN_PLAY. Pronto, você acabou de ligar dois módulos. </para>
<para>Todos os osciladores no &arts; não precisam de uma frequência à entrada, mas si de uma posição na onda. A posição deverá ser entre 0 e 1, o que se mapeia num objecto normal do Synth_WAVE_SIN no intervalo 0..2*pi. Para gerar os valores oscilantes para uma frequência, é usado um módulo Synth_FREQUENCY. </para>
<para>Crie um módulo Synth_FREQUENCY (em <menuchoice> <guimenu>Módulos</guimenu> <guimenu>Síntese</guimenu> <guimenu>Oscilação & Modulação</guimenu> </menuchoice>) e ligue a sua saída <quote>pos</quote> na entrada <quote>pos</quote> do seu Synth_WAVE_SIN. Indique o porto 'frequency' (frequência) do gerador FREQUENCY com um valor constante 440. </para>
<para>Seleccione o <menuchoice><guimenu>Ficheiro</guimenu><guimenuitem>Executar a estrutura</guimenuitem></menuchoice>. Irá ouvir uma onda sinusoidal de 440 Hz num dos seus altifalantes. Se você a tiver ouvido durante algum tempo, carregue em <guibutton>OK</guibutton> e vá para o Passo 3. </para>
<para>OK, seria melhor se você ouvir a onda sinusoidal em ambos os altifalantes. Ligue o porto 'right' (direita) do Synth_PLAY ao 'outvalue' (saída) do Synth_WAVE_SIN. </para>
<para>Crie um objecto Synth_SEQUENCE (em <menuchoice><guimenu>Módulos</guimenu> <guisubmenu>Síntese</guisubmenu><guisubmenu>MIDI & Sequenciação</guisubmenu></menuchoice>). Dever-se-á encontrar no topo do ecrã. Se precisar de mais espaço, você poderá mover os outros módulos, seleccionando-os (para seleccionar vários módulos use o &Shift;) e arrastando-os. </para>
<para>Agora ligue a saída 'frequency' (frequência) do Synth_SEQUENCE à entrada 'frequency' do módulo Synth_FREQUENCY. Depois, indique a velocidade da sequência como um valor constante 0,13 (o 'speed' ou velocidade é o porto mais à esquerda). </para>
<para>Agora vá ao porto mais à direita (o 'sequence' ou sequência) do Synth_SEQUENCE e escreva como valor constante <userinput>A-3;C-4;E-4;C-4;</userinput>; isto corresponde a uma sequência. Poderá ver mais sobre isto na Referência do Módulo. </para>
<para>O Synth_SEQUENCE <emphasis>necessita</emphasis> mesmo de uma sequência e da sua velocidade. Sem isto, você irá obter provavelmente alguns estoiros. </para>
<para>Seleccione o <menuchoice><guimenu>Ficheiro</guimenu><guimenuitem>Executar a Estrutura</guimenuitem></menuchoice>. Você irá ver uma sequência bonita a tocar. Se gostou da sensação, carregue em <guibutton>OK</guibutton> e vá para o Passo 4. </para>
<para>Crie um módulo Synth_PSCALE (em <menuchoice><guimenu>Módulos</guimenu> <guisubmenu>Síntese</guisubmenu> <guisubmenu>Envelopes</guisubmenu> </menuchoice>). Desligue o 'outvalue' (saída) da onda sinusoidal, fazendo duplo-click nela e escolher a opção <guilabel>não ligado</guilabel>. Ligue </para>
<para>Como é que funciona então: o Synth_SEQUENCE dá informações adicionais sobre a posição da nota que está a tocar de momento, onde o 0 significa que começou agora e 1 significa que terminou. O módulo Synth_PSCALE irá ajustar o facto de escala do canal de áudio que é passado por ele, desde um volume 0 (silêncio) até 1 (volume original), voltando outra vez a 0 (silêncio), de acordo com a posição. A posição onde o pico deverá ocorrer poderá ser indicada no 'pos'. Um valor igual a 0,1 significa que, depois de ter tocado 10% da nota, o volume terá atingido o seu máximo, começando a decair a partir daí. </para>
<para>Seleccione <menuchoice><guimenu>Ficheiro</guimenu><guimenuitem>Executar a Estrutura</guimenuitem></menuchoice>. Você irá ouvir uma sequência bonita a tostou da situação, carregue em <guibutton>OK</guibutton> e vá para o Passo 5. </para>
<para>Comece a executar a estrutura. Como seria de esperar, não ouve nada, ... ainda. </para>
<para>Volte à estrutura com as coisas do Synth_WAVE_SIN e substitua o módulo Synth_AMAN_PLAY module por um Synth_BUS_UPLINK, configurando o seu nome para 'áudio' (ou 'manel', se preferir); os módulos poderão ser removidos se os seleccionar e escolher <menuchoice><guimenu>Editar</guimenu> <guimenuitem>Remover</guimenuitem></menuchoice> no menu (ou carregando na tecla <keycap>Del</keycap>). </para>
<para>Carregue em <menuchoice><guimenu>Ficheiro</guimenu> <guilabel>Executar a estrutura</guilabel></menuchoice>. Irá ouvir a sequência com as notas em escala, transportadas no barramento. </para>
<para>Se quiser saber porque é que algo como isto poderá de facto ser útil, carregue em <guibutton>OK</guibutton> (no &arts-builder; que está a executar o bloco do Synth_SEQUENCE; você poderá deixar o outro a correr) e ir para o Passo 6. </para>
<title>Passo 6: Apontar para utilizadores avançados</title>
<para>Escolha a estrutura <menuchoice><guimenu>Ficheiro</guimenu><guimenuitem>Mudar o nome</guimenuitem> </menuchoice> no menu do 'artsbuilder' que contém as coisas do Synth_SEQUENCE, chamando-lhe de 'tutorial'. Carregue em <guibutton>OK</guibutton>. </para>
<para>Inicie ainda mais outro &arts-builder; e escolha <menuchoice><guimenu>Ficheiro</guimenu><guimenuitem>Abrir</guimenuitem> </menuchoice>, e carregar o tutorial de novo. </para>
<para>Agora poderá seleccionar <menuchoice><guimenu>Ficheiro</guimenu><guimenuitem>Executar a estrutura</guimenuitem> </menuchoice> em ambos os &arts-builder;s que têm estrutura. Você irá ouvir agora duas vezes a mesma coisa. Dependendo da altura em que os inicia, irá soar melhor ou pior. </para>
<para>Outra coisa boa para fazer nesta altura é: iniciar o &noatun; e tocar um <literal role="extension">mp3</literal> qualquer. Inicie o &artscontrol;. Vá a <menuchoice><guimenu>Ver</guimenu><guimenuitem>Ver o gestor de áudio</guimenuitem></menuchoice>. O que irá ver será o &noatun; e a sua estrutura de reprodução <quote>tutorial</quote> a tocar algo. Uma coisa interessante que poderá fazer é o seguinte: faça duplo-click no &noatun;. Irá agora obter uma lista com os barramentos disponíveis. Verá também que poderá indicar ao &noatun; para enviar a sua saída através do barramento de áudio que a sua estrutura do tutorial oferece. </para>
<para>Finalmente, você deverá agora ser capaz de transformar a sua onda sinusoidal num instrumento real. Só faz sentido se você tiver algo útil que possa enviar eventos de &MIDI; para o &arts;. Será descrito aqui como você poderá usar um teclado externo qualquer, mas uma solução de sequenciação MIDI como o &brahms; irá funcionar da mesma forma. </para>
<para>Primeiro que tudo, limpe o seu ecrã até que você tenha apenas um &arts-builder; com a estrutura da onda sinusoidal aberta (mas não em execução). De seguida, vá três vezes a <menuchoice><guimenu>Portos</guimenu> <guisubmenu>Criar sinal de áudio IN</guisubmenu></menuchoice>, e outras três a <menuchoice><guimenu>Portos</guimenu> <guisubmenu>Criar sinal de áudio OUT</guisubmenu></menuchoice>. Coloque esses portos algures. </para>
<para>Finalmente, vá a <menuchoice><guimenu>Portos</guimenu> <guilabel>Mudar as posições e nomes</guilabel></menuchoice> e chame aos portos 'frequency' (frequência), 'velocity' (velocidade), 'pressed' (carregado), 'left' (esquerdo), 'right' (direito), 'done' (pronto). </para>
<para>Finalmente, você poderá remover o módulo Synth_SEQUENCE e ligar o porto de entrada 'frequency' (frequência) da estrutura ao porto 'frequency' do Synth_FREQUENCY. Hm... Mas o que fazer com o 'pos'?</para> <para>Não existe isso, porque não há nenhum algoritmo no mundo onde você possa prever quando é que o utilizador solta a nota que acabou de carregar no teclado MIDI. Por isso, existe um parâmetro 'pressed' (carregado) que indica se o utilizador ainda tem a tecla pressionada ou não ('pressed' = 1: a tecla ainda está carregada, 'pressed' = 0: tecla solta) </para>
<para>Isto significa que o objecto Synth_PSCALE também precisa de ser substituído agora. Ligue um Synth_ENVELOPE_ADSR em alternativa (em <menuchoice><guimenu>Módulos</guimenu> <guisubmenu>Síntese</guisubmenu> <guisubmenu>Envelopes</guisubmenu> </menuchoice>). Ligue: </para>
<para>Configure os parâmetros 'attack' (ataque) igual a 0,1, 'decay' (decaimento) igual a 0,2, 'sustain' (sustentação) igual a 0,7 e 'release' (soltura) igual a 0,1. </para>
<para>Outra coisa em que é preciso pensar é que a estrutura do instrumento precisa de saber de alguma forma quando é que está pronta para tocar e quando poderá ser limpa, porque caso contrário nunca seria interrompida, mesmo que a nota tivesse sido solta. Felizmente, o envelope do ADSR sabes quando não há mais nada para se ouvir, dado que ele iguala o sinal a zero nalgum ponto em que a nota foi solta. </para>
<para>Isto é indicado ao pôr a saída 'done' (pronto) igual a 1. Por isso, ligue isto à saída 'done' da estrutura. A mesma será removida logo que o 'done' passe a 1. </para>
<para>Mude o nome da sua estrutura para 'instrument_tutorial' (em <menuchoice><guimenu> Ficheiro</guimenu> <guimenuitem>Mudar o nome da estrutura</guimenuitem></menuchoice>. De seguida, grave-a usando o Gravar Como (o nome por omissão que é oferecido deverá ser agora igual a 'instrument_tutorial').</para><para>Inicie o 'artscontrol' e vá a <menuchoice><guimenu>Ver</guimenu><guimenuitem>Gestor de MIDI</guimenuitem></menuchoice>, escolhendo depois a opção <menuchoice><guimenu>Adicionar</guimenu><guimenuitem>Saída MIDI de Síntese do aRts</guimenuitem></menuchoice>. Finalmente, você deverá ser capaz de seleccionar o seu instrumento de tutorial aqui. </para>
<para>Abra um terminal e escreva <userinput><command>midisend</command></userinput>. Você irá ver que o <command>midisend</command> e o instrumento estão agora listados no gestor de &MIDI; do &arts;. Depois de seleccionar ambos e de carregar em <guibutton>Ligar</guibutton>, é tudo. Pegue no seu teclado e comece a tocar (obviamente, terá de estar ligado ao seu computador). </para>
<para>Agora você deverá ser capaz de trabalhar com o &arts;. Ficam aqui algumas dicas que você poderá tentar para melhorar com as suas estruturas: </para>
<para>Tente usar outras coisas para além de uma onda sinusoidal. Quando ligar uma onda triangular, você irá pensar que o som não é grande coisa. Mas tente adicionar um filtro SHELVE_CUTOFF logo a seguir à onda triangular para cortar as frequências acima de uma dada frequência (tente algo do género de 1000 Hz, ou mesmo duas vezes a frequência de entrada ou igual à frequência de entrada+200Hz, ou qualquer outra coisa do género). </para>
<para>Tente usar mais do que um oscilador. O Synth_XFADE poderá ser usado para misturar dois sinais; use por outro lado o Synth_ADD para os adicionar. </para>
<para>Tente fazer o pós-processamento depois de sair da ligação de recepção do barramento. Você poderá misturar, por exemplo, uma versão atrasada do sinal ao sinal original para obter um efeito de eco. </para>
<para>Tente usar a opção 'velocity' (velocidade), a qual corresponde à força com que a nota foi carregada, e poderá também dizer 'volume'). O efeito especial consiste em não só modificar o volume do sinal resultante, mas também o som do instrumento (como por exemplo a frequência de corte). </para>
<para>O &arts-builder; vem com vários exemplos, os quais poderão ser acedidos através da opção <menuchoice><guimenu>Ficheiro</guimenu><guimenuitem>Abrir um Exemplo...</guimenuitem> </menuchoice>. Alguns deles estão na sua pasta correspondente, enquanto que outros (os quais não funcionam por uma razão qualquer na versão actual) são deixados na pasta 'todo'. </para>
<para>Os exemplos caem em várias categorias: </para>
<para>Os exemplos autónomos que ilustram como usar cada um dos módulos incorporados do 'arts' (chamados <filename>example_*.arts</filename>). Estes tipicamente enviam um resultado qualquer para uma placa de som. </para>
<para>Os instrumentos que são criados a partir de módulos de nível mais baixo (chamados de <filename>instrument_*.arts</filename>). Estes seguem uma convenção normal para os portos de entrada e saída para que possam ser usados no gestor de &MIDI; no &artscontrol;. </para>
<para>Os efeitos que poderão ser usados como blocos de construção reutilizáveis (chamados de <filename>effect_*.arts</filename>) [ tudo no 'todo' ] </para>
<para>Os elementos de mistura usados para criar mesas de mistura, incluindo os controlos gráficos (chamados de <filename>mixer_element_*.arts</filename>). [ tudo no 'todo' ] </para>
<para>Gera uma onda sinusoidal de 440Hz no canal esquerdo e uma onda sinusoidal no canal direito, enviando o resultado para a saída da placa de som. Isto é referenciado na documentação do &arts;. </para>
<para>Gera um tom duplo, produzindo para tal ondas sinusoidais de 697 e 1209 Hz, ajustando a escala para 0,5 e adicionando-as em conjunto. Isto é o tom DTMF para o número "1" num teclado de telefone. </para>
<para>Recebe de um barramento chamado <quote>Bus</quote> (Barramento) e envia para o barramento <quote>out_soundcard</quote> (saída da placa de som) com os canais esquerdo e direito invertidos. </para>
<para>Recebe de um barramento chamado <quote>Delay</quote> (Atraso), envia o canal direito através de um atraso de 0,5 segundos e o esquerdo sem alterações. Você poderá usar o &artscontrol; para ligar o efeito a um reprodutor de som e observar os resultados. </para>
<para>Isto usa o Synth_CAPTURE_WAV para gravar uma onda sinusoidal de 400 Hz como um ficheiro WAV. Execute o módulo durante uns segundos e examine depois o ficheiro criado em <filename class="directory">/tmp</filename>. Você poderá tocar o ficheiro com um leitor multimédia como o <application>noatun</application>. </para>
<para>Isto usa o módulo Data (Dados) para gerar uma sequência constante com o valor <quote>3</quote> e envia-a para um módulo Debug (Depuração) que o mostra periodicamente. Também contém um módulo Nil (Nada), que ilustra como poderá ser usado para não fazer absolutamente nada. </para>
<para>Mostra como criar um único som de um instrumento com o módulo 'Envelope Adsr' (ADSR do Envelope), despoletado repetidamente por uma onda quadrada. </para>
<para>Isto liga o efeito do Freeverb a partir do canal de recepção de um barramento a um canal de envio de outro barramento. Você poderá usar o &artscontrol; para ligar o efeito a um leitor de áudio e observar os resultados. </para>
<para>Esta estrutura combina os dois canais de um barramento num só, passando-o através do filtro VCF Moog, e envia o resultado para o barramento 'out_soundcard'. </para>
<para>Esta estrutura passa o canal esquerdo dos dados da placa de som através do efeito 'Pitch Shift' (Desvio de Tom). Ajuste o parâmetro 'speed' (velocidade) para variar o efeito. </para>
<para>Esta estrutura passa um gerador de 'ruído branco' através de um filtro RC para a placa de som. Ao ver no Osciloscópio de FFT do &artscontrol;, você poderá ver como isto varia numa forma de onda de ruído não filtrada. </para>
<para>Esta estrutura passa um gerador de 'ruído branco' através de um filtro 'Shelve Cutoff' para a placa de som. Ao ver no Osciloscópio de FFT do &artscontrol;, você poderá ver como isto varia numa forma de onda de ruído não filtrada. </para>
<para>Este exemplo mistura ondas sinusoidais de 440 e 880 Hz com um misturador cruzado. Ajuste o valor da percentagem do misturador de -1 até 1 para controlar a mistura dos dois sinais. </para>
<para>Isto ilustra o módulo 'Play Wave' (Tocar um WAVE). Você terá de indicar a localização completa de um ficheiro <literal role="extension">.wav</literal> como valor do parâmetro 'filename' (nome do ficheiro). </para>
<para>Isto mostra o módulo Multi Add (Adição Múltipla), o qual aceita um número qualquer de entradas. Ele soma três módulos de dados que produzem entradas de 1, 2 e 3, mostrando depois o resultado 6. </para>