P. 1
MSX Musica

MSX Musica

|Views: 191|Likes:
Published by MSXLivros
http://msxlivros.blogspot.com/
http://msxlivros.blogspot.com/

More info:

Published by: MSXLivros on Nov 14, 2010
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PDF, TXT or read online from Scribd
See more
See less

02/21/2015

pdf

text

original

MSX-MUSICA

,

MSX-MUSICA

Jos~ Mauricio de Oliveira Bussab

McGraw-Hill Sao Paulo

Rua Tabapua, 1.105, Itaim Bibi CEP04533

(all) 881-8604 e (all) 881-8528

Rio de Janeiro - Lisboa - Porto - Bogotd - Buenos Aires - Guatemala - Madrid - Mlxico - New York - Panama - San Juan _ Santiago

Auckland - Hamburg - Kuala Lumpur. London - Milan. Montreal • New Deihl. Paris. Singapore. Sydney. Tokyo. Toronto

MSX-Musica

Copyright © 1987 da Editora McGraw-Hill, Ltda,

Todos os direitos para a lfngua portuguesa reservados pela Editora McGraw-Hill, Ltda.

Nenhuma parte desta publica<;ao podera ser reproduzida, guardada pelo sistema "retrieval" ou transmitida de qualquer modo ou por qualquer outro meio, seja este eletronico, mecanico, de fotocopia, de gIav~ao, ou outros, sem previa autorizacao, poI escrito, da Editora,

Editor; Milton Mira de Assump«ao Filho Coordenadora de Revisdo: Daisy Pereira Daniel Supervisor de Producdo: Neder Roberto O. Campos Capa: Informatica Graphyco Visual

R. Dr. Emma Ribas, 136 - Sao Paulo

Dados de Catalogat;ao na Publica~iio (CIP) Intemacional (Camara Brasileira do livr~, SP, Brasil)

Bussab, lore Mauricio de Oliveira.

B986m MSX-m11sica I lore Mauricio de Oliveira Bussab.

McGraw-Hili, 1987.

Sao Paulo:

I. MSX (Computadores) - Prcgramacao 2. Musica por computador r.

HMO

87-1509

CDD-781.610285 -001.642

indices para cabilogo sistematico:

1. MSX: Computadores: Programacao: Processamento de dados 001.642

2. M tisica por cornputador 781.610285

SUMARIO

~~

~---~~~~~~------------------""';::'--

~---------------------------------

Introdueao IX

1. Som musica e 0 comando PLA Y . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1

1.1. 0 som e a rruisica .... . . . . . . . . . . . . . . . . . . . • . . . . . . . . . . . . .

1.2. Evento sonora. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

1.2.1. Afinacao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

1.2.2. Duracao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

1.2.3. Timbre , . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

1.2.4. Intensidade . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 17

1.3. Sons simultaneos , . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 19

1.4. Usando 0 .PLA Y em um programa. . . . . . . . . . . . . . . . . . . . . . . . . .. 21

2. Mais comandos PLA Y " 24

2.1. Afinacao: mais comandos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 24

2.2. Duracao: mais comandos. . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . .. 25

2.3. Intensidade: mais comandos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 27

2.4. Colo cando variaveis do BASIC dentro do PLAY. . . . . . . . . . . . . . .. 28

2.5. Programando dois canones. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 29

3. 0 PSG e 0 comando SOUND .. . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 34

3.1. Pares de registradores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 36

4. A Frequencia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 39

4.1. Freqiiencia das notas musicais ' ' " 40

4.2. A Frequencia e 0 PSG. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 43

v

VI MSX - MUsica

5. Timbre e harmonices .....•.....•.•.........•.....•••...•.•. 48

6. 0 Envelope ou envolt6ria ...•................................ 54 6.1. 0 controle de envolt6ria no MSX ...................•......... 58 6.2. A representacao ADSR . . . . . . . . . . . . . . . . . . . . . . . . -. . . . . . . . . . . 61

6.3. As envolt6rias pre-programadas do MSX 66

7. Ruido .••..•....•....••...•.••..•....•.••..•..•.....••.. 70

8. Projetos ....................•........................... 77

8.1. 0 MSX como instrumento musical 77

8.2. 0 MSX como programador de ritmos. . . . . . . . . . . . . . • . . . • . . . . . . . 82 8.3. 0 MSX como compositor ............•..................... 90

8.3.1. Composicao por avaliacao ...................•......... 94 8.3.2. Composicao por dedu~ao: Fractals ..•..•..............•... 98

9. Considera~Oes rmais .•..................................... .103

INTRODUCAO

~------------------------------~

o QUE E E A QUEM SE DESTINA ESTE LIVRO?

o assassino e 0 mordomo.

A melhor maneira de estragar urn livro de rnisterio e comeca-lo pelo final.

Como este mio e urn livro de rnisterio ...

No final 0 leitor vera que ele e uma introducao ao uso do MSX na area de rruisica, com enfase maior na producao de som.

Pronto. Ja contamos 0 [mal.

o lei tor nao pode reclamar que foi despistado e que pensava que 0 assassino fosse 0 maquinista do trem.

E quem e esse leitor?

o livro foi escrito para os pro gram adores BASIC-MSX que tern interesse IIlm rmisica, em ffsica da rmisica, ou para rmisicos amadores e profissionais que ja prograrnam em BASIC-MSX e querem ver aplicaeoes que unarn as duas areas de interesse.

Urn conhecimento de BASIC elementar e bem-vindo.

A razao disso e muito simples: existem muitos outros livros de introducao ao BASIC-MSX. Seria poueo eficiente repetir aqui a inforrnacao que pode ser encontrada tao facilmente em outro lugar. Preferimos eoncentrar nossos esforcos nas areas diretamente pertinentes ao lema do livro e pressupor que 0 lei tor ja esteja familiarizado com os

Vl/

vln MSX - Musica

cornandos mais elementares do BASIC (FOR-NEXT, GOSUB, READ-DATA etc.), sua fum;:ao e como utiliza-Ios na confeccao de programas simples.

Mesmo assim tentamos apresentar os programas da forma mais clara possivel, usando 0 menor ruimero possfvel de atalhos e comandos obscuros do BASIC. 0 importante e que os metodos e algoritmos utilizados fiquem claros para 0 lei tor.

As pistas devem levar 0 leitor ao elemento do crime e nao despista-lo, Neste livro fizernos 0 possfvel para que 0 suspeito fosse sempre 0 criminoso.

Quem ja conhece urn pouco de rmisica e usa os comandos PLAY e SOUND, mas gostaria de ver aplicacoes que nao fossem efeitos sonoros e pequenas rnelodias, pode pular direto para a Capitulo 4.

Quem esta interessado s6 na ffsica da musica e suas aplicacoes no MSX (frequencia, timbre, envolt6ria ... ) pode pular para a Capitulo 3.

POR QUE 0 MSX?

Por que escolhemos 0 MSX como equipamento para trabalharmos?

Porque ele e uma rnaquina relativamente barata e comoda para testes, ideias e experimentos em musica ligada a Computacao.

A primeira vez que tive urn MSX na minha frente foi numa tarde em 1985.

Abri a manual, Iiguei a maquina e doisminutos depois eu estava freneticamente tentando fazer com que ele produzisse sons de bateria eletronica,

Consegui faze-lo ap6s uma hora. As funcoes de som no MSX sao de facil acesso e razoavelmente completas. Sabendo a que se quer e como, e facil fazer.

o resultado dessa e de muitas outras tardes (e noites) veio junto com a lancarnento do EXPERT; 0 cartucho "TOQUE!" e a sonorizacao de divers as outros programas.

o material presente oeste livro pretende ser suficiente para que voce faca, pelo menos, seu proprio programa de simulacao de instrumento.

Resolvemos incluir as projetos de cornposicao por computador e cornposicao assistida por computador (~ao 8.3) principalmente para desmistificar esse tema. Na regiao onde a computacao e a musica se tocam nenhuma polemica e tao grande quanto a

Introducdo IX

que ocorre nas areas que se relacionam com a criacao artfstica, A discussao ai tende a continuar esquentando, enquanto nas outras areas como producao de som, edi~io de partituras e ate rnesmo na educacao musical assistida por computador ela ja esfria.

Os fractals musicais (s~ao 8.3.2) sao urn caso a parte. A ideia de usar a teoria dos fractals em masica e nao em arte visual e bern nova e promete dar muito 0 que falar. 0 MSX se torna particularmente interessante por ter tres canais de som, 0 que pennite toear os fractals de primeira, segunda e terceira ordem ao mesmo tempo.

A palavra de ordem e experimentar. Todo 0 material aqui apresentado e apenas urn ponto de partida. 0 assunto nio esta encerrado com 0 final do livro.

o assassino e 0 mordomo, que fugiu.

Agradecemos de todo 0 coracao a Dona Leila, Sr. ze Hugo, Dr. Santiago, Dona Lady e Srta. Herta pelo apoio e paciencia,

CAPiTULO

1

SOM, MUSICA EO COMANDO PLAY

1.1.0 SOM E A MUSICA

Vivemos em urn mundo de sons. Estamos constantemente sen do bombardeados por uma avalanche de sons misturados: vozes, rnrisicas em elevadores, buzinas, rnugidos de gado, 0 mar quebrando nas pedras ...

Dentro deste universo de sons em que vivemos, alguns conjuntos de sons sao propositadamente organizados de forma artfstica ou como diversao. Esses conjuntos rnuito particulares e organizados de sons foram por n6s batizados de "rmisica". 0 individuo que organiza conjuntos de sons 6 chamado de "compositor" ou, quando ele trabalha ou modifica urn organizacao de sons ja existente, de "arranjador". 0 individuo que produz sons de acordo com a organizacao estabelecida pelo compositor e 0 "executante", 0 "cantor", 0 "instrumentista" etc ...

o conjunto de sons de urn engarrafamento de transito nao e, a principio, rntisica, Isso sirnplesmente porque ninguem (nenhum compositor) organizou os sons desse engarrafamento ern particular segundo qualquer forma artistica de organizacao e disse "isto e rmisica".

Isso poderia ser feito. Urn compositor podecia preparar uma partitura para buzinas, guinchos de pneus e ruidos de motor. Isto seria MUS1CA. Outro compositor poderia gravar 0 ruido de urn congestionamento e depois trabalhar sobre a fita gravada, remontando pedacos, remixando, ate criar uma forma organizada de sons que ele pudesse chamar de musica,

Mesmo que urn compositor simples mente gravasse urn congestionamento, deixasse 0 conjunto de sons intocado e dissesse "isto 6 rmisica", teriamos de concordar

1

2 MSX - Mu.sica

com ele, Ele escolheu uma determinada forma de organizacao. V oltaremos a esse ponte rnais tarde.

A ideia de organizar sons normalmente chamados de "barulho" em formas musicais nao e nova. Muitos compositores ja organizaram sons de video-game, campainhas, maquinas de escrever, bigornas e ate rnesmo 0 completo silencio em formas musicais.

A fala humana nao-intencionalmente musical, como 0 discurso de um politico, foi objeto de reorganizacao par diversos compositores.

Par outro lado, uma goteira pingando sobre as teclas de urn piano nao produz necessariamente rmisica. Nan importa que as sons estejam send a produzidos par urn instrumento musical. A intencao nao e a de produzir rnusica, Agora, se urn compositor dadafsta espera urn dia de chuva, vai ate urn teatro, coloca urn piano sobre 0 palco, faz um buraco no teto deste teatro, exatamente sobre as tec1as do piano, e apresenta as sons gerados pelas gotas caindo sabre as teclas como sendo rmisica, af sim, isto e rmisica,

Composicao e somente aquilo que resuita de urn trabalho de organizacao. Os sons de urn engarrafamento podem ser rnusica e os sons de urn piano podem ser rufdo.

o ponto que se faz importante aqui e que nao existem sons naturalrnente musicais e sons nao-musicais.

Todo som pode ser musical ou nao-musical.

Todo 0 sam deve ser tratado, estudado e classificado com a mesma hierarquia, Devemos estudar 0 som de uma flauta e 0 som de um canhao de igual maneira, com igual reverencia e com as mesmos pesos e medidas. Ambos sao sons de igual calibre e podem eventualmente ser usados como elementos de uma composicao musical. Basta escutar a "1812" de Tchaikovsky para verificar a veracidade dessa afirmacao,

Vamos definir entao 0 primeiro conceito necessario para 0 estudo do sam: 0 conceito de evento 5000['0.

1.2. EVENTO SONORa

Consideraremos even to sonoro como sendo a menor unidade possfvel de sam.

Som, masica e 0 comando PLAY 3

Como exemplos de eventos sonoros temos: uma nota tocada por urn piano, urna vogal falada, uma granada explodindo, urn prato de bateria sendo percutido etc.

Todo evento sonoro e classificado da mesma forma.

Todo evenlo sonoro ~ composto pelas mesmas quatro caracterrsncas ou "parametres": curacao, afina9BO, intensidade e timbre.

A duracao e a tempo que 0 evento sonoro dura.

A afina~iio e a nota que efetivamente esta sendo tocada. Urn D6, por exemplo, tern uma afinacao diferente de urn Re, Alguns eventos sonoros Sao de afinacao poueo defmida, como, por exemplo, 0 prato de uma bateria ou a explosao de uma granada.

A intensidade e 0 volume do 80m. Uma nota tranquila de urna flauta doce tern uma intensidade menor que 0 som de urn jato 747 decolando.

o timbre e a caracterfstica mais diffcil de ser definida, Pode-se dizer que 0 timbre e a "cor" do som. Uma saxofone tocando urn D6 com uma certa intensidade durante um certo tempo, e uma flauta tocando 0 mesmo D6 com a mesma intensidade durante a mesmo tempo soam diferentes, Ambos sao eventos sonoros diferentes em timbre, apenas, Costuma-se qualificar 0 timbre de urn instrumento com adjetivos arbitrarios, Pode-se dizer, por exemplo, que urn saxofone tern urn sam aspero e urna flauta tern urn sam suave ou doce,

Qualquer evento sonora e composto desses quatro e apenas desses quatro parametres seja ele urn som considerado musical au nao, Essas quatro caracteristicas independem urnas das outras, Elas nao estao ligadas de maneira algwna. Por exemplo, urn som de alta intensidade nao tern necessariamente uma alta afinacao e vice-versa.

o que e uma partitura musical?

Uma partitura musical e simplesmente urn registro ordenado de eventos sonoros, £. urn documento que perrnite ao instrumentista reproduzir os eventos sonoros especificados pelo compositor au arranjador, numa ordem estabelecida.

Uma partitura ~ um sistema de notacao de eventos sonoros .

o BASIC do MSX tambem tern seu sistema de notacao de eventos sonoros, Esse sistema tinha de exis tir , ou nao seria possivel "explicar" ao micro que eventos sonoros produzir e em que ordem.

Ora, se urn evento sonora e deterrninado por quatro parametres, qualquer sistema de notacao de eventos sonoros tern de pennitir uma simbologia para cada wn desses parametres.

Tanto uma partitura quanto 0 BASIC-MSX tAm uma maneira de especificarmos afina~~o, durac;~o, intensidade e timbre.

4 MSX - MUsica

Vamos, a seguir, estudar as parametros separadamente e verificar como eles sao especificados nos dois sistemas.

1.2.1. AFINACAo

Na realidade, a afinacao e relacionada com a frequencia da nota; mas veremos isso rnais tarde, em detalhes.

Vamos ver, por enquanto, como a musica trata a afinacao.

Vamos c(]nsiderar a afinacao como sendo, simplesmente, a nome da nota que

esta sendo tocada. Eo "D6", "Mi" etc. -

Quantas afinacoes diferentes existem segundo a tradicao musical?

A tradic;:ao musical identifica apenas doze diferentes notas musicais: D6, D6#, Re, R6#. Mi, Fa, Fa#, Sol, Sol#, La, La# e Si, Essas doze notas, arrumadas nessa ordem crescente, sao chamadas de escala cromattca.

o simbolo # indica sustenido. ".06#" e pronunciado D6 susteoido.

, Aqui esbarramos num problema rnuito serio da teoria musical: "0 problema das sete notas".

Voce deve estar pensando: mas eu sempre pensei que fossem 56 sete notas: D6, Ret Mi. Fa, Sol. La e Si.

Isso nao e verdade. As "sete notas musicais" nada mais sao do que urn conjunto particular de sete notas muito usadas na Idade Media e que receberarn seus names naquela epoca, As outras cinco notas sustenidas nao receberam nenhum nome especial, apenas 0 sobrenome de "sustenido", simplesmente por serem de pouca importancia na epoca.

A tradicao, no entanto, persiste, As cinco notas banidas ainda levam 0 mesmo nome cia nota anterior da escala acrescida de "sustenido", Hoje em dia ninguern as considera "menos importantes' que as outras. Todas as doze notas juntas cornpoem uma escala musical regularmente espacada e simetrica, Nao de importancia a nomenclatura medieval: aceite-a,

Entao nao existern as notas Mi# e Si#? Na atual escala cromatica, conhecida como ,temperada e que jaesta sendo usada M algunsseculos, elas tSm a mesma afinacao, respectivamente, das notas Fa e D6.

Cada uma dessas cinco notas sustenidas podem ter um segundo nome. Em vez de darmos 0 nome da nota anterior acrescido de "sustenido", podemos dar 0 Dome da proxima nota, acrescida de ,"bemol" (simboliza-se "b"). Por exemplo: La# (La sustenido) e 0 mesmo que Sib (Si bemol),

Na escala cromatica, D6b e igual a Si e Fab 6 igual fl rvti.

Smn,~aeoc~ndoPLAY 5

A "distancia" de afinacao entre quaisquer duas notas consecutivas da escala cromatica e a mesma e e chamada de meio-tom. Entre 0 06 e 0 06# temos uma distancia de meio-tom. Entre 0 Mi e 0 Fa tarnbem temos meio-tom. As distancias entre 0 06 e 0 D6# e entre 0 Mi e 0 Fa soam exatamente iguais. E por isso que dissemos anteriormente que as doze notas da esc ala crornatica formam uma escala equidistante e simetrica,

Temos na Figura 1.1, urn tec1ado de piano com a disposicao dessas notas e sua notacao tradicional e de cifras. .

c C# D D# E F F# G G# A A# B

111111111111

Figura 1.1 Doze notas musicais

6 MSX - Mtaica

Numa partitura tradicional, a afinacao de uma nota e indicada pela altura vertical que a nota ocupa dentro do pentagrama (as cinco linhas da pauta), Temos as doze notas musicals no pentagrams da Figura 1.1. A posicao de cada nota 00 pentagrama esta indicada na figura por urn ponto escuro.

A tecnica de notacao tradicional, no pentagrama, e bastante adequada para papel pautado e lapis e a nomenclatura usual de notas (06, Re etc.) e bastante adequada para a linguagem falada. No entanto, para diversos outros fins, existe urna outra notacao que e mais adequada. Estamos falando da notacao cifrada ou cifras.

Nessa notacao cifrada, temos urn c6digo de letras para cada nota. 0 c6digo esta tarnbern na Figura 1.1. Esta e a notacao normaJrnente utilizada ern musics popular para uma rapida cornunicacao. Ela ndo tern os inconvenientes de representacao cornputacional das outras duas notacoes, pois cada nota pode ser representada por uma simples letra, ocasionalmente seguida do sfrnbolo # ou b.

Essa notacao e a mais simples para maquinas de escrever ou, no caso, para cornpu tadores.

Existem varies prograrnas editores de musica em notacao tradicional (pentagramas), inclusive para 0 MSX. Infelizrnente, 0 processamento grafico envolvido e tao grande que uma linguagem nao particularmente musical, como 0 BASIC-MSX, nao pode se dar ao luxo de conter um editor grafico de partituras,

Para produzir notas de uma determinada afinacao no MSX, voce pode usar 0 comando PLA Yea notacao cifrada.

Verifique que afinacoes voce quer produzir e use as cifras correspondentes. 0 comando deve ser escrito da seguinte maneira:

PLA Y "cifras"

Por exemplo: para tocar a sequencia de notas D6, Mi, Sol, D6, Fa, La, 06 voce deve executar 0 cornando:

PLA Y "CEGCF AC"

. Para simbolizar 0 sustenido voce pode usar tanto 0 caractere "#" como "+".0

bemol e simbolizado com "_".

Por exernplo, a insjrucao para tocar 06, Re#, Fa#, La seria:

PLAY"CD#F#A"

Ou, usando bem6is para todas as notas (voce pode usar bem6is em apenas urna deJas, ou varias, como quiser):

Som, masica e 0 comando PLAY 7

PLAY "CE-G-A"

Toda a discussao sobre 0 mimero de notas existentes na rnusica atual nao levou as oitavas em conta.

Ora, e claro que a escala crornatica nao para no Si. Depois do Si vern urn novo D6 e assim por diante. Antes do D6 da escala existe urn outro Si. Na verdade, a escala crornatiea se repete indefinidamente para cima e para baixo. Ela se espelha infmitamente por todo 0 espectro possfvel de som. Sempre existira urn D6 mais agudo ou mais grave.

Se voce tern um piano, voce pode tocar sempre 0 proximo 06. Se voce esta no ultimo 06 do piano, compre uma flauta, depois um flautim, depois urn apito de ultra-sorn.

Para diferenciar um 06 do outro, dizemos que eles estao em oitavas diferentes.

Isso se aplica a qualquer nota.nao somente ao 06. Escolha uma nota qualquer. A pr6xima nota igual a esta, mais aguda, estara uma oitava acima. A pr6xima nota mais grave, urna oitava abaixo.

Similarmente, usamos expressoes como "duas oitavas acima", "tres abaixo"

etc.

o MSX tern a capacidade de reproduzir uma gama de afinacoes que cobre oito oitavas, Como cada oitava contem doze notas, temos urn total de 96 notas diferentes no MSX.

o MSX numera essas oitavas de 1 a 8. A oitava mais grave que a MSX pode soar leva 0 mimero 1 e a mais aguda leva 0 ruimero 8.

Na Figura 1.2 podemos ver urn teclado ficticio de piano com todas as possfveis 96 notas do MSX, com sua notacao tradicional e 0 mimero de oitavas.

Dentro de urn comando PLAY, especificamos 0 mimero da oitava atraves da letra "0" seguida do n6mero.

Todas as notas que vierem apes a espsclflcacao de oitava serAo tocadas na oitava lndlcada, at~ nova especmcacao,

Se nenhuma oitava for especificada, sera usada a de mlmero 4. Todos os nossos exemplos de PLA Y ate agora foram tocados, portanto, nesta oitava,

Se quisermos tocar Do Mi Sol nas oitavas 3, 4 e 5 (urri-arpejo de D6 Maior) podemosexecutar 0 seguinte coman do PLA Y:

8 MSX - Mlhico

Figura 1.2 Notas do MS X e suas oitavas

Som, mdsica e 0 comando PLAY 9

PLA Y "03CEG04CEG05CEG"

Par enquanto, vamos deixar a afinacao de Iado e passar para a notacao de

duracao.

1.2.2. DURACAo

A duracao e urn intervalo de tempo. E 0 tempo entre 0 infcio e 0 final do evento sonoro. Poderiamos medic esse tempo em termos de segundos. Urn maestro poderia dizer ao primeiro violino: toque urn Si por 4.56 segundos.

Essa nao e, no entanto, a maneira pela qual as rmisicos representam a duracao de urn evento sonora.

A duracao de uma nota e representada, em uma partitura, por meio de urna convencao de sinais que ja dura alguns seculos, Nesse tipo de notacao usual, nao se especifica a duracao em termos absolutos. Os sfrnbolos contidos em urna partitura jamais dizem para um rmisico: "toque urna nota tal durante tantos segundos", Uma partitura diz ao rmisico: "toque uma nota longa" ou "toque uma nota com duracao igual a metade da duracao de uma nota tonga" au "urn quarto da duracao" e assim por diante. Os sirnbolos e as duracoes representadas por eles estao na Figura 1.3.

Note que est a notacao representa a duracao relativa entre as notas. A partir da tabela da Figura 1.3 podemos deduzir nao s6 as relacoes entre a semibreve e as outras figuras mas entre as figuras entre si, Por exemplo: qual a relacao entre a duracao da colcheia e a da minima? Ora, se duas minimas equivalern a uma semibreve e oito colcheias equivalern a uma semibreve, entao quatro colcheias equivalem a uma mfnima,

o que e importante e que na notacao tradicional da partitura, nao se ex prime tempo absoluto mas tempo relative. Cada figura ex prime urn tempo que nao tern sentido isolado mas so mente em conjunto com as outras. Por isso uma partitura pode ser tocada mais lenta ou mais rapidamente, Quando uma partitura e toe ada em uma velocidade diferente, a relaeao entre as duracoes das notas ndo muda.

A notacao de duracoes e conhecida habitualmente pelos rmisicos como notacao rftmica, Uma combinacao de diversas notas de diferentes duracoes sempre denota urn ritmo ou padrao rftmico.

Podemos representar urn padrao rftmico combinando varies sfrnbolos de

10 MSX-MWica
0 Semibreve
f ou j Minima = 1/2 do valor da semibreve
r ou j Sernfnirna 1/4 do valor da semibreve
V ou } Co1cheia = 1 /8 do valor da semibreve
~ ou ) Se mi eo lehe ia 1/16 do valor da sernibreve
~ 00 J Fusa = 1/32 do valor da sernibreve
~ 00 l Se mifu sa = 1/64 do valor da semibreve
Figura 1.3 Figuras rftmicas duracao, Veja 0 padrao ritrnico da Figura 1.4, par exemplo, Nela estao quatro figuras rftmicas: uma semi breve seguida de duas seminimas e uma minima.

