A M S O N
Publie dans
Science & Vie Micro numero 22
Novembre 1985
L'AMSTRAD MELOMANE
Avec ce programme de creation musicale sur la serie Amstrad, de qualite
exceptionnelle, qui a valu a Serge Ceci d'etre proclame vainqueur, il ne vous
est demande que de jouer... et de mordre a l'Amson.
AMSON permet de jouer de la musique sur le clavier d'un Amstrad a l'aide de
la representation graphique sur l'ecran d'un clavier de piano. Le jeu est
monophonique sur deux octaves, il ne faut donc pas s'attendre aux performances
d'un veritable piano electronique; en revanche, ce programme d'initiation a la
synthese musicale beneficie d'une presentation graphique et d'une finition
tout a fait inhabituelles. Il permet de modifier a volonte les
caracteristiques du son, par la modification de l'enveloppe de volume et de
l'enveloppe de ton. Chaque notre emise par le synthetiseur de la machine est
regie par de nombreux parametres tels que sa duree, son volume et sa hauteur.
D'autres parametres plus complexes entrent en ligne de compte dans l'emission
d'un son - ces fameuses enveloppes de volume et de ton - et sont traites par
des instructions specifiques en Basic.
La premiere enveloppe regit l'evolution du volume d'une note dans le temps.
Chaque note est constituee d'une attaque pendant laquelle le volume augmente
rapidement, d'une periode de maintien ou il reste stable, d'une periode de
relache ou il diminue progressivement, et enfin d'une periode d'extinction
brutale.
L'enveloppe de ton regit l'evolution de la tonalite dans le temps. C'est elle
qui permet par exemple de creer des effets de glissando, de sirene ou de
pedale "wah-wah" et egalement de jouer sur la hauteur d'une note : qu'un la
se transforme progressivement en si puis en do, par exemple.
Mais la gestion de ces paremetres serait assez compliquee si Amson n'etait pas
la pour vous faciliter la vie.
Apres une presentation somptueuse, s'affiche la page d'utilisation d'Amson
avec, en bas de l'ecran, un clavier de deux octaves et au dessus, un menu
d'options pour jouer une melodie. Pianotez simplement sur les deux rangees
superieures du clavier. La premiere, celle des chiffres, represente les
touches noires d'un piano et par consequent les touches 3, 7 et 0 sont
inactives. Pour vous permettre de reconnaitre la note jouee, un petit repere
clignotant apparait sur la touche correspondant a l'ecran.
Si le volume ne vous convient pas, vous avez deux facons de le modifier : via
la bouton situe sur le cote droit de l'Amstrad, ce qui permet d'ajuster le
volume de facon globale ou a l'aide des touches de deplacement vertical du
curseur. Dans ce dernier cas, la modification s'effectue sur le volume initial
de la note parametree dans l'instruction SOUND.
Les fleches de deplacement horizontal du curseur vous permettent
respectivement d'acceder a l'octave superieur ou inferieur.
En appuyant sur l'une des touches qui portent une barre de fraction (normale
ou inversee), vous accedez au menu secondaire. Six options y sont presentees.
Six options au menu
*******************
Avant tout, une remarque, il est conseille de ne jamais se servir de la petite
touche ENTER du pave numerique, sous peine d'effets inattendus.
Seule exception : si vous voulez sortir du programme, appuyez deux fois sur
ESC puis sur ENTER.
La premiere option a pour but de modifier la duree de la note. L'ordinateur
vous demande une valeur comprise entre - 32000 et + 32000. Si c'est une valeur
positive, elle correspondra a la duree reelle de la note. Si la valeur est
nulle, la derniere enveloppe de volume (ENV) choisie determinera la duree de
la note. Dans le cas d'une valeur negative, l'enveloppe de volume deja definie
sera repetee le nombre de fois indiquee. Bien que les limites permises soient
beaucoup plus larges, il est conseille de s'en tenir a des valeurs
raisonnables (-5 a 200) sous peine de passer la nuit a ecouter la meme note.
Creez des enveloppes
********************
La seconde option permet la definition d'une enveloppe de volume ou de ton.
Il faut alors indiquer le numero de l'enveloppe a creer, entre 1 et 15. Si
l'enveloppe precisee est deja definie, il suffit de confirmer ce choix. Seule
la frappe d'un N vous permettra de rattraper une eventuelle erreur. Apres
quoi, une grille numerotee en abscisses et en ordonnees apparait. C'est sur
cette grille que vous definirez vos enveloppes de ton ou de volume, en les
dessinant directement a l'ecran a l'aide des touches du curseur. La touche
COPY sert a valider chaque section de l'enveloppe.
Cinq segments d'enveloppe peuvent etre definis. Vous pouvez les placer a votre
guise, mais n'oubliez pas, pour obtenir un son vraissemblable, que les notes
habituellement produites par un instrument se divisent en attaque, maintien,
relachement et extinction.
Apres definition des cinq segments, un dernier appui sur COPY provoque
l'affichage des parametres numeriques correspondant a l'enveloppe que vous
venez de tracer. Naturellement, vous pouvez tracer une enveloppe de moins de
cinq segments. Dans ce cas, appuyez sur l'une des deux barres de fraction pour
valider l'ensemble. Tapez ensuite sur une touche quelconque, et vous vous
retrouvez devant le menu de ce choix de type d'enveloppe et de retour au
menu principal. L'enveloppe ainsi cree sera selectionnee pour piloter les
sons ulterieurement.
La troisment option vous permettra de choisir des enveloppes de ton
prealablement definies ou, si vous frappez 0, d'annuler l'enveloppe
actuellement en cours, apres confirmation. Apres avoir precise le numero de
l'enveloppe selectionnee, un graphique de dimensions reduites representant
l'enveloppe telle qu'elle a ete tracee se dessinera, et il vous faudra
confirmer votre choix. Vous pourrez alors pianoter sur votre clavier pour
ouir vos creations.
La quatrieme option regit la selection d'une enveloppe de volume, de la meme
maniere que ci-dessus.
On peut ajouter un bruit a la note jouee, en utilisant le cinquieme choix.
Cette option vous propose de n'avoir qu'un bruit seul, different suivant la
touche appuyee et les enveloppes selectionnees. Ou alors, de combiner note
normale et bruit, ou ne mettre qu'une note seule, ce qui est bien pratique
pour desamorcer ces bruits qui peuvent parfois devenir entetants.
Enfin, la derniere option offre, a ce que le menu n'inspire pas, de revenir
a la page du jeu normal.
La structure de ce programme n'est pas figee. Il est tout a fait possible de
lui rajouter des options qui n'existent pas dans l'etat actuel des choses.
On peut bien sur penser a en faire un editeur musical plus perfectionne qui
permettrait la sauvegarde des parametres d'enveloppe sur cassette, ou bien
encore incure la possibilite de jouer des accords polyphoniques. Le probleme
est qu'en Basic, l'ordinateur ne peut pas detecter tres rapidement la
position des touches du clavier. Pour aller plus vite, il faudrait ecrire
cette routine en assembleur. Avis aux amateurs eclaires...
Ce programme ecrit pour Amstrad CPC 464, 664 et 6128, utilise des fonctions
assez specifiques du Basic de la machine et pourra donc difficilement etre
transpose. Il occupe un peu plus de 12ko en memoire vive, mais on peut reduire
sa taille en supprimant la presentation, et toutes les lignes de remarques
(REM) qui commentent le fonctionnement du programme. Le gain est d'environ
2ko. Le programme ayant ete ecrit sous le mode AUTO, il est conseille de le
saisir de la meme facon, ce qui evite la frappe des numeros de ligne.
Autant de temps mis au service de la musique !
Serge CECI
ANALYSE DU PROGRAMME
********************
lignes
150-450 : initialisation
470-760 : presentation (partie facultative)
780-1710 : module clavier musical
820-870 : definition de la vitesse de repetition des touches en
fonction de la duree de la note. Evite le "hachage" des
ENV longues
900-960 : affectation d'une note a chacune des 24 touches superieures
du clavier, par calcul
970-1120 : scrutation des touches du clavier musical
1130-1410 : dessin du clavier musical
1420-1520 : affectation des coordonnees de la note affichee en
fonction de la touche appuyee
1530-1550 : affichage de la fenetre
1560-1710 : menu accessible par les deux barres obliques
1730-1830 : choix de la duree
1850-2830 : modele de definition d'enveloppe
1900-2050 : dessin du quadrillage
2060-2240 : menu des enveloppes
2250-2320 : scrutation des touches
2340-2390 : touche Haut
2400-2450 : touche Bas
2460-2500 : touche Gauche
2510-2560 : touche Droite
2570-2640 : touche COPY
2650-2830 : stockage des variables. Affichage des parametres definis et
affectation a ENV ou ENT (creation d 'enveloppe)
2850-3060 : choix d'une ENT parmi celles definies
2970-3060 : visualisation de l'ENT ou de l'ENV choisir, si elle est definie
3080-3100 : choix d'une ENV parmi celles definies
3120-3370 : ajout de bruit
3140-3230 : menu 'note seule, bruit seul, note + bruit)
3360-3370 : affectation d'une periode de bruit en fonction de la touche
appuyee.
3390-3430 : detecte l'entree d'une duree hors-limite.