# &arts-builder;

## Visão Geral

Antes de tudo, ao tentar executar o &arts-builder;, você deve também estar executando o servidor de som (&artsd;). Normalmente, se você usar o &kde; 2.1, isto já deverá estar ocorrendo. Caso contrário, você pode configurar a inicialização automática do servidor de som no &kcontrol; em Som Servidor de Som.

Quando você está executando o &arts;, ele sempre roda pequenos módulos. O &arts-builder; é uma ferramenta para criar novas estruturas de pequenos módulos conectados. Você simplesmente clica nos módulos dentro da grade. Para fazer isto, escolha-os a partir do menu Módulos, e então clique em algum local no plano verde-cinza.

Módulos normalmente possuem portas (onde normalmente sinais de áudio entram ou saem). Para conectar duas portas, clique na primeira, fazendo com que ela fique laranja, e então clique na segunda. Você somente pode conectar uma porta de entrada (no lado superior de um módulo) com uma porta de saída (no lado inferior de um módulo). Se você deseja atribuir um valor fixo à uma porta (ou desconectá-la), faça então um duplo-clique na porta.

## Tutorial

### Passo 1

Inicie o &arts-builder;.

Você precisa de um módulo Synth&lowbar;AMAN&lowbar;PLAY para ouvir a saída do que está criando. Logo crie um módulo Synth&lowbar;AMAN&lowbar;PLAY selecionando Módulos Síntese IO de Som Synth&lowbar;AMAN&lowbar;PLAY e clique em um espaço de módulo vazio. Coloque-o abaixo da quinta linha em diante, porque nós iremos adicionar algum material acima.

O módulo terá um parâmetro `title` (porta mais a esquerda) e `autoRestoreID` (ao lado da porta mais à esquerda) para encontrá-lo. Para preenchê-los, dê um duplo-clique nestas portas, selecione valore constante e digite `tutorial` na caixa de edição. Clique OK para aplicar.

Selecione Arquivo Executar estrutura. Você não ouvirá absolutamente nada. O módulo para tocar precisa de alguma entrada ainda... ;) Se você tiver ouvido o silêncio por enquanto, clique OK e vá para o Passo 2.

### Passo 2

Crie um módulo Synth&lowbar;WAVE&lowbar;SIN (a partir de Módulos Síntese Formas de onda) e coloque-o acima do módulo Synth&lowbar;AMAN&lowbar;PLAY (Deixe uma linha de espaço entre eles).

Como pode ver, isto produz alguma saída, mas precisa de um pos como entrada. Primeiro vamos colocar a saída para as caixas de som.Clique na porta out do Synth&lowbar;WAVE&lowbar;SIN e então na porta left do Synth&lowbar;AMAN&lowbar;PLAY. Bingo! Você conectou dois módulos.

Todos os osciladores no &arts; não necessitada de uma frequência como entrada, mas uma posição na onda. A posição deve estar entra 0 e 1, o qual mapeia para um objeto Synth&lowbar;WAVE&lowbar;SIN padrão para o intervalo 0,2*pi. Para gerar valores oscilando a partir de uma frequência, um módulo Synth&lowbar;FREQUENCY é usado.

Crie um módulo Synth&lowbar;FREQUENCY (a partir de Módulos Síntese Oscilação & Modulação ) e conecte sua saída pos à entrada pos do seu Synth&lowbar;WAVE&lowbar;SIN. Especifique a frequência da porta do gerador FREQUENCY como um valor constante de 440.

Selecione Arquivo Executar estrutura. Você ouvirá uma onda senóide de 440 Hz em uma de suas caixas. Se você estiver ouvindo isto por enquanto, clique OK e vá para o Passo 3.

### Passo 3

Ok, seria melhor se você ouvisse a onda senóide em ambas as caixas. Conecte também a porta right do Synth&lowbar;PLAY ao outvalue do Synth&lowbar;WAVE&lowbar;SIN.

Crie um objeto Synth&lowbar;SEQUENCE (a partir de Módulos Síntese Midi & Sequenciamento). Isto deve estar no topo da tela. Se você precisar de mais espaço você pode mover os outros módulos selecionando-os (para selecionar múltiplos módulos use &Shift;), e arrastando-os para baixo.