o

r r r

Figura 1.4 Padriio rftmico

Sam, miisica e 0 comando PLAY 11

Qual a duracao que cada uma dessas quatro figuras representa?

Em termos de duracao relativa a semibreve, as semfnirnas valern urn quarto da duracao desta e a minima vale metade.

Vamos supor que a prirneira figura (a semibreve) durasse urn segundo. A segunda figura (a semlnima) duraria urn quarto de segundo, pois ela vale sempre um quarto do que vale a semibreve, A terceira figura tarnbem duraria urn quarto de segundo. A quarta (a mfnima) duraria meio segundo, pois ela sempre vale metade da semibreve.

Vamos supor, por outro lado, que resolvessemos fazer a semibreve durar dois segundos. A duracao das outras tres figuras seria, respectivamente: rneio segundo, meio segundo e urn segundo.

E claro que urn rruisico, para toear, nao fica pens an do no valor das duracoes em termos de segundos. 0 que ele pode fazer e, por exemplo, bater com 0 pe uma rnarcacao fixa de tempo e pensar: 0 "TOC - TOC- TOC" do meu pe esta toeando uma porcao de sernlnimas, uma ap6s a outra.

Tendo uma marcacao rftmica fixa no pe, de pode bater com a mao 0 padrao ritmico, usando 0 pe (as semfnimas constantes) como guia.

Vamos supor que 0 rmisico tenha de toear uma semibreve com a mao. Ele sabe que cada semibreve tern uma duracao iguaI a duracao de quatro semfnimas. Se ele esta batendo com 0 pe urna porcao de semlnimas e a semibreve vale quatro serninimas, ele sabe que, para tocar uma semibreve com a mao, ten! de tocar durante um tempo igual a quatro batidas do seu pe (as semlnimas),

Urn exernplo concreto de padrao rftmico esta na Figura 1.5. Nela temos 0 padrao rftrnico do "Marcha Soldado".

Mar - cha 501- da

do 'Ca- be - "a De Pa- pel

r

Figura 1.5 Padrao rftmico do "Marcha Soldado"

Nesse exemplo, temos uma melodia bern conhecida, Todas as figuras sao colcheias, exceto duas que sao semfnimas. Cante a melodia em vqz alta. Note que as

12 MSX - MUsica

duracoes das notas correspondentes as sflabas "MARcha" e "solD Ado" valem 0 dobro das outras, as colcheias.

Mas como a notacao tradicional de afinacao se combina com esta de duracao?

Muito simples. Vimos que, no pentagrama, a afinacao da nota era indicada pela posicao vertical que ela ocupava no pentagrama. Pais 'bern, em conjunto com isso, a figura vai indicar a duraeao,

o "Marcha Soldado" completo, em notacao tradicional, com a notacao de afinacao, esta na Figura 1.6.

Figura 1.6 ' Marcha completo

A notacao de duracao no MSX segue aproximadamente a mesma filosofia da notacao tradicional, Para indicar a duracao de uma determinada nota, voce deve colocar, apos a nota, urn rnimero que indicara a duracao,

Na Figura 1.7 temos uma tabela completa dos valores e das figuras que eles representam.

Exemplo: queremos escrever urn La com duracao de semfnima, 1a vimos que 0 La e representado por A. A serninima e representada por 4. Para isto, devemos entao executar a instrucao,

PLAY "A4"

o "Marcha Soldado" no MSX fica (supondo-se oitava 3);

PLA Y "03G4G8E8C4CSESG8GSG8E8DS"

Se nao especificannos a duracao das notas, e assurnida urna duracao de 4 (sem£nima). Todos os exemplos de PLAY vistos ate agora tinham esse valor.

Som, mdsica e 0 comando PLAY 13

Figura NQMSX
0 Semibreve 1
r Minima 2
r Serrunirna 4
V Colcheia 8
~ Semicolcheia 16
~ Fusa ' 32
~ Semifusa 64 Figura 1.7 Tabela <las dur~Oes MSX

Existe uma maneira simples de memorizar os ntimeros de cada figura. 0 ntimero que representa a figura tambem representa quantas figuras sao necessaries para completar uma semibreve. Por exemplo: 0 ntimero que representa a semicolcheia e 16 porque sao necessaries 16 semicoIcheias para completar uma semibreve (veja novamente a Figura 1.3).

14 MSX - Mllsica

Se, Duma dada melodia que voce pretende escrever no MSX, existe uma predominancia de uma determinada figura de uma certa duracfio, utilize 0 seguinte recurso: coloque, antes de escrever as notas, a letra L seguida do numero dessa "duracao da maioria", Se voce fizer isso, voce DaO precisara especificar a duracao dessas notas, Voce ainda precisara especificar, e claro, a duracao das notas que nao pertencem a essa maio ria.

No nosso "Marcha Soldado" temos uma predominancia de colcheias (duracao rnimero 8). Podemos reescrever a melodia assim:

PLA Y "03L8G4GECC4EGGGED"

Note que as unicas duracoes especificadas foram as que nao sao colcheias.

Escrever a divisao ritmica de uma dada melodia na notacao -habitual de partituras nao e uma tarefa trivial. Tambem nao e trivial 0 contrario, ou seja, ler urna dada divisao rftmica numa partitura e toca-la com precisao, Essas tarefas sao chamadas, respectivamente, de "Ditado Rfrmico" e "Solfejo Ritmico", Elas tomam boa parte do tempo de estudo do mtisico, e sua analise estaria fora do escopo do livro.

Como dissemos anteriormente, a partitura exprime a relacao de duracoes entre as divers as notas e nao as duracoes absolutas.

Suponhamos que haja centenas de notas em uma partitura, As dnracoes relativas de todas elas ja estao especificadas e basta que apenas UMA das duracoes absolutas das figuras seja especificada para que todas as outras tambem 0 sejam,

Foi isso 0 que fizemos acima, quando dissemos "a semibreve durara urn

segundo".

Numa partitura tradicional, 0 valor absoluto da duracao de uma figura e indicado colocando-se no alto da partitura uma marcacao como a da Figura 1.8.

j 60

