CODINGCLASSEURS WEKA ★ Comment exploiter toutes les ressources et augmenter les performances de votre AMSTRAD CPC ★

6/5.1 Fichiers musicaux sous interruptionsCoding Classeurs Weka
6/5 Logiciels

6/5.1 Fichiers musicaux sous interruptions

Les programmes qui suivent vous permettront de créer simplement des fichiers musicaux exécutables sous interruptions (IT en abrégé), et donc pendant qu'un autre programme se déroule.

Deux programmes sont présentés :

  • le premier montre comment activer le processeur sonore sous IT ;
  • le second permet de créer des fichiers musicaux exécutables sous IT.

Examinons en détail le système d'IT existant sur le circuit sonore AY3-8912.

ACTIVATION DU PROCESSUS SONORE SOUS IT

Tout d'abord, signalons aux personnes qui ne sont pas habituées à manipuler les IT que les choses se déroulent en deux temps :

1°) Déclaration de l'IT et armement,

2°) Définition de la routine qui sera exécutée à chaque IT.

1°) Déclaration de l'IT et armement :

Pour déclarer l'IT, nous ferons appel à la macro du firmware « INITEV » (KL INIT EVEN BLOCK #BCEF), dont le but est de définir le type d'IT et son adresse d'exécution (Reportez-vous en 4/2.7 pour avoir plus de détails sur cette macro).

Pour lancer l'IT, nous faisons appel à la macro du firmware « ADDEVE » (KL ADD TICKER # BCE9) dont le but est de définir l'intervalle de temps entre deux IT consécutives. (Pour plus de détails, reportez-vous à la partie 4 chap. 2.7).

2°) Définition de la routine qui sera exécutée à chaque IT :

Ces deux routines appelées, il faut définir la routine qui sera exécutée à chaque IT.

La première opération à faire dans une telle routine est de dévalider les interruptions (Dl), la deuxième est de sauvegarder les registres qui risquent d'être écrasés (PUSH AF, BC, DE, HL, IX et IY).

Ensuite, la routine d'IT peut être décrite.

Dans notre cas, si l'IT est exécutée pour la première fois, il faudra définir une enveloppe de volume par la macro du firmware « ENV ». Reportez-vous à la partie 4 chap. 2.7 pour avoir plus de détails. Ensuite, que ce soit la première fois ou non, nous allons activer la voie de droite (1 ), puis les voies de droite et de gauche simultanément (4), puis la voie de gauche (2) par la macro du firmware « SOUND ». Reportez-vous à la partie 4 chap. 1.2.7 pour avoir plus de détails. Si le morceau est fini, le pointeur de notes sera remis au début du morceau ; autrement dit, le morceau s'exécutera sans fin.

L'IT doit se terminer par la restitution des registres (POP IY, IX, HL, DE, BC, AF) dans l'ordre inverse où ils ont été sauvegardés, et par la revalidation des interruptions (EI), d'où l'organigramme suivant (Voir page 3) .

Cet organigramme donne lieu au programme suivant:




Lignes 1 à 14 : Déclarations diverses.
Lignes 17 à 26 : Routine d'activation d'IT.
Lignes 28 à 93 : Routine d'IT.
Ligne 28 : — Entrée dans l'IT.
Ligne 38 : — Premier passage dans l'IT.
Lignes 47 à 52 : — Activation des canaux 1, 4 et 2.
Lignes 53 à 58 : — Test fin de morceau.
Lignes 62 à 69 : — Fin de l'IT.

CRÉATION DE FICHIERS MUSICAUX EXÉCUTABLES SOUS INTERRUPTIONS

Si vous possédez une partition et si vous savez la déchiffrer, il vous sera très simple de créer des fichiers musicaux exécutables sous IT par l'éditeur musical que nous présentons ici. Cet éditeur ne permet de générer que des notes ayant la même durée.

Si vous désirez créer des notes ayant des longueurs différentes, il sera nécessaire de :

1°) modifier le programme d'IT en définissant une enveloppe de volume différente pour chaque longueur de note,

2°) valider l'enveloppe correspondant à la durée de note à jouer avant chaque émission de note.

Dès le début du programme, un menu apparaît à l'écran.

Vous pouvez :

  • charger un morceau,
  • écrire un morceau,
  • l'exécuter,
  • le sauvegarder.

L'écriture du morceau fait aussi appel à un menu. Vous pouvez :

  • entrer une note,
  • corriger une note,
  • supprimer une note.

L'option « exécution du morceau » fait entendre les trois voies simultanément, du début à la fin du morceau, en exécutant le programme d'interruptions cité précédemment.

L'option « Sauvegarde » permet de créer un fichier musical directement utilisable par le programme d'IT. Ce fichier pourra être repris par la suite par l'éditeur musical, ou servir de support sonore à l'exécution d'un jeu (par exemple).

L'option « Chargement » permet de mettre en mémoire un fichier musical afin d'y faire des modifications ou d'en continuer l'écriture.

L'éditeur musical correspond au listing suivant :






Lignes 1160 à 1210 : Chargement du programme musical sous IT.
Lignes 1220 à 1330 : Chargement des fréquences des notes.
Lignes 1360 à 1490 : Menu.
Lignes 1590 à 1690 : Ecriture d'un morceau.
Lignes 2070 à 2150 : Analyse des notes entrées.
Lignes 2190 à 2230 : Correction d'une note.
Lignes 2270 à 2350 : Suppression d'une note.
Lignes 2390 à 2710 : Affichage des notes déjà en mémoire.
Lignes 3020 à 3250 : Exécution du morceau.
Lignes 3290 à 3460 : Chargement d'un morceau.
Lignes 3500 à 3640 : Sauvegarde d'un morceau.

Le sous-programme assembleur utilisé est le programme d'exécution de musique sous IT précédemment analysé.

Remarques :

— Pour arrêter la musique, faites POKE &900D,0
— Pour redémarrer la musique à l'endroit où elle avait été interrompue, faites POKE &900D,1.
— Si, lors de l'exécution d'un morceau, les trois voies vous semblent être légèrement décalées (souvent après la compilation d'un morceau déjà compilé), sauvez le morceau actuel et réexécutez le programme.

Page précédente : 6/5 Logiciels
Je participe au site:

» 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 591 millisecondes et consultée 603 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.