★ APPLICATIONS ★ DIVERS ★ DIGITAUZAÇÃO DE SONS ★![]() |
Digitalização de sons (Amstrad Magazine) | Applications Divers |
Como é do conhecimento geral, os computadores são máquinas preparadas para o tratamento numérico da informação, isto é máquinas que apenas são capazes de tratar números. A esta informação numérica, dá-se o nome de "informação digital". NO entanto, no mundo real, a maior parte das informações e dados com que trabalhamos não são números nem se podem quantificar com facilidade. É o que chamamos informação analógica. Um bom exemplo, são as imagens, constituídas por linhas rectas e curvas, que dificilmente podem ser tratadas de forma numérica como é exigido pelos sistemas informáticos. Ao processo de transformação de uma informação analógica no seu equivalente digital, chama-se digitalização e este é um dos campos mais apaixonan-tes da informática. Neste artigo, vamos concentrar-nos na digitalização de sons, deixando para outra ocasião a digitalização de imagens. Começamos por dar uma pequena definição de som e, a partir daí veremos como é possível transformá-lo em números. Um som não é senão uma onda, mais ou menos complicada, de amplitude e frequência variáveis. Pois bem, o que se faz para digitalizar a dita onda é dividi-la em pequenos troços iguais, considerando o valor médio da amplitude da onda em cada troço. Estes valores são tudo o que necessitamos para conter toda a informação sobre a onda e, assim, poder reproduzi-la posteriormente. O valor de amplitude considerado é escalonado em relação a um número que tomamos como valor máximo de amplitude. Esse número será dado em função da resolução que quisermos; por exemplo, se dispusermos de oito bits para armazenar os valores de amplitude, temos então, 256 valores possíveis. Num computador de oito bits, em cada byte, pode guardar-se um valor de amplitude dos 256 possíveis; com estes valores é possível obter uma qualidade de reprodução mais do que aceitável. A qualidade do som depende pois, fundamentalmente, de dois factores. Por um lado, do número de valores em que podemos dividir a amplitude e, por outro, da velocidade de, ou, dizendo de outra forma, a velocidade a que dividimos a onda para medir o seu valor de amplitude. Este valor da velocidade de amostragem tem de ser estabelecido, de forma a que exista equilíbrio entre a qualidade do som e a duração do mesmo que conseguimos reter em memória. É evidente que, se tomarmos 10000 pontos de amostras num segundo de onda, conseguiremos obter fidelidade capaz de ser reproduzida. Contudo, utilizaríamos 30 K bytes de memória para armazenar apenas três segundos de sons. Assim, fica clara a necessidade de um compromisso entre a duração do registo sonoro e a sua qualidade. Os factores que vimos até agora permitem-nos explicar de que forma podemos digitalizar um determinado som no nosso CPC. Em primeiro lugar, necessitamos de conhecer a forma de introduzir um sinal sonoro no computador e que este o vá transformando em números. Para isso vamos utilizar o leitor de cassettes, porque permite a introdução fácil da música obtida a partir de qualquer fita gravada. Quando o computador lê, através da entrada do leitor de cassettes um programa qualquer, o que faz é transformar uma série de sons de determinada frequência e duração em 0 e 1 ; pois bem, vamos empregar esta técnica para desenhar gráficamente a música. Empregamos apenas um bit para guardar o valor da amplitude da onda. Se a amplitude for superior a um certo valor, corresponderá a 1; se for inferior corresponderá a 0. Como se pode observar, a resolução é bastante pobre e o ruído que ouviremos ao reproduzir a música será bastante elevado. Contudo, este procedimento facilitar-nos-á bastante as coisas e os resultados obtidos serão mais aceitáveis. Podendo guardar o valor da amplitude do sinal num só bit, poderemos realizar um ponto de gráfico a uma velocidade muito maior e, para além disso, gravar uma maior quantidade de som na memória. Num byte, poderemos guardar até oito pontos de gráfico e a reprodução da frequência da onda será muito boa. Como vemos, a técnica é muito fácil: guardamos o som reproduzido pelo leitor de cassetes, durante um certo tempo, em 1 ou 0 , conforme a amplitude da onda seja grande ou pequena. Para reproduzir posteriormente o som ainda é mais fácil, pois ao ler os 0's (zeros) e 1 's (uns) armazenados e, ao ir activando o altifalante está tudo feito. Pelo altifalante interno ouviremos uma reprodução digital do som gravado, ainda que, com algum ruído de fundo. O programa que acompanha este artigo emprega a técnica, anteriormente, explicada para digitalizar o som. O que faz é criar alguns comandos RSX, explicados mais adiante que nos permitem realizar, facilmente, o trabalho.
O primeiro dos comandos é |GRAVA, que se pode abreviar para |G e o que faz é armazenar a música introduzida pelo Leitor de Cassettes. Este comando dispõe de três parâmetros que são a localização de memória, a partir da qual podemos começar a armazenar os dados, o comprimento, e a velocidade. Podemos utilizar as posições compreendidas entre &500 e &8FFF para armazenar o som. Se começarmos a armazenar o som a partir do endereço &500, teremos uns &8000 bytes livres de capacidade de memória; isto, juntamente com a velocidade de armazenamento, inicialmente 13, permitir-nos-á obter uns 25 segundos de gravação. A velocidade de armazenamento, é um valor compreendido entre 0 e 255. Quanto mais elevado for o valor, mais lenta será a recolha de valores, pelo que poderemos armazenar maior quantidade de som, ainda que de inferior qualidade. A velocidade de armazenamento é controlada por um simples ciclo de espera que retarda o acto da leitura do Leitor de cassettes. Para reproduzir o som gravado dispomos do comando |REPRODUZ que se abrevia em |R.. Este comando possui, igualmente três parâmetros : o primeiro é a localização do inicio dos sons a reproduzir, o segundo corresponde ao comprimento dos dados a reproduzir e o terceiro é o volume de reprodução. Se quisermos reproduzir um som gravado, por exemplo, com o comando |GRAVA, &500, &7000, na sua totalidade, temos que accionar o comando |REPRODUZ, &500, &7000, Se, apenas, nos interessar parte do som, podemos variar os parâmetros de inicio e de comprimento, conseguindo, assim, efeitos muito interessantes. Se desejarmos guardar em fita a informação gravada, teremos apenas que executar a seguinte ordem: SAVE “nome do ficheiro”, B, &500, &7000 guardando, assim, em fita ou em disco todo o som digitalizado. Resumindo os comandos, vamos apresentá-los com todos os seus parâmetros |GRAVA, localização de inicio, comprimento, velocidade de armazenamento |REPRODUZ, localização de inicio, comprimento, volume Segue-se a listagem do programa, em BASIC, que deve ser introduzida no computador com algum cuidado afim de evitar possiveis erros, especialmente nas linhas de DATA nela incluidas. Esperamos que a digitalização de sons seja um tarefa agradável e, que o vosso interesse contribua para melhorar o programa e, assim, obter uma maior fidelidade na reprodução dos sons. Amstrad Magazine
|