★ CODING ★ BASIC - LE SON SUR AMSTRAD ★ |
Le Son sur Amstrad | Menu - Soft - Basic |
Les micro-ordinateurs Amstrad sont pourvus de fonctions sonores très intéressantes. Malheureusement, devant la relative complexité de syntaxe des commandes, nombreux sont ceux qui abandonnent rapidement l'espoir de sortir quelques notes ressemblant de près ou de loin à de la musique. Le but de cet article est de vous montrer qu'avec quelques connaissances de base, il est tout-à-fait possible de sortir de la musique de cette petite boîte noire appelée générateur de signaux AY-3-8912.Avant de vouloir créer un son, il faut déjà savoir exactement ce qu'est un son. Une porte claquée comme un accord plaqué sur un orgue sont tous les deux des sons. Quel phénomène physique fait que l'on entende un choc, la vibration d'un objet, etc. ? Tout simplement, c'est l'air qui nous transmet les vibrations générées par l'objet qui vient de tomber ou la corde que l'on vient de pincer. Ces vibrations de l'air viennent à leur tour faire vibrer le tympan, celui-ci envoyant l'onde reçue vers le cerveau. Si maintenant on veut reproduire un son, il va falloir faire une sorte de cahier des charges pour voir quels paramètres vont entrer en jeu. Après une analyse rapide nous trouvons trois paramètres permettant d'identifier un son : 1 - la fréquence. 1. — La fréquence : c'est grâce à elle que l'on va déterminer la hauteur de la note jouée ou de l'objet frappé. Lorsque un son est émis, il émet sa fréquence mais aussi cette même fréquence multipliée par 2, 3, 4, etc. C'est ce qu'on appelle les harmoniques et c'est grâce à celles-ci qu'un son est plus ou moins riche. Dans le cas de l'Amstrad il faut faire un choix entre un son riche mais mono-dique ou trois sons polyphoniques, puisque nous n'avons à notre disposition que trois générateurs pouvant jouer en parallèle. 2. — L'évolution de l'amplitude dans le temps : lorsque l'on tape une note sur un piano, la note est d'abord forte puis son volume diminue progressivement. C'est ce que l'on appelle son enveloppe de volume. 3. — L'explication est la même en ce qui concerne l'enveloppe de ton. La seule différence est que le paramètre qui évolue dans le temps est ici la fréquence. Le numéro du canal L'Amstrad relié à une chaîne Hi-Fi est capable de cracher son énergie en stéréo. Pour ce faire, il possède trois canaux appelé A, B, C. A correspond au canal de droite, B correspond au centre et C correspond au canal de gauche. De plus, il est possible de synchroniser ces trois canaux afin d'obtenir une polyphonie. Tout ceci nous amène à définir différents codes de commande. 1 : son sur le canal A. Exemples : Sound 1,284 : le la est joué à droite. Sound 4,284 : le la est joué à gauche. Et puisque nous voulons faire de la musique en parfait accord avec notre Amstrad, jouons avec lui l'accord parfait do, mi, sol. do : Sound 33,478 (1 + 32). mi : Sound 34,379 (2 + 32). sol : Sound 28,319(4 + 8+16). Ces quelques exemples montrent qu'il est possible de jouer un morceau à trois voies ou, pour les perfectionnistes du son, de synthétiser un instrument monodique avec sa fondamentale et deux harmoniques. La période L'Amstrad n'a pas de clavier musical et si vous lui tapez do, ré, mi, etc., il ne vous répondra que des grossièretés et rien de musical en tous les cas. Dans le manuel d'utilisation une table est fournie donnant la correspondance entre le nom de la note, son octave, sa fréquence et sa période. Notons que le la de référence se situe dans octave 0. Il suffit donc de traduire les notes en période. Attention aux fausses notes dans les DATA ! 10 REM SIRENE AMERICAINE La durée Qui n'a jamais entendu qu'une blanche vaut deux noires, une noire valant deux croches. 10 REM DUREE VARIABLE L'ordinateur étant un engin évolué, nous allons le laisser chanter tout seul sa petite chanson. Pour ce faire, nous allons créer un générateur aléatoire de période et de durée. Afin que le son reste audible, nous arrêterons la bête à l'octave - 1 surtout si l'on ressort le son sur le haut parleur du micro-ordinateur. 10 REM AMSTRADELIRE Le volume Ce paramètre fixe le volume auquel la note sera jouée. Si on demande de jouer la note avec une enveloppe de volume, cette valeur fixe alors le volume de départ de l'enveloppe. Si la valeur est 0, alors le volume est fixé uniquement par l'enveloppe. Nous avons la possibilité d'ouvrir un fichier de quinze enveloppes différentes. Dans la commande Sound, on donne le numéro de l'enveloppe que l'on désire utiliser. L'explication de l'enveloppe de ton est identique à celle de l'enveloppe de volume. Le générateur de bruit Lors de la création d'un son, il est possible d'ajouter un bruit à la note jouée. Cette adjonction se fait par cette commande. Plus le chiffre est élevé et plus le bruit couvre la note jouée (0 à 31 ). Ce paramètre sera donc plus utile dans la synthèse de bruit que dans la musique. Sachant maintenant faire à la fois du bruit et de la musique, essayons d'imaginer le bruit d'une chute depuis le moment où vous sautez par la fenêtre, poursuivi par des bugs jusqu'au moment où l'on vous rend un dernier hommage. Tout d'abord la chute. Par convention, c'est une note qui baisse au fur et à mesure que le trottoir se rapproche. Vient ensuite le choc lui-même, violent par définition et qui s'amplifie avec la résonnance alentour. Enfin, allongé au sol, vous gisez, enveloppé d'une douce musique. 10 REM CHUTE Ayant terminé ce tour d'horizon de la fonction Sound, nous allons maintenant entrer dans la partie la plus délicate de la génération de son. En effet, rien ne sert de faire un programme musical si l'on doit toujours entendre la même sonorité. Grâce aux commandes d'enveloppes de volume et de ton, nous allons remédier à cette lacune. Je tiens tout de même à mettre en garde les non-musiciens. Avant de se lancer dans le calcul d'une enveloppe, il faut avoir une idée précise du son que l'on cherche à copier. Alors, avant de taper votre programme, écoutez bien le vrai son et coupez-le en petits morceaux. Enveloppes de volume Sur tout synthétiseur, on trouve un circuit appelé ADSR (attack, dekay, release, sus-tain). Ce circuit permet de fixer l'évolution de la note depuis le moment où l'on frappe une touche du clavier jusqu'au moment où la note disparait. Ce paramètre est donc de la plus haute importance. Il est en effet impossible de comparer l'enveloppe d'une flûte avec celle d'un piano même si la note louée a la même fréquence. En général, on peut dire que les instruments à cordes ont une attaque plus rapide que les instruments à vent, mis à part les instruments à hanches. On ne peut comparer non plus la tenue d'un accord plaqué sur un clavier d'orgue avec celui du même accord mais cette fois-ci sur un piano. Amstrad offre la possibilité de définir cinq pentes successives entre le début et la fin de la note. Mis à part le premier paramètre qui définit le numéro de l'enveloppe, les autres paramètres seront identiques, par groupe de trois et cela au maximum cinq fois. Pour chaque groupe de paramètres, nous aurons : a - le nombre pas pour ce segment (0 à 127) ; Essayons, à partir de là, de créer un son de guitare. Dans un premier temps, la meilleure solution est de prendre sa guitare, pour les heureux possesseurs, ou un enregistrement pour les autres. Qu'entendons-nous alors ? Une attaque rapide, sèche, et une diminution progressive du son. Une fois ce son bien assimilé, il est possible de se mettre face au clavier et d'essayer de numériser le tout. Attention au piège. Vérifiez la corellation entre la durée de votre note la plus courte et la durée de l'enveloppe. Avec une guitare moyenne, on peut considérer que la réverbération donne un son audible de deux secondes, soit 200 unités de temps. La montée doit être rapide. Donnons-lui donc cinq unités de temps. Après cette impulsion, donnons une petite diminution de volume rapide de 30 % du son et enfin la lente diminution du son dans le cas de notes longues. Après un petit calcul, cela donne : ENV 1,1,15,5,1,-5,5,10,-1,19 Entrez quelques notes et essayez cette enveloppe. Pour un son de piano, il faudra marquer un très léger palier après la montée. Pour un clavecin, vous devrez augmenter la pente descendante du son. Dans tous les cas, le son gagnera si vous rajoutez le son de l'octave supérieure et la tierce de celle-ci dans un rapport de environ 1 pour 10. En ajoutant un bruit égal à 1 ou 2, vous obtiendrez un semblant de flûte. Comme nous l'avons vu plus haut, l'incrément de volume peut avoir une valeur comprise entre - 128 et 127. Néanmoins pour un confort d'utilisation, je pense qu'il est préférable de rester dans la zone 0-15, à moins que vous aimiez vraiment les calculs inutiles. Enveloppes de ton L'enveloppe de ton sert à moduler la période à partir de la période définie dans la commande Sound. L'unité de variation est donc l'unité de période. La syntaxe Basic est très proche de celle utilisé pour ENV. Le seul paramètre qui change est le deuxième de chaque groupe, celui-ci donnant la variation de période. La syntaxe devient donc : ENT No enveloppe, nbre de pas(l), periode(l), tps(l), jusqu'à 5. Si le numéro d'enveloppe est négatif, alors, l'enveloppe sera répétée jusqu'à la fin de la durée de la note. ENT 1,5,-30,10 Une autre application de ENT est le vibrato. Sachant qu'une enveloppe dont le numéro d'enveloppe est négatif sera répétée pendant toute la durée de la note, il ne reste plus qu'à évaluer la fréquence de notre vibrato. Afin que le son ne soit pas trop déformé, l'incrément de période ne doit pas être trop important. Pour un vibrato à cinq périodes par seconde, essayez : ENT -1,1,20,5,1,-40,10,1,20,5 Signalons que ce même effet peut être appliqué à la fonction ENV pour créer un trémolo. Attention, avant de manipuler ENT, vérifier la gamme de période dans laquelle on travaille. En effet, une variation de 20 dans les notes graves (grandes périodes) engendre une petite variation (un quart de ton) alors que cette même variation engendre un écart de un ton dans les périodes moyennes et jusqu'à une quinte dans l'extrême aigu. Avant de nous lancer dans l'écriture d'un morceau de musique, je veux encore vous donner un petit conseil. Dans le cas de notes doublées, n'oubliez pas d'intercaller un petit silence entre les deux notes sinon, au lieu de jouer deux croches, par exemple, l'Amstrad jouera une seule noire. Sachant maintenant programmer une mélodie et définir la nature du son que vous désirez, il ne vous reste plus qu'à vous lancer. Surtout ne vous découragez pas. L'Amstrad n'est pas un synthétiseur et de ce fait jongler avec les sons est plus difficile. Bon courage tout de même et tous à vos pupitres. AMSTRAD MAGAZINE n°14 , https://cpcrulez.fr
|