Agora conecte a saída frequency do Synth&lowbar;SEQUENCE a entrada frequency do módulo Synth&lowbar;FREQUENCY. Então especifique a velocidade de sequência como valor constante de 0.13 (a velocidade é a porta mais à esquerda).

Agora vá para a porta mais à direita (sequence) do Synth&lowbar;SEQUENCE e digite um valor constante de `A-3;C-4;E-4;C-4;` que especifica uma sequência. Mais sobre isto na Referência do Módulo.

O Synth&lowbar;SEQUENCE realmente precisa de uma sequência e velocidade. Sem isto você talvez obtenha erros no construtor.

Selecione Arquivo Executar Estrutura. Você ouvirá uma bela sequência em execução. Se você tiver gostado do que ouviu, cliuqe OK e vá para o Passo 4.

### Passo 4

Crie um módulo Synth&lowbar;PSCALE (a partir de Módulos Síntese Envelopes). Desconecte o outvalue da onda SIN dando um duplo clique e selecionando não conectado. Conecte

1. O outvalue do SIN ao invalue do PSCALE

2. O outvalue do PSCALE ao left do AMAN_PLAY

3. O outvalue do PSCALE ao right do AMAN_PLAY

4. O pos do SEQUENCE ao pos do PSCALE

Finalmente, configure o top do PSCALE para algum valor, por exemplo 0.1.

Como isto funciona agora: O Synth&lowbar;SEQUENCE fornece informações adicionais sobre a posição da nota musical que está sendo tocada agora, enquanto 0 significa iniciada e 1 significa terminada. O módulo Synth&lowbar;PSCALE escalonará o fluxo de áudio que é direcionado através dele a partir de um volume 0 (silêncio) à 1 (nível original) e de volta à 0 (silêncio). De acordo com a posição. A posição onde o pico deve ocorrer pode ser fornecida como pos. 0.1 significa que após 10&percnt; da nota ter sido tocada, o volume atinge seu máximo, e inicia a diminuir em seguida.

Selecione Arquivo Executar Estrutura. Você ouvirá uma agradável sequência ser executada. Se você tiver gostado do que ouviu, clique OK e vá para o Passo 5.

### Passo 5: Começando a transmitir dados por todos os lados ;)

Inicie outro &arts-builder;

Coloque um Synth&lowbar;AMAN&lowbar;PLAY nele, configure-o para um nome razoável qualquer. Coloque um Synth&lowbar;BUS&lowbar;DOWNLINK nele e:

1. Configure o bus do Synth&lowbar;BUS&lowbar;DOWNLINK para áudio (que é apenas um nome, chame-o de joao se quiser)

2. Conecte o left do Synth&lowbar;BUS&lowbar;DOWNLINK ao left do Synth&lowbar;AMAN&lowbar;PLAY

3. Conecte o right do Synth&lowbar;BUS&lowbar;DOWNLINK ao right do Synth&lowbar;AMAN&lowbar;PLAY

Inicie a execução da estrutura. Como esperado, você não ouvirá nada, ... não ainda.

Retorne à estrutura com o Synth&lowbar;WAVE&lowbar;SIN e substitua o módulo Synth&lowbar;AMAN&lowbar;PLAY por um Synth&lowbar;BUS&lowbar;UPLINK, e configure o nome para audio (ou joao se desejar). Para excluir módulos selecione-os e escolha Editar excluir no menu (ou pressione a tecla Del).

Acione Arquivo Executar estrutura. Você ouvirá a sequência com notas escalonadas, transportadas pelo barramento.

Se você deseja saber porque algo como isto pode ser útil atualmente, clique OK (no &arts-builder; que estiver executando o Synth&lowbar;SEQUENCE, você pode deixar o outro em execução) e vá para o Passo 6.

### Passo 6: Transmissão para usuários avançados

Escolha Arquivo Renomear estrutura no menu do artsbuilder que contém o Synth&lowbar;SEQUENCE, e chame-o de tutorial. Clique OK.