Figu["3 1.S Andamenlo

Som, mdsica e 0 comando PIA Y 15

A figura mostra uma seminima sendo igualada ao numero 60. Isto significa que, nesta partitura, a semfnima vale" 1160 de minuto" ou urn segundo. Se 0 rnimero fosse igual a 80, a serninima valeria 1180 de minuto ou 0,75 segundos,

Esta marcacao e conhecida como marcaeao de tempo ou andamento.

Ora, se a sernfnirna vale urn segundo, podemos deduzir quanto valem todas as outras figuras ritrnicas: a semibreve valera 4 segundos (a serninima vale sempre urn quarto dela), a minima valera 2 segundos etc.

Na verdade, esta marcacao, que aparece no alto das partituras, normalmente e usada em conjunto com urn aparelho chamado metrfmomo, Este aparelho e uma especie de "pe automatico", Ele faz uma porcao de rufdos semelhantes a estalidos, igualrnente espacados, A duracao do intervalo entre os estalos e regulavel por urn marcador. Sob 0 marcador existem rnimeros escritos, Se 0 instrumentista vai iniciar 0 estudo de uma peca que tern uma marcacao de tempo como a apresentada na figura anterior, ele regula 0 metronome para 0 mirnero correspondente a marcacao da partitura. Ele sabe que as batidas do aparelho serao figuras iguais a figura que esta sendo igualada ao mimero. No exemplo da figura, 0 instrumentista regularia 0 rnetr6nomo para 60 e saberia que cada batida deste estaria representando uma sernfnirna,

Se ele quisesse toear uma sernfnima, bastaria ele tocar uma duracao igual a batida do metronome. Se quisesse tocar uma mfnima, tocaria uma duracao igual a duas batidas do metronome etc.

No BASIC-MSX, a marcacao de tempo se faz colocando 0 niimero do tempo que deve ser igualado a uma semfnima no infcio da melodia, precedido pela letra T. Por exemplo, a rnarcacao "semlnima = 60" e representada pela marcacao T60.

Nosso "Marcha Soldado", com uma marcacao de tempo de 80, ficaria:

PLA Y "T8003L8G4GECC4EGGGED"

o BASIC-MSX aceita andamentos de 32 a 255. Se nenhum for especifieado, e usado 120. Todos os exemplos ate agora, portanto, tinham andamento 120.

1.2.3. TIMBRE

Como ja dissemos antes, 0 timbre e a "cor" do sam. E diffcil definir ° conceito de timbre sem abusar de termos tecnicos mas pode-se dizer que e 0 timbre que da a

16 MSX -MUsica

identificacao principal de urn instrumento, que nos faz dizer "6 urn som de piano" ou "6 urn som de flauta".

Ao contrario dos outros parametres, 0 timbre esta normalmente relacionado com 0 instrumento e Olio com a pec;a de composicao em si.

Os outros indicarn uma duracao, urna afinacao e uma intensidade que nao depende do instrumento, 0 timbre 6 a assinatura do instrumento sob esses outros tres parametros.

Cada instrumento acustico tern urn timbre fixo com pequenas variacoes possfveis, Urn saxofone, por exemplo, ja tern 0 timbre caracterfstico do saxofone. 0 saxofonista pode, no entanto, fazer com que 0 timbre varie urn pouco variando a pressao que sua boca faz sobre a palheta. Isso faz com que 0 timbre fique mais ou menos "estridente" .

Pelo fate de cada instrumento actistico ter seu proprio timbre, as partituras tradicionais nao tern uma notacao sistematica para esse parametro, que e normalmente deixado a cargo da interpretacao do instrumentista. Ha excecoes para essa regra, como, por exemplo, a notacao de "pizzicato" para 0 violino eo texto de uma peca a ser cantada, que 0110 deixam de ser, a rigor, apenas variacoes de timbre. Uma notacao sistematica, no entanto, inexiste.

Por outro lade, os sintetizadores e outros instrumentos eletronicos tern urn born controle desse parametro. E isso nao deixa de ser Iogico, ja que nenhum sintetizador tern urn "som proprio" derivado de sua constituicao ffsica, como os instrumentos aciisticos tern, ficando todo 0 controle do som a cargo do rmisico.

Como veremos em detalhes mais tarde, 0 timbre depende de uma caracteristica do sam denominada forma de onda.

Nos sintetizadores, a forma de and a e, portanto, 0 timbre, e controlada de diversas maneiras, que variam de maquina para maquina (sfntese aditiva, subtrativa, FM, PO e mais uma porcao de outras que nao vern ao caso). 0 que importa e que em qualquer sistema eletronico de sfntese de som, 0 rmisico dispoe de controle preciso e minucioso sabre a forma de onda,

Par uma inexplicavel falha, as projenstas do PSG nao inclufram nenhuma maneira de se controlar a forma de onda. Ela e fixa e aproximadamente quadrada,

Existe uma maneira de se contornar ligeiramente este problema. De qualquer

Sam, mdsica e 0 comando PLAY 17

modo, 0 timbre nao pode ser controlado com facilidade e muito menos versatilidade no MSX.

Essa maneira complicada de se variar urn pouco 0 timbre do MSX sera: vista bern mais tarde.

Par enquanto ficamos por aqui, lamentando esse fato,

1.2.4. INTENSIDADE

A intensidade e 0 volume do sam. Quanto mais alto 0 som, maior sua intensidade,

Cada instrumento acustico tem sua pr6pria gama de intensidades. Alguns tern urna gama de intensidade mais alta, sendo dificil fazer soar uma nota de volume baixo, como 0 trompete, por exemplo, Outros tern urna gama de intensidade baixa, como a harpa.

o controle preciso de intensidade nos intrumentos actisticos e uma arte. Os instrumentistas passam arms estudando a variacao da intensidade de seus pr6prios instrumentos, pois disso depende muito a expressividade da pec;a musical.

Em uma partitura tradicional, a notacao de intensidade e feita em iermos de Urn conjunto de tetras derivado do iraliano, E habitual reconhecer as seis nfveis de intensidade que estao na Figura 1.9. Na figura temos as abreviaturas e os names, em ordern crescents de intensidade,

pp p

mp

mf J ff

Figura 1.9 Notacfio tradicional de intensidade

Pianissimo

Piano

Mezzo Piano

Mezzo Forte

Forte

Fortissimo

18 MSX -Mwica

Note que "piano", aqui, nao esta indicando 0 instrumento plano. A palavra "piano" significa, em italiano, "suave", "tranqiiilo" . 0 instrumento conhecido por piano se chamava, originalmente, "pianoforte", exatamente por ser capaz de reproduzir tanto as intensidades "piano" quanto as intensidades "forte", caracteristica rara nos instrurnentos da E:poca de sua invencao,

A Ietra correspondente a intensidade fica acima do pentagrama e eia vale ate segunda ordem. A partitura de nosso "Marcha Soidado", cornecando "piano" e terminando "forte", esta na Figura 1.10.

f

Figura 1.10 Marcha Soldado com intensidades notadas

Essa notacao e bastante flexivel, Em algumas partituras deste seculo, e possivel encontrarrnos ppp (pianiss{ssimo) e ate urn au outre ffff (como sera que se diz isso? fortissississimo't), para denotar, respectivamente, urn sam praticamente inaudfvel e outro ensurdecedor, Mas essas aberraeoes sao raras, A notacao habitual esta na Figura 1.10.

Essa notacao habitual e bastante subjetiva e nao poderia ser usada diretamente num computador.

o MSX admite intensidades (volumes) numeradas de 0 a 15. Para indicar uma dada intensidade E: usada a letra V antes do mimero que designa a intensidade.

A relacao entre as intensidades tradicionais e as do MSX e muito vaga, Pode-se dizer que ela e a que esta presente na Figura 1.11.

Som, mdsica e 0 comando PLAY 19

Notacao Tradicional

Notacao MSX

pp

Pianissimo

VI e V2

p

Piano

V3 a V5

-e

Mezzo Piano

V6 a V8

mf r

Mezzo Forte

V9 a VII

Forte

V12eV13

ff

Fortissimo

V14eV15

Figura 1.11 Intensidades no MSX

Colocando 0 "piano" e 0 "forte" nas mesmas posicoes da partitura tradicional da Figura 1.10, nosso "Marcha Soldado" fica:

PLA Y "T80V503L8G4GECC4V 12EGGGED"

o V5 indica "piano" e 0 V12 indica "forte".

1.3. SONS SIMUL TANEOS

Urn gerador de sons sozinho nao tern a menor graca, Raras sao as cornposicoes, mesmo para instrumentos acusticos, que sao feitas para urn iinico instrumento mel6dico. A afirmacao nao se aplica ao piano nem ao violao, que nao sao mel6dicos, sao harmonicos, pois sao capazes de fazer soar varias notas ao mesmo tempo.

o compositor tern de ser muito cornpetente para ser capaz de escrever urna peca solo interessante para urn instrumento rnelodico. Para compensar a ausencia de notas simultaneas, pecas solo sao escritas de modo a usar toda a capacidade de timbres e intensidades do instrumento e, geralmente, todo 0 virtuosismo do instrumentista.

20 MSX - Mdsica

Isto e 0 que ocorre na rmisica erudita. Na rmisica popular, a existencia de pecas solo e ainda mais rara. As vezes pode-se encontrar, por exemplo, urn solo de guitarra de Jimi Hendrix ou urn solo de bombardino de Hermeto Pascoal, sem qualquer acompanhamento, mas esse fato e raro.

A maioria esmagadora das pecas rnusicais e feita com dois ou mais sons simultaneos,

Na notacao tradicional de partituras, duas ou mais frases musicais ocorrendo simultaneamente sao representadas com dois pentagramas, um sobre 0 outro. A indicacao de que eles sao sirnultaneos e feita colocando-se uma barra vertical unindo estes pentagram as. Na Figura 1.12 temos urna pequena pega a tres vozes em notacao tradicional,

f

n ~~fl = f: f~ - ff~
·
·
v
n •
·
·
o..J '"T r
~ ~ " n
.
.
o..J :t:: ~ <9
n -
·
v
fI •
o..J •
. .,_ Figura 1.12 Peea musical em notaeao tradicional

Som, musica e 0 comando PLAY 21

Nflo se preocupe com a fracao 4/4 e com as barras verticais. Elas sao apenas elementos auxiliares de notacao que sao chamados, respectivamente, de f6rmula de compasso e barras de compasso. A fun<;iio da formula e indicar quantos tempos tem cada compasso. A barra de compasso separa urn compasso do outro. Esses elementos estao sempre presentes em uma partitura, mas nao sao necessaries no BASIC-MSX (nem existe maneira de indica-los). Voltaremos a falar deles no nosso projeto 2 (programador de ritmos).

Ate agora tratamos dos sons no MSX como se fosse possivel apenas produzi-los individualmente. Se isso fosse verdade, nao teriamos condicoes de escrever urn programa para executar a pe<;a da Figura 1.12. Na verdade, nesse computador, temos a capacidade de produzir ate tres eventos sonoros sirnultaneos,

A existencta, no MSX, de tr~s geradores de sam, e a principal razao para tazer daste computador uma boa rnaqulna para servir de introdur;:iio ~ cornputacao na rnosica.

o MSX e um dos poucos computadores disponiveis no mercado que apresenta esse recurso fundamental. Outros computadores, como as das familias Apple, IBM-PC e TRS-80 dispoem, em seu hardware nao-modificado, de urn linico gerador de sons de volume fIXO, tornando quase impossivel a geracao de rnais de urn som de cada vez. Quando isso e feito, nesses computadores, e usada tal quantidade de truques e artiffcios que nenhum dos dais sons e ouvido de maneira clara.

Felizmente, dispomos de tres geradores de som independentes no MSX.

Para gerar sons simultaneos, usando a instrucao PLAY, basta escrever as duas au tres frases musicais que deverao ser tocadas simultaneamente, em notacao MSX, e separa-Ias por virgulas. Assim:

PLA Y "frase 1", "frase 2", "frase 3"

Vamos ver agora como criar um programa para executar a melodia da Figura 1.12 nas tres vozes.

1.4. USANDO 0 PLAY EM UM PROGRAMA

Inicialmente vamos usar apenas urn canal e programar a rnelodia do alto (a primeira voz).

o programa resultante e 0 MELODI.

22 MSX - MUsica

ProgramCH!xemplo MELOD1

10 PLAY "TB0LBII
20 PLAY II05CDEFG2"
30 PLAY "ADCDG2"
40 PLAY IIA-DCDG2"
SO PLAY "FEDCC2"
60 PLAY "Clil A linha mel6dica foi transformada em instrucoes PLAY e cada PLAY foi colocado em uma linha do BASIC.

Para facilitar a comparacao com a partitura original, e apenas por isso, cada instrucao PLAY foi escrita de forma a conter urn compasso. Isso nao faz a menor diferenca no resultado do programa. Distribufrnos as notas por seis PLAYs, mas poderfarnos usar quantos quisessemos (ate mesmo urn unico PLAY).

Execute 0 programa e note como 0 BASIC indica que 0 programa terminou antes da rmisica parar de tocar, 0 cursor aparece na tela com 0 prompt "OK" mas a rmisica continua tocando por alguns segundos.

o BASIC tern uma "pilha de sons" que ~ usada em conjunto com 0 PLA Y. OS comandos vao sendo guardados e executados a medida que vao sendo necessaries, Isso libera 0 BASIC para passar para a linha seguinte a do PLAY, mesmo sem esse comando ter sido terminado.

Cornpletemos agora as duas vozes que faltam. 0 resultado e 0 prograrna MELOD2.

Programa-exemplo MELOD2

400 PLAY "T80LB"~"T8"L811."Te0LB"

410 PLAY "O:iCDEFG2"~"04C4G4C03BAG"~"02C2(3403C4" 420 PLAY IADCOG21,"04C4E4C03BAG","02A2E403C4"

430 PLAY "A-OCOG2","04C4E-4C038-A-G","02A-20JA-4E-411 440 PLAY "FEDCC2","04C4F4C03GFD","02F2C403C4"

4:50 PLAY "Cll1•II03Elu."02Cl"

Sam, mdsica e 0 comando PLAY 23

Cada instrucao PLAY contem, agora, as tres vozes de cada compasso.

Voce continua podendo colocar quantas notas quiser no comando PLAY.

Agora, no entanto, h<i urn cuidado extra a tomar:

Se uma voz de um comando PLAY tiver uma duracao total menor do que as outras, ela lica em sil~ncio do final de sua melodia all! 0 final das ouiras,

o BASIC nao "adianta" notas do proximo PLA Y para completar a voz.

Par isso, confira muito bern a soma das duracoes das tres vozes. E faci.l omitir uma nota por engano.

A terceira versao do programa (MELOD3) mostra como 0 PLAY pode ser usado em eonjunto com outros eomandos do BASIC. Os PLAYs foram substituidos por urn iinieo PLAY (linha 120), dentro de urn loop FOR-NEXT. Os eomandos para os PLA Ys estao dentro dos DA T As e sao lidos pela instrucao READ (linha 110).

Programa-exemplo MELOD3

100 FOR Nlllll TO 6 110 . READ, A., as, c. 120 PLAY As,as,C. 130 NEXT N

140 END

300 DATA "T80LB","T80LBu,IIT80LS"

310 DATA 1I05CDEFG2","04C4G4C03BAt3","02C2G403C4Jt 320 DATA "ADCDG211,"04C4E4C038AGII,1I02A2E403C4"

330 DATA "A-DCDG2",1I04C4E-4C03B-A-G","02A-203A-4E-4" 340 DATA IIFEDCC2",II04C4F4C0313FDII,"02F2C403C4"

3:50 DATA -ct v , "03E111, "02Cl"

CAPjTUL02

MAIS COMANDOS PARA 0 PLAY

~----------~~

~

Alem dos comandos apresentados ate agora, a instrucao PLAY ofereee mais para 0 controle dos parametres dos eventos sonoros. Vamos analisar os cornandos que faltarn.

2.1. AFINACAO: MAIS COMANDOS

Alern de especificarmos a afinacao com a notacao de cifras, podemos especificar a nota por seu "mimero de serie".

Como ja vim os , 0 MSX e capaz de tocar as doze notas em oito oitavas diferentes. 0 total de notas que podem set tocadas e 8 vezes 12: 96 notas.

Essas noventa e seis notas podem ser identificadas tambem par urn mimero de serie que varia de 0 (indicando 0 06 mais grave, oitava 1) ate 95 (0 Si mais agudo, oitava 8).

Para fazer soar a nota que tern 0 mimero desejado, voce deve colocar a letra N antes do mlmero.

Exemplo: queremos tocar a nota La # na oitava 4. Esta nota pode ser tocada a partir da intrucao PLAY:

PLAY"04A#"

ou

PLAY "N46"

24

Mais comandos para 0 PLAY 25

Se voce quiser saber 0 m1mero de serie de uma nota basta usar a Figura 1.2 ou calcula-Io com a seguinte f6rmula:

N = 12 x (Oitava ~ 1) + Nota

"Oitava" e 0 rnimero da oitava e "Nota" eo ntimero da nota segundo a seguinte

tabeIa:

C=o C# = 1 0=2

D# = 3 E=4 F=5

F# = 6 G = 7 G# = 8

A=9 A# = 10 B=ll

Pode parecer confuso usar 0 mirnero da nota em vez de urna indicacao de oitava e afinacao mas isso e muito uti! no caso de programas que calculam como, por exemplo, um compositor automatico.

Nesse tipo de prograrna, as notas sao calculadas pelo programa e 0 resultado e, usualrnente, urn mimero. E mais facil usar a instrucao PLAY com 0 numero .de serie diretamente do que transformar 0 mimero em nota e oitava e usar a notacao de cifras,

Voltaremos a esse comando quando falarmos em cornposicao automatica,

2.2. DURACAO: MAIS COMAN DOS

Se, ap6s a duracao de uma determinada nota, colocarmos urn ponto (.), estaremos fazendo com que a duracao seja aumentada em metade,

Porexemplo, temos urn La com a duracao de seminima (A4). Se colocarmosurn ponte ap6s 0 "4" (A4.), estaremos aumentando a duracao da seminima. 0 aumento e igual a metade da duracao da seminima ou: uma colcheia (duracao 8), Isso e chamado de pontuar umafigura. A semfnima, seguida do ponto, e chamada de seminima pontuada. Como ja vimos, a semfnirna conium tern a duracao de urn quarto de sernibreve e a colcheia tern a duracao de urn oitavo de semibreve. A semfnima pontuada tern a duracao igual a soma dessas duas, ou tres oitavos de semibreve (1/4 + 118 = 3/8).

Para pontuar uma figura na notacao tradicional, a procedimento e exatamente 0 mesrno: ap6s a figura, colocamos urn ponto, como a nota da Figura Z.1.

26 MSX - MUsica

Figura 2.1 Semicolcheia pontuada em notal_{lio tradicional

Na figura temos uma semicalcheia pontuada, que tern a mesrna duracao de uma semicalcheia e urna fusa sarnadas.

A notacao de duracao nao inclui somente a duracao dos sons, eIa inclui tambem a duracao dos silencios ou pausas.

Freqiientemente e necessario indicar quanta tempo urn certo instrumento deve ficar em silencio ou qual a duracao de uma certa pausa entre as notas que urn determinado instrumento deve tocar.

o mesmo principia de notacao de duracao de notas se aplica aqui. Na noracao tradicional, a cada figura ritmiea corresponde uma figura de pausa. Veja a Figura 2.2.

Se encontramos uma pausa em urn partitura, no meio de outras notas, is so indica urn tempo que deve ser esperado, em silencio,

A duracao desse tempo e indicada pela figura. Vma pausa de seminima indica que 0 tempo a ser esperado e 0 tempo correspondente ao tempo de execucao de urna semfnima.

Na instrucao PLA Y, a comando para a pausa e a comando R. 0 cornan do deve ser seguida do rnimero que indica a figura que tern a duracao daquela pausa.

Uma pausa de sernfnima, por exempIo, e indicada, no MSX, por R4.

Nosso velho "Marcha Saldado" poderia ter duas pausas de calcheia no meio

dele:

P:_'AY"T80Y503L8GR8GECR8CY12EGGGED"

Ache essas pausas tanto na instrucao acima como ouvindo a rruisica.

Mais comandos para o PLAY 27

Figura Pausa N9MSX
Correspondente
o Semibreve ..._.
1
r Minima --- 2
r Semmirna t 4
V Colcheia "I 8
~ Sernicolcheia 7 16
~ Fusa I 32
~, Semifusa , 64 Figura 2.2 Pausas na notacao tradicional.

2.3.INTENSIDADE: MAIS COMANDOS

Na realidade, existem apenas rnais dois comandos ainda Olio mencionados: os cornandos S e M. 0 cornando S, seguido de urn ntimero de 0 a 15, controla a forma da envolt6ria, e 0 comando M, seguido de urn nurnero de 0 a 65535, controla 0 seu periodo.

28 MSX -MUska

Ambos sao responsaveis pela variacao da intensidade com 0 tempo (Envolt6ria, Capitulo 6). Esse e urn t6pico bern cornplexo e mais a frente ha uma secao inteira dedicada a ele.

2.4. COLOCANDO VARIAvEIS DO BASIC DENTRO DO PLAY

Dentro do PLAY podemos substituir pedacos de comandos ou comandos inteiros pelos valores presentes em variaveis. Essa substituicao pode ser numerica ou alfanumerica,

Vejamos primeiro a substiruicao numerica,

Qua.lquer numero dentro de um PLAY pede ser substitl.lrdo par um nome de variavel do BASIC.

Isso e feito substituindo-se a rnimero por urn sinal de igual, seguido do nome da variavel e de urn ponto-e-vlrgula,

Vamos supor que ternos uma variavel AA do BASIC que vale 58. As duas instrucoes a seguir sao equivalentes:

PLAY "N58"

ou

PLA Y "N=AA;"

Arnbas as instrucoes acima tern 0 mesmo efeito: fazem com que a nota nurnero 58 (la# na oitava 5) seja tocada.

Isso funcionaria para qualquer Ingar em qualquer comando onde urn mimero pudesse ser escrito e nao somente para 0 comando N.

Lembre- se sempre do ponte- e -vlrqula ap6s .0 nome da variavel,

Outra rnaneira de usaras variaveis do BASIC dentro do PLAY e com a substituicao alfanurnerica. Ela e feita corn a auxilio do comando X.

o comando X laz com que as eomandos presentes dentro de uma variavel string sejam lidos.

Variaveis string, no BASIC, sao aquelas que sao seguidas de wn cifrao ($) e que

Mais comandos para 0 PLAY 29

podem guardar valores alfanumericos. Se uma variavel dessas contiver urn conjunto de comandos de PLAY, basta calacar, dentro do PLAY, a letra X, seguida de urn sinal de igual ( = ), 0 nome da variavel e urn ponto -e- virgula (;), para que os camandos presentes na variavel string sejam executados.

Por exempla, no pequeno programa abaixo, temos uma variavel string, C$, que contern a string "FAC". 0 comando X, dentro do PLAY, con tern uma referencia a essa variavel:

10 C$= "FAC"

20 PLA Y"CEGX = C$;GBDC"

o PLA Y de sse pequeno programa tern a rnesmo efeito de:

PLAY"GEGFACGBDC"

Esse uso de variaveis com conjuntos de comandos pode econornizar tempo e espaco. A variavel contern uma especie de "sub-rotina musical". 0 mesma conjunto de comandos, que pode ser bastante grande, pode ser reutilizado varias vezes, em diversos PLA Ys diferentes.

A instrucao abaixo tambem tern 0 mesmo efeito:

PLA Y"CEG" + C$ + "GB DC"

A diferenca esta na velocidade. Essa ultima forma exige que a operacao de concatenacao (a operacao de "soma" de strings) seja realizada antes da execucao das notas, consurnindo tempo. Na maioria dos casos, no entanto, a diferenca entre urn formate e outro e muito pequena. Esse atraso e raramente perceptivel,

2.5. PROGRAMANOO 0015 CANONES

Vamos programar mais duas pecas musicais. A forma musical das duas e - a mesrna: ambas sao canones de oito frases. Na Figura 2.3 temos a primeira VOl de cada urn dos canones.

Urn canone e urn born exempo de uso imprescindfvel de melodias simultaneas.

Urn canone bern conhecido 6 0 Frere Jacques. Urna das vozes comeca a cantar sozinha a melodia. Um PO"CO depois, outra voz corneca a cantar a me srna melodia urn pouco

30 MSX - MUsica

CANONE N9 1

~ ~A$ ~

I~:t 1

t----B$ I

J J ) j I &r j ~r ) &) I J )1 J &v I J r I

1-- C$ -------I 1- D$ -------I

)J jlJ r J I )j J,&)]-) } I ~ ))1; I J }}J~JI

1----- E$ -----I r---- F$ ------i

J #J~J I#J J&rJ,) I J J}J I J j}}J Jll

I~

~ __ ~G$ H$ ~

I J J d 11 J J J) I J j] I

CANONE N9 2

_. .

1------' C$ -----j 1---- D$ ----------j

I ,: 1 j)'; I J J S I ,J d I J.

1-- E$ . F$ __ ---I

I': J. j. IJ ») ) . ~ I) J';)'; I J.

_[).

~ G$~ __ ~

};) } j I J. ~} J I J. j.

Figura 2.3 Dois canones

atrasada. Depois outra voz entra, cantando a mesma melodia. 0 efeito e muito bonito. Alem disso, e a forma musical onde identificamos rnais facilmente cada uma das tres vozes diferentes,

Os programas exemplo CANON! e CANON2 sao a transcricao dos canones da Figura. 2.3.

Mais comandos para 0 PLAY 31

ProgramCH!xemplo CANON1

10 CLEAR IG00
40 PLAY II L803 II J II L804 II , " L80~"
60 A.· "C4 84 C4 F G 8-4 C4 A-4GE- "
70 a.· "E2 F A4 Et-F2 C2 II
80 cs- "6 A B C A4 F4 o C4 F E-FGA- "
90 De. liB E 0 C D2 A4 D A 64 E-4 II
100 E.·"(32 F+4 F4 F+4 A4 8-4 CE-"
110 F .... II E2 D4 o G A4 C D G F GF "
120 G.·"e D E G A:2 D4 F4 E-4 C4 "
130 HS" II (32 F4 A G F2 C4 E-4"
200 PLAY A$+B$+C.+O$+E$+F$+G$+H.
300 PLAY "Ri"" "Rill, uR11l
350 PLAY AS
360 PLAY B.,A.
365 FOR N-l TO 4
370 PLAY CS,B',A.
380 PLAY o.,e.,s ..
390 PLAY e.,D$,C$
400 PLAY F*, ES, 0$.
410 PLAY G$,F$.E$
420 PLAY H.,G$,F'
430 PLAY A.,H$,G$
440 PLAY a.,AS,H$
450 NEXT N
600 END 32 MSX - Mlisica

Programa-exemplo CANON2

10 CLEAR 10:00

40 PLAY !I L803 II , II L804 II , II L805 II

60 A.a IIF4 C E-4. 04. 0-4 G II

70 as. "A C A A4. A4. F+4 D- "

80 C'- "C4. C 0 (3 F4 0 0-4. II

90 os. "E-4. E4. F4. F+4. II

100 ES-"84. 84. C 0 F A 0-4 "

110 F.-uC4 F G E G A4. 0-4. II

120 G.auF E- 0 C4. F4. F+ 84 II

130 H.- uA4 • 84. D E F A4 G "

200 PLAY AS+S$+CS+O.+E.+F$+G$+H'

300 PLAY "Rl","Rl","Rl"

3~O PLAY A$

360 PLAY a',A.

365 FOR N-l TO 4

370 PLAY C_,eS,AS

380 PLAY O',C',B$

390 PLAY es,o"c,

400 PLAY F.,eS,Os

410 PLAY G',F$,E'

420 PLAY HS,eS,F'

430 PLAY AS,H*,a.

440 PLAY eS,A',H'

4~O NEXT N

600 END

Preste atencao principaimente no encaminhamento das vozes. Tente perceber a superposicao da melodia,

Ambos os programas tern a rnesma estrutura, Cada uma das oito frases esta numa variavel alfanurnerica diferente (A$ a H$).

A melodia e apresentada iniciaimente por inteiro, numa Unica voz, para que ela

Mais comandos para 0 PLAY 33

