1 INTRODUÇÃO ......................................................................................................................... 5 1.1 HISTÓRIA ............................................................................................................................ 5 1.2 ANALÓGICO E DIGITAL ....................................................................................................... 9 1.3 SÍNTESE SONORA E SAMPLING ........................................................................................... 11 1.3.1 Síntese Aditiva............................................................................................................. 12 1.3.2 Síntese Subtractiva ...................................................................................................... 13 1.3.3 Síntese FM (Frequency Modulation) .......................................................................... 13 1.3.4 Síntese PM (Physical Modeling) ................................................................................. 14 1.3.5 Síntese Whaveshaping................................................................................................. 14 1.3.6 Síntese granular .......................................................................................................... 15 1.3.7 Síntese Wavetable ....................................................................................................... 16 1.3.8 Sampling ..................................................................................................................... 16 1.4 1.4.1 Chorus......................................................................................................................... 18 1.4.2 Flanger........................................................................................................................ 19 1.4.3 Phaser ......................................................................................................................... 19 1.4.4 Equalizador gráfico .................................................................................................... 19 1.4.5 Equalizador paramétrico ............................................................................................ 19 1.4.6 Compressor e Limitador ............................................................................................. 20 1.4.7 Reverberação .............................................................................................................. 20 1.5 2 EFEITOS ............................................................................................................................ 18 TIPOS DE SOFTWARE .......................................................................................................... 21 MIDI ......................................................................................................................................... 24 2.1 INTRODUÇÃO .................................................................................................................... 24 2.2 GENERAL MIDI ................................................................................................................ 25 2.3 PLACAS E INTERFACES MIDI ............................................................................................ 26 2.4 MENSAGENS MIDI ........................................................................................................... 28 2.4.1 MIDI System Exclusive ............................................................................................... 29 2.5 CONTROLADORES MIDI ................................................................................................... 30 2.6 SEQUENCIADORES MIDI................................................................................................... 32 2.6.1 Princípios básicos da sequenciação ........................................................................... 33 2.6.2 Resolução temporal..................................................................................................... 33 2.6.3 Sequenciação por software vs hardware..................................................................... 34 2 2.6.4 Pistas e canais............................................................................................................. 35 2.6.5 Suporte multi-porta ..................................................................................................... 35 2.6.6 Gravação e introdução da informação ....................................................................... 36 2.6.7 Sistemas de visualização ............................................................................................. 39 2.6.8 Funções básicas de edição.......................................................................................... 44 2.7 3 2.7.1 Stream Buffers............................................................................................................. 46 2.7.2 Serviços MIDI ............................................................................................................. 47 2.7.3 Estruturas MIDI.......................................................................................................... 50 ÁUDIO DIGITAL ................................................................................................................... 54 3.1 PLACAS DE SOM ................................................................................................................ 54 3.2 LATÊNCIA ......................................................................................................................... 56 3.3 DRIVERS PARA PLACAS DE SOM ......................................................................................... 58 3.3.1 3.4 5 ASIO............................................................................................................................ 61 PLUGINS ............................................................................................................................ 63 3.4.1 VST.............................................................................................................................. 63 3.4.2 DirectX........................................................................................................................ 64 3.5 4 WINDOWS MIDI ............................................................................................................... 46 FORMATOS DE FICHEIROS ÁUDIO ...................................................................................... 66 3.5.1 RIFF Wave .................................................................................................................. 67 3.5.2 AIFF............................................................................................................................ 68 3.6 REWIRE E VST SYSTEM LINK ........................................................................................... 68 3.7 DOLBY DIGITAL ............................................................................................................... 69 PANORAMA DO MERCADO .............................................................................................. 71 4.1 REASON ............................................................................................................................ 71 4.2 MAX MSP ....................................................................................................................... 73 4.3 HALION ........................................................................................................................... 75 4.4 REAKTOR .......................................................................................................................... 76 4.5 CUBASE ............................................................................................................................ 77 OPEN SOURCE ...................................................................................................................... 79 5.1 SISTEMA DE SOM GNU/LINUX .......................................................................................... 81 5.2 CSOUND ........................................................................................................................... 82 6 CONSIDERAÇÕES FINAIS.................................................................................................. 84 7 REFERÊNCIAS ...................................................................................................................... 85 3 8 BIBLIOGRAFIA ..................................................................................................................... 87 9 GLOSSÁRIO ........................................................................................................................... 88 4 1 Introdução No âmbito deste projecto defino como “Sistemas de Produção e Criação Musical” a uma reunião de dois conjuntos com vista a atingir um determinado fim. O primeiro conjunto é constituído pelas ferramentas de software que têm a capacidade de comunicar com instrumentos reais passíveis de o serem. O segundo conjunto é constituído por um conjunto de ferramentas que de alguma forma se integram com as do primeiro conjunto. O fim a atingir é a criação e/ou produção de música. Está claro que as capacidades destes sistemas estão para além da definição dada e como exemplos posso mencionar a capacidade de criar e produzir sonoridades susceptíveis de não serem consideradas música e a crescente capacidade multimédia destes sistemas. 1.1 História Todas as culturas humanas desenvolveram – paralelamente à língua – pelo menos uma forma de arte visual e música. Pouco pode ser dito das verdadeiras origens da música pois as suas raízes são envoltas na mais remota antiguidade humana. Como Charles Darwin escreveu na Origem das espécies: “A música é, talvez, mais uma característica definidora dos seres humanos do que uma fase passageira na evolução da inteligência.” Ao tentar definir por palavras o que a música realmente é, poder-se-ia sugerir que a música estimula um sentido para o qual a nossa mente é o órgão primário (se não o único): o nosso senso de tempo. Pelo facto de música ser uma arte temporal, o seu estudo correcto inclui necessariamente um método de capturar, representar e interpretar informação de sucessivos momentos no 5 tempo. Tal avanço tecnológico ocorreu acerca de um século atrás, com o advento da criação de meios de gravação de som. Muita coisa aconteceu desde a invenção do fonógrafo por Thomas Edison. Na altura Edison utilizou uma fina folha de estanho, um cilindro giratório e um estilete metálico para capturar ondas sonoras, preservar as suas vibrações e reproduzi-las como som. Este foi o primeiro aparelho de gravação analógica e alterou para sempre a maneira como ouvimos música. Actuações ao vivo ficam assim preservadas e disponíveis para quando as queiram ouvir. A gravação sonora não só transformou drasticamente o estudo da música, mas também os métodos pelos quais a música é feita, de maneiras fundamentais. Instrumentos musicais vêm expandindo o horizonte musical praticamente desde a viragem do século vinte. Temos como exemplo o Etherphone ou Thèremin inventado pelo russo Leon Thèremin em 1920. Usando-se este instrumento era possível controlar a intensidade e a altura do som gerado por osciladores quase sinusoidais através do movimento das mãos próximo de duas antenas. O primeiro programa de música para computador foi desenvolvido por Max Mathews nos laboratórios Bell em 1957 e corria num IBM 704. Este software teve o nome de MUSIC, com as diferentes versões assinaladas por números romanos. O MUSIC II de 1958 demorava no computador mais rápido de então cerca de uma hora para gerar um minuto de música. A maioria dos compositores das décadas de 60 e 70 não trabalhava com computadores. Na altura o acesso a computadores era limitado, a programação era difícil e os resultados obtidos pelos sintetizadores analógicos eram mais gratificantes para o compositor. Em 1968 Max Mathews desenhou um sistema que permitia a um computador controlar um sintetizador analógico em tempo 6 real. O GROOVE permitia gravar as acções de um músico enquanto este tocava e alterava controlos num sintetizador. Depois de efectuada a gravação, as acções podiam ser editadas e reproduzidas de novo no sintetizador. Por volta de 1970 a música por computador estava a ser estudada em cerca de onze instituições. No final dessa década o número de universidades e centros de pesquisa que exploravam a composição por computador e áreas relacionadas ascendiam já a cerca de 100. Por essa altura todo o trabalho dos centros de pesquisa era efectuado em mainframes e a criação de uma qualquer peça musical requeria um elevado esforço. Os papéis científicos publicados no “The Journal of the Audio Engineering Society” e no “Computer Music Journal” eram na altura mais abundantes do que a música criada por computador. O objectivo de então era desenvolver um sistema capaz de efectuar síntese em tempo real. Com o aparecimento do microprocessador e dos primeiros computadores pessoais tornou-se cada vez mais simples a ligação destes com os sintetizadores. A música por computador tornou-se então mais acessível a muitos músicos que não estavam relacionados com instituições de pesquisa. Os sintetizadores tornavam-se cada vez menos analógicos, sequenciadores e teclados digitais eram cada vez mais populares e os osciladores digitais ofereciam uma maior estabilidade do que os analógicos. Um microprocessador da altura podia ser programado para produzir 16 vozes, com algumas limitações, chegando algumas placas a serem comercializadas para o Apple II por companhias como a Mountain Hardware. Em 1981 o consórcio entre fabricantes de instrumentos musicais começou aquilo que mais tarde, em 1983, originou o standard MIDI. Em 1983 um consórcio entre fabricantes de sintetizadores, nascido em 1981, deu origem a ao standard MIDI. Desde então que o normal utilizador possível conectar 7 praticamente qualquer computador a praticamente qualquer sintetizador. Quando o Commodore 64 foi apresentado em 1982 incluía um chip com um sintetizador de 4 vozes. Aparentemente a primeira intenção eram os jogos mas rapidamente apareceu software para a composição musical. Menos de um século passado desde a invenção do primeiro instrumento electrónico, muitas invenções e inovações trouxeram-nos muito mais longe, através da fita magnética, do som estéreo, da cassete áudio, do CD, do DVD e equipamento sofisticado de gravação. Os resultados: melhor qualidade sonora para os ouvintes, maior flexibilidade para o músico. Com o aumento da prevalência das gravações digitais nos últimos anos, a criação e produção musical deu um grande salto em frente. A gravação analógica é como uma transcrição física da música, convertendo ondas sonoras em padrões magnéticos e vice-versa. A gravação digital é mais similar ao funcionamento de um computador. A música gravada digitalmente é amostrada umas dezenas de milhares de vezes num segundo. Essas samples (amostras) são transformadas numa série de impulsos eléctricos e guardados em código binário. Este código é então convertido de novo para sinais de áudio analógicos que podem ser reproduzidos num qualquer sistema estéreo convencional e apreciados por um ouvido humano. Este processo envolve bastante menos passos que uma gravação tradicional, passos esses que adicionam uma distorção significante e ruído de fundo, sendo o resultado um som mais limpo e de mais alta qualidade. Este processo também alterou a música em estúdio. A produção tornou-se mais rápida, simples e bastante menos dispendiosa. Isto significa que deixaram de ser precisas placas de mistura muito caras, gravadores de fita multi-pista, equipamento de redução de ruído e uma equipa de técnicos para trabalhar com o equipamento. Em sua substituição temos agora 8 uns quantos PCs a um preço comparativamente reduzido. Músicos e compositores criam agora estúdios de gravação digital em sua casa, a um preço relativamente baixo. Com um microfone, um teclado e um PC os artistas podem gravar a sua música, fazer experiências com ela e melhora-la. Eles podem fazer os seus próprios CDs. A Internet possibilita ainda um novo passo em frente. Os músicos podem enviar a sua música para todo o mundo em ficheiros comprimidos, trocar loops pela rede, emprestar sons ou partilhar ideias musicais. Na era digital, a inovação técnica alimenta a inovação artística. 1.2 Analógico e digital As ondas sonoras são oscilações do ar, que vão variando ao longo do tempo de acordo com as características dos sons. A palavra “analógico” significa que uma gama de valores é apresentada de uma forma contínua e não de uma forma discreta. Isto implica que sejam feitas medições em todos os momentos e infinita resolução – contudo limitações físicas inerentes, tais como o tamanho do grão numa fita magnética ou o nível de ruído de um circuito electrónico, impedem que qualquer sistema do mundo real seja verdadeiramente contínuo. Tecnicamente o som analógico é superior, pois consegue traduzir com a máxima perfeição todo o espectro sonoro e, principalmente, a sua complexidade (o som musical é muito complexo). O processo de digitalização consiste em fazer uma sequência de medidas dos valores de voltagem. Cada um desses valores é representado por um número inteiro. O sinal digitalizado passa a ser representado por esta sequência de números. Em geral, quando realizamos uma digitalização, os dados ficam na memória RAM, e temos condição de gerar um arquivo com os resultados. 9 Para converter um sinal de áudio analógico (ex: sinal de um microfone) em códigos digitais, é usado um conversor analógico-digital (ADC). O conversor amostra várias vezes o sinal durante um período de tempo, digamos, 44.100 vezes por segundo, o que dá uma taxa de amostragem de 44.1 kHz. A cada amostragem, o conversor mede a amplitude do sinal e codifica-o sob a forma de valor numérico. Essa forma de medir o sinal regularmente durante um período de tempo é chamada de sampling, e a conversão da amplitude do sinal em valor numérico é chamada de quantize (quantização). As duas acções juntas compõem o processo de digitalização. Para fazer oposto - conversão do código digital em sinal analógico - é usado um conversor digital-analógico (DAC). Em ambos os casos, a frequência na qual o dispositivo opera é chamada de taxa de amostragem (sampling rate). A taxa de amostragem determina a resposta efectiva de frequências, e deve ser mais do que o dobro da maior frequência a ser reproduzida. Dessa forma, a taxa de amostragem de 44.1 kHz do CD é ligeiramente mais alta do que o dobro da frequência mais alta de áudio, que é 20 kHz. A precisão obtida no processo da quantização é directamente dependente da qualidade dos conversores ADC e DAC. A resolução ou tamanho do número digital (expresso em bits) determina a relação sinal/ruído teórica a que o sistema de áudio é capaz de operar. O número de bits pode ser comparado ao número de casas decimais de uma calculadora - quanto maior, mais preciso será o resultado. A digitalização do som possui um efeito colateral indesejável que é a alta sensibilidade à sobrecarga de sinal. Se um sinal analógico começa a 10 sobrecarregar (saturar), ocorre que a amplitude do sinal atinge o nível máximo e os picos da onda começam a ser cortados (clipping). Quanto maior a proporção do sinal que está a ser cortado, mais harmónicos - percebidos como distorção serão ouvidos. Esse processo é gradual, com o nível de distorção sendo uma percentagem do sinal total, e crescendo proporcionalmente ao aumento do sinal de entrada. A distorção digital é um caso diferente. Por exemplo, numa situação onde um código de 4 bits possui o valor positivo 0111 ao qual se adiciona menor valor possível (0001), que é o menor acréscimo de amplitude que pode haver. A adição dos dois códigos resulta no valor 1000, que indica o maior valor negativo possível. Ou seja, o valor que era positivo torna-se instantaneamente negativo (e máximo), resultando uma distorção extrema e bastante perceptível. Nos processadores digitais de áudio, os dados serão modificados de diversas maneiras, com vários cálculos e processos, para se obter o efeito desejado. Isso dá origem a vários erros, uma vez que nesses cálculos os valores sofrem inevitáveis aproximações, resultando em mais ruído. Para minimizar esses erros de arredondamento, os cálculos devem ser efectuados com uma resolução maior do que a que os dados foram digitalizados, isto é, o processamento deve ser feito com uma resolução superior à dos conversores ADC e DAC. Por isso, muitos equipamentos processam com resolução interna de 24 bits, ou mesmo 32 bits, enquanto seus conversores possuem resolução de 16, 20 ou 24 bits. 1.3 Síntese sonora e Sampling A síntese sonora é o processo de gerar sons. Tal pode ser conseguido, através do processamento de sons já existentes ou através da sua geração electrónica ou mecânica. Pode utilizar a matemática, física ou biologia, 11 combinando arte e ciência numa mistura de habilidade musical e domínio técnico. Utilizada cuidadosamente pode produzir performances emocionais que pintam paisagens sónicas com um conjunto de timbres vasto e rico, limitado apenas pela imaginação do criador. Os sons podem ser simples ou complexos e os métodos empregues na sua criação são diversos. A síntese sonora pode ser analógica, digital ou híbrida. Apresento em seguida uma breve descrição de alguns dos principais e mais utilizados métodos de síntese. 1.3.1 Síntese Aditiva A síntese aditiva é uma técnica poderosa para a geração de sons complexos baseada nas descobertas de Joseph Fourier. Ele descobriu que teoricamente qualquer som que ocorre na natureza pode ser gerado através da soma dos sinais de saída de um número qualquer de osciladores utilizando ondas sinusoidais, que são usados para modelar cada harmónico presente em um certo espectro. Cada oscilador tem sua frequência e amplitude controladas por funções de tempo independentes. As funções de tempo para o controle da frequência e amplitude podem ser obtidas por análise de sons reais, e neste caso, a síntese é basicamente uma recomposição do espectro analisado. Podem ser utilizados osciladores analógicos ou digitais neste tipo de síntese, embora que com os analógicos seja de muito difícil implementação devido ao número de osciladores necessários para criar formas de onda ricas em harmónicos. 12 1.3.2 Síntese Subtractiva A síntese subtractiva é tradicionalmente utilizada em sintetizadores analógicos e ainda hoje é uma das formas mais populares de síntese. Este tipo de síntese está baseada na ideia de que um instrumento real pode ser divido em três partes importantes: a fonte do som, um filtro que processa a saída da fonte, e alguns controladores que servem de interface entre o executante e o instrumento. Na síntese subtractiva são utilizados vários tipos diferentes de filtros que mudam a característica de um som complexo moldando o seu espectro. Os filtros podem ser de quatro tipos gerais, de acordo com a forma da sua resposta de amplitude: low-pass (LP), high-pass (HP), band-pass (BP) e band-reject (BR). Visto que a base deste tipo de síntese é um pouco limitada foram empregues um grande número de outras técnicas para levar a síntese subtractiva aos limites. Alguns exemplos disso são anéis de modulação e formas de onda. 1.3.3 Síntese FM (Frequency Modulation) A síntese de áudio por meio de modulação de frequência foi um método desenvolvido por John Chowning na década de 60, aplicando conceitos já desenvolvidos para a transmissão de sinais de rádio por FM. Ela possibilita a criação de espectros complexos que evoluem no tempo, com o uso de apenas dois osciladores sinusoidais, em um arranjo chamado de FM simples. Com isso a economia em tempo de computação é muito grande em relação à síntese aditiva. A um desses osciladores é dado o nome de portador enquanto que ao outro o de modulador. O modulador é utilizado para “modular” a frequência do portador sendo possível criar espectros muito ricos em harmónicos que não são possíveis através de outros tipos de síntese. 13 1.3.4 Síntese PM (Physical Modeling) A PM é um tipo de síntese em que propriedades complexas, físicas ou acústicas, são analisadas através de leis da física. Estas propriedades físicas são então representadas através de algoritmos matemáticos e processados em tempo real por um CPU ou por um chip VLSI. Estes algoritmos podem ser combinados para simular uma propriedade acústica e/ou um instrumento. Entre as coisas normalmente modeladas encontram-se guitarras, violinos, osciladores analógicos e até mesmo sons vocais. A PM é uma forma de síntese extremamente poderosa e relativamente nova que apresenta algumas vantagens na forma de reprodução de samples estáticos. Outra das vantagens em relação a outras formas de síntese é que permite ao músico um grande controlo em tempo real. 1.3.5 Síntese Whaveshaping A Waveshaping é uma técnica de síntese por distorção. Trata-se do uso de uma distorção de amplitude de um sinal como meio de produção de timbres complexos. Aqui utiliza-se um oscilador sinusoidal cuja saída é conectada a um processador não linear, ou waveshaper, que altera a forma da onda passando por ele. Um waveshaper é caracterizado pela sua função de transferência, que relaciona a amplitude do sinal de saída com o de entrada. 14 1.3.6 Síntese granular O físico britânico Dennis Gabor provavelmente foi o primeiro a propor o conceito de um "quantum sonoro", segundo o qual todos os fenómenos sonoros seriam baseados na combinação de uma unidade indivisível de informação, sob o ponto de vista psico-acústico. Estudos posteriores mostraram que, se vários segmentos sonoros de pequena duração forem combinados sequencialmente, a combinação deles será percebida como uma textura musical contínua, mas se a duração dos segmentos exceder a um determinado limiar, da ordem de 100 ms, então eles passarão a ser ouvidos como eventos individualizados. A síntese granular baseia-se na combinação de uma enorme quantidade de pequenos eventos sonoros – chamados de grãos – com duração inferior a 50 milissegundos. Esses eventos podem ser criados a partir de uma forma de onda electrónica (sinusoidal, dente-de-serra, etc.), de um sinal gerado por síntese FM ou de uma amostra digital (sample). O que mais se destaca na técnica da síntese granular é a relação entre a simplicidade do grão, que ouvido sozinho é apenas um click, mas quando inúmeros pequenos segmentos são combinados sequencialmente, pode-se obter texturas complexas e interessantes. Manipulando-se os parâmetros básicos dos pequenos grãos, pode-se obter variações enormes na textura final. Entretanto, quanto maior for a densidade dos grãos, maior a dificuldade de se manipular o processo, por causa da grande quantidade de processamento requerida. Isso inviabilizou o uso da síntese granular durante muitos anos, e as experiências limitavam-se a edições de trechos de áudio em fita magnética. Só mesmo no meio da década de 1980 é que se conseguiu uma implementação em tempo real. 15 1.3.7 Síntese Wavetable Este método de síntese utiliza pequenas gravações digitais de instrumentos reais reunidas numa tabela de ondas sonoras (Wavetable) como base para o processo de síntese. O conjunto de instrumentos gravados é denominado de Wavetable Database ou conjunto de amostras dos instrumentos. A qualidade do som produzido é determinado quer pela qualidade da base de dados, quer pela qualidade dos algoritmos de processamento de sinal utilizados no processo de síntese. Uma das maiores desvantagens deste método de síntese. Apresenta, como vantagem sobre a síntese FM, uma reprodução bem mais próxima do original. Em compensação, é preciso ter memória para essa tabela. 1.3.8 Sampling O termo sampler significa amostrador, e neste caso refere-se a um equipamento que regista amostras digitais de um som, para serem usadas posteriormente. Em linhas gerais, o sampler digital é um equipamento capaz de gravar (digitalmente) um som qualquer, editá-lo e armazená-lo na memória, para ser executado posteriormente, sob o controle de um teclado ou um sequenciador MIDI. Para gravar um som no sampler, basta conectar à sua entrada de áudio um microfone (ou uma outra fonte de sinal, como um reprodutor de CDs, por exemplo) e iniciar o processo de digitalização, que é efectuado pelo conversor analógico/digital do sampler. Nesse momento, o som já digitalizado é armazenado então na memória interna do sampler, onde é devidamente processado e configurado para ser uma forma-de-onda (“waveform”) utilizável na edição de timbres, daí então um processo igual ao dos sintetizadores digitais 16 convencionais que utilizam síntese subtractiva, que dará o resultado final, ou seja, um timbre que pode ser controlado por um teclado ou por um sequenciador MIDI. A principal diferença de um sampler para um sintetizador comum é que as formas-de-onda não estão fixas na memória, e podem ser carregadas pelo utilizador. Isso faz do sampler um equipamento dependente da qualidade das amostras que nele serão colocadas (sampleadas pelo próprio usuário ou carregadas a partir de bancos de sons criados por empresas especializadas). Estando a amostra na memória, é necessário ajustá-la adequadamente para que possa ser usada. Um dos aspectos mais importantes no processo de sampling esta relacionado com a parte utilizável de uma amostra. Todo som natural (voz humana, violino, etc.) possui uma característica chamada de formant, que delineia as amplitudes dos harmónicos presentes no seu espectro de frequências, conforme um padrão próprio. Esse formant está directamente associado ao dispositivo físico onde o som é gerado (corpo do violino, estrutura da laringe, etc.). Isso faz com que mesmo notas de alturas diferentes tenham um contorno bastante similar nas amplitudes do espectro. Por exemplo, quando se analisa o espectro de frequências produzido pela nota Lá 3 de um violino o formant mostra algumas ênfases em determinadas frequências. Ao analisar o espectro de frequências de uma nota Lá 4 do mesmo violino constata-se que o seu formant mostra praticamente as mesmas ênfases da nota Lá 3. O exemplo deixa claro que, nos sons naturais, as características de amplitude do espectro são fixas, de acordo com um formant próprio, não alterando com a altura do som. Ao tentar usar a nota Lá 3 para gerar a nota Lá 4, efectuando uma transposição por processamento digital (dobrando a frequência por meio de um recurso simples de “pitch shifting”), será obtida uma nota Lá 4 com um espectro de frequências obedecendo a um formant 17 completamente diferente do original daquele violino. Na prática, isso fará com que o som dessa nota Lá 4 soe estranho, ainda que com características de violino. Por isso, para se samplear um som natural, é necessário fazer várias amostragens, evitando-se ao máximo o aproveitamento da amostra de uma nota para as demais. Esse processo é chamado de “multisampling”, e associa uma amostra a um pequeno grupo de notas. Idealmente, cada nota deveria ter sua própria amostra. 1.4 Efeitos Existem diversos tipos de efeitos que podem ser adicionados ao sinal de áudio, desde a simulação de ambientes acústicos, até alterações totalmente não naturais. Apresento de seguida alguns dos efeitos mais utilizados no processo da produção e criação sonora. 1.4.1 Chorus Este efeito cria a ilusão de que duas ou mais fontes sonoras estão a soar juntas - efeito de “coro”. Ele é obtido quando se adiciona ao som original uma cópia sua atrasada e com afinação (ou atraso) variando periodicamente. O efeito simula as variações de afinação e tempo que ocorrem naturalmente quando duas ou mais pessoas tentam tocar ou cantar a mesma coisa, ao mesmo tempo (daí o nome de efeito de “coro”). 18 1.4.2 Flanger O efeito de “flanging” era muito usado nas gravações das décadas de 1960 e 1970, e é o resultado da mistura de um sinal com uma cópia sua atrasada e com o atraso variando (processo similar ao do chorus). Muitas vezes é descrito como “avião a jacto passando dentro do som”. 1.4.3 Phaser Este efeito é semelhante ao flanger, mas ao invés de apenas atrasar o som, algumas das suas frequências são deslocadas no tempo. Pode-se criar efeitos bastante estranhos na imagem do estéreo quando se utiliza o Phaser em material estéreo. 1.4.4 Equalizador gráfico Permite ajustar individualmente o ganho (ou redução) em faixas (bandas) separadas do espectro do sinal (normalmente 15 ou 31 bandas). O ajuste de cada banda é feito por meio de um controle deslizante, de forma que as posições desses controles permitem uma visualização imediata de como o equipamento está actuando sobre o sinal. 1.4.5 Equalizador paramétrico 19 Permite ajustar uma frequência central de actuação e qual o ganho ou atenuação a ser efectuado na faixa centralizada nessa frequência. Em sistemas de som profissionais os canais de entrada em geral possuem um ou mais equalizadores paramétricos. 1.4.6 Compressor e Limitador O compressor e o limitador reduzem a dinâmica por meio de um controle automático de ganho. Isso reduz a amplitude das passagens mais altas e dessa forma restringe a dinâmica para uma faixa desejada. Embora os compressores e limitadores executem funções similares, há um ponto essencial que os diferencia: o limitador limita abruptamente o sinal acima de determinado nível, enquanto que o compressor controla o sinal suavemente dentro de uma faixa mais ampla. Ambos monitorizam continuamente o sinal e intervêm assim que o nível excede um limiar parametrizavel. Qualquer sinal que exceda esse limiar terá seu nível reduzido imediatamente. 1.4.7 Reverberação A reverberação digital tenta oferecer uma simulação do fenómeno real da reverberação (e em alguns casos, uma reverberação surrealista), utilizando para isso algoritmos computacionais. A qualidade da simulação depende muito do software (algoritmo), do desempenho do processador utilizado, e da qualidade dos conversores A/D e D/A. Uma vez que a reverberação natural é composta de milhares de ecos, deve ser usado um processador muito rápido para efectuar os 20 cálculos complexos necessários. Para fazer um reverb natural, é preciso um software adequado, capaz de controlar os parâmetros mais importantes do fenómeno da reverberação. Devem ser computados, por exemplo, a difracção e as reflexões do sinal em diferentes tipos de material, os deslocamentos de fase e as ressonâncias do ambiente. 1.5 Tipos de software Tendo em conta o âmbito em que o projecto se enquadra existem vários tipos de softwares diferentes. No entanto, devido à abundância de software disponível e ao alto ritmo a que se sucedem os lançamentos de novo software, dividir os softwares por tipos não é tarefa fácil. Isto também porque existem novas ferramentas, que por si só, podem englobar funções de vários outros softwares de tipos bem distintos. Não obstante, proponho a seguinte divisão, tendo o que foi dito anteriormente: • Sequenciadores áudio e MIDI - software desenhado para gravação, reprodução e edição de música utilizando MIDI e/ou áudio, podendo incluir alguns instrumentos virtuais e/ou caixas de efeitos. Podem, ou não, suportar plugins externos sob a forma de efeitos ou instrumentos virtuais. • Sequenciadores de padrões - Software desenhado principalmente para criação de batidas, ritmos e loops de bateria desde o princípio utilizando o MIDI e/ou samples. A grande maioria deste tipo de software utiliza algum tipo de grelha que permite definir as batidas. Cada posição na grelha representa um estado ON/OFF de um som de bateria ou de um outro instrumento numa altura específica de tempo. 21 • Notação musical - Este tipo de software é essencialmente um processador de texto para música. Permite a criação, impressão e leitura de partituras. • Editores de patches - São ferramentas que fornecem uma interface para parametrizar, controlar e gravar sons de instrumentos; e definir parâmetros para samplers e sintetizadores virtuais ou não. Este tipo de ferramentas permite uma fácil organização, edição e visualização de patches. • Instrumentos virtuais - são essencialmente uma emulação em software de um verdadeiro instrumento. A grande maioria dos instrumentos virtuais emula sintetizadores e samplers existindo no entanto implementações de outros instrumentos. Os sons são na maioria das vezes disparados através de um teclado MIDI ou através de outro controlador MIDI. Podem funcionar em modo standalone ou como plugins. • Editores de loops - Os loops são a base de construção para muita da música moderna. Os editores de loops são programas utilizados para reorganização de samples e definição de pontos de loop através do reconhecimento e manipulação dos seus conteúdos. Normalmente permitem efectuar sobre loops operações que se executam com ritmos programados com sons individuais de bateria, tais como alterar o tempo ou substituir sons e processá-los individualmente. • Editores de áudio - software que pode reproduzir, editar, afinar e gravar ficheiros de áudio. Alguns conseguem também enviar e receber samples de samplers exteriores. Normalmente a captura de áudio é feita através deste tipo de software. 22 • Workstation Áudio/MIDI - software desenhado para gravação, reprodução e edição de música utilizando MIDI e/ou áudio. Ao contrário dos sequenciadores de áudio e MIDI, não suportam plugins externos, mas normalmente podem funcionar em modo slave com alguns destes. Incluem instrumentos virtuais e caixas de efeito. 23 2 MIDI 2.1 Introdução O MIDI (Musical Instrument Digital Interface) é um protocolo que fornece uma interface de comunicação entre instrumentos musicais electrónicos e computadores, definindo quer a organização da informação transmitida quer os circuitos utilizados para conectar os dois sistemas. Desde que foi criado por um consórcio entre fabricantes de instrumentos musicais electrónicos japoneses e americanos, tem representado um papel de relevo na música electrónica pois tornou-se num padrão mundialmente aceite. O padrão MIDI ainda está na versão 1.0, isto é, desde 1983 até aqui, qualquer dispositivo pode ser ligado a qualquer outro e os dois funcionarão, no que depender do padrão. Dadas as enormes dificuldades em se conseguir reunir todas as empresas hoje envolvidas em projectos MIDI (desde Microsoft até Hollywood, passando por dezenas de fabricantes de teclados, reverbs, mesas de som, etc.) para mais uma vez discutir um novo padrão, é muito difícil que haja uma versão 2.0 ou semelhante nos próximos anos. No entanto, o padrão, apesar de manter as suas características básicas, vem tendo várias adições ao longo dos anos, fazendo-o cada vez mais abrangente e capaz de lidar com as mais diversas características de instrumentos que venham a implementar MIDI. A interface especifica uma linguagem de dados em série, compostos por mensagens MIDI por vezes denominadas de eventos. O MIDI funciona em série 24 e tem o seu sinal transmitido à taxa fixa de 31.25 Kbaud ou 31.250 bits por segundo. O protocolo MIDI divide a informação segundo 16 canais, tornando possível a criação de sistemas electrónicos musicais personalizados, nos quais os instrumentos podem ser divididos e direccionados por canais diferentes (MIDI CHANNELS) possibilitando que, com o auxílio de um sequenciador, cada um toque a sua parte a seu tempo. Toda esta informação pode ser transmitida com o recurso a um único cabo, onde cada canal transporta a informação de um dado instrumento. O MIDI possui vários modos de operação, sendo que os mais importantes são os seguintes: • Monofónico (um instrumento: uma nota de cada vez) • Polifónico (um instrumento: varias notas ao mesmo tempo) • Multi-Timbral (vários instrumentos simultaneamente: varias notas simultâneas) 2.2 General MIDI Um sintetizador compreende um conjunto de sons de vários instrumentos, e a necessidade de uma padronização fez surgir o padrão General MIDI (GM). O GM é um subconjunto e um complemento à especificação MIDI original, datado de 1988. Ele descreve várias características que um instrumento MIDI deve possuir para se qualificar como um aparelho compatível GM. 25 Posteriormente, em 1999, foi criada uma extensão a esta especificação designada por General MIDI Level 2 Specification (GM2). A especificação GM2 estabelece as seguintes condições básicas para os instrumentos musicais: • Numeração dos timbres • Notas que accionem os instrumentos de percussão • Número mínimo de partes timbrais • 16 canais MIDI : até 2 canais de MIDI para bateria (10/11); até 16 canais para melodia/harmonia • Polifonia mínima : 32 notas • Conjunto mínimo de controlos • Outras condições básicas de operação Um dos componentes mais significativos deste padrão é o Instrument Patch Map, uma lista de 128 sons juntamente com os seus números atribuídos pelo programa. Os sons incluem uma boa selecção de instrumentos de orquestra, teclados, conjuntos vocais, timbres de sintetizador, instrumentos étnicos, efeitos sonoros e muito mais. 2.3 Placas e interfaces MIDI Para trabalhar com o MIDI é necessário, obviamente, hardware que suporte entrada e saída de MIDI. As placas MIDI são aquelas que instaladas dentro do computador permitem a troca de informações entre o controlador e o gerador de timbres. As interfaces têm a mesma função, porém, são externas, ligadas ao computador através das portas paralelas, USB ou FireWire. As placas e 26 interfaces possuem diversas configurações e devem ser utilizadas de acordo com a conveniência, quanto ao número de portas/canais necessários. As placas MIDI podem ser específicas só para o efeito ou podem vir incorporadas numa placa de som. A conexão entre equipamentos MIDI é feita com cabos com cabos cujas pontas têm conectores DIN de 5 pinos do tipo macho. As ligações nos instrumentos são “fêmea” com cinco pequenos orifícios, enquanto que os cabos são “macho” com cinco pinos correspondentes nas extremidades. Dado que a transmissão por série apenas necessita de um cabo único, nem todos os pinos são usados. Assim sendo, os pinos 1 e 3 não são usados, o pino 2, diz respeito ao shielding, que previne que a informação seja interferida por frequências eléctricas intrusas. O pino 4 corresponde à terra, que faz com que a corrente flua na direcção correcta. O pino 5 é o verdadeiro transmissor da informação MIDI. Figura 1 – DIN Plug Dado que a informação corre sempre numa única direcção os instrumentos dispõem de várias conexões, para que a informação possa ser enviada de volta. Para isso existem as ligações de MIDI IN, OUT e THROUGH, localizadas na face posterior do instrumento. O MIDI IN recebe a informação que chega e envia-a para o computador do instrumento. Uma vez analisada são dadas as instruções ao instrumento, como por exemplo NOTE ON – o instrumento toca a nota. 27 O MIDI OUT envia a informação correspondente às acções que estão a ocorrer no instrumento. O MIDI TROUGHT (THRU) duplica a informação que é recebida pelo MIDI IN, de forma que o instrumento sirva de elo de uma cadeia. Esta funcionalidade está na base de sistemas de gravação e produção, nas quais se encontram vários instrumentos ligados entre si. 2.4 Mensagens MIDI O MIDI permite o controlo de múltiplas funções e baseia a sua linguagem na forma de mensagens. Estas mensagens são: STATUS que define a natureza da mensagem; DATA que define se uma nota foi pressionada e com que velocidade. Valores entre 0 e 127 são relativos a DATA e de 128 a 255 dizem respeito a STATUS. Depois existem ainda as mensagens de canal, estando entre elas: NOTE ON e NOTE OFF, sendo que a primeira é enviada sempre que uma tecla é pressionada e a segunda quando é libertada. Existe também a mensagem da velocidade (VELOCITY), que diz respeito à rapidez com que é feito o toque na nota e os valores encontram-se entre 1 e 127, sendo que, definindo a amplitude da nota, a mais baixa amplitude corresponde à mensagem de valor 1. O MIDI permite ainda a manipulação do som alterando o valor do pitch (PITCH BEND). Com 128 valores possíveis, este tipo de mensagem provoca alterações na natureza da nota. Quanto mais alto é o valor mais aguda será a nota em relação à original. As mensagens MIDI consistem numa string e são algo do género: 28 • Começar a tocar nota nº (nnn) - NOTE ON • Parar de tocar nota nº (nnn) - NOTE OFF • Mudar para o instrumento #24 (mudança de parâmetros) • Mudar o controlador (X) para valor (Z) • ... Cada mensagem MIDI está associada a um índice temporal de nome timestamp. Cada timestamp é medida em ticks. De um modo geral, qualquer mensagem MIDI que um instrumento não saiba interpretar é ignorada. Isso é bom, pois evita que os sintetizadores sejam desprogramados por acidente por receberem informação que era destinada a outro aparelho. 2.4.1 MIDI System Exclusive Embora existam um grande número de mensagens para os controladores MIDI, existe uma forma alternativa de controlar um dispositivo MIDI remoto. As mensagens Sysex (System Exclusive) foram projectadas de forma a permitirem aos fabricantes a criação das suas próprias mensagens MIDI. Essas mensagens podem ser utilizadas para editar parâmetros dos sintetizadores; para guardar dados relativos ao som; e para transmitir samples. 29 2.5 Controladores MIDI Um controlador MIDI é um dispositivo real que é utilizado para controlar parte de uma performance. O controlador pode ser mudo, para tocar sons de outros aparelhos, ou pode gerar sons próprios. Um sintetizador MIDI de teclado, por exemplo, funciona ao mesmo tempo com as funções de controlador e módulo de som. Para executar bem as duas funções, deve ser encarado como se fossem duas partes distintas do estúdio: o controlador e o módulo. Facilmente se pode desligar a função Local (LOCAL OFF) e conectar o dispositivo MIDI ao computador: OUT para IN e IN para OUT. O teclado agora só emitirá sons quando for determinado no sequenciador. Sem isso, ele fica mudo. Esta configuração permite a utilização do teclado para controlar (tocar) o som de outro instrumento, sem que o seu próprio som atrapalhe a execução. Para adaptar melhor a técnica instrumental do músico à transmissão de dados musicais via MIDI, existem inúmeros tipos de controladores alternativos, em forma de guitarras, violas, baterias de vários formatos, violinos, violas, violoncelos, instrumentos de sopro, vibrafones, caixas com botões e sliders, mesas misturadoras, etc. Mesmo que não saiba tocar num teclado, poderá ser da conveniência do músico dispor de um pois este poderá útil a programar as baterias e percussões, a realizar certos encadeamentos harmónicos e outras facilidades típicas desse tipo de instrumento. Esse teclado pode ser mudo ou conter os sons que serão sequenciados, tocados através dele e do controlador alternativo. Cada tipo de controlador tem as suas próprias características. As guitarras MIDI podem causar um certo atraso na transmissão dos dados, devido à dificuldade de reconhecer a afinação da nota executada. Enquanto um teclado transmite a nota imediatamente ao tocarmos, já que cada tecla tem um contacto 30 electrónico, a guitarra usa um conversor, que primeiro reconhece a frequência fundamental de cada nota tocada, para só então convertê-la numa nota MIDI e transmiti-la a um sintetizador ou outro aparelho. Este conversor tem que aguardar que se complete um ciclo da onda sonora da corda da guitarra, para identificar a nota tocada. Só que o dedo do guitarrista, como de qualquer instrumentista de cordas, não tem a exactidão de uma tecla, porque é comum que a corda fique ligeiramente esticada quando é tocada. Existe por vezes a dúvida de se um Fá é mesmo um Fá ou é um Mi que foi esticado pelo pitch bender. O conversor, muitas vezes, precisa de tomar decisões como esta, antes de fazer a conversão do som para uma nota MIDI. Ao sequenciar cada parte do arranjo numa guitarra controladora, o músico pode compensar esses atrasos de duas formas: quantizando ou adiantando o trecho. As duas operações são fáceis de efectuar em softwares que disponham das funções adequadas. Cada controlador combina melhor com certos timbres, e pior com outros. É melhor tocar bateria electrónica por meio de pads do que nas cordas de uma guitarra MIDI (embora seja possível), mas os pads não permitem tocar violino enquanto que a guitarra, sim. O músico deve escolher aquele controlador que melhor se adapta à sua técnica instrumental, procurando manter também um teclado. Figura 2 – Controlador MIDI Oxigen 31 Independentemente do tipo de controlador, existe um número de elementos em comum que são utilizados em todos eles. Cada um deles fornece sinais de controlo ou voltagens que produzem alguns ou todos os pontos informativos descritos: • Pitch de um evento de uma nota • Principio e fim de um evento de uma nota • Dinâmica de uma nota (volume) • Alterações no pitch • Alterações na modulação • Sustain • Controlos adicionais de expressão Alguns controladores combinam vários destes pontos num controlador composto, enquanto que outros os fornecem independentemente. Um teclado pode fornecer apenas um pitch básico e informações sobre a dinâmica, enquanto que outros mais sofisticados podem fornecer pitch-bend, modulação e informação sobre o sustain. 2.6 Sequenciadores MIDI De todas as aplicações e actividades relacionadas com o MIDI, a sequenciação foi a primeira a aparecer, e continua sendo hoje, a mais popular. Isto faz com que o sequenciador seja sem dúvida, depois dos próprios instrumentos (ou da placa de som), a peça mais importante de um estúdio MIDI. 32 Quer estejam baseados em hardware quer estejam baseados em software (a alternativa mais frequente), sejam mais ou menos sofisticados, todos os sequenciadores suportam como mínimo as mesmas funções básicas: gravar, editar e reproduzir mensagens MIDI. À margem destas funcionalidades imprescindíveis, cada sequenciador oferece um imenso leque de possibilidades adicionais e particularidades. 2.6.1 Princípios básicos da sequenciação Embora um sequenciador MIDI mantenha muitas analogias e conceitos herdados dos equipamentos de gravação (record) de áudio multi-pista, deve-se ter claro que este não grava som, mas sim mensagens MIDI. Podemos pensar num sequenciador como uma caixa negra que em modo de gravação recebe mensagens MIDI e as vai armazenando ordenadamente, colocando-lhes etiquetas com o instante preciso de recepção de cada uma das mensagens. Desta forma, quando o sequenciador está em modo de reprodução (play), o seu relógio interno vai observando as mensagens armazenadas, deixando-as “sair” no devido instante temporal. 2.6.2 Resolução temporal Se no áudio digital, para obter uma qualidade profissional é necessária uma frequência de amostragem de pelo menos 44 KHz, esta não necessita nem mais ou menos de ser tão precisa no terreno do MIDI. Se nos sequenciadores por hardware iniciais esta resolução costumava ser de 1/24 de semínima os actuais 33 sequenciadores por software oferecem resoluções de várias centenas de unidades por semínima. A maioria dos sequenciadores oferece a opção de escolha da resolução entre vários valores possíveis. Neste sentido, é de salientar que quanta maior for a resolução utilizada, numa determinada composição, maior será o processamento a ser efectuado. 2.6.3 Sequenciação por software vs hardware Embora o nascimento do MIDI coincida praticamente com a chegada dos primeiros computadores pessoais, para os quais não tardaram em aparecer interfaces MIDI e simples programas de sequenciação, a escassa potencia dessas primeiras máquinas, favoreceu inicialmente a proliferação de sequenciadores por hardware, especialmente em aplicações mais profissionais. Se à alguns anos atrás, estas unidades dedicadas, ofereciam maior potência e fiabilidade na sequenciação, do que qualquer computador, na actualidade, é obvio que a importância deste tipo de equipamento diminuiu consideravelmente (embora o seu menor tamanho e a sua rapidez de manejo fazem com que sejam utilizados para actuações ao vivo). Actualmente alguns sintetizadores (os denominados de workstations) incorporam um pequeno sequenciador que lhes permite trabalhar com autonomia, sem a necessidade de um computador. Embora estes sequenciadores possam ser cómodos em alguns casos (viagens, etc.), as suas possibilidades são realmente limitadas. A partir deste ponto, a não ser que indique explicitamente o contrário, quando utilizar o termo “sequenciador” estou-me a referir a uma aplicação de software. As possibilidades que oferecem os actuais programas de sequenciação eram, desde logo, impensáveis à alguns anos atrás, e crescem ao ritmo de tantos outros campos da informática de consumo, pelo que seria impossível 34 referi-las a todas. Centrar-me-ei, por isso, nos conceitos, aspectos e prestações mais importantes, que não podem faltar a qualquer sequenciador, seja qual for o seu preço. 2.6.4 Pistas e canais Todos os sequenciadores utilizam o conceito de pista, inspirado nos seus antecessores, os gravadores áudio multi-pista. Embora cada pista esteja normalmente associada a um canal MIDI, estes dois conceitos não se devem confundir. O número de canais MIDI (e por conseguinte, o de possíveis instrumentos simultâneos) é de 16; no entanto, a grande maioria dos sequenciadores oferece várias dezenas ou mesmo centenas de pistas. Enquanto que o canal, é um conceito físico que vem imposto pela própria especificação MIDI, a pista é um conceito lógico que cada programa pode utilizar e redefinir a seu gosto, pois faz unicamente referência ao modo como o programa armazena, mostra e permite manipular a informação. Por regra geral, e ainda que isto não deva ser o principal critério de eleição, pode-se considerar que quanto mais pistas ofereça um sequenciador melhor será, pois permite maior flexibilidade na hora de compor e arranjar uma peça. 2.6.5 Suporte multi-porta A um nível profissional, os dezasseis canais que oferece o MIDI, são frequentemente uma limitação perante arranjos e orquestrações complexas que requerem mais instrumentos em simultâneo. Para resolver esta limitação, alguns 35 fabricantes de interfaces MIDI para Macintosh começaram a desenhar, no princípio dos anos noventa, interfaces com suporte multi-porta, que permitia multiplicar por dois, três, quatro ou mesmo mais, os dezasseis canais iniciais. Paralelamente, os sequenciadores MIDI para Macintosh, começaram a implementar esta funcionalidade, adicionando a cada pista um parâmetro adicional (a porta) ao canal já existente. Para plataformas Windows foi mais tarde implementada o mesmo tipo de solução. Aquando da instalação de uma placa de som, são incorporados no sistema, um ou mais drivers MIDI. Cada um destes drivers corresponde a uma porta lógica e é capaz de direccionar por conseguinte dezasseis canais MIDI independentes. Assim sendo, uma placa de som que instale três drivers MIDI permite referenciar facilmente quarenta e oito canais MIDI simultâneos. Quase todos os sequenciadores para Windows suportam esta característica e são capazes de utilizar qualquer um dos drivers instalado no sistema. Para isso, cada posta inclui junto à especificação do canal, um parâmetro adicional correspondente à porta, que ao ser activado mostra uma lista com os nomes dos dispositivos instalados, para que se possa seleccionar um deles. 2.6.6 Gravação e introdução da informação Num sequenciador MIDI, costumasse gravar a informação numa pista de cada vez, podendo estar as restantes pistas já gravadas, activadas para reprodução ou não. 36 2.6.6.1 Ajuste do tempo Ao começar um projecto num sequenciador um dos primeiros parâmetros a ser definido é o tempo, alias todos os sequenciadores já possuem um valor por defeito para este parâmetro. Este parâmetro, que pode ser alterado as vezes necessárias, é importante na hora de efectuar uma gravação através de um qualquer controlador MIDI, e como tal todos os sequenciadores possuem uma funcionalidade (metrónomo) para de uma forma audível marcam o tempo escolhido. Em certas situações, pode suceder que o utilizador tenha o tempo na cabeça, mas não saiba com precisão o valor numérico que lhe corresponde. Para isso, a maioria dos sequenciadores possui uma funcionalidade que permite estabelecer o tempo interactivamente, carregando repetidas vezes uma tecla do computador ou mediante vários clicks no rato. É de salientar que o tempo seleccionado na altura em que é efectuada uma gravação não necessita de coincidir com o tempo final da peça. Isto significa que se uma passagem é especialmente complicada, ou se a destreza do utilizador no piano deixar bastante a desejar, é sempre possível escolher um tempo inferior, e acelerar a peça posteriormente. Esta é uma das grandes vantagens que o MIDI oferece a músicos amadores. Também é possível obter variações do tempo, que de forma brusca quer de forma progressiva, ao longo de uma mesma peça. 2.6.6.2 Escolha do instrumento ou programa MIDI Uma vez seleccionado o tempo, é normalmente elegido um instrumento ou programa, o que define o tipo de som associado a uma determinada pista. Se o instrumento a escolher pertencer à lista dos existentes no General MIDI, o valor 37 na coluna correspondente ao banco deve estar a zero. Para facilitar a escolha do instrumento, muitos sequenciadores possuem em cada pista a lista com o nome dos 128 programas que compõem o General MIDI. A qualidade destes sons é totalmente independente do software sequenciador, e depende exclusivamente da placa de som ou sintetizador a que esteja conectado. É preciso ter em conta que embora se disponha de um número virtualmente ilimitado de pistas, o número de canais continua a ser dezasseis, pelo que a escolha de um determinado instrumento numa determinada pista, irá afectar todas as pistas com as quais esta partilhe a porta e o canal. Isto implica que apenas é necessário definir um instrumento para uma pista associada a um determinado canal, que todas as outras associadas ao mesmo canal ficam automaticamente definidas. Para o caso de o instrumento desejado não pertencer à lista General MIDI terá que ser indicado o número do banco desejado, na coluna correspondente. Alguns sequenciadores permitem editar o nome dos instrumentos associados a diferentes bancos. 2.6.6.3 Gravação de pistas Para iniciar o processo de gravação todos os sequenciadores dispõem de uma barra de ferramentas que imita os botões de um gravador convencional, e que incluem como mínimo os botões de gravação, reprodução, avanço rápido e rebobinar. 38 2.6.6.4 Primeiras correcções No processo de gravação de uma pista é muito provável que o primeiro resultado obtido não seja logo perfeito. Como tal, existem várias opções para efectuar correcções. A opção mais óbvia reside em repetir toda a gravação, podendo ser utilizada uma pista auxiliar para guardar a gravação anterior. Pode acontecer o caso de apenas um pequeno fragmento da gravação não estar como pretendido. Para esse caso, todos os sequenciadores oferecem as opções de punch in e pinch out, que permitem fazer a reprodução do que já foi gravado e gravar por cima, apenas no fragmento incorrecto. Para este efeito, basta indicar os compassos que se queiram corrigir, e iniciar a reprodução no ponto da peça que seja mais cómodo, tendo em conta que apenas serão gravadas as mensagens recebidas nos compassos indicados. Finalmente, para aqueles que não se sentem demasiado à vontade perante um teclado musical, ou para aqueles fragmentos que estão revestidos de uma dificuldade especial, resta sempre a opção de gravar passo-a-passo, que consiste na introdução de notas uma a uma, desde o teclado musical, e no avanço com a ajuda do rato ou do teclado do computador. As opções não terminam aqui, já que existem muitas outras alternativas para introdução ou correcção da informação que serão descritas mais à frente. 2.6.7 Sistemas de visualização Os primeiros sequenciadores ofereciam poucas alternativas na hora de visualizar a informação MIDI contida nas suas pistas. Hoje em dia, ainda que qualquer sequenciador tenha as suas pequenas peculiaridades, quase todos incorporam com ligeiras variações três formas básicas para visualizar e modificar esta informação: a lista de eventos, a vista de piano e a partitura 39 convencional. Salvo excepções, estas janelas de visualização só permitem aceder à informação de uma pista de cada vez. 2.6.7.1 A lista de eventos A lista de eventos permite visualizar em modo texto e ordenadas temporalmente, todas as mensagens MIDI contidas numa pista. Tipicamente cada mensagem ocupa uma linha, e que tem como dados mais importantes o tipo de mensagem (nota, programa, controlo, etc.), o canal e uma etiqueta temporal. A lista de eventos é a forma de visualização que incorporava os primeiros sequenciadores por software, e costuma ser a única das formas que mostra toda a informação MIDI armazenada, pois as restantes formas filtram essa informação em maior ou menor parte. Através dela é possível observar não só as notas, mas também todos os controlos, mudanças de programa e outras mensagens contidas na pista seleccionada. Através desta janela é possível modificar qualquer parâmetro assim como eliminar ou inserir novos eventos com uma precisão absoluta. Figura 3 – Lista de eventos no software Cubase 40 Utilizar a lista de eventos para inserir muitos eventos MIDI pode ser num entanto fastidioso; no entanto é uma janela para inserir eventos esporádicos. Descrevo agora algumas das aplicações: • Controlos – embora a maioria dos sequenciadores ofereçam alternativas para introduzir e editar eventos de controlo, a lista de eventos é ideal quando se deseja adicionar um único controlo, tal como modificar o volume ou a reverberação de um canal. • Mudança de programa: Embora ao iniciar uma pista se possa indicar o programa (instrumento) inicial, nada impede que o utilizador deseje mudar de instrumento ao longo da composição. Para tal, basta inserir no instante oportuno um evento de mudança de programa com os valores desejados. • Uma nota sobre as notas: em todos os modos de visualização, as notas possuem sempre uma duração, quando o conceito de duração não é próprio do MIDI. O que ocorre, é que para facilitar a tarefa do utilizador, os sequenciadores agrupam automaticamente as mensagens de NOTE ON com as correspondentes mensagens NOTE OFF, mostrando no ecrã a duração calculada. 2.6.7.2 O piano-roll No piano-roll, as notas são representadas graficamente, com rectângulos de longitude variável, o que evoca os rolos antigamente utilizados nos pianos mecânicos. Nesta representação, o tempo costuma transcorrer horizontalmente 41 e da esquerda para a direita, enquanto que a posição vertical do rectângulo vem determinada pela altura MIDI da nota. O piano-roll incorpora sempre ícones de zoom, que permitem modificar a resolução horizontal (tempo) e vertical (alturas), para uma visão mais ou menos precisa. Esta representação é muito intuitiva – especialmente para aqueles que não dominam a escrita de musical tradicional – permitindo efectuar modificações facilmente: é possível arrastar as notas horizontalmente; alarga-las ou encurtalas (para modificar a sua duração); ou mudá-las de posição verticalmente. Figura 4 – Vista de piano-roll no software Cubase Também é possível eliminar ou adicionar novas notas, sendo assim uma alternativa de gravação. Como contrapartida, neste modo de visualização, a maioria dos sequenciadores só permitem visualizar notas, filtrando os outros eventos tais como mensagens de controlo ou de mudança de programa. 2.6.7.3 A partitura Neste tipo de visualização a informação de uma pista aparece sob a forma da notação musical tradicional. A maioria do referido sobre o modo de 42 visualização piano-roll aplica-se a este modo; a partir da partitura é possível aplicar diferentes modificações às notas e, embora normalmente o modo pianoroll ofereça mais flexibilidade, este modo é bastante útil para músicos com formação tradicional. Esta forma de visualização comporta numerosas opções adicionais que não estão presentes nas outras alternativas, pois permitem diferentes formas de apresentar a partitura no ecrã (sem que isso modifique o conteúdo dos dados MIDI representados). Até mesmo para o utilizador que não domine a escrita musical, este modo pode ser de utilidade pois permite imprimir partituras dos temas compostos. Embora exista software especialmente concebido para a edição de partituras, na maioria dos casos simples, a impressão obtida directamente a partir do sequenciador pode ser suficiente. Existem contudo sequenciadores simples que não suportam esta opção de impressão de partituras. Figura 5 – Vista de partitura no software Cubase 2.6.7.4 Outras formas de visualização Alguns sequenciadores oferecem alternativas adicionais para visualizar e modificar a informação. Uma forma muito comum incluída num bom 43 sequenciador é a visualização de controlos, que permite definir, com a ajuda do rato e de ferramentas de desenho, a evolução temporal de qualquer controlo. Esta forma poderá ser muito útil, por exemplo, no caso de se querer obter uma variação progressiva do volume. Na mesma linha, outros sequenciadores, permitem desenhar mapas de tempo, permitindo que o tempo varie de forma progressiva em diferentes fragmentos de uma composição. Outros sequenciadores incorporam também uma janela que contem uma mesa de mistura, através da qual é possível introduzir mudanças (volume, panorâmicas, efeitos, equalização, etc.) em tempo real. 2.6.8 Funções básicas de edição Para aplicar qualquer processo de modificação, o primeiro passo será seleccionar um fragmento da peça. A partir da janela principal, é possível seleccionar um determinado número de compassos, ou uma ou várias pistas inteiras. Caso seja necessário uma maior precisão temporal (ex: só os dois últimos tempos de um determinado compasso) normalmente deve-se levar a cabo a selecção a partir de uma das três principais janelas de visualização referidas anteriormente. Muitos sequenciadores também dispõem de filtros que permitem seleccionar apenas determinado tipo de eventos dentro do fragmento seleccionado (só as notas, ou só os controlos de volume, ou as notas acima de um determinado valor, etc.). Realizada a selecção é possível aplicar o tratamento desejado. Vejamos alguns dos mais frequentes: • Copiar, cortar e colar: os sequenciadores MIDI não podem ser menos que qualquer outro tipo de aplicação de software. No entanto a função colar requer algumas clarificações adicionais. Após seleccionar e copiar um fragmento, colocar o curso no local destino e 44 activar colar, a maioria dos sequenciadores propõem várias alternativas: escrever por cima, misturar ou inserir. Com efeito, se bem que sobrepor diferentes camadas de texto não faça nenhum sentido, a informação MIDI que se deseje adicionar pode conviver perfeitamente com a que se encontra na posição destino. Esta é a opção misturar. A opção inserir é idêntica ao que faz um processador de texto quando se cola sem ter seleccionado nenhum fragmento como destino; neste caso, todos os eventos situados à direita mudam de posição para ceder espaço para a inserção. A opção escrever por cima tem um funcionamento análogo a um processador de texto, para o caso do destino ser um fragmento já seleccionado. • Mover: permite adiantar ou atrasar, na linha temporal, o fragmento seleccionado. • Modificar duração: permite comprimir ou expandir temporalmente um fragmento. Dado que se trabalha unicamente com informação MIDI, ao contrário do que sucede com o áudio digital, esta modificação não origina nenhuma variação de altura. • Transportar: muda todas as notas de um fragmento num determinado número de semitons. • Mudar velocidade: pode ser utilizado tanto para atribuir velocidades constantes, como para modificar proporcionalmente as velocidades do fragmento. • Quantizar: permite corrigir de diferentes formas o início e a duração das notas do fragmento. Pela sua particular importância e versatilidade 45 2.7 Windows MIDI A Win32 API fornece os seguintes métodos para que as aplicações possam trabalhar com dados MIDI: • comandos MCI (Media Control Interface) • stream buffers • serviços MIDI A maioria das aplicações podem utilizar o sequenciador MCI MIDI ou stream buffers para implementar as funcionalidades MIDI que necessitam. No entanto, para aplicações que necessitem de mais controlo, por exemplo um sequenciador, pode ser utilizada tanto uma combinação de stream buffers e serviços MIDI, como apenas serviços MIDI. 2.7.1 Stream Buffers Os stream buffers permitem enviar streams de eventos MIDI para um dispositivo. Cada stream buffer é um bloco de memória apontado para uma estrutura do tipo MIDIHDR. Este bloco de memória contem dados sobre um ou mais eventos MIDI, cada um dos quais definido por uma estrutura do tipo MIDIEVENT. A aplicação controla o buffer através da chamada de funções para manipulação de streams. Nome da função Descrição midiStreamClose Fecha um stream MIDI. midiStreamOpen Abre um stream MIDI e retorna o handle. midiStreamOut Reproduz ou põe em lista de espera um stream de dados MIDI para um dispositivo MIDI de saída. 46 midiStreamPause Faz pausa na reprodução de um determinado stream de MIDI. midiStreamPosition Retorna a posição actual num stream de MIDI. midiStreamProperty Estabelece e retorna propriedades de um stream. midiStreamRestart Recomeça a reprodução de um stream de MIDI que estava em modo de pausa. midiStreamStop Desliga todas as notas em todos os canais MIDI de um stream especificado. Tabela 1 - Funções para manipulação de streams 2.7.2 Serviços MIDI O processo de questionar dispositivos MIDI está dividido em duas fases, primeiro é preciso determinar o número de dispositivos MIDI de entrada e saída, e só depois inquirir acerca das capacidades de cada dispositivo. Nome da Função Descrição midiInGetNumDevs Devolve o número de dispositivos MIDI de entrada presentes no sistema. midiOutGetNumDevs Devolve o número de dispositivos MIDI de saída presentes no sistema. midiInGetDevCaps Devolve as características de um determinado dispositivo MIDI de entrada e coloca a informação na estrutura MIDINCAPS. midiOutGetDevCaps Devolve as características de um determinado dispositivo MIDI de saída e coloca a informação na estrutura MIDOUTCAPS. Tabela 2 - Funções para questionar dispositivos MIDI Cada função que abre um dispositivo MIDI toma como parâmetros um identificador para o dispositivo, um endereço de uma localização na memória, e alguns parâmetros próprios aos dispositivos MIDI. O endereço de memória é 47 preenchido com um handler para o dispositivo, que é utilizado para identificar o dispositivo em chamadas a outras funções. Nome da Função Descrição midiInClose Fecha um determinado dispositivo MIDI de entrada. midiInOpen Abre um determinado dispositivo MIDI de entrada, para gravação. midiOutClose Fecha um determinado dispositivo MIDI de saída. midiOutOpen Abre um determinado dispositivo MIDI de saída, para reprodução. Tabela 3 - Funções para abrir e fechar drivers do dispositivo MIDI As funções midiOutLongMsg, midiInAddBuffer e midiStreamOut requerem que as aplicações aloquem blocos de dados para que os possam passar aos drivers do dispositivo para efeitos de reprodução ou gravação. Cada uma destas funções utiliza uma estrutura MIDIHDR para descrever o bloco de dados. Antes de utilizar qualquer umas destas funções para passar um bloco de dados ao driver do dispositivo, é necessário alocar memória para o buffer e para a estrutura do cabeçalho que descreve o bloco de dados. Nome da Função Descrição midiInPrepareHeader Prepara um bloco de dados MIDI de entrada. midiInUnprepareHeader Limpa um bloco de dados MIDI de entrada já preparado. midiOutPrepareHeader Prepara um bloco de dados MIDI de saída. midiOutUnprepareHeader Limpa um bloco de dados MIDI de saída já preparado. Tabela 4 - Funções para alocar e preparar blocos de dados MIDI Para enviar um bloco de dados MIDI a um driver de dispositivo é necessário antes preparar o buffer através de 48 uma das seguintes funções: midiInPrepareHeader, midiOutPrepareHeader. Quando o driver do dispositivo terminar é necessário limpar a preparação, antes que qualquer memória alocada possa ser libertada, através de uma das seguintes funções: midiInUnprepareHeader ou midiOutUnprepareHeader. As aplicações que utilizam blocos de dados para passar mensagens Sysex e stream buffer necessitam de estar continuamente a fornecer o driver do dispositivo com blocos de dados até que a reprodução ou gravação esteja completa. Mesmo que só um único bloco de dados seja utilizado, uma aplicação precisa de ser capaz de determinar quando um driver de dispositivo terminou com os blocos de dados para que possa libertar a memória associada com o bloco de dados e com o cabeçalho da estrutura. Três métodos podem ser utilizados para determinar quando um driver de dispositivo terminou com um bloco de dados: • Especificar uma função callback para receber mensagens enviadas pelo driver quando este terminou um bloco de dados. • Utilizar uma callback de evento (apenas para saída). • Utilizar uma callback de janela ou de thread, para receber uma mensagem enviada pelo driver assim que termine um bloco de dados. As funções MIDI em caso de erro retornam um valor não nulo. Através das funções midiInGetErrorText e midiOutGetErrorText é possível obter descrições textuais dos erros. As únicas funções que não retornam códigos para erros são: midiInGetNumDevs e midiOutGetNumDevs. Estas funções retornam o valor zero quando não encontram dispositivos no sistema ou se qualquer um outro erro for encontrado pela função. 49 2.7.3 Estruturas MIDI A estrutura MIDIEVENT descreve um evento MIDI num stream buffer. Membro Tipo Descrição dwDeltaTime DWORD Tempo entre o evento anterior e o próximo evento, medido em MIDI ticks. O tamanho de um tick é definido pelo formato do tempo e possivelmente pelo tempo associado ao stream. Um tick pode estar expresso em microsegundos por quarto de nota ou em ticks STMPTE (Society of Motion Picture and Television Engineers). Os STMPTE permitem sincronização com outros eventos STMPTE (ex: vídeo). dwStreamID DWORD Reservado; necessita de ser zero dwEvent DWORD Código do evento e tamanho ou parâmetros do evento. Para os analisar são utilizadas as seguintes macros especificas para o efeito: MEVT_EVENTTYPE e MEVT_EVENTPARM. dwParms[] DWORD Quando dwEvent especifica um evento do tipo MEVT_F_LONG (evento longo) e especifica o tamanho do buffer, este membro contem parâmetros para o evento. Tabela 5 – Membros da estrutura MIDIEVENT A estrutura MIDISTRMBUFFVER armazena informação sobre a versão de um evento MIDI longo do tipo MEVT_VERSION. Nome dwVersion Tipo Descrição DWORD Versão do stream. O número da versão para a primeira implementação de MIDI streams deve ser 1.0. 50 dwMid DWORD Identificador do fabricante. dwOEMVersion DWORD Versão do OEM do stream. Os fabricantes podem especificar um evento que será o primeiro a ser enviado depois de o stream estar aberto. Tabela 6 – Membros da estrutura MIDISTRMBUFFVER A estrutura MIDIHDR define o cabeçalho utilizado para identificar uma mensagem MIDI Sysex ou um stream buffer. Membro Tipo Descrição lpData LPSTR Ponteiro para dados MIDI. dwBufferLength DWORD Tamanho do buffer. dwBytesRecorded DWORD Quantidade actual de dados no buffer. Este valor terá que ser menos do que o especificado em dwBufferLength. dwUser DWORD Dados personalizados do utilizador. dwFlags DWORD Flags que dão informação acerca do estado actual do buffer. lpNext Struct midihdr_tag Reservado Reserved DWORD Reservado dwOffset DWORD Offset dentro do buffer quando uma callback é executaca. Essa callback é gerada devido a uma flag do tipo MEVT_F_CALLBACK no membro dwEvent da estrutura MIDIEVENT. dwReserved[4] DWORD Reservado Tabela 7 – Membros da estrutura MIDIHDR A estrutura MIDIINCAPS descreve as capacidades de um dispositivo MIDI de entrada. 51 Membro Tipo Descrição wMid WORD Identificador do fabricante do driver para o dispositivo MIDI de entrada. wPid WORD Identificador do produto do dispositivo MIDI de entrada. vDriverVersion MMVERSION Número da versão para o driver do dispositivo MIDI de entrada. szPname[MAXPNEL] CHAR Nome do produto. dwSupport DWORD Reservado; necessita de ser zero Tabela 8 – Membros da estrutura MIDIINCAPS A estrutura MIDIOUTCAPS descreve as capacidades de um dispositivo MIDI de saída. Membro Tipo Descrição wMid WORD Identificador do fabricante do driver para o dispositivo MIDI de saída. wPid WORD Identificador do produto do dispositivo MIDI de saída. vDriverVersion MMVERSION Número da versão para o driver do dispositivo MIDI de saída. szPname[MAXPNEL] CHAR Nome do produto. wTechnology WORD Flag cujo valor descreve o tipo de dispositivo MIDI (sintetizador, sintetizador FM, sintetizador por software, Microsoft MIDI mapper, sintetizador Wavetable) de saída. wVoices WORD Número de vozes suportadas por um dispositivo que seja um sintetizador interno. Se o dispositivo for uma porta MIDI este membro não tem significado e o seu valor é igualado a zero. wNotes WORD Número máximo de notas que podem t d i lt t 52 ser tocadas simultaneamente por um sintetizador interno. wChannelMask WORD Canais a que responde determinado sintetizador interno. um dwSupport DWORD Preenchido por flags que especificam funcionalidades opcionais suportadas pelo dispositivo. Tabela 9 – Membros da estrutura MIDIOUTCAPS A propriedade tempo de um stream está contida na estrutura MIDIPROPTEMPO. Membro Tipo Descrição cbStruct DWORD Tamanho, em bytes, desta estrutura. Este membro tem que estar preenchido para certas operações da função midiStreamProperty dwTempo DWORD O tempo do stream medido em microsegundos por quarto de nota. Tabela 10 – Membros da estrutura MIDIPROPTEMPO A estrutura MDIPROPTIMEDIV descreve a propriedade da divisão do tempo. Esta estrutura é semelhante à estrutura MIDIPROPTEMPO. 53 3 Áudio Digital 3.1 Placas de som Não muito depois de o primeiro PC IBM aparecer no mercado, várias empresas começaram a comercializar hardware com o intuito de reproduzir e gravar música/áudio/voz. Apareceram placas que serviam de interface para MIDI e/ou de interface para áudio digital. A grande maioria das placas de som de consumo, de baixa e média gama, incluem um sintetizador FM e/ou um sintetizador Wavetable. Estes normalmente seguem o standard General MIDI e podem ser acedidos através de um sequenciador MIDI. As placas de som de gama mais elevada normalmente não incluem sintetizadores MIDI trabalhando exclusivamente com áudio digital. Os standards para conexão de placas de som são no momento o PCI, o USB e o Firewire. As características definidores mais importantes a ter em conta numa placa de som são os seguintes: • Frequência de amostragem (22 / 32 / 44.1 / 48 / 96 kHz) - As soluções a 48 ou 96 são as publicitadas para sistemas de áudio profissionais. • Bits de resolução (8 - 16 - 24 bits) - A placa com 24 bits de resolução é a solução mais utilizada nos tempos actuais. Certos softwares já são capazes de suportar potencialmente resoluções de 32 bits. 54 • Número de entradas e saídas simultâneas - a grande maioria das placas apenas oferece duas E/S (i.e. uma entrada estéreo e uma saída estéreo), analógicas ou digitais. No entanto as soluções a nível profissional normalmente oferecem 8,10,16 E/S ou mesmo mais, na grande maioria digitais, o que implica a utilização de conversores A/D e D/A caso seja necessário utilizar uma E/S analógica. • Processador interno - um processador interno pode libertar o CPU de determinado processamento e aumentar a performance geral. • Taxa de ruído para o sinal (S/N) - esta deve ter o menor valor possível, considerando que tendo valores inferiores a -90dB já possuí um bom valor para uma placa profissional. Para transferência de dados envolvendo Minidiscs, DATs, ADATs, e outros equipamentos com entrada e/ou saída digital, é necessária uma placa de áudio também com entrada e saída digital. Existem alguns protocolos digitais diferentes (S/PDIF coaxial, S/PDIF óptico, AES/EBU, ADAT litepipe) e incompatíveis entre si. Nem todos os produtos trabalham com todos os protocolos. São conexões que permitem a transferência de áudio bit a bit sem perdas. Desta forma, áudio transferido digitalmente não perde nenhuma de suas características originais. Actualmente existem muitas placas e interfaces de áudio que possuem entradas e saídas digitais. Estas placas e interfaces comunicam-se digitalmente com outras placas ou equipamentos que possuam as mesmas saídas e entradas digitais como ADATs, DATs, Mini-discs, mesas digitais e outros. Cada um destes equipamentos possui um ou mais padrões de transferência. Apresento agora uma pequena descrição dos protocolos mais utilizados: 55 • AES/EBU - foi desenvolvido pela AES (Audio Engineering Society) conjuntamente com a EBU (European Broadcasting Union). Este formato utiliza conectores do tipo XLR (Canon) e pode ser usado cabos de até 100 metros. Este formato é considerado um dos mais profissionais do mercado. • S/PDIF (Sony/Philips Digital Interface Format) - foi derivado do AES/EBU. Utiliza cabos coaxiais de até 10 metros com conectores RCA ou em formato óptico com conexão TosLink e cabos ópticos. Praticamente todas as placas e interfaces do mercado usam este protocolo devido à sua simplicidade e baixo custo. • ADAT LitePipe (Alesis): Formato óptico de transferência digital capaz de transmitir por apenas um cabo óptico até 8 canais de áudio. Apesar de utilizar a mesma conexão do S/PDIF óptico são formatos totalmente diferentes. Algumas placas e interfaces fazem uso da mesma conexão, porém com opção de escolha entre os protocolos via software. O tamanho máximo permitido ao cabo é de 10 metros, e encontra-se no mercado cabos de 1, 2 e 5 metros. 3.2 Latência Por norma, as placas de som possuem buffers de dados, usados tanto para o armazenamento dos dados referentes ao áudio capturado como para o armazenamento dos dados "em espera" para serem reproduzidos. Esses buffers são periodicamente esvaziados ou preenchidos, conforme o caso, através da comunicação, via barramento de E/S, com o computador; essa comunicação é regida pela geração de requisições de interrupção por parte da placa de som quando um dos seus buffers está "cheio" ou "vazio". A placa precisa normalmente de alocar pelo menos dois buffers para cada sentido da 56 comunicação: no caso da saída de dados, por exemplo, enquanto os dados contidos num buffer são convertidos para o domínio analógico e reproduzidos, o outro buffer é preenchido com dados pelo computador; um mecanismo semelhante ocorre na comunicação no sentido inverso. Assim, supondo que todos os buffers de entrada e de saída têm tamanho igual e que, no caso de operação full-duplex, os buffers de entrada estão alinhados no tempo com os de saída (e supondo, portanto, que uma única interrupção corresponde a uma solicitação para que o CPU preencha um buffer de saída e esvazie um buffer de entrada), a menor latência possível de uma aplicação que simplesmente copia os dados da entrada para a saída (ou seja, o menor tempo possível para que um sinal injectado na entrada seja reproduzido na saída) corresponde exactamente à soma das durações correspondentes ao tamanho de um buffer de entrada e um de saída. Como o tamanho dos buffers usados pela placa de som normalmente é configurável via software (dentro de alguns limites), é possível definir com clareza a latência de um sistema de áudio por computador. Para que isso seja verdade, no entanto, a aplicação não pode introduzir nenhum tipo de atraso no sinal: ela necessariamente deve processar tanto os dados fornecidos pela placa de som como os dados que devem ser fornecidos para a placa de som no momento em que eles são fornecidos ou solicitados, ou seja, no momento da geração da requisição de interrupção por parte da placa. Num sistema operativo de uso geral, no entanto, essa não é uma tarefa simples: o tratamento das interrupções geradas pelo hardware é papel da kernel do sistema operativo, e é ela quem realiza a transferência de dados entre a placa de som e a aplicação. Como o escalonamento de tarefas num sistema operativo de uso geral não é determinístico, o programa ao comunicar com o hardware de áudio pode eventualmente ser escalonado para execução apenas após um grande número de interrupções. Assim sendo, a comunicação entre o 57 hardware de áudio e as aplicações de áudio é tradicionalmente intermediada pela kernel, que possui buffers adicionais acessíveis pela aplicação através de uma API padronizada, geralmente centrada em torno da abstracção de leitura e escrita com bloqueio: a aplicação processa continuamente uma certa quantidade de dados que devem ser reproduzidos e executa uma chamada de função, para a escrita desses dados num descritor de arquivos (ou alguma abstracção semelhante) correspondente ao controlador de dispositivo; essa chamada de função bloqueia sempre o que buffer interno do sistema operacional está cheio, e desbloqueia quando há espaço no buffer. De forma semelhante, a passagem de dados da kernel para a aplicação é baseada numa chamada de função de leitura que bloqueia quando o buffer interno do sistema operativo está vazio e desbloqueia quando há dados disponíveis para a aplicação. Esse modelo é adequado para aplicações de áudio simples, que podem ser executadas como quaisquer outros processos do sistema, mas apresenta o inconveniente de acrescentar uma grande latência ao processamento do sinal, o que não é aceitável em aplicações profissionais. 3.3 Drivers para placas de som Um aspecto importante a ter em conta quando se utilizam sistemas de produção e criação musical, como já foi atrás referido, é a necessidade intrínseca de processamento com baixa latência. De facto, em muitas aplicações o utilizador interage directamente com o computador para a produção de um resultado, e a latência do sistema nesses casos precisa de ser mantida abaixo do limiar perceptível pelo utilizador. Um exemplo simples dessa situação é a gravação de um sistema acústico processado (por exemplo, uma guitarra eléctrica sobre a qual é aplicada um efeito em tempo real): ao mesmo tempo que executa o seu instrumento, o músico precisa de ouvir o som que está a ser 58 produzido; se a latência do processamento for muito grande, o músico terá dificuldades na execução. Existe alguma controvérsia sobre qual o limiar de percepção da latência, mas parece ser recomendável que ela seja menor que 5ms. A grande maioria das placas de som usadas a um nível profissional suporta entre dois e seis formatos diferentes para os drivers enquanto que as normais placas de som de consumo geralmente suportam entre dois e três. • MME (MultiMedia Extensions) - Introduzido com o Windos 3.1, estes drivers eram caracterizados por latências consideravelmente grandes sendo geralmente evitados para softwares de sequenciação como o Logic ou o Cubase. Contudo o pacote Sonar da Cakewalk conseguiu obter uma boa performance em sintetizadores stand-alone com este driver. • DirectSound – Este tipo de drivers oferece geralmente uma latência inferior aos MME, sendo uma boa opção para vários sintetizadores virtuais na falta de drivers específicos, especialmente porque podem ser acedidos por diversas aplicações simultaneamente. Utilizam várias características de aceleração que a placa de som possui necessitando no entanto de drivers escritos especificamente para a placa. Mesmo que a placa não possuía esses drivers o Windows permite que os drivers DirectSound sejam escolhidos, correndo no entanto num modo de emulação, o que degrada a performance ao ponto de poderem ser piores que os MME. A maior limitação deste tipo de drivers é que só podem ser utilizados para reprodução – para gravação é necessário usar outro tipo de formato para o driver. 59 • WDM (Windows Driver Model) – este modelo veio melhorar os tempos de latência para plataformas Windows relativamente aos dois anteriormente referidos. Tem um componente em modo de kernel que fornece suporte automático para MME e DirectX. No entanto, comparativamente com outros modelos, o ASIO por exemplo, oferecem tempos de latência mais elevados. • GSIF (GigaSampler Interface) – inicialmente estes drivers apenas funcionavam com a gama de samplers virtuais GigaStudio e com o GigaSampler da Tascam/Nemesys. Estes drivers proporcionam uma baixa latência (6 a 9 ms) devido às suas excelentes librarias de som. Existem agora diversas placas no mercado com suporte para este driver. • EASI (Enhanced Audio Streaming Interface) – estes drivers apenas estão apenas disponíveis para algumas placas de som e oferecem essencialmente uma melhoria sobre os drivers ASIO. Estão especialmente optimizados para trabalhar com o programa Logic Audio. • ASIO (Audio Stream Input/Output) - foram introduzidos pela Steinberg pela primeira vez no software Cubase. Foi o primeiro tipo de driver a oferecer latências verdadeiramente baixas na ordem dos 10ms para baixo. • .CoreAudio – introduzidos com o Jaguar (MacOSX 10.2) estes drivers permitem obter latências extremamente baixas. 60 3.3.1 ASIO ASIO (Audio Stream Input/Output) é uma tecnologia desenvolvida pela Steinberg para a manipulação de dados de áudio digital e vídeo em seus softwares de gravação, para superar as limitações das tecnologias originais oferecidas pelos sistemas operativos Windows e MacOS, mais orientados para as situações de multimédia, onde não são usadas várias pistas simultâneas e nem se requer uma sincronização precisa e estável. A API ASIO possui uma arquitectura com baixa latência, alto desempenho e configuração simplificada. Permite, para além do suporte à gravação e reprodução multi-pista sincronizada (áudio/áudio e áudio/MIDI), flexibilidade em termos de resolução de bits e taxas de amostragem. A interface não define nenhum limite máximo para o número de canais de entrada e saída, sendo que este limite está definido pela capacidade de processamento da máquina. Não impõe nenhum limite para a taxa de amostragem (de 32 kHz até 96 kHz ou mais), para o formato da amostra (formato 16,24,32 bits ou 32/64 bits com ponto flutuante). O subsistema do hardware de áudio é tratado como um componente de software designado de áudio driver. Isso implica que os fabricantes de hardware tenham que desenvolver um driver ASIO especifico para o hardware, para que o ASIO possa trabalhar sobre ele. O ASIO implementa canais (entrada e saída) sob a forma buffers circulares com blocos de dados. É utilizado um mecanismo com buffer duplo que pode ser adaptado a um grande número de diferentes implementações para o buffer. Um buffer suporta apenas dados para um único canal. O tamanho dos blocos de dados é verificado pelo áudio driver. 61 Diagrama 1 – Máquina de estados finitos descritora dos estados da operação • Carregado - O código do driver está acessível à aplicação • Inicializado - O driver está alocado pela aplicação e aceita inquéritos da aplicação. Não é necessário que o hardware já esteja alocado. • Preparado - Os áudio buffers estão alocados e o driver está preparado para o streamming. • Streamming: O streamming de áudio está em curso. • Inicializar - Inicializa o driver para que a aplicação o possa utilizar. • Criar buffers - Alocar memória para os áudio buffers e alocar recursos do hardware para canais de áudio. • Começar - Começa o processo de áudio streamming. • Parar - Para o processo de áudio streamming. 62 • Dispor Buffers - Liberta recursos do hardware para os canais utilizados e dispõe a memória para os áudio buffers. • Sair - Liberta qualquer recurso que ainda permaneça alocado e coloca o driver no estado anterior à inicialização. 3.4 Plugins Os plugins de áudio são programas que funcionam de um modo hospedeiro num programa que os suporte. Existem plugins proprietários, que normalmente só funcionam com um único software, enquanto que outros seguem certos standards e são aceites por todos os programas que suportem esse standard. Os diversos plugins de áudio aparecem sob a forma de efeitos e instrumentos virtuais. Tipicamente as implementações têm como modelo base o hardware utilizado em estúdios profissionais. Existem plugins que implementam caixas de efeitos tais como delays, reverbs, pedais de efeitos, flangers e chorus; outros que são processadores para masterização e mistura tais como compressores, limitadores. Existem também outros plugins que implementam instrumentos virtuais, tais como sintetizadores, samplers, baixos eléctricos, etc. Existem bastantes formatos para plugins áudio, entre os quais os seguintes: VST, DirectX, LADSPA, AudioSuite, MAS, RTAS e TDM. 3.4.1 VST O VST (Virtual Studio Technology) é uma interface que permite a integração entre processadores de efeitos e instrumentos virtuais. Esta arquitectura para 63 plugins foi desenvolvida pela Steinberg e introduzida pela primeira vez no software Cubase VST. Nos tempos actuais é, talvez, o formato mais utilizado e é suportado pela grande maioria das principais aplicações disponíveis no mercado que suportam plugins. A Steinberg sustenta que este tipo de plugins é mais eficiente do que os do tipo DirectX, no entanto, tendo em conta a velocidade de processamento actual essa diferença quase se diria insignificante. A instalação de um VST é consideravelmente simples, bastando copiar o ficheiro do plugin para uma directoria central que contem os plugins deste tipo, aparecendo depois automaticamente em todas as aplicações compatíveis com este formato. A especificação VST 2.0 surgiu simultaneamente com o Cubase 3.7, permitindo que os plugins recebam dados MIDI e consequentemente tornando possível a automatização dos seus parâmetros. Esta especificação abriu a porta para os instrumentos VST. Estes são essencialmente plugins de áudio que geram dados exclusivamente baseados em informação MIDI. A popularidade alcançada por esta arquitectura foi tal, que certos fabricantes de hardware, desde então, começaram a suporta-la. Assim, em certas placas, a computação relativa a estes não é feita pelo processador mas sim efectuada por chips DSP, que correm código completamente diferente do processador PC nativo, de uma forma transparente para o utilizador. 3.4.2 DirectX Os primeiros plugins a aparecerem no mercado estavam baseados na tecnologia DirectX da Microsoft. A Microsoft DirectX é uma série de APIs (Application Programming Interfaces) multimédia incluídas nos sistemas operativos Microsoft Windows. A DirectX fornece uma plataforma de desenvolvimento standard para computadores com o Microsoft Windows ao permitir aos programadores o acesso a configurações específicas ao hardware, 64 tais como chips de aceleração de gráficos 3D e placas de som, sem qualquer necessidade de escrever código específico para o mesmo. Esta tecnologia foi introduzida em 1995 e é reconhecida como uma norma para o desenvolvimento de aplicações multimédia em plataformas Windows. Os primeiros plugins baseados neste tipo de tecnologia surgiram no mercado no ano de 1997 em produtos como o Sound Forge 4.0a da Sonic Foundry, o Pro Audio 6.0 da CakeWalk e o WaveLab 1.6 da Steinberg. As APIs do DirectX permitem que aplicações de multimédia acedam a configurações avançadas de hardware específico. Elas controlam funções de baixo nível, incluindo aceleração de gráficos 2D; suporte para dispositivos de entrada tais como joysticks, teclados e rato; e controlo sobre mistura e saída de som. Este tipo de plugins podem, nos dias que correm, ser executados a partir da grande maioria das aplicações musicais que possuem algum tipo de suporte de plugins, com a vantagem de normalmente possuírem um conjunto de presets que não podem ser separados do plugin. No entanto, este tipo de formato, possui algumas desvantagens em relação a outros formatos de plugins. Primeiro, na grande maioria dos casos não é possível automatizar os seus parâmetros. Segundo, este tipo de formato, requer uma instalação similar a uma normal aplicação para ambiente Windows, necessitando de escrever dados no registo do Windows, ainda antes de o plugin ser reconhecido por alguma aplicação musical compatível. Associando isto ao facto de muitos deles serem instalados numa directoria dedicada, sem possibilidade de escolha por parte do utilizador, faz com que sejam mais difíceis de organizar. Aproveitando as novas funções do DirectX 8.0 o software Sonar da Cakewalk tornou também possível a automatização de parâmetros em plugins baseados nesta arquitectura. O DX8 também tornou possível o desenvolvimento 65 de instrumentos virtuais baseados nesta arquitectura, denominados de DXi (DirectX instruments). Com o Sonar 2.0, foi introduzido o standard DXi2. 3.5 Formatos de ficheiros áudio Os ficheiros de formato áudio são utilizados para guardar áudio digital. Os ficheiros áudio normalmente contêm informação acerca das características das formas de onda incluídas e de como esta é armazenada. Normalmente especificam o sample rate, bit-depth e tipo de compressão utilizada, tal como outra informação que indica o tamanho da forma de onda, a quantidade de dados necessários a serem lidos em cada segundo de reprodução, etc. A grande maioria do conteúdo de um ficheiro áudio é utilizada para descrever os samples de áudio individuais que são tocados sequencialmente de forma a reconstruir a forma de onda. Os dados da forma de onda podem ser comprimidos de diferentes formas tendo em vista a redução do grande tamanho inerente a um stream de samples de áudio. Cada segundo de áudio descomprimido em qualidade de CD (44.1kHz, 16-bit, estéreo) requer cerca de 172 kilobytes. Apresento uma breve descrição dos dois tipos de formatos mais utilizados em sistemas de software de áudio profissionais. 66 3.5.1 RIFF Wave O formato RIFF Wave, desenvolvido pela Microsoft, é o formato de ficheiro para armazenar áudio digital mais utilizado em plataformas Windows. Este formato é um subconjunto da especificação RIFF da Microsoft. O RIFF é um formato de ficheiro que permite armazenar vários tipos de dados, essencialmente dados multimédia como áudio e vídeo. Está baseado em chunks e sub-chunks. Cada chunk tem um tipo que é representado por uma etiqueta de 4 caracteres. O referido tipo do chunk aparece no princípio do ficheiro seguido do tamanho do chunk e só depois vem o conteúdo do chunk propriamente dito. Um ficheiro RIFF na sua totalidade é um chunk que contem vários sub-chunks. A primeira informação a ser descrita no conteúdo de um chunk RIFF refere o tipo do chunk de mais alto nível. O formato RIFF Wave é um subconjunto do tipo “Wave” e requer dois tipos de chunks: um chunk do tipo fmt e um chunk do tipo data. Os do primeiro tipo contêm dados que descrevem as características dos samples enquanto que os do segundo contêm os samples propriamente ditos. O RIFF Wav a capacidade de armazenar dados sobre a forma de onda em vários formatos distintos e com diferentes tipos de compressão. O tipo mais comum de ficheiro Wave contem dados sobre a forma de onda não comprimidos (raw PCM) pois é o tipo mais aceite entre as aplicações áudio devido à simplicidade inerente à descodificação de dados não comprimidos. 67 3.5.2 AIFF O AIFF (Augio Interchange File Format): é um tipo de arquivo de áudio desenvolvido originalmente pela Apple e usado predominantemente em sistemas Macintosh e Silicon Graphics, sendo o standard para áudio no primeiro. O formato codifica os dados áudio em 8 bits mono ou estéreo. Os arquivos AIFF geralmente levam a extensão .AIF ou .IEF. O formato AIFF não suporta compressão de dados (PCM não comprimidos), existindo no entanto um outro formato para dados comprimidos AIFF-C. 3.6 Rewire e VST System Link Apresento agora, sumariamente, duas tecnologias emergentes. A primeira já foi adoptada pelos principais sequenciadores áudio/MIDI disponíveis e também por Workstations áudio/MIDI. A segunda para já ainda só está implementada em produtos da Steinberg. O ReWire e o ReWire2 são protocolos especiais para streamming de áudio entre duas aplicações. Desenvolvido conjuntamente pela Propellerhead e pela Steinberg, o ReWire permite as seguintes possibilidades e funções: • Streamming em tempo-real de até 64 canais áudio separados (256 com o Rewire2), com uma largura de banda completa, desde uma "aplicação sintetizador" (ex. Reason) até ao interior de uma "aplicação de mistura" (ex. Cubase) 68 • Sincronização de samples acertada entre o áudio das duas aplicações • Possibilidade de partilha de uma placa de som entre os dois programas, podendo ambos tirar partido das múltiplas saídas dessa placa. O VST System Link é um sistema de rede desenvolvido pela Steinberg para trabalhar com áudio digital. Este sistema, que foi introduzido através do software Cubase, permite a transferência de sincronização, transporte e de dados áudio entre duas ou mais estações de trabalho que estejam equipadas com software e hardware compatíveis, através dos sistemas standard de cablagem para áudio digital. Para tal, é necessário que cada computador esteja equipado com uma interface áudio compatível com ASIO. Este sistema suporta conexão entre sistemas operativos diferentes. A grande vantagem deste sistema reside na possibilidade de combinar o poder de processamento de vários computadores. 3.7 Dolby Digital A Dolby Laboratories é uma empresa fundada em Londres em 1965 pelo engenheiro americano Ray Dolby. A Dolby Laboratories não comercializa equipamentos para consumidores - é uma empresa de pesquisas na área de processamento de som. Lançou o sistema Dolby, difundido em todo o mundo, que oferecia uma filtragem eficiente de ruídos e realçava a separação entre os graves e os agudos, fornecendo um som estéreo limpo, em dois canais, de óptima qualidade. O Dolby Surround, uma evolução no processo, passou a fornecer o som em três canais - dois frontais laterais e um canal surround (normalmente reproduzido por duas caixas traseiras) para a reprodução de efeitos e 'atmosferas' (sons ambientais, passos ao longe, etc). 69 A evolução natural foi o Dolby Pro-Logic, que veio adicionar um canal exclusivo para a reprodução de diálogos, normalmente por uma coluna frontal central. Um sub-woofer também pode ser adicionado para a reprodução das frequências mais baixas. O Dolby Pro-Logic também veio oferecer uma melhor separação entre os quatro canais, possibilitando um melhor posicionamento das colunas. Em 1992 a Dolby Laboratories lança o Dolby Digital, que veio oferecer o processamento de som em seis canais digitais discretos, separados. Sons que normalmente não eram audíveis com muita clareza no Dolby Pro-Logic são claramente distinguidos no Dolby Digital. Estes canais não são canais virtuais ou simulados, mas realmente seis canais independentes, o que assegura que cada tipo de som vai ter seu próprio canal de processamento, assegurando um som limpo e definido, e - o mais importante - posicionado de acordo com a acção. Pode-se distinguir claramente de que direcção vem o som. O sexto canal, o das baixas frequências (sub-woofer) contém as informações dos graves adicionais. Por ter uma limitação de resposta de frequência (3 a 120 Hz) - enquanto todos os outros 5 canais reproduzem o espectro total de frequências possível - o sexto canal foi denominado de 'canal .1'. Ao analisá-lo junto com os outros 5 canais que compõem o Dolby Digital, temos o sistema "5.1". Uma grande vantagem do Dolby Digital para filmes de cinema é que sua estrutura permite que ele seja gravado no próprio rolo do filme, justamente no espaço entre os orifícios para a passagem dos dentes da roda que puxa o filme. Este espaço na película é bastante resistente. As evoluções do sistema Dolby sempre mantiveram sempre a compatibilidade com os sistemas anteriores. 70 4 Panorama do mercado O lançamento de ferramentas de software, que se enquadram no âmbito deste projecto, no mercado comercial dá-se a um ritmo diário. Assim sendo é francamente impossível estar a par de todas as soluções disponíveis. Na parte que se segue vou fazer uma breve descrição das principais características de alguns softwares que se enquadram em tipos diferentes. A escolha tentou recair sobre soluções que ao longo das suas versões tenham desempenhado um papel importante no desenvolvimento e introdução de novas tecnologias. É certo que softwares que têm tido uma grande importância, nos últimos anos, e uma grande cota de mercado, não serão desenvolvidos. Tal é o caso do Pro Tools da Digidesign, do Sonar da Cakewalk ou Logic Audio da Emagic. No entanto justifico a escolha de preterir estes em relação a outros, como é o caso dos produtos da Steinberg, devido ao facto de os produtos desta companhia terem sido importantes na introdução de novas tecnologias que levaram a uma maior integração entre produtos de diferentes fabricantes. 4.1 Reason O Reason é um software desenvolvido pela empresa sueca Propellerheads Software que traz o conceito de workstation MIDI para o computador, contendo sequenciador, sintetizadores, samplers e baterias, além dos efeitos, mas sem perder o conceito do hardware, com conexões de cabos e toda a cultura dos racks de teclados e mesas de som. A base constituinte do Reason é a sua rack que está dividida em 4 módulos: um para entradas MIDI, um para saídas áudio, o sequenciador e a 71 parte vazia da rack. Através do primeiro módulo o utilizador pode atribuir canais MIDI a qualquer dispositivo que se encontre carregado na rack. O programa suporta até 64 canais de entrada MIDI. O espaço vazio da rack é o sítio onde aparecem todos os dispositivos (instrumentos, efeitos, mesas de mistura e sequenciadores) que forem requisitados. O módulo de saídas de áudio possui 64 saídas que podem ser utilizadas para comunicar com outras aplicações através do ReWire, introduzido por esta aplicação, ou com placas de som que possuíam várias saídas. O sequenciador é constituído por duas partes: um painel de controlo e o sequenciador propriamente dito. O primeiro inclui os normais controlos para reprodução, gravação, paragem e movimento. Para além destes contem, entre outros, um metrónomo, controlo para o tempo e pontos de localização. O sequenciador propriamente dito permite, de uma forma, geral desenhar automatizações, notas e slices com as características pretendidas; efectuar quantizações; e aplicar eventos. Figura 6 – Screenshot do software Reason 2.5 72 Na sua última versão, o Reason 2.5, inclui dois sintetizadores, um com síntese subtractiva e outro com síntese granular, dois samplers, uma caixa de ritmos e um reprodutor de loops. Para além destes dispositivos inclui também uma mesa de mistura, um sequenciador do tipo analógico e as seguintes caixas de efeitos: 1 vocoder, 1 delay, 2 reverbs, 2 compressores, uma unidade de distorção, 1 phaser, 1 chorus/flanger, 1 equalizador paramétrico de 2 bandas, 1 filtro controlado por um envelope, uma unidade de efeitos Sound Destruction e uma unidade de efeitos Unison. Possui também dois divisores de sinal, um para áudio e outro para CV e gate. A sequenciação, para além de ser feita através do sequenciador geral, pode ser feita no sequenciador analógico Matrix e na caixa de ritmos Redrum, que também possui um sequenciador próprio. O programa suporta automação para a grande maioria dos controladores dos dispositivos. 4.2 MAX MSP O Max é uma linguagem de programação por objectos interactiva, desenvolvida inicialmente pelo IRCAM (Institut de Recherche et Coordination Acoustique/Musique) de Paris, com o intuito de aplicar o protocolo MIDI à música contemporânea instrumental. Agora comercializado pela Cycling ’74, permite a criação de aplicações musicais e multimédia, sendo o seu nome uma homenagem a Max Mathews. Esta aplicação, que de momento só existe para plataformas MAC, teve um grande sucesso junto dos meios académicos estando anunciada uma versão para plataformas Windows. A sua interface permite as criar aplicações ligando graficamente objectos. Esses objectos estão divididos nas seguintes áreas: • Ferramentas para construção da interface com o utilizador 73 • MIDI (entrada e saída) – notas, controladores, pitch-bend, gravação da sequência e playback, ficheiros MIDI, analise e construção de mensagens MIDI e mensagens SysEx, nomes para dispositivos OMS, nomes para patchs e nomes para notas. • Escalonamento - metrónomos, delays, pipes, processamento de níveis de prioridade. • Aritmética e lógica - funções aritméticas básicas, expressões do tipo C, as trigonométricas e transcendentais, comparações, mínimo/máximo, operações sobre vectores, geradores de números aleatórios, contadores, operadores bitwise, transformações de coordenadas. • Dispositivos - dispositivos série, leitor de CD e leitor DVD, suporte para o dump de samples MIDI. • Estruturas de dados - tabelas, colecções, funções, captura de dados. • Lógica - contadores, gates, interruptores, if/then/else, routing de mensagens. • QuickTime - toca qualquer ficheiro suportado pelo Quicktime, sequenciação vídeo, preview do ficheiro, transformação de matrizes. • Sequenciação – linha temporal, sequenciador gráfico, gravador multipistas. Aos mais de 200 objectos (funções) de base (MIDI e multimédia) a extensão MSP vem adicionalmente permitir todas as operações com sinais áudio em tempo real, da análise à síntese, passando por sampling e todo o tipo de processamento e transformações do sinal. 74 Este software é especialmente apropriado para a criação de sistemas interactivos (instalações e ambientes reactivos) e em particular para a produção de sistema de suporte a actividades de performance (música, artes de palco, DJ, VJ). 4.3 HALion O HALion é um sampler da companhia Steinberg que funciona como plugin VST e DirectX. Apresento de seguida as principais características deste sampler: • Suporte para 32 bits • Envelopes com até 8 pontos de edição e dois LFO’s • Filtros Notch/HiPass/LoPass/BandPass / 12dB / 24dB com função fatness • Navegação através de track-ball virtual. • Criação de keyzones para suporte de multi-sampling • 16 Canais Midi (integração completa com VST), 128 programas • Filtros e parâmetros podem ser aplicados individualmente a cada sample ou a todo o programa • Inclui editor de loops • Teclado virtual para despoletar directamente ou pré-escutar samples • Vários parâmetros para modulação e afinação 75 • Saídas virtuais 4.4 Reaktor O Reaktor da Native Instruments é um kit de construção modular para as plataformas Windows e MacOS. O software disponibiliza centenas de blocos de construção para manipulação de som que podem ser utilizados para construir sintetizadores, samplers, caixas de ritmos e processadores de efeitos. Pode funcionar em modo standalone e como plugin suportando as tecnologias VST, ASIO, MAS, DXi, DirectConnect, CoreAudio e AudioUnits. Suporta a importação e compatibilidade com os seguintes formatos de áudio digital: AIFF, WAV e SDII até 32 bits; e AKAI. Um ensemble é um conjunto de instrumentos, cada qual com a sua própria superfície de controlo com botões e faders com a sua própria estrutura interna para fazer um efeito ou gerar um som. O programa já inclui uma livraria com dezenas de instrumentos e efeitos já construídos, entre os quais os seguintes: • Sintetizadores - cada um inclui vários presets já definidos. Os métodos de síntese empregues emulam tipos de síntese analógica, híbrida e digital que vão desde a síntese AM ate à FM, da Wavetable à aditiva. • Samplers - os samplers incluídos abrangem desde pequenas e simples unidades até samplers granulares. • Efeitos - inclui reverbs, delay, vocoders e efeitos granulares. 76 Existe a possibilidade de combinar instrumentos já existentes com vista à construção de novos instrumentos. A superfície de controlo pode ser modelada definindo o tamanho e tipos de botões e displays até a integração de imagens e gráficos. Como blocos de construção para instrumentos virtuais existem módulos e blocos de funções (macros), tais como osciladores, filtros, LFOs, samplers, sequenciadores e efeitos. A estrutura é o plano sobre o qual se assentam os módulos e macros. A ligação entre os módulos é feita com recurso a cabos. Figura 7 – Screenshot do software Reaktor 4.0 4.5 Cubase Este software tratasse de um sequenciador que integra sequenciação MIDI com síntese e processamento de áudio por software. É o principal produto da Steinberg Media Technologies, companhia fundada em 1984 por Karl Steinberg 77 e Manfred Rurup, dois programadores que já antes tinham concebido aplicações musicais para Commodore C64 e ATARI. Em 1990 saiu a primeira versão para a plataforma Macintosh e com a segunda versão tornou-se no primeiro sequenciador a suportar áudio e MIDI. Em 1996 foi apresentado neste software o sistema VST o que revolucionou os sistemas de sequenciação áudio/MIDI. Dois anos mais tarde apareça a primeira versão para a plataforma Windows e no ano seguinte apareceu uma versão que introduziu o VST2 e o ASIO. Foi também a primeira aplicação a introduzir a tecnologia Rewire (conjuntamente com o Reason) e a tecnologia VST System Link. Figura 8 – Screenshot do software Cubase SX De origem vem com um conjunto consideravelmente grande de instrumentos virtuais (sintetizadores, caixa de ritmos e baixo eléctrico), de caixas de efeitos VST e de plugins MIDI. Entre os plugins que inclui é de salientar um que permite a escrita em partituras. Suporta três tipos de automação diferentes: Touch fader, Auto Latch e X-over. Inclui um sequenciador vídeo e uma mesa de mistura com capacidades para suportar a tecnologia Dolby 5.1. 78 5 Open Source Nos últimos anos o software livre parece ter-se convertido numa alternativa real ao software proprietário. Cada vez mais são os administradores de sistemas e programadores que conhecem as vantagens e desvantagens dos sistemas de Software Livre (Open Source), encabeçados pela FSF (Free Software Foundation) e pelo sistema operativo GNU/Linux. São muitos os que conhecem a flexibilidade e a potência que oferecem os sistemas GNU/Linux em campos tão variados como os servidores de redes, bases de dados, calculo simbólico e numérico, clustering e supercomputação ou como um simples sistema de escritório alternativo ao Microsoft Windows. No entanto existem múltiplos campos da informática nos quais o software livre ainda não terminou de assentar as suas bases. Entre eles incluem-se os sistemas de produção e criação musical. Não é o propósito deste projecto fazer uma análise e justificação dos motivos que impulsionaram os sistemas de software livre em certos sectores da indústria, no entanto parece-me importante encontrar os motivos pelos quais ainda existe uma falta de bases nos sistemas de produção e criação musical. Uma das razões que evitam a penetração de utilizadores deste tipo de sistemas em ambientes Linux, não é ao contrário do que possa parecer, a falta de aplicações deste tipo, nem a qualidade destas aplicações mas sim as diferenças que existe em relação ao perfil do utilizador destas aplicações. As empresas de software de sistemas musicais adoptaram ao longo da sua história, como estratégia de marketing, os convénios de colaboração educativa com diferentes instituições de formação, com vista a que os potenciais clientes já sejam utilizadores do software com formação específica. Assim sendo, o esforço 79 que a alteração de ferramenta pressupõe é na maioria dos casos uma barreira insuperável, em grande parte também contribui o desconhecimento da matéria independente do software. Hoje em dia é fácil encontrar escolas, universidades ou conservatórios que utilizaram software como o Cubase ou o Logic Audio. Em GNU/Linux ainda são escassas as ferramentas que estão preparadas e ajustadas às necessidades do utilizador final, e destas poucas aplicações a grande maioria têm como base a linha de comandos ou são baseadas em scripting. Algumas combinam uma interface gráfica austera com sistemas de programação de scripts e as que dispõem de um interface gráfico amigável ou estão ainda bastante limitadas ou distam bastante do estilo já imposto pelas aplicações existentes noutras plataformas. Nenhuma possui ainda o entorno integrado no qual se possa editar áudio, vídeo e MIDI de forma indistinta. AGNULA (A GNU/Linux Audio distribution) é o nome de um projecto fundado pela Comissão Europeia com o objectivo de desenvolver duas distribuições de referência, para sistemas operativos GNU/Linux, completamente baseadas em Software Livre e completamente dedicada para aplicações áudio, de consumo e profissionais, e para desenvolvimento multimédia. Uma distribuição será baseada em Debian (DeMuDi) e a outra em Red Hat (ReHMuDi). O projecto teve início a 1 de Abril de 2002 e tem a duração de 2 anos. Um dos intuitos destas distribuições é resolver todos os problemas, relacionados com incompatibilidades entre hardware áudio, existentes em sistemas GNU/Linux. Outro dos objectivos será fornecer sofisticados e coerentes pacotes de software que já se encontra disponível em separado. Na área científica espera-se que este projecto dê um impulso à pesquisa e a novos desenvolvimentos no campo do áudio. 80 5.1 Sistema de som GNU/Linux Quase todas as distribuições GNU/Linux incluem um sistema de som, formado normalmente pelo suporte de som a mais baixo nível (controladores e módulos da kernel), uma camada intermédia do software auxiliar necessário (misturadora, conversor de formatos, reprodutores de ficheiros, etc.), e pelas aplicações de mais alto nível. O AGNULA adere a esta divisão básica de níveis do sistema, tendo cada nível um alto grau de personalização e optimização. ALSA, JACK e LADSPA são três dos componentes mais do AGNULA. Cada um proporciona um serviço único, e todos eles encaixam entre si. Estes três componentes são da maior importância para o AGNULA. O ALSA (Advanced Linux Sound Architecture) é um projecto criado com o intuito de substituir os obsoletos módulos controladores de som da OSS/Free (a anterior API de som da kernel), mantendo compatibilidade total com estes. Especifica uma API padronizada para comunicação com hardware áudio e MIDI. O ALSA suporta ISA Plug-and-Play, PCI, USB e dispositivos pela porta série. O JACK (JACK Audio Connection Kit) é um sistema ainda em desenvolvimento para GNU/LINUX, consistindo num conjunto de bibliotecas (libjack), um servidor de áudio (jackd) e um pacote de desenvolvimento. O servidor áudio caracteriza-se por permitir streaming de dados de baixa latência e de banda larga, entre aplicações de áudio independentes. Permite a conexão de um número diferente de aplicações a um dispositivo de áudio, assim como permite que estas partilhem áudio entre si. Uma configuração JACK caracterizase por um servidor e um ou mais plugins JACK, sendo possível correr vários servidores, funcionando cada um deles de forma independente. Para que uma aplicação actue como um cliente no barramento JACK só é necessário escrever 81 um simples procedimento de callback JACK, que basicamente passa a gestão de qualquer serviço áudio requerido ao servidor JACK. O LADSPA (Linux Audio Developer's Simple Puglin API) é uma arquitectura para plugins de áudio em sistemas GNU/Linux. O LADSPA SDK está dividido numa API para plugins, uma pequena colecção básica de plugins para estudo e utilização, e um conjunto de utilitários para listar e descrever os plugins disponíveis no sistema. 5.2 CSound Em 1985, Barry Vercoe do MIT, disponibilizou uma versão da MUSIC que podia ser compilada em qualquer computador que suportasse a língua de programação de C. Essa versão incorporava mais de dez anos de pesquisa adicional. Não demorou muito para que o Csound estivesse disponível nas plataformas Windows, Macintosh, Linux e depressa se tornasse numa linguagem de síntese e processamento de áudio standard um pouco por todo mundo. O Csound, distribuído sob a licença GNU-LGPL, está projectado e optimizado para renderização de som e processamento de sinal. A linguagem consiste em cerca de 450 opcodes, que são os códigos operacionais, a partir dos quais se pode construir instrumentos ou patches. Tem suporte MIDI e os tipos de síntese suportados são os seguintes: aditiva, subtractiva, FM, AM, PM, Waveshaping, granular, FOF (Formant Synthesis), Embora já existam diversos interfaces gráficos disponíveis cada composição consiste tipicamente, no mínimo, em dois ficheiros de texto, um com a definição dos instrumentos usados (.orc) e o outro com as notas musicais e os 82 geradores de sons, tais como osciladores, envelopes, ou outras formas de onda (.sco). Figura 9 – Screenshot de um GUI para o CSound No Csound a complexidade de um instrumento a construir não se encontra limitado por um determinado número máximo de módulos que se possam utilizar. Sendo assim é possível criar uma textura granular com 1 milhão de vozes. Os opcodes da linguagem estão divididos em diversas categorias existindo uns que são específicos a um tipo particular de síntese e outros para o processamento de samples. A renderização do som pode ser feita e gravada para um ficheiro do formato WAVE ou AIFF (16, 24 ou 32 bits) ou então pode ser realizada em tempo real caso o computador seja suficientemente rápido. O programa também suporta controladores MIDI e áudio em tempo real. 83 6 Considerações finais O desenvolvimento da síntese sonora, aparte de pequenos refinamentos, está praticamente completo. A tecnologia já chegou a um ponto em que a qualidade dos sons que podem ser produzidos está próxima dos limites físicos do ouvido humano. A tecnologia digital permite modelos por software de instrumentos musicais reais e imaginários, sejam combinados com instrumentos puramente sintéticos derivados da matemática – sem nenhum tipo de limite à vista. Os sistemas actuais residem na combinação de ferramentas de sequenciação, gravação, composição e arranjo, num todo integrado. A imagem começa aos poucos a estar integrada neste todo mas na maioria dos casos ainda de uma forma ténue e pouco flexível. Relativamente a áreas de pesquisa e futuros desenvolvimentos no tipo de sistemas abordados neste projecto, creio que duas áreas se salientam: o processamento distribuído de áudio em tempo real e a interface entre o instrumento e executante em tempo real. Em relação ao primeiro caso, a Steinberg foi a primeira entidade a apresentar uma solução comercial para o efeito. No entanto outros trabalhos de pesquisa existem na área e novas soluções surgiram nos próximos tempos. Relativamente à segunda área, dou o exemplo do trabalho realizado no IRCAM, pela equipa Real Time Applications. Fruto deste trabalho de investigação é já distribuído, sob a licença GNU/GPL, o software jMax, cujas aplicações não se limitam à interacção e processamento em tempo real de música e informação sonora, encontrando também aplicações industriais. 84 7 Referências http://jackit.sourceforge.net – Página de distribuição do JACK. http://midistudio.com – Vários artigos e documentos sobre o MIDI. http://msdn.microsoft.com/library - Libraria MSDN. especialmente importância a parte de Multimédia Áudio. para este projecto http://www.agnula.org – Página do projecto AGNULA. http://www.alsa-project.org/ - Página do ALSA e alguma documentação a ele relativa. http://www.borg.com/~jglatt/ - Vária informação sobre MIDI. Inclui informação sobre programação MIDI. http://www.cubase.net – Página da Steinberg de suporte ao Cubase. SDKs para ASIO e VST. http://www.cycling74.com – Página da empresa que comercializa o MAX/MSP. http://www.csounds.com – Página do CSound. Distribuição do programa e informação variada. http://www.demudi.org - Debian Multimedia Distribution. Vária documentação sobre os projectos em curso. http://www.dolby.com/ - Homepage da Dolby Laboratories. Informação técnica. http://www.emagic.de – Página da empresa criadora do software Logic Áudio, a Emagic. http://www.emusician.com – Página da revista Electronic Musician com artigos e tutoriais. 85 http://www.germanolins.hpg.ig.com.br – Site sobre tecnologia digital aplicada à música, com informação técnica e tutoriais. http://www.harmony-central.com – Diversa informação e links relacionada com música e computadores. http://www.ircam.fr – Página do IRCAM. Informação sobre os diversos projectos em curso. http://www.keyboardmag.com/ - Revista Keyboard Magazine com vários artigos disponíveis. http://www.kvr-vst.com – Página regularmente actualizada que anuncia regularmente os novos produtos disponíveis no mercados. Tutoriais vários e boa informação sobre plugins áudio. http://www.midi.org – Site com as especificações MIDI. http://www.midiwarehouse.com – Loja online com hardware e software relacionado com o tema do projecto. http://www.nativeinstruments.de – Homepage da Native Instruments com informação acerca dos seus produtos. http://www.propellerheads.se – Página da Propellerheads Software com informação sobre os seus produtos. http://www.protools.com – Pagina da Digidesign e do seu produto Protools. http://www.sospubs.co.uk – Revista Sound On Sound. Vários artigos disponiveis online. http://www.steinberg.net – Homepage da Steinberg. Informação sobre os vários produtos disponíveis. http://www.studiocovers.com – Directório com vários artigos e links para páginas relacionadas com gravação e produção musical. 86 8 Bibliografia Computer sound synthesis for the electronic musician (Eduardo Reck Miranda) Musical Technology Series, Focal Press (1998) Sound synthesis and sampling (Martin Russ) – Musical Technology Series, Focal Press (1996) 87 9 Glossário Altura - A altura é a qualidade que define cada nota. Está relacionada com a frequência do som, medida em Hertz. Quanto maior for a sua altura mais aguda será o som. DIN – Deutsche Industrie Norm: Utilizado para descrever conectores, tal como o conector de 5 pinos utilizado para MIDI. Filtro - um remove ou reduz determinadas frequências num sinal de áudio. LFO – oscilador de baixa frequência Loop – fragmento de áudio. MIDI – Acrónimo para Musical Instrument Digital Interface. Um standard internacional para troca de informação sobre eventos musicais. Monofónico – um instrumento que só pode tocar uma nota de cada vez Oscilador – um circuito que produz uma saída repetitiva Polifonia – o número total de notas simultâneas que um instrumento pode produzir. Quantizar - Função disponivel nalguns sintetizadores e softwares que modifica informação em memória para aperfeiçoar a precisão rítmica e corrigir erros de execução. 88 Sample (amostra) - um som ou um curto pedaço de áudio guardado digitalmente num computador, sintetizador ou sampler. A palavra pode se referir quer a um momento único num stream de áudio digital (o mais pequeno pedaço de dados utilizado para representar um sinal áudio num determinado momento); quer a um som completo ou um stream de áudio digital construído a partir de uma colecção individual de samples. Sampler - um dispositivo que utiliza samples como método principal de geração da sua saída áudio. Os samplers utilizam frequentemente um número de samples em conjunto para criarem reproduções de sons reais e de instrumentos musicais de uma forma mais realista. Semínima – um valor musical que equivale a um tempo. Tempo – o tempo indica o número de semínimas que se produzem num minuto, e na música tradicional indicasse mediante um número ou, de forma aproximada, mediante um substanivo (ex: allegro). Num sequenciador MIDI, é possível definir em cada instante o valor exacto do tempo e até mesmo fazer com que este varie de forma continua. Vocoder – Um modificador que divide um sinal processamento, em bandas de frequências separadas. 89 áudio, para