Escolha Arquivo Salvar

Inicie mais outro &arts-builder; e selecione Arquivo Carregar, e carregue o tutorial novamente.

Agora você pode selecionar Arquivo Executar estrutura em ambos os &arts-builder; que possuem esta estrutura. Você agora ouvirá duas vezes a mesma coisa. Dependendo do momento em que você iniciá-lo o som será mais ou menos agradável.

Outra coisa que é bom fazer neste ponto do tempo é: iniciar o &noatun;, e tocar algum `mp3`. Inicie o &artscontrol;. Vá para Ver Ver gerenciador de áudio. O que você verá é a estrutura de playback do &noatun; e do seu tutorial tocando alguma coisa. A coisa legal que você pode fazer é isto: duplo-clique no &noatun;. Você agora obterá uma lista de todos os barramentos disponíveis. E veja? Você pode fazer com que o &noatun; envie sua saída para o barramento de áudio da estrutura de playback que seu tutorial fornece.

### Passo 7: Síntese de midi

Finalmente, agora você deve ser capaz de transformar sua onde senóide em um instrumento real. Isto somente faz sentido se você possui algo em mãos que possa enviar eventos &MIDI; para o &arts;. Eu descreverei aqui como você pode usar alguns teclados externos, mas um barramento midi que disponha de sequências como o &brahms; funcionará também.

Primeiramente, limpe seu ambiente de trabalho até que você tenha somente um &arts-builder; com a estrutura de onda senóide na estrutura (não executando). Então, vá três vezes para Portas Criar sinal de áudio IN, e três vezes para Portas Criar sinal de áudio OUT. Coloque as portas em algum lugar.

Finalmente, vá para Portas Mudar posições e nomes e chame as portas de frequência, velocidade, pressionada, esquerda, direita, feito.

Finalmente, você pode excluir o módulo Synth&lowbar;SEQUENCE, e ao invés de usar este módulo conecte a porta de entrada de frequência da estrutura à porta de frequência do Synth&lowbar;FREQUENCY. Uhmm. Mas e o pos?

Não não o usaremos, porque com nenhum algoritmo no mundo você pode predizer quando o usuário soltará a nota que ele pressionou no teclado midi. Logo nós ao invés disso usamos um parâmetro de pressionado que apenas indica se o usuário ainda mantém a tecla pressionada. (pressionada = 1: a tecla ainda está pressionada, pressionada = 0: a tecla foi solta)

Isto significa que o objeto Synth&lowbar;PSCALE também deve ser substituído agora. Conecte-o em um Synth&lowbar;ENVELOPE&lowbar;ADSR no lugar (a partir de Módulos Síntese Envelopes ). Conecte:

1. O input da estrutura pressinada ao active do ADSR

2. O outvalue do SIN ao invalue do ADSR

3. O outvalue do ADSR ao output da estrutura esquerda

4. O outvalue do ADSR ao output da estrutura direita

Configure os parâmetros attack para 0.1, decay para 0.2, sustain para 0.7 e release para 0.1.

Outra coisa que nós precisamos pensar é que a estrutura de instrumento deve saber de alguma maneira quando terminou de tocar e então deve ser interrompida, porque caso contrário ela nunca irá parar mesmo se a nota for solta. Felizmente, o envelope ADSR reconhece quando não haverá mais nada para ouvir, uma vez que de qualquer jeito escala o sinal para zero em algum ponto após a nota ser solta.

Isto é indicado pela configuração do done output para 1. Logo conecte isto ao output do feito da estrutura. A estrutura será removida tão logo vá para 1.