fique bem gravada (linha 2(0). Depois ha uma pausa (linha 3(0) e 0 canone propriamente dito se inicia, A primeira voz apresenta a primeira frase da melodia (linha 350) e a segunda voz entra logo em seguida (linha 360). Depois entra a terceira (linha 370). As tres passam a tocar a mesma melodia, defasada de uma frase.

Na linha 400, por exemplo, temos a primeira voz tocando a frase F e a segunda voz tocando a frase E. Na linha 410, temos a segunda voz tocando a frase F. A primeira ja esta tocando a G. Tente perceber isso, tanto ouvindo como observando a listagem do programa.

Note que cada canal foi programado para uma oitava diferente (oitavas 2, 3 e 4).

No programa CANON2 note 0 usa das seminimas pontuadas.

CAPITULO

3

o PSG E 0 COMANDO SOUND

~---~

Ate agora aceitamos 0 fato do MSX ser capaz de produzir sons, mas mio entramos em detalhes de como ele e capaz de fazer isso, qual eo hardware ou a eletronica envolvida.

Na verdade, a peca responsavel pelo som, nesse computador, e um pequeno "chip" Oll circuito integrado conhecido pela sigla PSG (Programmable Sound GeneratorGerador de Som Programavel),

Todas as caracteristicas de geracao de som do MSX (tres canais, forma de onda fixa, volume variavel etc.) sao, na realidade, caracterfsticas do PSG.

Sempre que um som tern de ser gerado, 0 processador central do MSX (0 Z-80) manda uma mensagem ao PSG, que cuida dessa tarefa.

Uma das vantagens de se utilizar urn circuito extemo inteligente de som e a de que 0 processador central fica livre da tarefa de supervisionar a sonorizacao. Em alguns outros computadores, se voce quer que urn D6 seja tocado durante urn segundo ou minuto, durante todo 0 segundo ou minuto que a nota estiver sendo tocada, 0 processador estara incapacitado para realizar qualquer outra tarefa, No MSX isso nao acontece,

Quando voce executa uma nota, por exemplo, na instrucao PLAY "C", 0 BASIC do MSX entende que voce quer toear ump6 e pass a essa informacao ao PSG.

A instrucao nao e pass ada da maneira como n6s a vemos, no fonnato do PLA Y .

Na verdade, 0 BASIC decodifica 0 PLAY em instrucoes de myel mais baixo. Ele tern de informar detalhadamente ao PSG como fazer para produzir urn D6, na oitava que queremos.

34

o PSG eo comando SOUND 35

Esse conjunto de instrucoes do PSG eo que aprenderemos a usar para termos dominic total sobre 0 som sem a intermediacao do PLAY. Isso nos dara uma versatilidade muito maior na producao de sons.

o PSG e, como seu nome diz, urn gerador programavel, 0 que implica numa maneira de programa-Io. Isso se faz por meio dos seus registradores.

o PSG contem, dentro dele, urn conjunto de 16 registradores, numerados de 0 a 15, que funcionam como se fossem 16 posicoes de memoria de urn byte (8 bits) cada. Cada urn desses registradores tern uma funcao especIfica dentro do processo de programacao e geracao de som.

E atraves desses registradores que 0 PLA Y trabalha e e atraves deles que trabalharemos, agora, diretamente,

A instrucao que permite a comunicacao direta do usuario com os registradores do PSG, sern a intervencao do PLAY, e a instrucao SOUND, que tern 0 seguinte formato:

SOUND registrador, conteudo

No lugar de registrador devemos colocar 0 mimero do registrador (de 0 a 15) e no Ingar de contetido devemos colocar 0 valor que desejamos que fique no registrador que tern este mimero. 0 conteudo pode variar de 0 a 255, como jl1 seria de se esperar, ja que cada registador tern oito bits, mas alguns dos registradores tern certas restricoes aos possfveis valores.

Para colocarmos, por exemplo, 0 conteiido 34 no registrador 2, usarnos a seguinte instrucao:

SOUND 2,34

A lista dos registradores com suas funcoes e os limites dos valores que eles podem assumir esta na Tabela 3.1

36 MSX -MUsica

Antes de passarmos para uma discussao detalhada do funcionamento dos registradores, vamos analisar 0 t6pico dos "pares de regis trado res " .

Tabela 3.1 Registradores do PSG, sua fu.n~ii.o e faixa de valores possfveis. Os registradores marc ados com * podem assurnir valor 16, no caso de envoltdria automatica.

REGlSTRADOR FUN<;Ao V ALORES POSSfVEIS
0 perfodo canal A Oa 255
(ajuste fino)
1 perfodo canal A Oa 15
(ajuste grosso)
2 perfodo canal B Oa255
(ajuste fino)
3 perfodo canal B o a 15
(ajuste grosso)
4 perfodo canal C Oa 255
(ajuste fino)
5 perfodo canal C Oa IS
(ajuste grosso)
6 perfodo do rufdo Oa 31
7 mixer Oa 63
8 volume canal A o a 15*
9 vourne canal B Oa 15*
10 volume canal C Oa 15*
11 perfodo da envolt6ria Oa 255
autornatica (ajuste grosso)
12 perfodo da envolt6ria Oa255
automatica (ajuste fino)
13 tipo da envolt6ria Oa IS
automatics 3.1. PARES DE REGISTRADORES

Alguns dos registradores trabalham, na realidade, em "pares". Por exemplo: os registradores 4 e 5, trabalhando em dupla, programam 0 perfodo do canal C. Nao se preocupe, por enquanto, com 0 que seja "perfodo",

o PSG e 0 comando SOUND 37

Esses pares existem nos casos onde a caracterfstica desejada (como 0 periodo do canal C, no exemplo acima) deve poder assumir valores maiores do que 255.

Ora, urn byte esta limitado a urn valor maximo de 255. Para que uma dada caracteristica possa assumir urn valor maior que 255, precisarnos de urn outro byte para completar 0 valor. Essa e a razao dos pares.

Os pares estao indicados, na Tabela 3.1, por duplas de "ajuste grosso" com "ajuste fino". Esses pares sao conhecidos tambem, respectivamente, como "rnais significativo" e "menos significativo" ou "MSB" e "LSB".

Vejamos como temos de partir dos ajustes grosse e fino para chegar ao valor desejado e vice-versa.

Para combinar os valores de grosso e fino e chegar ao valor final usaremos a seguinte expressao:

Valor = Fino + 256xGrosso

Voltando ao exernplo acima, vamos supor que temos urn valor de 44 no registrador 4 (ajuste fino do periodo do canal C) e urn de 2 no registrador 5 (ajuste grosso do perfodo do canal C). Que periodo total 0 valor desses registradores indica?

Usando a expressao acima chegamos ao resultado 556 (0 resultado de 44 + 256x2). Este e 0 perfodo do canal C se esses valores estiverem programados,

Qual 0 valor maximo para 0 periodo do canal C? Para responder a essa pergunta, tudo 0 que temos a fazer e calcular 0 valor total do periodo quando os dais registradores (grosse e fino) estiverem com seu valor maximo.

o valor maximo do registrador 4 (fino) e 255 eo valor maximo do registrador 5 (grosso) e 15.0 perfodo total maximo sera 4095 (0 resultado de 255 + 15x256).

Vamos fazer 0 contrario agora: dado urn valor, como fazer para encontrar 0 valor individual de cada registrador que compoe 0 par?

38 MSX -Mu.rica

Os valores para cada urn dos registradores (grosso e fino) sao dados pelas express6es abaixo:

Grosso = Valor \ 256 Fino = Valor MOD 256

A barra invertida ( \ ) significa "divisao inteira" no BASIC. E a divisao que despreza a parte fracionaria, 0 operador MOD e 0 operador "resto". 0 resultado de "Valor MOD 256" e a resto da divisao de Valor por 256.

Entao, continuando com 0 mesmo exemplo acima, vamos supor que n6s quisessernos prograrnar 0 perfodo do canal C com 0 valor de 2000. Como farfamos para descobrir que valores colocar nos registradores grosso e fino?

o valor do registrador grosse deve sec 0 resultado da divisao inteira de 2000 por 256: 7. 0 valor do registrador fino e 0 resto dessa mesma divisao: 208.

Entao, colocando 0 valor de 208 no registrador 4 e 0 valor 7 no registrador 5 estaremos, na verdade, obtendo urn perfodo de 2000 no canal C.

Vamos passar agora a discussao da funcao e programacao dos registradores.

Como estaremos atuando diretamente no PSG, agora, precisaremos nos aprofundar urn pouco mais nos fundamentos do som. Vamos ver alguns conceitos bern simples utilizados no estudo do som, do ponto de vista da Ffsica,

CAPiTUL04

FREOOENCIA

Ate agora, quando falamos em som, falamos em evento sonoro. Esse conceito e muito util mas nan esta ligado, de forma alguma, a maneira como 0 sam e produzido, transmitido nem compreendido par nossos ouvidos. Daqui para a frente, estaremos envolvidos com caracterlsticas da producao de som que exigem que facamos uma pausa para verificar este ponto.

Em primeiro lugar, vejamos como e criado urn sam.

Sam e vibracao, Todo som e produzido par uma vibracao rnuito rapida de alguma coisa,

Uma corda de violao, por exernplo, vibra muito rapidamente (qualquer coisa da ordern de 400 vezes por segundo) para que seu sam seja ouvido. A frequencia eo numero de oscilacoes por segundo (ou por unidade de tempo) de uma dada vibracao, Ela indica 0 mirnero de vezes, por segundo, que urna certa coisa esta indo e voltando.

Uma unidade de medida para a frequencia e 0 Hertz ou oscilacoes por segundo.

A corda mencionada acima estaria vibrando a uma frequencia de 400 Hertz (abrevia-se 400 Hz),

o perfodo de uma vibracao e 0 tempo que 0 val-e-vern demora. Se temos uma certa frequencia de 0,5 Hz (meia vez por segundo) temos urn periodo de 2 segundos (0 vai-e-vem vai demorar dois segundos), As relacoes seguintes permitem que voce saiba 0 perfodo a partir da freqliencia e vice-versa:

T = lIF

e

F = Irr

T representa 0 perfodo e F, a frequencia. Urn e sempre 0 inverse do outro.

39

40 MSX ~ MUsica

Sendo 0 perfodo urn intervale de tempo, ele tern a mesma unidade que 0 tempo (segundos, milissegundos, microssegundos, horas ... ).

A afinacao tern uma relacao direta com a frequencia (e com 0 periodo) de oscilacao de urn som.

4.1. FREQUENCIA DAS NOTAS MUSICAlS

Se voce tiver urn piano au outro instrumento de teclado em casa, procure 0 La central desse instrumento. Este La tern uma frequeneia de 440 Hz e par isso e usualmente conhecido pelos rruisicos como 0 La 440. Mas note bern: nao e qualquer La, em qualquer oitava, que tern a freqtiencia de 440 Hz, mas apenas 0 La central Na instrucao PLA Y, de e 0 La da oitava mimero 4.

lsso e lima convencao, Convencionou-se, mundialmente, considerar a frequencia de 440 Hz como sendo 0 Ui central. Todos os instrumentos, a partir dar, passaram a ser armadas segundo essa frequencia de referencia .. Se voce comprar urn diapasao La para ajnda-Io a afinar seu instrumento, estara, na realidade, comprando uma ferramenta que foi calibrada com toda a precisao para produzir uma frequencia de 440 Hz quando percutida,

De vez em quando, as pessoas responsaveis por esses "standards", que eu nao sei hem quem sao (regentes alernaes? ffsicos americanos?), resolvem rnudar 0 La central, por algurna razao de construcao dos instrumentos .. Se nao me engano, 0 La central, em 1982, estava cotadoem 443 Hz. Isso nao faz urna diferenca tao grande, afinal de contas, ja que qualquer grupo de rmisicos, antes de comec;ar a tocar, anna os respectivos instrumentos de acordo com urn padrao (urn dos instrumentos, urn diapasao ou urn afinador eletronico), Todos tern, portanto, seus instr~mentos emitindo frequencias baseadas na mesma frequencia de referencia, seja ela a La 440 au 0 La 443 ou qualquer outra. Alem disso, a diferenca de afinacao do La: 440 para 0 La 443 e imperceptfvel para urn ouvido nao-tecnieo. Sendo assim, podemos considerar 0 La como sendo 440, por tradicao.

Assim como 0 La central tern a freqiiencia absoluta e universal de 440 Hz, todasas outras notas correspondern a frequencias exatas e absolutas.

Em primeiro lugar, vejamos como fazer para, sabendo a frequencia absoluta de urna determinada nota, descobrir a frequencia da mesma nota, em outra oitava.

A regra e simples:

Freqii2nda 41

Para subir uma aitava, multiplique a freqliencia par dais. Para desoer uma aitava, divida par dais.

o La uma oitava acima do Ui central (frequencia 440) tern frequencia igual a 880 Hz. 0 La uma oitava acima deste tern frequencia 1760 Hz. 0 La uma oitava abaixo do La central tern freqiiencia igual a 220 Hz. E poc af vai...

Com essa simples regra, podemos descobrir todas as frequencies das oitavas de uma nota com frequencia conhecida.

E as outras notas, qual a frequencia delas? Para descobrir isto, terernos de usar urn pouco de matematica,

A f6rmula geral para as oitavas de uma nota e:

Onde n e 0 mimero de oitavas a subir (n tern valor negativo se forem oitavas a descer). N a e a nota basica e Na+n e a nota, n oitavas acima ou abaixo, conforme 0 sinal. Urn exemplo: a frequencia do La duas oitavas acima do La central e

Na+2 = 22 X 440 = 4 x 440 = 1760 Hz

Vamos refletir urn pouco: 0 que significa subir uma oitava? Significa dobrar a freqnsncia, mas significa tarnbem subir 12 meios-tons. Vamos reescrever a f6rmula geral acima para levar isto em conta:

Onde Fo indica a frequencia basica, n indica 0 mimero de oitavas acima e F12n indica a frequencia da nota n oitavas ou n vezes doze meios-tons acima.

Qual a relacao entre a frequencia de uma nota e a de outra, urn meio-tom acima?

Vamos reformular a pergunta para: qual a relaeao entre uma nota e outra, urn doze- avos de oi tava acima? Basta utilizar a f6rmula acima com n igual a 1112.

F = 21112 F

1 0

Esta resposta e muito importante. Ela indica que as frequencies de quaisquer duas notas adjacentes da escala cromatica temperada tern uma proporcao constante. A frequencia da nota, dividida pela frequencia da nota imediatamente anterior (meio-tom

42 MSX -MUsica

abaixo) e SEMPRE igual a

que e igual a raiz decima-segunda de dois, que e igual a 1.05946.

Ja temos, entao, a regra para 0 meio-tom adjacente:

Para subir rneio-torn, multiplique a frequlincia por K. Para descer meio-tom, divida por K. K ~ uma constante igual a 21/12 OU 1.05946.

Com isto, podemos completar 0 calculo das frequencies que faltam. Vamos descobrir a frequencia do La # imediatamente acima do Ui Central. Essa frequencia sera igual a K vezes a frequencia do Li Central (440 Hz). Ela e aproximadamente igual a466 Hz.

o pr6ximo programa-exemplo (FREQ 1) ajuda a calcular frequencias de notas.

Insira uma frequencia basica e um m1mero de notas. 0 resultado do programa e uma serie de frequencies que sao as correspondentes a escala cromatica iniciada naquela nota.

Programa-exemplo FREal

~o CL·178977~! • clock 60 C-CL/16

100 PPIlll2 ..... (1/12)

150 PRINT"A PROPORCAO ENTRE UMA NOTA E OUTRAII

160 PRINT"MEIO TOM ACIMA EP : "IPP

300 INPUT"FREOUENCIA INICIALII5FQ 320 INPUT"NUMERO De: NOTASII, NU

390 FRIIIIFO

400 FOR N=1 TO NU 410 PRINTIINOTA"INI

420 PRINT USINGIi FREQ !III ...... * ",FR. 580 FR:a::FR*PP

590 PRINT

600 NEXT N

Freqiiencia 43

Se, por exemplo, voce colocar como frequencia basica 0 valor de 440 Hz e um mimero e notas iguais a 4, voce tera como resultado as frequencias das seguintes notas, nesta ordern: o La Central, 0 La.# irnediatarnente acima deste, 0 Si e 0 06.

4.2. A FREOUENCIA EO PSG

o PSG do MSX recebe 0 periodo (e nao a frequencia) como dado de entrada para a afinacao de urn som. 0 periodo nao e infonnado em segundos nem em milissegundos. Ele e informado numa unidade bastante incomum, que e igual a dezesseis vezes 0 perfodo do clock interno do micro.

Todo micro tern urn componente eletronico vital: 0 crista! ou clock. Ele fornece, ininterruptamente, uma sequencia de pulsos, igualmente espacados no tempo, para que 0 microprocessador fique sincronizado. Esse eo famoso "cristal-de-tantos-megahertz". 0 chip PSG usa os pulsos do mesmo cristal.

Cada marca de micro tern urn cristal diferente, com uma frequencia diferente.

Segundo as manuais dos micros MSX nacionais, temos as seguintes frequencias de cristal:

HOT-BIT: FC = 1789770Hz EXPERT: FC = 1788055 Hz

Na verdade, 0 cristal tern uma frequencia que e igual ao dobro da apresentada acima. 0 PSG usa a frequencia do clock dividida por dois.

o perfodo do cristal sera, entao, lIFe. 0 perfodo-base do PSG, como ja inforrnamos antes, e igual a 16 vezes 0 perfodo oeste clock, au 16/FC.

Vamos chamar de F a frequencia em Hertz que desejamos obter, 0 periodo em segundos dessa frequencia e lIF. 0 periodo que devemos informar ao MSX (T msx) e 0 perfodo em segundos que desejamos obter, dividido pelo perfodo-base, au seja:

FC -rmsx= 16xF

Qual e 0 perfodo que devemos informar ao MSX (HOT -BIT) para que este produza urn La central (F = 440 Hz)?

Tmsx =

1789770 16 x 440

= 254

44 MSX - Ml1sicQ

Para 0 EXPERT, este valor seria 0 mesrno ap6s 0 arredondamento, pois a diferenca entre as frequencies des clocks e rnuito pequena.

o programa-exemplo FREQ2 e semelhante ao programa FREQ, mas produz tambern os valores de T msx-

Programa--exemplo FREQ2

50 CL-17B977~! ' clock 60 C-CL.l16

100 PP-2 ..... (1/I2)

l~O PRINT"A PROPORCAO ENTRE UMA NOTA E DUTRA" 160 PRINTIIMEIOTOM ACIMA E.~ : III F'P

300 INPUT"FREQUENCIA INICIALII,FQ

320 INPUTuNUMERO DE NOTASII,NU

390 FR-FGI

400 FOR N-l TO NU 410 PRINTIINOTAII;N;

420 PRINT USINGII FREQ .. .......... ",FR, 430 PM-C/FR

440 PRINT U6lNGuT M·SX -= ........ *"1 PM; 470 SOUND 0,PM MOD 256

480 SOUND I,PM \ 256

500 SOUND 8,10

550 FOR 1-~ TO l~_:NEXT I ' ESPERA 560 SOUND 8,0

~80 FR-FR*PP

590 PRINT

600 NEXT N

Lernbre-se de alterar a Iinha que contern 0 valor da frequencia do clock se a seu computador for um EXPERT. Se for urn outro MSX, vasculhe 0 manual para encontrar 0 valor correto do clock (Iembre-se de dividir por dais).

1<1 descobrimos 0 valor de pcriodo para que a MSX produza urn La central

Frequencia 45

(254). Para que 0 canal A do PSG produza este La, ternos de programar 0 par de registradores 0 e I com este per'iodo. Lernbre-se de como colocar urn valor num par de registradores, como mencionado acima.

Alern disso, ternos de programar 0 volume desse canal (registrador 8) para algum valor entre 1 e 15, para que 0 som possa ser ouvido ..

Execute as seguintes instrucoes para programar a La central no canal A:

SOUND 0,254 MOD 256 SOUND I, 2541 256

e esta instrucao para colocar 0 volume do canal A em 10:

SOUND 8,10

Para desligar 0 som, zere 0 volume:

SOUND 8,0

Note como 0 som nao para enquanto 0 volume nao for zerado. Isso e uma consequencia da geracao externa de som. Voce pode programar 0 PSG para tocar uma frequencia e trabalhar no BASIC enquanto 0 som fica sendo constantemente produzido. o processador central nem se importa se 0 PSG esta ou nao produzindo urn som. Isso e de grande valia na econornia do tempo precioso do processador,

Para comparar a afinacao do La central obtida desta maneira e a afinacao do La central segundo 0 cornando PLAY, execute novamente as tres primeiras instrucoes mas nao execute a Ultima, que corta 0 som. No lugar dela, execute:

PLA Y"04A 1"

que e 0 comando PLA Y para gerar 0 mesmo Ui central por urna semibreve, Ambas as afinacoes devem soar absolutamente iguais, pois 0 BASIC-MSX tambem usa 0 Ui central como sendo 440 Hz. Se isso nao ocorrer, verifique a frequencia do clock no manual do MSX que voce esta usando,

Como ja mencionamos, certas orquestras usarn 0 La central como tendo uma freqiiencia de 443 Hz. Repita os calculos acima para gerar essa frequencia e compare com o La central (440) do PLA Y. Note como a diferenca entre des e pequena,

46 MSX - Md.rica

o proximo programa-exernplo e urn programa que simula, no teclado do MSX, urn tecIado tradicional de piano, com uma oitava e uma terca (16 notas).

Programa-exemplo PlAN01

~O CLS

100 DIM FR(16) I~O FOR N-~ TO 16 160 READ FR(N) 170 NEXT

180 DATA 214,202,190,180,170 190 DATA 160,151,143,135,121 200 DATA 120,113,107,1~1,93 210 DATA 9",8~

.2~O lCt. II AWSEDFTG YHUJ KOLPCII JOO BOUND B,0

310 SOUND 1,0

3~O PRINllIPIANO : II 355 PRINT

360 PRINT" WET Y U 0 P" 365 PRINT"A S D F G H J K L e" 310 PRINT:PRINl

380 PRINT"USE A BARRA. DE ESPACO PARA PARAR a SOMII 390 PRINTJlUSE ESC PARA TERMINAR"

400 A.-INKEV$

4.10 IF At-iltl THEN 40Q 450 N-INSTR<TCt,At)-l 470 IF N>-" THEN 1~0Q

~OO IF At-" II THEN SOUND 8,O 510 IF A.~CHR$(27) THEN END ~50 (30T0400

1000 SOUND 8,10

1010 SOUND 0,FR(N)

1.020 GOTO 400

Freqiiencia 47

o programa nao usa 0 PLA Y para a producao do som, usa apenas 0 controle direto de afinacao do PSG atraves do comando SOUND. Por essa razao 0 som e continuo. Veremos a flexibilidade que esse controle sobre 0 tempo de execucao da nota pode nos dar mais tarde, quando falarmos de envolt6ria.

Os perfodos utilizados para as notas (os 16 valores den tro dos D A T As das linhas 180 a 200) foram calculados para 0 HOT -BIT, usando 0 programa-exemplo FREQ2. Se voce tiver outro MSX, voce pode querer recalcular as frequencias -mas isso nao e tao necessario, a menos que voce queira conferir a afinacao com urn diapasao. Os clocks dos outros sistemas nao sao, em geral, tao diferentes assim. Mesmo assim, a afinacao relativa entre as notas permanece perfeitamente correta. 0 que muda, ligeiramente, e a afinacao em relacao a outros instrumentos.

J:1 sabemos como fazer para programar a frequencia de urn canal. Como 0 MSX dispoe de tres canais independentes, podemos programar uma frequencia diferente em cada urn deles.

E isso 0 que usaremos para criar uma pequena variacao de timbre.

CAPITULO

5

TIMBRE E HARMONiCaS

,~~~

~----------------------------------------------------------- .--e/-~ .__---------------------------- .. ~-

........

Como ja mencionamos de passagem, a para metro timbre, de urn evento sonora, depende rnuito da forma de onda da nota. Mas 0 que e esta forma de onda?

A forma de onda e a rnaneira como a sam oscila. Ja vimos que, para que urn sam seJa produzido, alguma coisa deve estar oscilando muito rapidamente, Quando dizernos "alguma coisa que oscila", queremos dizer urn objeto mesmo, como a corda de urn violao, o papelao de urn alto-falante, 0 vidro de uma garrafa que se quebra e ate suas pr6prias cordas vocais.

o objeto que produz 0 sam sempre tern urna maneira peculiar de oscilar, Uma corda de violao pode, por exemplo, seguir pacienternente ate urn lado e imediatarnente iniciar 0 caminho de volta, no mesmo passo em que ela foi,

Outro objeto (a paJheta de urn saxofone, por exemplo) pode dernorar 0 mesmo tempo que a corda de violao, para ir de um lado ao outro, executando a oscilacao de uma forma diferente de um vai-e-vern regular. Esse segundo objetopoderia, par exemplo, saltar bruscamente ate urn lado, esperar urn tempo e depois saltar da mesma rnaneira para o outro 1000.

Par incrivel que pareca, nosso ouvido e capaz de distinguir os dais tipos de movimento, mesmo estando esses dais rnovimentos ocorrendo 400 vezes par segundo. A corda que vai-e-vern regularmente e 0 objeto que val-e-vern com saltos bruscos produzem sons de timbres diferentes e de formas de onda diferentes.

Nosso ouvido nao identifica a tipo de vai-e-vern, nao identifica urn vai-e-vem brusco ou continuo. Quando chamados a qualificar os dois tipos de sons, diremos qualquer coisa como: "ah, .. a segundo sam e mais aspero".

48

Timbre e hamWnicos 49

Esse e 0 efeito que a forma de onda produz: 0 timbre.

Os dois timbres descritos acirna poderiam corresponder, respectivamente, a uma forma de onda senoidal e a uma quadrada.

Na Figura 5.1 esrao algumas fonnas de onda comuns, com alguns comentarios,

Amplitude

Tempo

Onda Senoidal (som "suave")

r-. Amplitude
...
,
Onda uad Tempo

Q rada (sam "rnuito aspero ")

50 MSX - Mlisica

Amplitude

Tempo

Onda Triangular (sam "aspero")

Figura 5.1 Forrnas de onda

13 usual sentirmos urn timbre aspero quando a forma de onda e cheia de movimentos bruscos. A forma de onda rnais suave, a senoidal, e a forma de onda normal da flauta doc e,

A variacao da forma de onda proporciona sons com "personalidade".

Construindo formas de onda, estamos, na realidade, construindo sons "cheios", "quentes", "etereos". ..

Mas, como ja vimos:

o PSG do MSX nao preve 0 control's da forma de onda.

o que fazer entao?

Se tivessemos, no hardware do MSX, uma grande quantidade de canais com forma de onda senoidal, poderiamos criar qualquer outra forma de onda que quisessemos, segundo uma tecnica muito conhecida na Ffsica: as series de Fourier.

Essa teoria diz, simplificadamente, 0 seguinte: qualquer forma de onda, por mais esquisita e cheia de detalhes que seja, pode ser construida por urna soma de urn mirnero rnuito grande de ondas senoidais, desde que se saiba exatamente qual a frequencia equal 0 volume (ou amplitude) que cada urna dessas sen6ides deve ter,

13 Iogico que a teoria tambem ensina como calcular essas frequencias e volumes

corretos,

Timbre e harmonicos 51

Se voce, por exemplo, quer uma onda quadrada e s6 dispoe de geradores de ondas senoidais, tudo bern! Basta voce saber quais as frequencies corretas e quais volumes voce deve programar nos seus geradores de onda senoidal, so mar todas as ondas que eles produzem e pronto! Voce tem uma onda aproximadamente quadrada. E quanto mais geradores senoidais voce usar, mais proxima sua onda estara da onda quadrada.

A teoria tarnbem nos ensina a calcular as freqiiencias e os volumes para obter a onda quadrada desejada no exemplo do paragrafo acima. 0 procedimento, no entanto, e trabalhoso e usa tecnicas de calculo avancado. Vamos ver apenas os resultados, a titulo de exemplo. As senoides a somar devem ser: a sen6ide com a afinacao desejada e com urn terce do volume final desejado (chamada de fundamental), a sen6ide com 0 triplo da frequencia mas com um terce do volume da fundamental, a senoide com 0 quintuple da freqiiencia e urn quinto do volume da fundamental e assim por diante (7,9,11,13 ... ).

Somando todas essas ondas senoidais obterernos uma onda quadrada.

A onda senoidal que tern a frequencia basica e charnada de fundamental. As outras tern sernpre freqiiencias que sao rmiltiplos inteiros da fundamental. Estas sao chamadas de harmonicos,

Portanto, 0 processo da serie de Fourier pode ser escrito como: qualquer onda e uma soma de harmOnicos.

Esse processo de sintetizar uma forma de onda atraves da soma de harmonicos e tambern chamado de sfntese por soma.

Os harmonicos sao numerados. 0 primeiro harmonica e a pr6pria fundamental. o segundo harmonico e a onda com 0 dobro da frequencia da fundamental. 0 terceiro harmonica e a onda com a triplo da frequencia da fundamental, e assim por diante. Podemos dizer, entao, que uma onda quadrada pode ser obtida pela soma dos harmonicos Impares (veja que no exemplo da onda quadrada, hi arras, s6 usamos as frequencies rmiltiplas de rnimeros Impares),

Se voce toea 6rgao, deve estar reconhecendo esse metodo de variacao de timbre.

Os 6rgaos mais antigos usam exatamente esse metodo corn urna nomenclatura diferente. Os diversos geradores senoidais, cada qual com urn dos harmonicas, sao chamados de registros, Experimente preparar 0 6rgao apenas para emitir a sam fundamental, sem nenhum harmonico. Esse 6 0 som de uma sen6ide. Experimente agora colocar harmonicas Impares e veja como 0 som vai ficando cada vez mais aspero.

No MSX nao temos urn ruimero grande de geradores senoidais. Longe disso.

Temos apenas tres geradores de onda quase quadrada.

52 MSX -MUsica

o maximo que podemos fazer e urn arremedo de serie de Fourier. Podemos somar tres ondas de frequencias diferentes, programando cada canal para produzir uma delas.

E isso que 0 programa PIAN02 faz, Ele e sernelhante ao programa PIANO! anterior. A diferenca e que ele usa os tres canais e pede a relacao de frequencias entre a fundamental e a harmonica a ser tocada no canal B e entre a fundamental e a harmonica a ser tocada no canal C.

Alern disso, 0 programa pede tarnbern os volumes dos tres canals.

Nao pense nesse gerador de onda como sendo urn que usa series de Fourier. Ele nao e. Ele e uma maneira de se contornar 0 problema do timbre fixo do MSX atraves da execucao simultanea de tres frequencias diferentes, de uma maneira inspirada nas series de Fourier.

J <i vimos como controlar 0 pararnetro afinacao e conseguimos alguma variacao no parametro timbre. Vamos agora controlar 0 parametro intensidade atraves do envelope.

Timbre e harmdnicos 53

Programa-exemplo PlAN02

100 DIM FR(16) 150 FOR N-0 TO 16 160 READ FR(N) 170 NEXT

180 DATA 214,202.190,18~,170 190 DATA 160,151,143,135,127 200 DATA 12~,113JI07.101,95 210 DATA 90,83

220 TC.-"AWSEDFTGYHUJKOLPI;"

240 SOUND e.~:60UND 9,0:SQUND 10,0 2~0 SOUND 1.0:SQUND J,0:S0UND 5,0 25:5 CLS

260 INPUT"VOLUME DA FUNDAMENTALu,V0 265 lNPUT"VOLUME DA HARM. t"IVI

270 INPUT"VOLUME DA HARM. 2",V2

275 INPUT"RELACAO FUND/HARM.l"IRl 280 INPUTIIRELACAO FUND/HARM. 2"1 R2 350 PRINTtiPIANO :"

3~~ PRINT

360 PRINT" WET Y U 0 pit 365 PRINT"A S D F G H J ~~ L CIt 370 PRINT:PRINT

380 PRINTIIUSE A BARRA DE ESPACO PARA PARAR 0 SOM" 390 PRINTIIU8E ESC PARA TERMINAR"

400 A.-INKEY$

410 IF·At-1I1I THEN 4g:Cii 4~0 N.INSTRCTCt,At)-l 470 IF N)-~ THEN 100~

