&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 SomServidor 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_AMAN_PLAY para ouvir a saída do que está criando. Logo crie um módulo Synth_AMAN_PLAY selecionando Módulos Síntese IO de Som Synth_AMAN_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 ArquivoExecutar 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_WAVE_SIN (a partir de Módulos Síntese Formas de onda) e coloque-o acima do módulo Synth_AMAN_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_WAVE_SIN e então na porta left do Synth_AMAN_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_WAVE_SIN padrão para o intervalo 0,2*pi. Para gerar valores oscilando a partir de uma frequência, um módulo Synth_FREQUENCY é usado. Crie um módulo Synth_FREQUENCY (a partir de Módulos Síntese Oscilação & Modulação ) e conecte sua saída pos à entrada pos do seu Synth_WAVE_SIN. Especifique a frequência da porta do gerador FREQUENCY como um valor constante de 440. Selecione ArquivoExecutar 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_PLAY ao outvalue do Synth_WAVE_SIN. Crie um objeto Synth_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_SEQUENCE a entrada frequency do módulo Synth_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_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_SEQUENCE realmente precisa de uma sequência e velocidade. Sem isto você talvez obtenha erros no construtor. Selecione ArquivoExecutar 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_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 O outvalue do SIN ao invalue do PSCALE O outvalue do PSCALE ao left do AMAN_PLAY O outvalue do PSCALE ao right do AMAN_PLAY 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_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_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% da nota ter sido tocada, o volume atinge seu máximo, e inicia a diminuir em seguida. Selecione ArquivoExecutar 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_AMAN_PLAY nele, configure-o para um nome razoável qualquer. Coloque um Synth_BUS_DOWNLINK nele e: Configure o bus do Synth_BUS_DOWNLINK para áudio (que é apenas um nome, chame-o de joao se quiser) Conecte o left do Synth_BUS_DOWNLINK ao left do Synth_AMAN_PLAY Conecte o right do Synth_BUS_DOWNLINK ao right do Synth_AMAN_PLAY Inicie a execução da estrutura. Como esperado, você não ouvirá nada, ... não ainda. Retorne à estrutura com o Synth_WAVE_SIN e substitua o módulo Synth_AMAN_PLAY por um Synth_BUS_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_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_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 VerVer 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 PortasCriar sinal de áudio IN, e três vezes para PortasCriar sinal de áudio OUT. Coloque as portas em algum lugar. Finalmente, vá para PortasMudar posições e nomes e chame as portas de frequência, velocidade, pressionada, esquerda, direita, feito. Finalmente, você pode excluir o módulo Synth_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_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_PSCALE também deve ser substituído agora. Conecte-o em um Synth_ENVELOPE_ADSR no lugar (a partir de Módulos Síntese Envelopes ). Conecte: O input da estrutura pressinada ao active do ADSR O outvalue do SIN ao invalue do ADSR O outvalue do ADSR ao output da estrutura esquerda 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 AdicionarSaí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_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_XFADE pode ser usado para fazer uma transição suave (mixar) de dois sinais, e o Synth_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 ArquivoAbrir 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.