Renomeie sua estrutura para instrumento_tutorial (a partir do Arquivo Renomear estrutura. Então salve-a usando o salvar como (o nome padrão oferecido agora deve ser instrumento_tutorial).

Inicie o artscontrol, e vá para o Ver Gerenciador de Midi, e escolha Adicionar Saída de MIDI do Sintetizador aRts. Finalmente, você deve ser capaz de selecionar seu instrumento (tutorial) aqui.

Abra um terminal e digite ``midisend``. Você verá que o `midisend` e o instrumento estão listados agora no gerenciador de &MIDI; do &arts;. Após selecionar ambos e clicar conectar, nós finalmente terminamos. Pegue o seu teclado e comece a tocar (é claro que ele deve estar conectado ao seu computador).

### Sugestões

Você agora deve ser capaz de trabalhar com o &arts;. Aqui estão algumas dicas do que você pode tentar melhorar em suas estruturas agora:

- Tente usar coisas além de uma onda SIN. Quando você pluga uma onda TRI, você muito provavelmente achará que o som não é muito legal. Mas tente colocar um filtro SHELVE&lowbar;CUTOFF logo após a onda TRI para cortar as frequências acima de um valor determinado (tente algo como 1000 Hz, ou mesmo duas vezes a frequência de entrada ou frequência de entrada + 200 Hz ou algo como isto).

- Tente usar mais de um oscilador. O Synth&lowbar;XFADE pode ser usado para fazer uma transição suave (mixar) de dois sinais, e o Synth&lowbar;ADD para adicioná-los.

- Tente configurar as frequências dos osciladores para não extamente os mesmos valores, o que fornece oscilações legais.

- Experimente usar mais de um envelope.

- Tente sintetizar instrumentos com diferentes saídas esquerda e direita.

- Tente pós-processar o sinal após ele sair do barramento. Você pode por exemplo misturar uma versão retardada do sinal com o original para obter um efeito de eco.

- Tente usar a configuração velocidade (ela é a força com a qual a nota é pressionada, você pode também dizer volume). O efeito especial é sempre quanto isto não somente modifica o volume do sinal resultante, mas também o som do instrumento (por exemlo a frequência de corte).

- ...

Se você tiver criado alguma coisa bem legal, por favor considere fornecê-la para a página web do &arts;. Ou para inclusão na próxima versão.

## Exemplos

O &arts-builder; vem com diversos exemplos, que podem ser abertos através do Arquivo Abrir Exemplo.... Alguns deles estão na pasta, outros (que por alguma razão não funcionam com a versão atual) estão à esquerda na pasta todo.

Os exemplos dividem-se em diversas categorias:

- Exemplos por si só ilustrando como usar cada um dos módulos embutidos do arts (nomeados `example_*.arts`). Estes tipicamente enviam alguma saída para uma placa de som.

- Instrumentos construídos a partir dos módulos do arts de nível mais baixo (nomeados `instrument_*.arts`). Estes seguem a convenção padrão para portas de entrada e saída de modo que eles podem ser usados com o gerenciador &MIDI; no &artscontrol;.

- Modelos para criar novos módulos (nomeados `template_*.arts`).

- Efeitos que pode ser usados como blocos de construção reutilizáveis (nomeados `effect_*.arts`) [ todos em todo ]

- Elementos de mixagem usados para criar mixadores, incluindo controles gráficos (nomeados `mixer_element_*.arts`). [ todos em todo ]

- Módulos diversos que não se enquadram em nenhuma das categorias acima.

### Descrição Detalhada De Cada Módulo:

`example_stereo_beep.arts`

  Gera uma tom de onda senóide de 440Hz no canal esquerdo e um tom de onda senóide de 880Hz no canal direito, e envia-os para a saída da placa de som. Isto é referenciado na documentação do &arts;.

`example_sine.arts`

  Gera uma onda senóide de 440 Hz.

`example_pulse.arts`

  Gera uma onda em pulso de 440 Hz com um ciclo de 20%.

`example_softsaw.arts`

  Gera uma onda em dente de serra de 440 Hz.

`example_square.arts`

  Gera uma onda quadrada de 440 Hz.

`example_tri.arts`

  Gera uma onda triangular de 440 Hz.

`example_noise.arts`

  Gera um ruído branco.

`example_dtmf1.arts`

  Gera um tom duplo pela produção de ondas senóides de 697 e 1209 Hz, escalonando-as em 0.5, e adicionando-as juntas. Este é o tom DTMF para o dígito "1" no teclado do telefone.

`example_atan_saturate.arts`

  Executa uma onda triangular através do filtro de saturação atan.

`example_autopanner.arts`

  Usa um auto-garimpador para garimpar uma onda senóide de 400 Hz entre as caixas esquerda e direita a uma taxa de 2 Hz.

`example_brickwall.arts`

  Escalona uma onda senóide com um fator de 5 e então executa-a através de um limitador de parede de tijolo.

`example_bus.arts`

  Baixa a partir de um barramento chamado Bus e envia para o barramento out_soundcard com os canais direito e esquerdo invertidos.

`example_cdelay.arts`

  Baixa a partir de um barramento chamado Delay, e envia o canal direito com 0.5 segundos de cdelay, e o canal esquerdo sem mudanças. Você pode usar o &artscontrol; para conectar o efeito a um tocador de som e observar os resultados.

`example_delay.arts`

  Este é o mesmo que `example_cdelay.arts` mas usa o efeito delay.

`example_capture_wav.arts`

  Isto usa o Synth_CAPTURE_WAV para salvar uma onda senóide de 400 Hz como um arquivo de onda. Roda o módulo por uns poucos segundos, e então examinha o arquivo criado no `/tmp`. Você pode tocar o arquivo com um tocador como o kaiman.

`example_data.arts`

  Isto usa o módulo Data para gerar um fluxo constante de valor 3 e enviá-lo para o módulo Debug para periodicamente exibí-lo. Ele também contém um módulo Nil, ilustrando como ele pode ser usado para não fazer nada.

`example_adsr.arts`

  Mostra como criar um simples instrumento de som usando o módulo de envelope Adsr, repetidamente disparado por uma onda quadrática.

`example_fm.arts`

  Isto usa o módulo FM Source para gerar uma onda senóide de 440 Hz que é modulada na frequência a uma taxa de 5 Hz.

`example_freeverb.arts`

  Isto conecta o efeito Freeverb a partir de um barramento de baixar para um barramento de enviar. Você pode usar o artscontrol para conectar o efeito para um tocador de som e observar os resultados.

`example_flanger.arts`

  Isto implementa um efeito simples de flanger (isto parece que não está funcionando, ainda).

`example_moog.arts`

  Esta estrutura combina os dois canais de uma barramento em um, passa-o através do filtro Moog VCF, e envia-o para o barramento out_soundcard.

`example_pitch_shift.arts`

  Esta estrutura passa os dados do canal esquerdo da placa de som através do efeito Pitch Shift. Ajusta o parâmetro de velocidade para variar o efeito.

`example_rc.arts`

  Esta estrutura passa o gerador de ruído branco através de um filtro RC e envia-o para a placa de som. Vendo o mostrador do FFT Scope do artscontrol você pode ver como isto varia de um ruído não filtrado para a forma em onda.

`example_sequence.arts`

  Isto demonstra o módulo Sequence tocando uma sequência de notas.

`example_shelve_cutoff.arts`

  Esta estrutura passa um gerador de ruído branco através do filtro Shelve Cutoff e envia para a placa de som. Vendo o mostrador do FFT Scope do artscontrol você pode ver como isto varia de um ruído não filtrado para a forma em onda.

`example_equalizer.arts`

  Isto demonstra o módulo Std_Equalizer. Ele imcrementa as frequências baixas e altas em 6 dB.

`example_tremolo.arts`

  Isto demonstra o efeito Tremolo. Ele modula os canais esquerdo e direito usado uma vibração de 10 Hz.

`example_xfade.arts`

  Este exemplo mixa ondas senóides de 440 e 880 Hz usando uma transição suave. Ajusta o valor da entrada percentual da transição de -1 para 1 para controlar a mixagem dos dois sinais.

`example_pscale.arts`

  Isto ilustra o módulo Pscale (eu não estou certo se isto é um exemplo significativo).

`example_play_wav.arts`

  Isto ilustra o módulo Play Wave. Você precisará inserir o caminho completo para um arquivo `.wav` como parâmetro filename.

example_multi_add.arts

  Isto mostra o módulo Multi Add que aceita qualquer número de entradas. Ele soma três módulos Data que produzem entradas de 1, 2 e 3, e exibe o resultado 6.