~oo IF At-" .. THEN SOUND B.0:SDUND 9.0:BOUND 10,0 510 IF A'()CHR$(27) THEN 400

:;20 INPUT"REPROC3RAMAR"IX.

':530 IF LEFT.(Xt.U-IISti OR.LEFT.(Xt,U-"." THEN 240 550 END

1000 BOUND B,V0:80UND 9,Vl:S0UND 10,V2

1010 SOUND 0,FR(N):aOUND 2,FR(N)/R1:SQUND 4,FR(N)/R2 1020 eOTO 400

CAPiTUL06

o ENVELOPE au ENVOL TORIA

~------------~ ~

o volume de urn som pode variar (normalmente varia) nos instrumentos mio sintetizados. Se tocarrnos uma corda de violao podemos perceber como 0 som vai morrendo com 0 tempo. Se nao encostarmos na corda, uma vez percutida, 0 som da corda vai diminuindo de intensidade ate morrer.

Assim como 0 som da corda do violao tern esse comportamento caracterfstico de morrer depois de urn certo tempo, cada instrumento tern seu modo caracterfstico de variar de volume em funlJao do tempo.

A maneira como um determinado som (ou evento sonoro) muda de volume com 0 tempo ~ chamada de envolt6ria ou envelope.

A envolt6ria, mais precisamente, e a funcao volume x tempo ou intensidade x

tempo.

Essa definicao de envolt6ria ainda nao 6 precisa, pois pode causar a confusao que os manuals do MSX normalmente causam. E importante notar, portanto, 0 seguinte:

A envolt6ria n~o ~ a forma de onoa,

Como ja vimos, a forma de onda e, tambem, a varialJelo da intensidade com 0 tempo. 0 tempo em que a intensidade varia e da ordem de milissegundos (milesimos de segundo). Na envolt6ria, ao contrario, consideramos variacoes de intensidade em segundos ou decimos de segundo.

Vamos esclarecer esse ponto. Para produzir urn som, como ja vimos, precisamos vibrar algurna coisa muito rapidamente, Uma corda, por exemplo, vai e volta uma vez a

54

o envelope ou envoltoria 55

cada 2 milissegundos, aproximadamente, quando 0 La central e tocado. A corda, vibrando rapidamente, transmitira essas vibracoes para 0 ar que, por sua vez, vibrara a cada 2 milissegundos tambern, A intensidade do som carregado peJo ar varia, portanto, do minirno ao maximo, urna vez a cada 2 milissegundos para que 0 La possa ser ouvido. Isto e a FORMA DE ONDA.

Esse La vai morrendo, depois de alguns segundos, pois a corda vai deixando de vibrar, 0 som, de uma maneira geral, vai diminuindo de intensidade durante alguns segundos. Isto e a ENVOLTORIA.

A Figura 6.1 mostra como a intensidade varia com 0 tempo no exemplo acima.

Envolt6ria

Tempo

Figura 6.1 Envolt6ria da corda de violao

Poderiarnos dizer tambern que a envoltoria e a variacao da amplitude da vibracao com 0 tempo.

No inicio da vibracao da nossa corda, se movimento e AMPLQ: a corda vai longe e volta a cada dois milissegundos. Confonne 0 tempo vai passando, 0 vai-e-vem da

56 MSX - MUsica

corda fica cada vez rnenos amplo a~ cessar por completo. 0 volume do som vai, portanto, caindo, mas a frequencia de vibra<;ao da corda permanece sempre a mesma: a corda vai e volta sempre com 0 mesmo perfodo, apesar de it cada vez menos longe. A nota e sempre a mesma (La), porque a frequencia da nota e a pr6pria afinacao,

Urn outro tipo de envolt6ria muito comum e que causa bastante confusao entre forma de onda e envolt6ria e 0 vibrato.

E bastante diffcil explicar 0 que e 0 vibrato apenas por meio de palavras. Ele e urn recurso muito usado por cantores, organistas e violinistas para deixar uma nota mais "expressiva": e 0 "flutuar" de uma nota. A afinacao permanece a mesma mas 0 volume varia periodicamente com 0 tempo. aumentando e dirninuindo altemadamente.

Se urn vioIinista produz urn L~ central, seu arco esta, na realidade, fazendo com que a corda v~ e volte uma vez a cada dois milissegundos. Isto e a forma de onda.

Para produzir 0 vibrato, que e uma envolt6ria, ele faz urn outro rnovimento, muito mais lento, com 0 dedo que esta sobre a corda, fazendo com que 0 volume do som oscile. Esse movimento e um vai-e-vem de aproximadamente 200 MILISSEGUNDOS. Isso e a envolt6ria.

Urn diagrama do som produzido por esse violinista esta na Figura 6.2.

Amplitude

/ Envoltoria

Figura 6.2 Envoltdria do vibrato

o envelope ou envolt6ria 57

Quando se fala em envolt6ria e esta e representada por meio de um grafico, e costume omitir a forma de onda, ja que sua representacao apenas complicaria 0 grdfico, As envolt6rias dos dois exernplos apresentados (0 som de urna corda de violao rnorrendo e o violino executando urn vibrato) sao, respectivarnente, estas:

Amplitude

Vlolso

Tempo

Amplitude

Vibrato

Figura 6.3 Envoltdrias de violao e vibrato

Tempo

58 MSX -Miisica

Quando voce estiver vendo urn grafico de envolt6ria, lernbre-se, portanto, de que ele nada tern a ver com a forma de onda do evento sonoro (0 timbre do even to sonora). Podemos ter. dois eventos sonoros de mesma forma de onda, com envolt6rias diferentes (por exemplo, violino com e sem vibrato) ou dois sons de mesma envolt6ria e formas de onda diferentes, como por exernplo: urn cantor e urn violinista usando urn vibrato de mesma velocidade. 0 volume dos dois varia da mesma rnaneira, mas se formes observar ~s formas de onda (os timbres de cada urn) veremos que elas sao muito diferentes.

6.1 0 CONTROLE DE ENVOLTORIA NO MSX

o PSG, que e quem gera os sons no MSX, possui urn controle de volume. Se a volume do som produzido pelo PSG for variado com 0 tempo, teremos urna envolt6ria.

Por exemplo, se mandarmos a PSG produzir urn D6 com certo volume e formos graduabnente diminuindo esse volume ate que ele chegue a zero, estaremos produzindo urn som semelhante ao som de urn eorda de violao que vai morrendo poueo a poueo. Se, par outro lado, produzinnos urn som e fizermos com que seu volume altemadarnente aumente e diminua, estaremos fazendo urn vibrato. Isso e 0 que os dais programas-exemplos DECAl e VIBRA, respectivarnente, fazem.

Programa-exemp'o DECAl

~o SOUND 0.2~4 60 SOUND 1,O

100 PRINTuAPERTE ClUALtlUER TECLA PARA TOCARu 105 PRINT "au ESC PARA PARAR"

110 A.-INKEV$

120 IF A.-"11 THEN 110

130 IF A.-CHR.(27) THEN END 200 FOR N-l~ TO 0 STEP -.0~ 210 SOUND 8,N

220 NEXT N

230 GOTO 110

o envelope ou envolsoria 59

Programa-exemplo \'tBRA

~o SOUND 0_254 60 SOUND 1,0

100 PRINTIIAPERTE QUALQUER TECLA PARA TOCARII 105 PRINT liE ESC PARA PARARII

110 A.=INKEVS

120 IF AS-"II THEN 110 150 A.-INKEV.

160 IF A.-CHR.(27) THEN 40~ 200 FOR N-l1 TO 1~ STEP .1 210 SOUND B,N

