CODINGLISTINGS ★ ILLUSTRATIONS SONORES POUR AMSTRAD ★

Illustrations sonores pour AmstradCoding Listings

Sans illustration sonore un jeu reste bien terne. Afin donc, de donner un peu de vie à vos programmes, voici comment réaliser sur Amstrad quelques bruitages sélectionnés parmi les plus utilisés.

N'oublions pas que sur ce microordinateur il existe aucun son programmé d'origine. Cependant grâce aux instructions ENV et SOUND, il nous sera possible de mettre au point de très bons bruitages. Rappelons que, pour paraître réel, un son devra comporter une ou plusieurs fréquences de base, plus, éventuellement, un bruit et son évolution contrôlée dans le temps. Les notes de base seront générées à l'aide de SOUND et nous déterminerons un format d'enveloppe (évolution dans le temps) en utilisant ENV.

Pour que ces illustrations sonores soient facilement accessibles —du moins pour vous les présenter— nous les avons regroupées dans diverses sous-routines directement disponibles depuis une page de présentation. Chaque fois qu'un son sera demandé, l'ordinateur rappellera, au bas de l'écran, le type de son choisi ainsi que l'emplacement dans le programme de la sous-routine employée.

Enfin dans chaque sous-routine un emplacement est réservé pour une animation. Celle-ci, pour ne pas perturber la génération du son, devra rester aussi courte que possible (modification de la position de quelques caractères présents sur l'écran par exemple).

Comme il est facile de le constater nous placerons toujours les animations après une instruction SOUND. Ceci nous permettra d'utiliser le “buffer” du générateur de sons et donc de laisser à l'ordinateur le temps de faire autre chose pendant qu'une note est émise.

Ces précisions apportées, pas sons au programme. Nous commencerons par passer la machine en mode 1 (mode de fonctionnement standard pour l'affichage) puis l'écran sera effacé (ligne 5). Ensuite nous imprimerons la page de présentation. Une succession d'instructions PRINT sera utilisée à cet effet des lignes 10 à 60. Rien donc de bien nouveau ici. Ensuite une boucle nous permettra de savoir si une touche du clavier a été frappée.

Le programme reviendra systématiquement sur cette boucle tant qu'aucun son ne sera demandé, en raison du test de la ligne 80. En cas contraire, la variable SUB prendra une valeur liée à la touche tapée et l'instruction ON sub GOSUB de la ligne 90 aiguillera le programme vers la sous-routine désirée. Notons qu'après l'exécution de chaque sous-routine l'état du générateur de sons sera contrôlé par le test de la ligne 91 afin d'éviter de lui envoyer de nouvelles données tant que le son précédent n'aura pas été totalement exécuté.

Ce contrôle est indispensable pour éviter une saturation et donc un certain cafouillage du générateur de sons. Enfin, avant les diverses sous-routines, nous trouverons une suite de données contenues dans une chaîne DATA (ligne 100). Nous utiliserons ces dernières pour créer la mélodie des instruments de musique synthétisés. Les données seront lues par groupes de deux. La première de chaque groupe commandera le canal sonore numéro 1, la seconde
commandera le numéro 2.

Passons donc maintenant à l'écriture de chaque sous-routine. Le nombre d'illustrations sonores proposées étant de 10, il n'est pas surprenant de trouver 10 sous-routines. Notons qu'une onzième nous permettra de simplifier celles concernant les instruments de musique.

La bombe

Nous trouverons sa sous-routine entre les lignes 1100 et 1135. En premier lieu nous déterminerons une enveloppe sonore correspondant à une explosion.

L'ordre ENV sera utilisé à cet effet à la ligne 1100. Si vous désirez utiliser directement ce bruitage dans un jeu, la ligne 1101 devra être supprimée.

En effet son seul but est d'afficher sur l'écran le type et le numéro de la sous-routine employée. Les instructions SOUND des lignes 1110 et 1115 généreront le sifflement de la bombe durant sa chute, une courte animation pourra être logée après elles, puis les lignes 1125 et 1130 simuleront l'explosion.

Là encore, une animation pourra prendre place. Cette sous-routine se terminera par l'instruction RETURN de la ligne 1135.

La mitrailleuse

Ce bruitage utilise les lignes 1220 à 1230. Deux enveloppes seront créées: l'une sera utilisée pour le tir des balles, l'autre eir fin de salve. Le nombre de projectiles tirés est fixé par la valeur de I à la ligne 1210-20 dans notre cas, mais 

ce chiffre pourra aisément être modifié.

Vient ensuite la salve: ordre SOUND de la ligne 1215 avec utilisation de la première enveloppe, puis la fin de tir avec utilisation à la ligne 1225 de l'enveloppe numéro 2.

Cette sous-routine se terminera en ligne 1230 par une instruction RETURN. Comme précédemment, il sera possible de loger une courte animation après la ligne 1215.

La D.C.A.

La sous-routine des lignes 1300 à 1320 sera utilisée. Ici, contrairement aux autres cas nous ne définirons pas d'enveloppe. En effet, seule une modulation du générateur de bruits nous permettra de synthétiser cette arme. Là encore, le nombre de coups par salve sera fonction de la valeur donnée à I en ligne 1301.

F nous permettra de moduler le générateur de bruits en introduisant sa valeur à la fin de l'ordre SOUND de la ligne 1305. Si une animation est souhaitée elle devra être placée immédiatement à la suite de cette ligne. Cette sous-routine se terminera en 1320 par un ordre RETURN.

Le revolver Nous simulerons ici le bruit du coup et le sifflement de la balle. Nous commencerons donc par créer une enveloppe correspondant au son produit par le coup (ligne 1400) puis celui-ci sera généré (ligne 1405). Comme pour les autres cas, une animation pourra prendre place entre les lignes 1405 et 1410.

Une légère pause sera introduite entre le coup et le sifflement de la balle à l'aide de la boucle de la ligne 1410. Une seconde boucle sera alors utilisée pour restituer le sifflement de la balle et contrôlera également la puissance du son émis. En effet I interviendra ici deux fois: à la fois pour la fréquence et pour le volume. Notons que, étant donné la vitesse d'exécution de cette boucle, il ne sera pas possible de lui insérer d'anih mation. Cette sous-routine se terminera en ligne 1430 par un ordre RETURN.

La locomotive Cette illustration sonore utilisera la sous-routine comprise » entre les lignes 1500 et 1545. Nous commencerons par définir une enveloppe (ligne 1500) puis deux boucles successives seront chargées de restituer l'effet de déplacement du train.

Elles commanderont avant tout le générateur de bruit du micro-ordinateur. Nous trouverons ces deux boucles respectivement entre les lignes 1505 et 1520 puis 1525 et 1540. Deux emplacements sont réservés pour y loger une animation. Cette sous-routine se terminera en ligne 1545 par RETURN.

L'avion

Ce bruitage correspond au bruit que l'on peut entendre lorsque l'on se trouve dans un bimoteur à hélice. La sous-routine placée entre les lignes 1600 et 1620 sera utilisée. La durée de cette illustration sonore est directement liée à celle de I (ligne 1601) ; il sera donc aisé de la modifier.

Ici, nous n'utiliserons pas d'enveloppe mais deux fréquences proches sur les canaux 1 et 2 permettront, par effet de battement, de restituer le bruit d'un avion en vol. Un emplacement est prévu pour une animation en ligne 1612.

Cette sous-routine se terminera en 1620 par une instruction RETURN. 

Les instruments de musique

Comme, dans tous les cas, la sous-routine d'exécution de la mélodie sera identique, nous l'avons logée dans une annexe située entre les lignes 3000 et 3080.

Etudions sa fonction avant de voir le cas de chaque instrument qui, somme toute, ne sera qu'une modification de l'enveloppe utilisée pour cette annexe. En premier lieu trois boucles permettront de jouer la mélodie avec diverses
transpositions (lignes 3000,3005 et 3010 utilisant les variables I, O et L). Ensuite les données contenues dans la ligne 100 seront, comme nous l'avons indiqué plus haut, lues (ligne 3025) puis aiguillées vers les deux premiers canaux sonores (lignes 3035 et 3040).

La ligne 3040 prend en compte les variables O, L et W afin, à partir d'une mélodie on ne peut plus simple, d'agrémenter son orchestration. Pour modifier l'air joué il suffira de modifier les données contenues dans la ligne 100, mais 

attention, les bornes de M devront être modifiées en conséquence (ligne 3020). Ces précisions apportées passons en revue l'ensemble des instruments que nous imiterons.

Le synthétiseur 1

Ici tout est permis. Nous utiliserons donc l'enveloppe déterminée en 2000 en lui ajoutant du bruit à l'aide de la variable P et en fixant la hauteur du son par W.

L'orgue

Ici seule l'enveloppe et le bruit seront modifiés (aucun bruit ne sera ajouté à la mélodie.

Le synthétiseur

L'enveloppe, ainsi que le niveau de bruits ajoutés seront modifiés de manière à obtenir un son plus syncopé.

L'harmonica

L'enveloppe sera de nouveau modifiée ainsi que la fréquence fixée par la lecture des données à l'aide de W. Cette sous-routine se terminera en 2315 par un ordre RETURN.

Ce programme, avant tout destiné à être utilisé sous-routine par sous-routine pour vos jeux, ne doit pas poser de problème de frappe particulier. Afin de faciliter son adaptation sur d'autres appareils nous n'avons pas utilisé, pour notre listing, le basic abrégé. Rap pelons que pour l'Amstrad les instructions doivent être tapées caractère par caractère ou en abrégé (pour cela consultez votre fascicule d'emploi).

L'utilisation de ce programme reste également fort simple. Après avoir tapé “RUN” la page de présentation s'affichera et vous demandera le son désiré. Après sélection, la sous-routine concernée sera exécutée puis la page de présentation sera de nouveau affichée. Notons que, comme l'Amstrad possède un “bufifer” de clavier capable de mémoriser la frappe d'une suite de touches, il sera possible de demander une série de sons, sans attendre leur exécution.

Il en sera de même quant à l'utilisation de ces illustrations sonores dans vos programmes; il sera inutile d'attendre la fin d'un son avant d'entamer l'opération «suivante, sous réserve toutefois de ne pas saturer le générateur de sons.

Henri-Pierre PENEL , Science&Vie n°823

★ EDITEUR: Science&Vie
★ LICENCE: LISTING
★ ANNÉE: 1986
★ AUTEUR: Henri-Pierre PENEL

★ AMSTRAD CPC ★ DOWNLOAD ★

Type-in/Listings:
» Illustrations  sonores  pour  Amstrad    (Science  et  Vie)    FRENCHDATE: 2018-07-30
DL: 6 fois
TYPE: ZIP
SIZE: 20Ko
NOTE: Uploaded by CPCLOV ; 42 Cyls
.HFE: OUI

» Illustrations  sonores  pour  Amstrad    (Science  et  Vie)    LISTING    FRENCHDATE: 2016-01-10
DL: 36 fois
TYPE: PDF
SIZE: 1536Ko
NOTE: 2 pages/PDFlib v1.6

Je participe au site:
» Newfile(s) upload/Envoye de fichier(s)
★ AMSTRAD CPC ★ A voir aussi sur CPCrulez , les sujets suivants pourront vous intéresser...

Lien(s):
» Coding Src's » Graphic - 3D Sine Wave on Amstrad (Popular Computing Weekly)
» Coding Src's » Caleidoscópio (Amstrad Magazine)
» Coding Src's » Torus
» Coding Src's » Curseur Clignotant
» Coding Src's » Dump anything off the screen (Computing With the Amstrad)
» Coding Src's » Graphic - Wandering Through Space

QUE DIT LA LOI FRANÇAISE:

L'alinéa 8 de l'article L122-5 du Code de la propriété intellectuelle explique que « Lorsque l'œuvre a été divulguée, l'auteur ne peut interdire la reproduction d'une œuvre et sa représentation effectuées à des fins de conservation ou destinées à préserver les conditions de sa consultation à des fins de recherche ou détudes privées par des particuliers, dans les locaux de l'établissement et sur des terminaux dédiés par des bibliothèques accessibles au public, par des musées ou par des services d'archives, sous réserve que ceux-ci ne recherchent aucun avantage économique ou commercial ». Pas de problème donc pour nous!

CPCrulez[Content Management System] v8.75-desktop/cache
Page créée en 157 millisecondes et consultée 539 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.