CODINGLISTINGS ★ DE LA MUSIQUE AVANT TOUTE CHOSE ★

De la musique avant toute choseCoding 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 :

  • ENV N, A1, A2, A3, S1, S2, S3, D1, D2, D3, où N indique le numéro de l'enveloppe ;
  • A1, A2, A3, respectivement l'amplitude, le nombre et la durée des pas composant l'attaque ;
  • S1, S2, S3, ceux du maintien ;
  • D1, D2, D3, ceux de l'amortissement.

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

★ EDITEUR: Science&Vie
★ ANNÉE: 1991
★ AUTEUR: Henri-Pierre PENEL

★ AMSTRAD CPC ★ DOWNLOAD ★

Type-in/Listings:
» De  la  Musique  avant  toute  Chose    (Science  et  Vie)    FRENCHDATE: 2020-04-22
DL: 233
TYPE: ZIP
SiZE: 6Ko
NOTE: Uploaded by CPCLOV ; 40 Cyls
.HFE: Χ

» De  la  Musique  avant  toute  Chose    (Science  et  Vie)    LISTING    FRENCHDATE: 2016-06-24
DL: 233
TYPE: PDF
SiZE: 382Ko
NOTE: 2 pages/PDFlib v1.6

★ AMSTRAD CPC ★ A voir aussi sur CPCrulez , les sujets suivants pourront vous intéresser...

Lien(s):
» Coding Src's » Sieve of Erastosthenes (CPC Amstrad International)
» Coding Src's » Jord
» Coding Src's » Roll-It
» Coding Src's » Trees (Computing With the Amstrad)
» Coding Src's » Interlace Demo
» Coding Src's » Raytracing (Devilmarkus)
Je participe au site:
» Vous avez des infos personnel, des fichiers que nous ne possédons pas concernent ce programme ?
» Vous avez remarqué une erreur dans ce texte ?
» Aidez-nous à améliorer cette page : en nous contactant via le forum ou par email.

CPCrulez[Content Management System] v8.7-desktop/c
Page créée en 276 millisecondes et consultée 1479 fois

L'Amstrad CPC est une machine 8 bits à base d'un Z80 à 4MHz. Le premier de la gamme fut le CPC 464 en 1984, équipé d'un lecteur de cassettes intégré il se plaçait en concurrent  du Commodore C64 beaucoup plus compliqué à utiliser et plus cher. Ce fut un réel succès et sorti cette même années le CPC 664 équipé d'un lecteur de disquettes trois pouces intégré. Sa vie fut de courte durée puisqu'en 1985 il fut remplacé par le CPC 6128 qui était plus compact, plus soigné et surtout qui avait 128Ko de RAM au lieu de 64Ko.