22(1 NEXT N

230 FOR N-15 TO 11 STEP -.1 240 SOUND 8,N

250 NEXT N

300 GOTO 150

400 SOUND 8,~

410 END

No programa DECAl, 0 loop das linhas 200 a 220 e que faz 0 volume cair, de 15 a 0, com urna velocidade de 0.05 por iteracao, No programa VIBRA, 0 par de loops das tinhas 160 a 250 faz 0 volume subir e depois descer entre os volumes 11 e 15, com urna velocidade de 0.1.

Se voce mudar as constantes dos loops, estara mudando a envolt6ria.

Experimente aumentar e diminuir as velocidades e lirnites inferior e superior.

Lembre-se da func;ao dos registradores do PSG. Os registradores de mimeros 0 e 1 controlam a afinacao do canal A. Nas linhas 50 e 60, em ambos os prograrnas, 0 canal A esta sendo programado para emitir urn La 440.

o pr6xirno programa-exemplo (SOPRO) gera urn som que tern urna envolt6ria rnais cornplexa, caracteristica dos instrurnentos de sopro. 0 sorn, no momento em que e eriado, tern urn volume alto (no momenta em que 0 instrurnentista sopra), que rapidamente eai e se mantem constante (enquanto 0 instrumentista mantem 0 ar fluindo). Ap6s urn

60 MSX - MUJica

certo tempo, ele morre rapidamente (quando 0 instrumentista para de soprar). A forma da envolt6ria e a seguinte:

Figura 6.4 Envcltdria de instrumento de sopro

Programa-exemplo SOPRO

50 SOUND O,2:54 60 SOUND 1., 0

100 PRINT"APERTE QUALQUER TECLA PARA TOCARII 10!!5 PRINT "OU ESC PARA PARAR"

110 At .. INKEVt

120 IF At-" II THEN 110
160 IF A.-CHR.(27) THEN 400
200 FOR N-15 TO 8 STEP -.2
210 SOUND 8~N
220 NEXT N
230 FOR N-l TO 20Qf
240 SOUND 8,8
2:50 NEXT N
260 FOR N-12 TO 0 STEP -.5
270 SOUND 8,N
280 NEXT N
300 80TO 1.10
400 SOUND 8,O
410 END o envelope ou envolt6ria 61

As linhas 200 a 220 fazem com que 0 som se inicie com urn volume 15 e caia ate 8. Nas linhas 230 a 250 ele se mantem eonstante em 8 por urn tempo e, entao, cai ate 0, controlado pelas linhas 260 a 280.

6.2. A REPRESENTACAO ADSR

No ultimo programa-exernplo (SOPRO) vimos urn som caracterfstico dos instrumentos de sopro. Ele e urn born exemplo de urn evento sonoro que pode ser representado por uma envolt6ria ADSR.

Esta sigla e uma abreviatura de "Attack-Decay-Sustain-Release". A traducao literal seria "Ataque-Decaimento-Sustentru;ao-Soltura". No entanto, no Brasil, s6 a traducao ataque e usada pelos mtisicos. As outras tr& mantem-se em Ingles,

As envolt6rias ADSR sao todas aquelas que podem ser divididas em quatro etapas: uma primeira onde 0 volume parte do zero e chega a urn pico (0 ataque), urna segunda onde 0 volume eai desse pieo ate urn nfvel intermediario (0 decay), uma terceira onde 0 volume perrnanece eonstante ou eai urn poueo (0 sustain) e uma quarta onde 0 volume eai desse patamar constante ate 0 zero (0 release).

Na verdade, 0 sustain e 0 release sao urn poueo mais complicados que isto em urn sintetizador real: ambos estao eondicionados ao tempo em que a tecla do sintetizador esta acionada. Mas, no nosso easo, vamos usar a versao simplifieada de ADSR apresentada acima,

Urna representacao grafica de uma envolt6ria ADSR esta na Figura 6.5.

Decay

Sustain

Figura 6.5 Envolt6ria ADSR

62 MSX - MUsica

Nem todas as envolt6rias podem ser representadas apenas com os quatro parametros das envolt6rias ADSR. Como exernplo de uma envolt6ria nao-ADSR temos 0 vibrato. 0 vibrato nao pode ser representado como urn simples "subir-e-depois-descer", Ele e uma envolt6ria cfclica, impossfvel de ser representada por quatro segmentos de reta ..

No entanto, a maioria dos instrumentos aciisticos tern envolt6rias que podem sec aproximadamente representadas pelo modelo ADSR.

A envolt6ria da corda do violao, que ja estudamos, pode ser expressa, em termos de ADSR, da seguinte maneira: ataque instantaneo (0 volume vai de zero ate 0 pica instantaneamente), decay bern lento, sem sustain nem release.

A envolt6ria ADSR do instrumento de sopro que acabamos de ver e a seguinte: ataque instantaneo, decay rapido, sustain cazoavelrnente longo e release rapido,

Os instrumentos de percussao sao, geralmente, representados da seguinte maneira: ataque rapido, decay rapido, sem sustain e release rapido ou lento, dependendo do instrurnento. Uma caixa de bate ria tern urn release rapido, 0 som rnorce rapidamente. 13. urn tfmpano ou urn prato de bateria tern urn release bern lento, 0 som demora a rnorrer (Figura 6.6).

Figura 6.6 Envoltdrias de caixa e prato de bateria

o caso dos instrumentos de percussao sera tratado mais longamente quando falarmos do programador de ritmos.

o envelope ou envoltoria 63

o pr6ximo prograrna-exemplo e exatamente urn controlador de envolt6ria ADSR. Para cada urn dos quatro parametres (A taque, Decay, Sustain e Release), dois n6meros sao necessaries: a velocidade do parametro e a sua duracao,

Nao basta simplesmente dizer, por exemplo, que 0 sustain "demora pouco" ou que ele "sobe rapido", Os dois ntimeros sao necessarios.

A velocidade indica a "inclinacao" da reta. Quanto maior 0 mimero, mais inclinada a reta.

A duracao indica por quanta tempo 0 som estara nesse parametro. Quanto maior o mimero, mais tempo 0 som fica dentro do parametro,

Exemplo: quanto maior a duracao do ataque, mais tempo ele demerara, A rapidez com que 0 som sobe durante esse tempo de ataque especificado, no entanto, e especificada pela velocidade do ataque.

Programa-exemplo ADSR

60 DIM VE(3),TE(3)

130 SOUND 8,0:S0UND 0,0:aOUND 1,3 150 ON INTERVAL-4 BOGUe ~000

430 VE(1)--VE(1):VE(2)--VE(2):VE(3)--VE(3) 4:50 CLS:PRINT"SIMULADOR DE ENVOLTORIA" 4~0 PRINT

:500 INPUT"VELOC. DE SUBIOA DO ATAQUEH,VE(0) ~10 INPUTuTEMPO DE ATAQUE"ITE(0)

520 INPUT"VELOC. DE DESCIDA DO DECAY".VE(l) ~25 VE ( 1 ) --VE ( 1 )

:530 INPUT"TEMPO DE DECAY"ITE(l)

~40 INPUT"VELOC. DE DESCIDA DO 6U8TAIN"IVE(2) e;4~ VE(2)--VE(2)

5:5(1 INPUTIITEMPO DE SUSTAIN"ITE(2)

:560 INPUTIIVELOC. DE DE8CIDA DO RELEA8E".VE(3) ~b~ VE(3)--VE(3)

:570 INPUT"TEMPO DE RELEABEIIITE(3) ~oo V-0 • VOLUME INICIAL - 0

o~o NI-0 • NIVEL • 0 (ATAQUE)

64 MSX - Ml1rica

670 T-0 ' TEMPO OESTE NIVEL • ~ 700 TT-0 ' TEMPO TOTAL - Q

1000 SCREEN 2,0,0:0PEN "aRP:" FOR OUTPUT AS II 1010 P8ET(10,1~0)

1020 T-T+l

102~ TT-TT+l

1030 V-V+VE (NI)

1040 IF V>1~ THEN V-l~ 10~O IF V,0 THEN V·~

1060 IF T(TE(NI) THEN 1100 1070 T-0

lOBO NI-NI+1

1090 IF Nl(4 THEN IF TE(NI)·-~ THEN 10B~ 1100 LINE -(10+TT*~.l~g-V*10)

1110 IF NI<4 THEN 1020

1200 T-0

1210 NI-Q

1220 V-0

1230 TT-0

1 aoo PSET ( 10. 160) : PR I Nntl , II APERTE QUALQUER TeCLA" 1810 IF INKEV,·IIII THEN 1810

2000 INTERVAL ON

200~ IF NI(4 THEN 200~ 2010 INTERVAL OFF

2020 SOUND a,0

20~0 CLOSE 1

2500 INPUT"REPETIR a BONII,A'

2:;10 IF LEFT'CAt,1)-"6" OR LEFT.CA_,1>-".1I THEN 6(l10 2600 INPUT"PROGRAMAR NOVA ENVOLTORIAIIIA.

2610 IF LEFT$(AS,l)-"S" OR LEFTS(AS,1).lIs" THEN 430" 2700 CLS:END

~OOO INTERVAL OFF

~003 IF NI>3 THEN 520Q :500~ SOUND 8,V

~010 LINE(9+TT*5,149-V*1~)-(11+TT*5,151-V*lG),1,BF ~030 TT"TT+l

5040 T"T+1

50S0 V-V+.VE (Nt')

~060 IF V>l~ THEN V"l~ 5070 IF V<0 THEN V-0

5100 IF T(TE(NI) THEN ~200 ~120 T-0

o envelope ou enllolt&rilJ 65

:5130 ~l~O ~200 ~210

NI"NI+l

IF NI(4 THEN INTERVAL ON RETURN

IF TE(NI).0 THEN ~130

o programa tern urn fuacionamento muito simples .. Basta. introduzir os valores de velocidade e duracao para cada urn dos quatro parametros (A, D, S e R).

o programa tern outra caracterfstica interessante: 0 grafico -da envoltoriae rnostrado ap6s a programacao e conforme 0 som vai sendo produzido,

Para construir a envolt6ria, 0 programa lanca mao de urn recurso excelente do BASIC-MSX: a instrucao INTER V AL.

o comando da linha 150 faz com que a cada }/15 de segundo a sub-rotina 5000 seja executada. Para ativar esse processamento peri6dico, a instrucao INTERVAL ON tern de ser executada, como na linha 2010. Executando INTER V AL OFF, voce: estara desligando esse efeito.

A rotina 5()(x) e exatamente a que processa 0 envelope, aumentando ou diminuindo 0 som. Ela sabe em que pararnetro do envelope estamos por meio do valor da variavel NI (nfvel), Essa variavel assume os vaIores: 0 (para ataque), 1 (para decay), 2 (para sustain), 3 (para release) e 4 (para nenhum sam). Os valores de velocidade e tempo para cada parametro estao nos vetores VE e TE,. respectivamente,

Na Figura 6.7 estao os valores de velocidade e duracao para cada urn dos parametres das envolt6rias ja vistas: corda, sopro e percussao,

Lernbre-se, no entanto, que os sons que voce: vai ouvir com esse programa sao sons que tSm uma envoIt6ria, e sornente uma envolt6ria, semelhante ao som do instrumento, Isso garante urn sam apenas vagamente semelhante ao sam original. pois apenas a envolt6ria e a duracao do evento sonoro estao sendo controladas, Os outros dois parametros (timbre e afinacao) mio estao sendo contro'ados aqui, Voce aprendeu a controla-Ios nas secoes anteriores. Todos os controles serao unidos num s6 programa no nosso primeiro projeto, logo rnais a frente.

66 MSX - MUsica.

Corda:

Ataque: V= 15, T= 1 Decay: V= 1, T= 15 Sustain: V=O, T=O Release: V=O, T=O

Sopro:

Ataque: V = 15, T= 1 Decay: V=2, T=3 Sustain: V=O, T=20 Release: V= 1, T=9

PerCU8SaO:

Ataque: V= 15, T= 1 Decay: V=3, T=2 Sustain: V=O.5, T=20 Release: V=O, T=O

Figura 6.7 Valores para Corda, Sopro, Percussao

6.3 AS ENVOLTORIAS PRE~PROGRAMADAS DO MSX

Ate agora, construfrnos nossas envolt6rias alterando gradualrnente e diretamente o registrador de controle de volume. Quando 0 controle de volume nao e alterado, ternos uma envolt6ria de volume constante.

Essa e a maneira como 0 PSG trabalha no rmalmente: 0 volume pennanece constante ate que urn novo valor de volume seja programado.

No entanto, 0 PSG ja tern, embutido, urn controlador de envolt6ria. Se esse controle de envolt6ria for ativado, 0 volume sera variado automaticamente. Nao e necessario que 0 usuario varie 0 controle de volume por rneio do programa.

Voce deve estar imaginando por que entao complicamos tanto 0 assunto, fazendo urn controlador de envolt6ria ADSR, que age diretamente sabre 0 controle de volume. Por que nao usamos logo 0 controle autornatico de volume?

A resposta e:

o controle autornanco de envolt6ria do PSG .~ simples demais para usa em Musica.

o envelope ou envolt6ria 67

Alern dos tipos de envolt6ria serern muito simples, apenas uma pode sec selecionada de cada vez .. T ados os tres canais tern de ter, ob riga toriamente , a mesma envolt6ria automatica.

Todos esses problemas podem ser contomados com 0 controleexplfcito da envolt6ria.

De qualquer modo, vejamos como fazer para utilizar a en volt6 ria pre-programada, que pode servir como envoIt6ria de "emergencia" quando nao estamos com paciencia ou tempo suficiente para desenvolver a envolt6ria manual. au para aplicacoes onde a simplicidade desse controle seja adequada.

Em primeiro lugar, vejamos como selecionar uma dada envoltoria dentre as oito oferecidas peIo PSG. 0 registrador que seleciona 0 tipo de envolt6ria eo 13. Dependendo do valor que for colocado oeste registrador teremos urn tipo. Na Figura 6.8 temos todos os oito tipos de envolt6ria oferecidos.

Registrador 13

Tipo de Envo ltoria Autornatica

0,1,2,3 e 9

4,5,6,7 e 15

8

10

11

12

13

14

T = per (od 0 nos registradores, 11 e 12 Figura 6.8 Envolt6rias automaticas do MSX

68 MSX - MUsica

Como podemos perceber, nenhuma das envolt6rias seria adequada para reproduzir as que ja geramos manualmente.

As envolt6rias cfclicas (valor no registrador = 10 ou 14) se prestam para simular urn vibrato.

Depois de selecionado 0 formato da envolt6ria temos de especificar a duracao, assim como no programa-exemplo ADSR. No gerador do PSG temos, no entanto, formatos de envolt6ria com apenas urn segmento de reta ou com varies segmentos de mesmo comprimento (as duas envolt6rias cfclicas), Apenas uma duracao deve, portanto, ser especificada. A duracao e especificada nos registradores 11 e 12.

o registrador 11 e ° registrador de ajuste grosso eo 12 eo registrador de ajuste fino. Cada urn pode receber urn valor de 0 a 255.

A unidade de tempoe 256 vezes 0 perfodo do clock. Sen do T 0 perfodo da envolt6ria em segundos e Tmsx 0 periodo para os registradores do PSG, temos:

FCxT Tmsx = 256

o valor de Tmsx para uma envolt6ria de urn segundo seria, no HOT -BIT:

T 1789770 x 1 = 6991

msx = 256

Esse perfodo da envolt6ria deve ser repartido entre 0 par formado pelos registradores 11 e 12, segundo as conhecidas expressoes:

Grosso = T rnsx \ 256 Fino = T msx MOD 256

Se T msx for maior que 32767. no entanto, voce deve usar as expressoes abaixo ou ter' urn erro de "Overflow".

Grosso = (T msx - 32767) \ 256 + 128 Fino = (T msx - 32767) MOD 256

Alern de programar 0 tipo de envolt6ria e a sua duracao, temos de programar a

o envelope ou. envolt6ria 69

frequencia do canal e colocar 0 volume em 16. Esse ultimo valor e obrigat6rio.

Se 0 volume do canal tiver um valor menor que 16, a envolt6ria nao sera automatica,

o valor 16 no registrador de volume e quem indica que estamos usando uma envolt6ria autornatica e nao 0 controle manual de volume.

o pr6ximo programa-exemplo (ENVPSG) permite que voce experimente as envolt6rias pre-fabricadas do PSG. Para utiliza-lo, voce deve introduzir os valores de tipo de envolt6ria (0 a 15) e a duracao da envolt6ria (0 a 65535).

Programa-exemplo ENVPSG

50 SOUND O,254 60 SOUND 1,O

150 INPUT"NUMERO DA ENVOLTORIA (0 A 15)"IEN 160 INPUTIIPERIODO DA ENVOLT. (0 A 6553~)"'PE 170 IF PE)32767 THEN 230

180 SOUND 11,PE MOD 2~6

190 SOUND 12,PE \ 256

200 aOTO 280

230 SOUND 11, (PE-32767) MOD 256

240 SOUND 12, (PE-32767) \ 256 + 128 280 SOUND 1::5,EN

290 SOUND 8,16

300 PRINT"APERTE QUALQUER TECLA PARA PARAR" 310 IF INKEV.-"IITHEN 310

320 SOUND 8,O

400 INPUT"QUTRA ENVOLTORIA"IA$

450 IF LEFT. (AS, 1) _liS" OR LEFT. (A., 1) 111111•11 THEN 150 600 END

As linhas 50 e 60 programam a frequencia para 0 La central. 0 perfodo e programado nas linhas 180 e 190 ou nas linhas 230 e 240, conforme ele for maior ou menor que 32767. A linha 280 prograrna 0 tipo do envelope, e a linha 290 habilita a execucao do envelope.

CAPiTULO 7

Ruioo

~---------------------------~~. <.

Se voce leu a parte referente ao PSG no manual do seu MSX, deve ter visto que ele tern urn gerador de ruido, ehamado, por vezes, de gerador de noise ou rumor.

Ell? primeiro lugar, vejamos qual e a definicao de rufdo,

Consideramos "rufdo" como sendo 0 sam que nao tern uma afinacao precisa.

Todo 0 som que DaO pede ser caracterizado como sendo urn La ou 06 au qualquer nota definida e tecnicamente definido eomo sendo urn ruido.

Mais teenieamente urn poueo: qualquer forma de onda que nao tenha urn perfodo de oscilacao identificavel e urn rufdo.

Veja a Figura 7.1. Nela temos a representacao de uma oscilacao, Compare essa figura com qualquer uma das formas de onda da Figura 5.1.

Amplitude

Tempo

Figura 7.1 Rufdo

70

Ruldo 71

Note como, no rufdo da Figura 7.1, vCK':6 nao e capaz de identificar a vai-e-vern constante que caracteriza 0 sam afinado.

Para que urn som seja afinado, ele tern de ter uma frequencia precisa. Para que ele tenha uma frequencia precisa, deve ser possfvel identificar a vai-e-vem, e 0 tempo de sua oscilacao deve poder ser medido.

Como exemplo de eventos sonoros cotidianos que contern ruido au que sao exc lusi vamen te rufdo temos: batida na madeira, sons de motor, 0 som do vento etc.

Pense agora no vento soprando por uma fresta de janela, como nos filmes de terror. Quanto rnais forte ou mais Iraco a vento, podernos perceber urn certo tipo de "afinacao" no ruldo, Quanto mais forte 0 vento, rnais "agudo" fica a rufdo, Apesar de nao podermos identificar qualquer nota precisa nesse rufdo, podemos cornparar rufdos e dizer: "este rufdo e mais agudo (au mais grave) que aquele outro".

E agora, como explicarnos a aparente afinacao de urn som que, por definicao, nao pode ter afiaacao?

Em primeiro lugar, lembre-se de que urn timbree visto, pela analise de Fourier, como urna soma organizada de frequencies diferentes. 0 que acontece com 0 rufdo, segundo esse ponto de vista, e que ele contem, na verdade, uma soma descontrolada de imimeras freqtiencias diferentes.

Mesmo dentro das frequencias descontroladas, geralmente podemos especificar qual 0 espectro ou, em outras palavras, qual a, faixa de variacao dessas frequencias descontroladas, Essa faixa pode abranger frequencias mais altas ou mais baixas 0 que podera fazer com que percebamos uma especie de afinacao no rufdo,

Nenhurn rufdo e afinado, ou deixaria de ser rufdo. Pode-se falar, no entanto, em "frequencia do rufdo" como uma forma simplificada de se dizer "faixa media de frequencias que comp6em 0 ruido",

E isso 0 que acontece com 0 vento que sopra najanela, por exemplo. Da rnesma forma" podemos dizer que 0 sam de urn vidro quebrandoe mais agudo do que 0 som de urn trovao, Estamos, na verdade, falando de uma media de frequencias componentes.

Para que alguem pode querer, conscientemente, colocar ruido em mdsica?

o problema esta, mais urna vez, em considerarmos 0 ruido como sendo nao-rnusical,

o rufdo pode perfeitamente ser musical. T ada percussao tern componentes de

72 MSX -MUsica

rufdo, isso quando nao e completamente composta dele.

Niio s6 a percussao mas outros instrumentos musicais tern componentes de rufdo, Urna flauta, no momenta exato em que e soprada, tem componentes de ruido que no instante seguinte deixam de existir, E a intensidade do primeiro sopro que produz essas componentes.

A rigor, qualquer som produzido natura1mente contem rufdo, em maior ou menor quantidade.

Em urn sistema de producao de eventos sonoros nao pode faltar a capacidade de gerar rufdo e controlar sua faixa de freqtiencia,

o PSG e capaz de ambos eo acesso a essa caracterfstica e conseguido atraves dos registradores 6 e 7. Em primeiro lugar deve-se selecionar a frequencia do rufdo com 0 registrador 6, depois habilitar a saida de rufdo com 0 valor correto no registrador 7 (chamado de registrador mixer). Por fun, temos de programar 0 volume no registrador correspondente ao canal. Vejamos em detalhes.

A faixa de frequencias e escolhida da mesma forma que a afinacao de urn canal: atraves do perfodo medido na unidade padrao do PSG (16 vezes 0 perfodo do clock).

A expressao para 0 calculo desse periodo e identica a da afinacao:

FC TRmsx = 16 x FR

Onde TRmsx e 0 perfodo do ruido, FC e a freqiiencia do clock e FR e a freqiiencia de ruido desejada.

o perfodO do ruldo ~ apenas urn para os tr~s canals e ele pede tar valoras apsnas na faixa Oa31.

Se quisermos, por exemplo, urna frequencia media de rufdo (PR) da ordem de 7000 Hz devemos programar 0 MSX (aqui urn HOT -BIT com FC = 1789770) com a valor:

1789770 = 15 98

16 x 7000 '

ou, aproximadamente, 16.

Rufdo 73

Para programar esse valor de frequencia de ruido, executamos a instrucao SOUND.

SOUND6,16

Mas isso nao garante que 0 ruido seja produzido, Precisarnos ainda programar 0 mixer e 0 volume.

"Mixer" e a palavra usada para designar 0 registrador rnimero 7, cuja traducao literal e "misturador". 0 que ele faz e controlar como 0 som afinado deve ser misturado com 0 ruido, para cada urn dos tres canais.

Como ja vimos, cada canal pode produzir urn som afinado, cuja frequencia e controlada por urn par de registradores. Por exemplo: 0 sorn afinado do canal B e controlado pelo par formado pelos registradores 2 e 3. Chamarernos, aqui, 0 som afinado de "nota".

Vimos tarnbem que cada canal e capaz de emitir, alem da nota, urn rufdo, que tern uma afinacao tinica para os tres canais, controlada pelo registrador 6.

o papel do mixer e programar cada canal separadamente para a producao de nota, rufdo, ambos ou nenhum sam.

Ele e programado segundo os valores mostrados na Figura 7.2

+ 1 - OESLIGA NOT A A + 2 - OESLIGA NOT A B +4 - OESLIGA NOTA C + 8 - DESLIGA RUIDO A + 16 - DESLIGA RuiDO B + 32 - DESLIGA RUIOO C

Figura 7.2 Pmgramacjio do Mixer

Nao falamos no mixer ate agora porque quando 0 MSX e ligado, 0 mixer e imediatamente programado para a producao de notas e somente notas. Vejamos qual seria o valor a colocar no registrador 7 para que isso acontecesse.

Para que 0 rufdo fosse desligado teriamos de somar os seguintes valores: 8

74 MSX - MUsica

(desliga rufdo A), 16 (desliga rufdo B) e 32 (desliga rufdo C). 0 total e 56.

A instrucao abaixo, portanto, habilita apenas a producao de notas, oos tres

canals:

SOUND 7,56

A instrucao para habilitar apenas ruldo, nos tres canais, seria:

SOUND 7,7 (1+2+4=7)

A instrucao para habilitar notas e rufdo nos tres canais, seria:

SOUND 7,0

Vamos supor que a mixer ja esta programado para a producao de rufdo no canal escolhido, com au sem producao de notas, como desejado. Falta ainda urn pequeno detalbe: 0 controle de volume no canal em que queremos 0 rufdo.

Ja vimos como faze-lao Basta colocar 0 valor de volume (0 a 15) no registrador 8, 9 ou 10, conforme 0 canal.

Urn exemplo completo: programar 0 PSG para produzir urn ruido (e apenas rufdo) no canal B (e apenas neste canal), com frequencia media de 5000 Hz e volume 13.

Em primeiro lugar, 0 valor do perfodo sera (para a HOT -BIT) 1789770/(16x5000), que e aproximadamente igual a22.

o valor a colocar no mixer para a producao de rufdo apenas no canal B e: 1 (desliga nota A) + 2 (desliga nota B) + 4 (desliga nota C) + 8 (desliga rufdo A) + 32 (desliga rufdo C) que e igual a 47.

A sequencia de comandos SOUND sent

SOUND 6,22 (programa freq. rufdo)

SOUND 7,47 (programa mixer para rufdo em B) SOUND 9,13 (programa volume canal B)

Para silenciar 0 canal B:

Rutdo 75

SDUND9,O

Uma Ultima nota interessante sobre 0 controle de rufdo do PSG:

o rufdo nao pode ser controlado pela instru~ao PLAY. S6 a instru~ao SOUND e capaz disso.

Vejamos 0 programa-exemplo RufDO onde simulamos 0 som do vento entrando por uma fresta.

Programa--exemplo RUIDO

10 R-RNO(-TIME)

100 PRINTIIAPERTE QUALQUER TECLA PARA PARARII 110 FR-0

150 IF INKEY$()IIII THEN 1~00

160 PRINT"FREQUENCIA DE RUIDD -"IFR 170 SOUND 7,47

180 SOUND 9,13

250 IF FR(16 THEN 400 260 F2-INTCRND(S)*14)

270 FOR N-FR TO F2 STEP -.01 280 SOUND 6,N

290 NEXT N

300 GOTO :500

400 F2-1NTCRND(B)*14+16) 410 FOR N-FR TO F2 STEP .01 420 SOUND 6,N

430 NEXT N

500 FRIIIIF2

510 GOTO 150

1000 SOUND 7,56

1010 SOUND 9,O

1020 END

76 MSX-MWica

Esse programa faz urn vai-e-vem com a frequencia de rufdo, caminhando para uma frequeneia alta quando a variavel FR indica uma frequencia baixa e vice-versa.

o mixer e programado com 0 valor 47 na linha 170, habilitando apenas a produ~ao de rufdo no canal B. Quando 0 programa e abandonado, a linha 1000 volta a habilitar a producao de notas para os tres canais.

Isso encerra a parte referente a rufdo e tambem a parte generica sobre 0 PSG.

Com 0 controle de envelope, 0 controle de afinaeao, 0 controle parcial de timbre e 0 controle de ruido, vamos partir para nosso primeiro projeto: 0 sintetizador.

CAPiTULO

8

PROJETOS

8 .. 1.0 MSX COMO INSTRUMENTO MUSICAL

Nosso micro pode servir como urn instrumento musical para execucao ern tempo real. E claro que ele jamais vai ser tao poderoso como urn instrumento construido exclusivarnente para esse fun, mas ele serve como bancada de teste e de aprendizado na geracao de sam.

Urna vantagem muito grande de se usar 0 micro como sintetizador e que voce, ao construir um programa de simulacao desse lnstrurnento, tera de se preocupar com todos os detalhes de construcao de urn sintetizador, detalhes esses que poderiam lhe passar desapercebidos no dia-a-dia, Dentre esses detalhes de construcao estao: flexibilidade (como fazer para que esse instrumento possa variar seu timbre, envelope etc.), resposta (como fazer para que 0 som seja produzido assim que 0 instrumentista pressione uma tecla), recursos (como colocar 0 controle de oitava, portamento etc.) ..

AMm de todos esses problemas, existe urn problema pratico para 0 uso do MSX como instrumento: 0 teclado. 0 teclado do micro tende a imitar urn teclado de rnaquina de escrever e nao urn tecIado de piano. Torna-se diffcil, portanto, simular um teclado musical nele, Voce jamais sera urn virtuose num MSX.

Outro problema serio de construcao ffsica do micro: os controles. Como fazer para simular os controles de urn sintetizador?

Urn instrumento real. sempre vai ganhar essa parada. E sempre muito mais facil e preciso girar urn botao ou ligar uma chave num sintetizador do que executar uma sequencia de comandos de teclas em urn micro.

77

78 MSX-MUsica

Poderfamos incorporar no nosso projeto urna tela que simulasse 0 console de urn sintetizador mas preferimos nao faze-Io,

T oda a parte de processamento visual e .interface com 0 usuWio. rnals elaborados. deste e dos outros projetos.lica a cargo do leitor,

A parte referente a comunicacao com 0 usuario e os con troles estiio no nivel rnais simples posslvel,

Tomamos essa decisao por varias razoes, mas a principal delas e a do tamanho dos programas,

Por experiencias anteriores, sabemos que a parte de interface com 0 usuario, em programas desse tipo, toma cerca de 80% do programa em BASIC. Apenas os restantes 20% sao efetivamente ligados ao processamento do som, Urn exernplo: no programa de simulacao de instrumento TOQUE!, por n6s desenvolvido, apenas 22% das linhas do programa BASIC sao dedicadas a funcoes realmente essenciais de geracao e controle do som.

As versoes dos programas com os outros 70% de processamento visual e interface com 0 usuario estao disponfveis em fita.

o primeiro projetoe 0 sintetizador SINT.

Programa-exemplo SINT

60 DIM VE(3),TE(3),FR(16),REXt16,5) 70 FOR N-(II TO 16:READ FRtN):NEXT N

80 DATA e~~,B07.762.71q.67q.641,60~,571,~39,50B,480,4~3,42a,404,381,360,339 90 TC.""AWBEDFTGYHUJKOLPC"

100 RT-l

130 SOUND B,0:S0UNO 9,0:BOUNO 10,0

140 SOUND e.0:S0UND l,0:S0UND 2,0:S0UND 3,0:60UND 4,0:S0UND 5,13 150 ON .INTERVAL-6 GOSUB 51313"

430 VE(1).-VE(1):VE(2)--VEC2):VE(3)--VE(3) 450 CUi: PR INT" S'INTET I ZADOR"

460 PRINT

:500 INPUT"VELOC. DE BUBIDA DO ATAQUE"IVE(0) ~10 INPUT"TEMPO DE ATAQUE",ITE(01

:520 INPUT"VELOC. DE DESCIDA DO DECAY"IVEtl) 525 VE ( 1 ) --VE ( 1 )

:530 INPUT"TEMPO DE DECAY" I TE (1)

540 INPUT"VELOC. DE DESCIDA DO SUSTAIN" I VE (2.) :54:5 VE(2)"-VE(2)

5:50 INPUT"TEMPO DE SU5TAIN"ITE(2)

:560 INPUT" VELOC.. DE DEBelOA DO RELEASE" I VE (3·)

:56:5 VE (3) "-VE (3) .

:570 JNPUT"TEMPO DE RELEASE"ITE(3) 600 v-III • VOLUME INICIAL- 0

Projetos 79

6~0 NI-g • NIVEL - (II (ATAQUE) 670 T-0 • TEMPO OESTE NIVEL - ~ 700 TT-0 • TEMPO TOTAL .. 0

BOO INPUT"RELACAO VOLUME FUND/HARM I",VI eo~ INPUT"RELACAO FREQ FUND/HARM I"'RI 810 INPUT"RELACAO VOLUME FUND/HARM 2",V2 Bl~ INPUT"RELACAO FREQ FUND/HARM 2"IR2 830 INPUT"RELACAO DE TOM"JRT

B40 INPUT"RUIDO (S/N)",A.

B~O IF LEFT.(A •• ll-"S" OR LEFT. (A., 11 .. "." THEN BB0 860 SOUND 7,!56

B70 GOTO 930

BBO SOUND 7,48

890 INPUT"PERIODO DO RUIDO (0-31)" ITR 900 SOUND 6,lR

930 FOR N-QI TO 16

9~0 REY.(N,0)"'FR(N)\RT MOD 2!56 9~~ REY.(N,I)-FR(N)\RT \ 2!56

960 REX(N,2)-FRCN)\RT\Rl MOD 2!56 96S REX(N,3)"FR(N)\RT\Rl \ 2!56 970 REY.CN,4)-FRCN)\RT\R2 MOD 2!56 97!5 REY.(N,S)-FRCN)\RT\R2 \ 2~6

990 NEXT N "" "ll 1 000 SCREEN 2: (II. 0: OPEN "GRP:" FOR OUTPUT AS .. 1 1010 PBETCI0,7:;)

1020 T-T+l

102:; TT-TT+l

1030 V-V+VE (NI)

1040 IF V)I!5 THEN V-IS 10S0 IF V(0 THEN V-0

1060 IF T(TECNI) THEN 1100 1070 r-0

lOBO NI-NI+l

1090 IF Nl(4 THEN IF TECNI)-' THEN 1080 1100 LINE -(10+TT*2,7S-V*S)

1110 IF NI(4 THEN 1020

1200 T-0

1210 NI-4 • PARA NAO GERAR SOM 1220 V-0

1230 TT-0

1300 PSET(10,B0):PRINT*l,·TECLADO :M

1310 PSETCUI,9:i):PRINT*I," WET V U 0 pot 1320 P5ET(10,103):PRINT*l," A B D F G H J K L~" 1330 PSET (20,123): PRINT4U, -ssc PARA TERMINAR" 1:500 INTERVAL ON

lBOO A.-INKEV.

1810 IF A.-"" THEN INTERVAL ON:GOTO 1800 1820 INTERVAL OFF

1830 N-IN8TR(TC.,A.)-1 IB~O IF N>-0 THEN 1900

1869 IF A.-CHR.(27) THEN 2000 1870 INTERVAL ON

ISSO GOTO lB00

1900 SOUND a,0:S0UND 9,1lI:80UNj> 10,eII 19S0 SOUND 0,REr,(N,IlI)

19S~ SOUND l,RE%(N,ll

1960 SOUND 2.RE~(N,2)

1965 SOUND 3.REX(N.3)

1970 SOUND 4.REX(N.4)

197:5 SOUND ~.REX(N,~)

80 MSX -MUsico

19BO SOUND 8,VE(01:S0UND 9,VE(0)/Vl:S0UND 10,VE(0)/V2 198~ T-0:V-0:NI-0 • PO DE PRODUZIR SON

199:i GOTO 1800

2000 INTERVAL OFF

2020 SOUND B,0:80UNO 9.0:80UND 10,0 ;20:50 CLOSE 1

2500 INPUT"REPETIR 0 80M"IA.

2510 IF LEFT. CA., 11-"9" OR LEFT$IA.,l)-"." THEN 609 2600 INPUT"PRDGRAMAR NOVO SOM"IA.

2610 IF LEFT$CA.,l)-"S" OR LEFT.CA.,I)""Ii" THEN 430 2700 CL.6:END

:i000 INTERVAL OFF

5003 IF NI>3 THEN :i3~Ql :i040 T-T+l

:i0:i0 V-V+VECNI)

50bO IF V>l~ THEN V-15 :i070 IF V<0 THEN V-0

50BO SOUND B,V:SDUND 9.V/Vl:S0UND 10,V/V2 :il00 IF T(TECNI) THEN 5200

5120 T-~

:i130 N-I-NI+l

5150 IF NI(4 THEN IF TE(NI)-0 THEN 5130 5200 INTERYAL ON

5210 RETURN

5300 SOUND 8,0:S0UND 9,0:80UND 10,0 5310 INTERVAL ON

:i320 RETURN

Esse programa e simplesmente a uniao das ideias apresentadas sobre sintese de som 00 MSX. Ele compreende os programas PIAN02 e ADSR com cootroles de ruido e oitava.

As perguntas feitas inicialmente sao as mesmas do ADSR, referentes aos quatro parametres da envolt6ria.

As perguntas seguintes sao referenes a frequencia e ao volume relativos das ondas a serem somadas. A frequencia e 0 volume de carla harmonico serao proporcionais a frequeneia e ao volume da fundamen tal.

A pergunta seguinte, "RELAC;Ao DE TOM" refere-se a uma constante para afinar ou mudar de tom todas as frequencias tocadas. Todas as frequencias serao multiphcadas por essa constante. Voce pode usar esse parametro para subir ou descer uma oitava, dando-lhe valores que sao potencias de 2.

Projetos 81

Em seguida ~ perguntado se voce deseja ruido no som final. Se voce responder que sim, tera de inforrnar 0 perfodo do rufdo,

As perguntas poderiam ser respondidas assim (entre parenteses estao alguns comentarios):

VELQCIDADE DE SUBIDA DOATAQUE? 15 TEMPO DE SUBlDA DO ATAQUE?I

iataque rapido)

VELOCIDADE DE DESCIDA DO DECA Y? 3

TEMPO DE DESCIDA DO DECA Y? I

(decay rapido)

VELOCIDADE DE DESCIDA DO SUSTAIN? 1 TEMPO DE DESCIDA DO SUSTAIN? 10

(sustain lento)

VELOCIDADE DE DESCIDA DO RELEASE? 2 TEMPO DE DESClDA DO RELEASE? 1

(release nipido)

RELA<;:Ao VOLUME FUND/HARM)? 1

(volume do harmonico 1 = volume da fundamental)

RELA<;:Ao FREQ FUND/HARM 1 ? 2

(a frequencia do harmonico a ser tocado no canal B ~ igual a 2 x frequencia da fundamental, ~ o segundo harmonico.)

RELA<;:A.O VOLUME FUND/HARM 2 ? 2

(volume do harm6nico 2 = 2 x volume da fundamental)

RELA<;:Ao FREQ FUNDIHARM 2? 4

(harmdnico 2 ~ 0 quarto harmonico)

RELA<;:AO DE TOM? 2

(0 teclado vai estar uma oitava acirna da afinac;ao original)

nuroo (SIN)? S FREQO~NCIA DO aufno ? 13

82 MSX - MUsica

As duvidas nesse projeto podem ser esclarecidas com facilidade. Basta voce olhar as listagens dos programas PIAN02 e ADSR, que sao os m6dulos que compoem este programa.

8.2. 0 MSX COMO PROGRAMADOR DE RITMOS

Nos capftulos anteriores, ja mencionamos algumas caracteristicas normalmente atribufdas aos instrumentos de percussao, Vamos falar urn pouco mais sobre eles,

o que e urn instrumento de percussao?

Como 0 pr6prio nome ja diz, sao os instrumentos cujo som e produzido pelo percutir ou chocar de urn objeto com outro.

Urn tamborim, por exemplo, soa quando a baqueta bate (perc ute) contra 0

couro.

Se formos levar a definicao ao pe da letra, poderernos concluir que 0 piano tambem e urn instrumento dessa categoria, pois nele ha uma percussao de urn martelo contra uma corda, e que 0 baixo eletrico tarnbem pode se comportar des sa maneira, quando 0 baixista funk bate na corda com 0 lado do polegar.

A definicao nao e, no entanto, interpretada tao literalmente. Sao usualmente considerados instrumentos de percussao, a bateria, 0 pandeiro, 0 xilofone e todos os outros onde 0 percutir eo ato mais caracterfstico da execucao.

o ato de percutir alguma coisa tern urn efeito interessante na envolt6ria do som produzido. A intensidade cresce muito rapidamente ate urn pica como efeito da batida (ataque instantaneo) e imediatarnente cai urn pouco quando 0 sistema "se recupera do choque" (decay rapido e curto). 0 sustain e 0 release variam de instrumento para instrumen to.

A envolt6ria de urn instrumento de percussao e, portanto, semelhante ada Fi-

gura 8.1.

Alem da envolt6ria caracterfstica, todo instrumento de percussiio tern ruido, de maior ou menor frequencia.

Nosso proximo projeto e 0 mais extenso desse livro. Isto se deve ao fato de ele ser urn programador de ritmos de tres vozes, Urn programa desse tipo sempre vai exigir urn editor que, por sua vez, vai exigir uma interface com 0 usuario de maior complexidade (movimentacao de cursor, atualizacao de tela, comandos, checagem de erros etc.).

Projetos 83

Figura 8.1 Envolt6ria da percussio

o programa leva 0 nome RITMO

Programa-exemplo RITMO

10 CLEAR ~000:DEFINT A-I

20 DIM IT(63,2),FF(03,21,FG(63,2),ARtb3),MX(63),VL(63,2),PR(5) 30 DIM PF(5),PG(~),PD(5).PMtS),CB.(10),MP(1~)

100 MP-0:IT.-" QWERT~

110 FOR ~-1 TO 5

120 READ PRtN),PFtNI,PG(N),PDtN),PMCN) 130 NEXT N

