★ CODING ★ LISTINGS ★ DE LA MUSIQUE AVANT TOUTE CHOSE ★ |
De la musique avant toute chose | Coding Listings |
Nous vous proposons de réaliser ce mois-ci un petit programme capable d'exécuter des partitions. En fait on recopiera à l'écran la partition à jouer, puis la machine interprétera la musique. Comme il est possible d'utiliser simultanément deux canaux sonores sur l'Amstrad, notre programme pourra exécuter des accords de deux notes. Sur le plan rythmique nous ferons la distinction entre noire, croche et double croche. Certes cela ne correspond pas à la totalité des régies de solfège; il n'en reste pas moins qu'il sera possible de faire jouer la majeure partie des mélodies courantes à la machine. La gamme, en revanche, comporte bien les 12 demi-tons ; donc pas de problème à ce niveau. Ces quelques points précisés passons donc à l'écriture de notre programme.En premier lieu nous demanderons à l'Amstrad de travailler en mode 2. Cette instruction, rappelons-le, fixe le nombre de caractères affichables par ligne d'écran ; ici donc 80. Ensuite nous redéfinirons l'ensemble des symboles graphiques nécessaires à la représentation de l'écriture de la musique. C'est-à-dire les barres de mesures, les notes, les dièses, etc. Ensuite nous dimensionnerons trois tableaux de mémorisation. Le premier sera utilisé pour mémoriser les notes que devra jouer le premier canal sonore, le second pour mémoriser celles du deuxième et, enfin, le troisième indiquera aux deux canaux simultanément s'il s'agit de noires, de croches ou de doubles croches. De même diverses enveloppes sonores seront créées. En fait elle seront paramétrées, d'une part, en fonction de l'instrument à imiter et, d'autre part, de la longueur de la note à jouer. L'évolution de l'enveloppe d'une double croche sera beaucoup plus rapide que celle d'une noire cela afin que, lors de l'exécution de la mélodie, la durée de chaque note soit respectée. Ces quelques initialisations effectuées nous pourrons commencer à entrer la partition. Pour cela une première sous-routine aura pour mission de tracer deux portées sur l'écran. Ensuite une seconde sous-routine viendra afficher une note en début de portée. Grâce aux flèches de déplacement curseur il sera possible de la faire monter ou descendre sur cette dernière afin de fixer sa hauteur. Pour chaque déplacement le symbole dièse apparaîtra ou non à côté de de la note en fonction de l'accroissement des demi-tons. Une fois la hauteur de la première note fixée, la touche “COPY” sera tapée. Cette opération permettra de fixer la hauteur de la note à jouer en accord. Si l'on souhaite une seule note il suffira de taper “COPY” deux fois de suite. En cas contraire les flèches de déplacement curseur seront utilisées comme précédemment puis la position de la seconde note sera validée par “COPY”. Pour terminer on indiquera à la machine s'il s'agit d'une noire, d'une croche ou d'une double cro-. che. Et cela en tapant “0” pour une noire, “1” pour une croche et “2” pour une double croche. Notons qu'au fur et à mesure de leur frappe, ces indications seront mémorisées dans les tableaux de mémorisation correspondants. Une fois ceux-ci remplis la mélodie pourra être exécutée. Une nouvelle sous-routine sera utilisée. Elle prendra en compte les valeurs contenues dans les tableaux de mémorisation puis, à partir de ces dernières, pilotera les canaux sonores en utilisant les divers formants d'enveloppe. La mélodie sera ainsi restituée. La frappe ainsi que l'utilisation de ce programme sont très simples. Certes ici, comme nous devons piloter le générateur de sons de l'Amstrad, de nombreuses instructions propres à la machine sont présentes. Pour l'adapter à d'autres appareils il sera donc indispensable de se reporter aux manuels d'utilisation et d'étudier avec soin les instructions à suivre pour parvenir à un résultat équivalent. Pour mémoire, rappelons que l'instruction ENV est codée comme suit :
Notons que, lors du déroulement de ce programme, de nombreux commentaires s'affichent à l'écran, cela afin de guider l'utilisateur tout au long de son exploitation. Enfin, si, au départ, ses possibilités restent relativement restreintes, il sera facile de les accroître. En modifiant le dimentionnement des tableaux, par exemple, il sera possible d'augmenter la longueur de la mélodie à interpréter. De même, en créant de nouveaux formants d'enveloppe, il sera possible d'ajouter blanches et triples croches. Cependant les possibilités dont nous l'avons doté au départ nous ont semblé largement suffisantes pour un logiciel d'initiation sans, pour autant, qu'il comporte un nombre de lignes impressionnant. Henri-Pierre PENEL , Science&Vie n°885
|