1~0 FOR N-0 TO 10

160 READ ca.(N),MP(NI 170 NEXT N

510 CP-0:TP-S

:520 GOSUB 6000'

700 GOsue 21l10i1

710 INTERVAL ON

1000 GOTO 1000

1997 .--------

1998 • COMPILA

1999 .--------

2000 FOR N-0 TO MP:FOR VZ-0 TO 2:VLtN.VZI-0:NEXT VZ:NEXT N

2003 LOCATE 0,39:PRINT"AGUARDE •.• "l

2005 FOR N-~ TO MP

2010 FOR vz-0 TO 2

2020 IF ITtN,VZ)-G THEN 2200 2030 V .. 12:K-1lI

2040 FFCN+K,VZ)-PFtITCN,YZ»

204:5 FG(N+K,VZ)-PGCITCN,VZ»

20S0 AR(N+K)-PRtIT(N,VZ»

2055 VLCN+K,VZI-V

2080 V-V-PDCITCN,VZ)I:K-K+l

2090 IF V>O AND K+N<-MP THEN 2f4~

2200 2220 2300 2997 2998 2999 3000 3002 3004 300B 3010 3020 3030 3040 30':10 3100 3110 3115 3120 3125 3150 3160 3170 3200 3210 3500 3:510 3':120 3:530 3540 3:5:50 3560 3:570 3997 3998 3999 4000 4010 4020 4030 4040 4100 4110 4120 4130 4140 41:50 4160 4170 4190 4190 4200 4997 499B 4999 5000 :5010 :5020 5030 :5040

84

MSX-MUsica

NEXT VZ MX(N)-PM(JTCN,~»+PMCIT(N,l»+PM(IT(N.21) NEXT N:RETURN

._------

, TOCA UM PONTO

~-------

IF VLCPT,01-12 THEN BOUND B,0 IF VL(PT,I)-12 rHEN SOUND ~,~ IF VL(PT,2Im12 THEN SOUND 10,0 SOUND ~,FF(PT,!11

SOUND 1.FI3(PT.~)

SOUND 2,FF(PT,l)

SOUND 3,FG(PT,ll

BOUND 4,FF(PT,21

SOUND :5,FG'PT,2)

SOUND 6,AR(PT)

SOUND 7, MX (PT)

IF VL(PT,0)-12 THEN SOUND 8,15 IF VL(PT,I)-12 THEN SOUND 9,1:5 IF VL(PT,2)-12 THEN BOUND 1',1:5 SOUND B,VL(PT,0)

SOUND 9,VL(PT,I)

SOUND 10,VL(PT,2)

PT-PT+IIIF PT)FF THEN PT-II RETURN

A.-INKEV.:IF A'-·· THEN 3500 l-INSTR(IT',A.):IF 1<2 THEN 350~ MP-10:1T(0,0)-1-1:GOSUB 2000

ON INTERVAL-10 BOGUe 3000

PT-0

INTERVAL ON

IF PT)9 THEN INTERVAL OFF:IT(0,0)-0:aOTO 3500 GOTO 3560

,--------

, DATA

,--------

DATA :5,20,0,6,0 DATA 3,16,0,2,0 DATA 20,200,2,3,0 DATA 10.:50,2,3,0 DATA 1 250,5.5,0

DATA U .... : ...... : II .. II : II ~ ..... : : .... : ~ • a 11,63

DATA •• • It .. : ,. •. II : ••• ' ~ : •• II : 11,47

DATA " ••• : .•. : ••• : ! ••• : ••• : ••. : ••. ". 63

DATA .. • •• : .•• : ••. : •.. : ••• ".39

DATA .. . •• : ••• : •.. ! •.. : .•• : ...... 47

DATA " ••• : .•• : .•• : .•• : ••• : ••• : •.. ".55 DATA " ••. : .•. : ••• : ••. ! ••• : ••• : •.• : •.• ". ~3

DATA : •••.. : ...•• ",35

DATA .. 11 ;" •• : ••• : .... : ... II .t .. 39

DATA II .: .. :.:.:.: II : • : .. : '" : • : " u, 43

DATA 14 ••••• : : : 11,47

111 ------

, IMPRIME A TELA DO EDITOR. CP E' A FORMULA DE COMPABSO

,------------

CLS:MP-MP(CP) PRINT:PRINT· ·,CB'(CP) FOR VZ-0 TO 2

PRINT HEX"(VZ+l11"! !". FOR N-0 TO MP\2

Projetos 85

:50:50 :5060 ~070 :5080 ':5100 :5120 :5130 :5140 :51~0 15160 :5170 :5180 :5200 :5290 :5497 :5498 :549'9 :5:500 :S5:50 :5:560 :5~70 :5:580 :5:590 :5997 :5998 :5999 6000 6010 6090 6100 6120 6130 60140 614:5 01:;0 6200 6220 6230 6240 60300 60303 630:5 0310 6320 0323 632:5 6330 6340 6343 6:54:5 63:50 6360 6363 636:5 6370 0380 6390 6400 6410 b41!!!i

PRINT MIDtCITt,ITCN,VZ)+1.1ll NEIIT N

PRINT

NEKT VZ

PRINT: PRINT: PRINT" "I C.B. (CP)

FOR VZ-1lI TO :2

PRINT HEXttVZ+llI" "I FOR N-MP\2+1 TOMP

PRINT MIO. (ITt, IT tN, VZ 1 +1,1) I NEXT N

PRINT"! !"

NEXT VZ aOSUB :5:500 RETURN

p---------

• IMPRIME MARCAB

...... - ........ --_ ...... _

LOCATE 0,:5:PRINT BTRINa.(39,32l,'LOCATE 0.ll:PRINT 6TRINGS(39,3211 IF 11<-MP\2 THEN LOCATE 3+11,:5 ELSE LOCATE 2+II-MP\2,ll

PRINT")-"I

IF FF<-MP\2 THEN LOCATE 3+FF.:5 ELSE LOCATE 2+FF-MP\:2,11 PRINT"( "I

RETURN

..,'---_ .... __ ....

• EDITOR

11 __ .... ... -

X-3:V-2:PA-0:VO-cII:CUS-CHRS(2201:PM-20:PS-0 GOSUB :5000:808UB 701210 CGS-HIDS(ITS,ITtPA,VO)+l,l)

AS-INKEVS

IF A.()-"",THEN 6200 Ps-pa+1

LOCATE X,V

IF P6-PM\2 THEN PRINT caS' ELSE IF PS)PM THEN PRINT cu.,:ps"'liZi GOTO bh'l!1

LOCATE X,V:PRINT cas, l-INSTRtITs,A.1

IF 1-0 THEN 6300

IT(PA,VO)"'l-l:GOTO 6090

IF ASC(ASI(>2B THEN 632121 X-X+l:PA-PA+l

IF PA)MP THEN X-3:PA.~:V-2+VO ELSE IF PA-MP\2+1 THEN X"'3:V-V+6 GOTO 609111

IF ASC(As)<)29 THEN 634121 X"'X-l:PA-PA-l

IF PAclZl THEN X-3+MP\2:PA-MP:V-V+6 ELSE IF PA"'MP\2 THEN X-3+MP\2:V-V-6 130TO 6090

IF ASC(ASl(>31 THEN 636121 V-V+l:VO"VO+l

IF VO)2 THEN VO-0:JF V-:5 THEN Y-9:PA-PA+MP\2+1 ELSE V-2:PA-PA-MP\2-1 GOTO 0!009~

IF ASC(As)()30 THEN 639121 V-Y-l:VO-VO-l

IF VO<0 THEN VO-2:IF V-I THEN V.l~:PA"PA+MP\2+1 ELSE V-4:PA-PA-MP\2-1 GOTO 6iZ190

IF ASC)"X" THEN 6:;i!l0 BOSUS 200121

ON INTERVAL-TP BOGUe 312100

CLe:PRINT"PARA INICIAR APERTE A BARRA DE EBPACO." PRINT"PARA TERMINAR APERTE-A NOVAHENTE"

86

MSX-Mwica

6420 6430 6440 64:50 0460 6470 6:500 b:510 6:5:50 0:560 6600 bolO 661:5 6620 06:50 6660 b6b!5 6670 6700 b710 6720 6730 6740 6800 b900 b997 6999 6999 7000 7010 7020 7030 7040 70:50 7060 7100

PTa0

IF INKEV.<>" " THEN 6430 INTERVAL ON

IF INKEV.<>" " THEN 6450

INTERVAL OFF:SOUND B,0:S0UND 9,0:S0UND 1£1,0 GO TO 6000

IF A.e>"I" THEN b!5!50 II-PA:60SUB :5:500:60TO 6090 IF A.e>"F" THEN 6600 FF-PA:GOSUB 5500:60TO 6090

IF A'<>"C" THEN 66:50

LOCATE e, 15: INPUT"FORMULA DE COMPASSO (;2 A 12)" I CP CP-CP-2:IF CP<0 OR CP>111 THEN BEEP:GOTO 6610 MP-MP(CP):GOTO 6000

IF A.<>"V" THEN 67£10

LOCATE 0.1::1: INPUT"VELOCIDADE (1 A 20)" I TP TP-26-TP~IF TP<6 OR TP>25 THEN BEEP:GOTO 6660 GOSue 7000:60TO 0090

IF A.<>CHR'(27) THEN 6a~0 CLS

INPUT"VOCE TEM CERTEZA DE aUE OUER ABANOONAR 0 PROGRAMA"IA. IF LEFT. HI •• 1) -"S" THEN END

GOTO 6£1£10

BEEP:GOTO 61!l9!il GOTO b90(l1

,--------

, REIMPRIME LINHAS INFERIORES

~--------

LOCATE 0.1!5:PRINT 6TRING'(39,32); LOCATE 0,12:PRINT STRIN6.(39.32'1

LOCATE ". 12: PR lNT" V.I oc 1 d .. d. -" I 2ob-TPI " Comp •• Bo .. "·1 CP+2

LOCATE 0. 16:PRINT"INSTRUMENTOS : 0 W E R T"

LOCATE 0,17: PRINT"COMANDDS < I )'ni ci 0, <F>i m , <C>omp .... o,"

LOCATE 0,18: PRINT" <V>al oei dwde, &< X )·.cuta, "

LOCATE 0,19:PRINT" <E6C) p .. ril. t.rmin.r"

RETURN

o programa permite que 0 usuario utilize cinco instrumentos, designados pelas letras Q, W, E, ReT, em qualquer uma das tres vozes, designadas pelos mimeros 1, 2 e 3.

Tudo 0 que 0 usuario tem a fazer IS "escrever a partitura" movendo 0 cursor por meio das setas e digitando a letra correspondente ao instrumento no lugar correto,

As letras podem ser apagadas com a barra de espacos.

Projetos 87

No alto da tela estao as seguintes marc as: "!", que indica 0 primeiro tempo de urn compasso; ":", que indica urn tempo; e ".", que indica urn quarto ou urn sexto de tempo, dependendo da f6rmula de compasso usada,

o usuario dispoe dos seguintes comandos:

I (marca lnicial)

Esse comando faz com que a marca inicial (indicada por '">" seja colocada na posrcao do cursor. As marcas inicial e final indicam onde se inicia e onde termina a repeticao. A parte do ritmo que se repete e apenas aquela que esta entre essas marcas.

Recornenda-se que a marca inicial seja colocada sempre no infcio de urn compasso (sinalizado por "!"). De preferencia, eoloque na primeira posicao da tela (onde ela inicialmente esta),

Se as marcas nao forem preparadas. nenhum ritmo sera locado.

F (marca Final)

Esse cornan do faz com que a marca final (indicada por "<,") seja colocada sob 0

cursor.

Recornenda-se que a marca final seja colocada na posrcao imediatamente anterior ao inicio de urn compasso (na Ultima fragao de tempo do compasso anterior). De preferencia, eoloque na Ultima posicao da tela.

X (eXecuta)

Executa 0 ritmo editado ..

V (Velocidade de execucao)

Muda 0 andamento. 0 novo valor pode ser qualquer rnimero de 1 a 20.

C (f6nnula de Compasso)

Muda a f6nnula de cornpasso. Dela dependem quantos tempos tern carla compasso e tambem quantos compassos ficam disponfveis para edicao,

As formulas possfveis podem ser qualquer uma entre 2 e 12. Voce pode,se achar interessante, construir urn ritmo de 11 por 4 (e por que nao"), Basta usar 0 valor 11 aqui.

88 MSX -Musica

Os valores comuns em musica sao: 2, 3, 4, 6 e 8. Os outros sao raramente encontrados.

Nas f6nnulas de eompasso usuais, indieadas aeima, 0 usuano disp6e de qualm compassos (dais na linha de eima e dois na linha de baixo). Nas outras, estao dlsponfvels apenas dais compassos (urn em cada linha).

ESC - abandona 0 programa.

Dentre todos os projetos, este e 0 que tern 0 funcionamento interno rnais complexo.

Como ja mencionamos antes, con forme a apresentacao de urn programa vai ficando mais e mais profissional, a parte referente ao processamento visual e comandos vai aumentanda e, consequenternente, maior vai ficando 0 programa.

As linhas rea1mente responsaveis pelo contrale e execucao do som de bateria no programa RITMO sao as linhas 2000 a 3570 (um quarto do programa). Todo a resto refere-se a inicializacao e contra Ie do editor de tela.

Sobre 0 editor (sub-retina 6(00), basta dizermos que ele prepara urn ritmo que e guardado dentro da matriz IT(63,2). Cada posicao da matriz guarda urn rnimero que representa urn instrumento codificado. 0 primeiro Indice da matriz indica 0 ponto, nome que estamos usando para indicar a menor fracao de tempo musical que nosso programador de ritmos pode representar. No compasso 4/4, por exernplo, urn ponto vale uma semicolcheia. 0 segundo Indice indica 0 mimero do canal (0, 1 ou 2 para indicae A, B ou C, respectivamente) onde 0 instrumento devera ser tocado.

o instrumento e codificado da seguinte maneira: Q= 1, W=2, E=3, R=4, T= 5. Se 0 valor de urna dada posicao for 0, isso indica que nenhum som devera ser iniciado neste canal, nesta fracao de tempo.

Exemplo: 0 valor 3 na posicao IT(41,l) indica que no ponto niimero 41 (a decima sernicolcheia do terceiro compasso, se a formula for 4/4), no canal B, devera se iniciar a producao do som do instrumento tipo 3, que corresponde ao indicado pela letra E, quando voce program a 0 ritmo. Esta e a maneira pela qual 0 editor ve 0 ritmo escrito na tela. Esta estrutura de armazenagem seria, no entanto, extremarnente ineficiente para a producao de som em tempo rea1.

A retina que produz 0 sorn (3000 - TOCA UM PONTO) mI0 pede perder tempo investigando que instrumento deve ser tocado e calcuIando os vaIores a colocar nos

Projetos 89

diversos registradores do PSG. Para isso existe a rotina COMPILA (4000). Ela serve de ponte de ligacao entre a estrutura de annazenagem do editor e a estrutura para execucao em tempo real utilizada pela rotina 3000. Essa ultima estrutura e composta de cinco matrizes: FF(63,2) (frequencia fina de cada canal em cada ponto), FG(63,2) (frequencia grossa de cada canal em cada ponto), AR(63) (afinacao do rufdo em cada ponto), MX(63) (valor do mixer em cada ponto) e VL(63,2) (volume de cada canal em cada ponto). E facil perceber que cada uma dessas matrizes corresponde a urn registrador do PSG. Com essa estrutura de armazenagern, 0 trabalho da rotina 3000 fica bastante sirnplificado. Tudo 0 que ela tern a fazer quando for chamada a tocar os instrumentos de urn ponto e colocar em cada registrador do PSG 0 valor da matriz correspondente.

A rotina COMPILA percorre a matriz IT e, para cada ponto, preenche a ponto correspondente de cada urn das cinco matrizes de registradores do PSG acirna apresentadas. Para saber como traduzir 0 c6digo do instrumento na frequencia, ruido e demais parametros que indicam 0 som real do in s trumen to, a rotina utiliza os vetores de descrtcao dos instrumentos: PF(S) (frequencia fina de cada urn dos cinco tipos de instrumento), PG(S) (frequencia grossa), PReS) (afinacao do ruido) , PM(S) (valor do mixer) e POeS) (decay). Esse ultimo nao corresponde a urn registrador do PSG. Ele e a velocidade de decay e indica, indiretamente, durante quantos pontos 0 som deve ser soado e de quanta deve dirninuir 0 volume de ponto para ponto.

Vamos voltar ao exemplo acima, do instrumento E no ponto 41, no canal B.

Vejamos como a rotina COMPILA faz para preencher as matrizes de registradores do PSG correspondentes ao ponto 41.

o instrumento E e indicado na matriz IT como sendo tipo 3. Os valores dos vetores de descricao do instrumento mimero 3 sao:

PR(3) (freq. rufdo) = 20 PF(3} (afin, fina) = 200 PG(3) (afin, grossa) = 2 PD(3)(decay) = 3

PM(3) (mixer) = 0 (rufdo/nota nos 3 canais)

Os dados acima estao no DATA da linha 4020.

o instrumento tipo 3 tem, portanto, ruido e som afinado ao mesmo tempo, tanto a frequencia do ruido como a da nota sao baixas e 0 decay nao e nem muito rapido nem muito lento.

90 MSX - MUrica

A rotina CO M P ILA passa diretamente as constantes que estao nos veto res PR (3), PF(3), PO(3) e PM(3), respectivameote para as posicoes AR(41), FF(41,1), FG(41,1) e MX(41} (linhas 2040.2045,2050 e 2200). Os Indices sao 41 e 1 porque 0 ponto eo 41 e o canal e B.

o volume. que e guard ado na posicao VL(41,1) e inicialmente coloeado em 12 (linhas 2030 e 1055).

o volume e decrementado do valor da velocidade de decay (ele fica valendo 9, portanto) e, se ele for maior que zero, todas as posicees das matrizes serao repetidas no pr6ximo ponto (42), exceto 0 volume (matriz VL), que recebe 0 novo valor decrementado.

o volume vai sendo decrementado e 0 "som vai sendo copiado" nos pontos seguintes, ate que 0 valor do volume (variavel V) chegue a zero. E assim que a envolt6ria e conseguida neste programa. Quando a rotina 3()(x) for executar os pontos em sequencia, ela executara 0 mesmo som durante varies pontos, mas com volume cada vez menor, 0 que da a sensacao de decay.

o ataque caracterfstico da percussao e conseguido nas linhas 3U5 a 3125. No primeiro ponto de cada som, 0 valor do volume e 12. Essas tres linhas fazem com que 0 valor 15 de volume seja tocado por um breve instante, antes do valor 12. Isso produz urn pico de ataque.

8.3 0 MSX COMO COMPOSITOR

Como ja. dissemos antes, mtisica e urn conjunto organizado de eventos sonoros, o tipo de organizacao e de sons usados e 0 que vai diferenciar urn tipo de rmisica de outro.

E por isso que podemos ter uma orquestra sinfonica tocando diferentes tipos de mtisica. 0 conjunto de sons possfveis e sempre 0 rnesmo: as notas que os diversos instrumentos da orquestra podern toear. A organizaea« desses sons e que muda, por exemplo, de Bach para Stravinsky.

Por outro lado, podemos ter instrumentacoes diferentes (conjuntos de sons diferentes) para aproximadamente a mesma organizacao. 0 Hino Nacional cantado por urna cantora de rnusica popular e 0 Hino Nacional tocado por urna banda de rmisica sao, ambos, a mesma rmisica, pois a organizacao DaO varia.

A regra nao vale sempre mas podemos dizer que

Projetos 91

o que caracteriza uma compostcao musical e 0 ate de compor ~ a maneira como os sons estao organizados e nao os sons em si,

o que e a organizacao dos sons, afinal de contas? E "que som vern antes, depois e junto de outro" ou, simplificando bas tante: "a ordem das notas".

Chegamos, entao, a uma conclusao aparentemente 6bvia e simplista: "compor e o ate de colocar notas em sequencia". Partindo disso podemos dizer que urn born compositor e 0 que sabe colocar as notas em uma boa sequencia.

Mas 0 que e uma "boa sequencia"?

A resposta e: ninguem sabe ao certo.

Nao podemos responder essa pergunta com uma resposta classica, que foi usada durante seculos: "uma boa sequencia e aquela que e agradavel ao ouvido". Essa res posta, alern de subjetiva demais, nega todo 0 trabalho do compositor Schoenberg, que passou a vida inteira tentando fazer com que essa resposta classica fosse esquecida. Na opiniao desse compositor, que revolucionou a rmisica no inicio deste seculo, uma composicao nao deve ser necessariamente agradiiveI ao ouvido, mas deve ter, obrigatoriamente, urna organizacao muito solida. Em outras palavras, 0 ouvinte nao deve perceber beleza, e sim organizacao. Foi a partir de sse princlpio que ele fundou seu rnetodo de cornposicao, 0 dodecafonismo, e compos diversas pe~as que nao podem jamais ser qualificadas como "belas" , em respei to a sua memoria,

Entao, se nao estamos procurando "sequencias agradaveis de notas", 0 que estamos procurando como ponto e partida para organizar nossos sons e, portanto, compor?

Organizacao faz pensar em regras. Existem, entao, regras para se organizar bern urn conjunto de sons? Sim, elas existern, regras escritas e nao-escritas, regras que sao passiveis de serem colocadas claramente no papel e regras que nao 0 sao.

A maioria dos compositores usa regras que naopodem ser expressas clararnente porque nem as pr6prios compositores sa bern exatamente que regras sao essas. Eles comp6em usando, muitas vezes, a "intuicao" e vao criando, assim, urn estilo proprio com regras proprias, Essas regras sao reais e existem dentro da cabeca dos compositores, quer eles queiram, quer nao, quer elas sejarn ex plicitas e conscientes ou implfcitas e inconscien tes.

Algumas dessas regras, de tempos em tempos, tornam-se urn consenso au urn estilo de urn grupo de compositores. Pode acontecer, nesse caso, de algumas delas serern

You're Reading a Free Preview

Download
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->