Obligement - L'Amiga au maximum

Dimanche 24 juin 2018 - 16:34  

Translate

En De Nl Nl
Es Pt It Nl


Rubriques

 · Accueil
 · A Propos
 · Articles
 · Galeries
 · Glossaire
 · Liens
 · Liste jeux Amiga
 · Quizz
 · Téléchargements
 · Trucs et astuces


Articles

 · Actualité (récente)
 · Actualité (archive)
 · Comparatifs
 · Dossiers
 · Entrevues
 · Matériel (tests)
 · Matériel (bidouilles)
 · Points de vue
 · En pratique
 · Programmation
 · Reportages
 · Tests de jeux
 · Tests de logiciels
 · Tests de compilations
 · Articles divers

 · Articles in english
 · Articles in other languages


Twitter

Suivez-nous sur Twitter




Liens

 · Sites de téléchargements
 · Associations
 · Pages Personnelles
 · Matériel
 · Réparateurs
 · Revendeurs
 · Presse et médias
 · Programmation
 · Logiciels
 · Jeux
 · Scène démo
 · Divers


Jeux Amiga

0, A, B, C, D, E, F,
G, H, I, J, K, L, M,
N, O, P, Q, R, S, T,
U, V, W, X, Y, Z


Trucs et astuces

0, A, B, C, D, E, F,
G, H, I, J, K, L, M,
N, O, P, Q, R, S, T,
U, V, W, X, Y, Z


Glossaire

0, A, B, C, D, E, F,
G, H, I, J, K, L, M,
N, O, P, Q, R, S, T,
U, V, W, X, Y, Z


Partenaires

Annuaire Amiga

Amedia Computer

Relec

Hit Parade


Contact

David Brunet

Courriel

 


Programmation : GFA Basic - Initiation à l'audio
(Article écrit par Max et extrait d'Amiga News Tech - mai 1989)


Nous connaissons maintenant les bases du graphisme en GFA, mais un jeu sans musique, ni bruitage n'est pas un vrai jeu. C'est donc tout naturellement que ce deuxième volet de notre petite initiation au GFA est consacré à la production de sons divers et mélodieux.

Rappelons quand même, avant de commencer, que cette initiation est destinée à vous aider pour le merveilleux-hyper-méga concours organisé conjointement par votre revue préférée et Micro Application, concernant la réalisation d'un jeu en GFA Basic. Cela me semble assez important, vu que je n'ai pas du tout la prétention de vous apprendre à composer une musique dans ce langage, chose dont je serais par ailleurs bien incapable. Il y a des professionnels pour cela et ce n'est pas Jean Baudiot, ni mon copain Popol qui me contrediront...

Crac, zim, boum, huuue !

GFA Basic ne se distingue pas réellement par la quantité de ses instructions sonores ; au nombre de deux uniquement, elles permettent pourtant de réaliser quelques bruitages sympathiques.

SOUND freq, dur, vol, can : il s'agit-là de l'instruction la plus primitive. Elle permet de générer un son de fréquence "freq" et de durée "dur", avec le volume "vol" sur le canal "can". Ces deux derniers paramètres, "vol" et "can", sont optionnels. La fréquence d'un son exprime sa hauteur. Plus la fréquence est élevée, plus le son est aigu. Voici un petit tableau qui vous donnera une idée des fréquences disponibles :

Note Fréquence
Do 261
293
Mi 329
Fa 349
Sol 392
La 440
Si 493

Ceux qui possèdent quelques connaissances en musique auront reconnu le La du diapason, à 440 Hz. Maintenant, pour obtenir les octaves inférieures et supérieures, il suffit de diviser (respectivement multiplier) ces valeurs par deux. Par exemple :
  • SOUND 440,1000 : joue le La du diapason.
  • SOUND 880,1000 : le même, une octave au-dessus.
  • SOUND 220,1000 : encore le même, une octave en dessous.
Le paramètre "dur" est un nombre sur 16 bits (0 à 65 535), indiquant combien de fois la courbe sinusoïdale du son sera répétée. Une valeur de 1000 comme dans les exemples ci-dessus, produit un son assez court.

"vol" permet de faire varier le volume du son créé. Il s'agit d'une valeur sur huit bits (0 à 255). Si ce paramètre est omis, GFA Basic jouera le son avec un volume moyen (127).

"can" permet, quant à lui, de décider sur quel canal le son devra être joué. L'Amiga possède quatre canaux sonores, numérotés de 0 à 3 (la stéréo autorise des effets assez intéressants). Les canaux 0 et 3 correspondent au haut-parleur gauche, tandis que les canaux 1 et 2 correspondent au droit.

Voilà pour Sound. L'instruction suivante, Wave, permet de modifier la courbe du son, c'est-à-dire son enveloppe. Voyons tout cela plus en détails. WAVE can, courbe() : comme précédemment, "can" permet de définir sur quel canal sonore on va agir. En effet, il est impossible de donner une courbe particulière à un son donné, mais seulement à une voix donnée. De fait, si l'on veut par exemple émettre d'abord un son avec un effet de vibrato, puis sur la même voix, en émettre un second, avec cette fois-ci un effet d'arpeggio, il sera obligatoire, entre les deux sons, de redéfinir la courbe de cette voix.

Le paramètre "courbe()" est un tableau d'entiers, qui contient donc la définition de la courbe du son. La courbe standard est une sinusoïde, que l'on peut par ailleurs obtenir grâce à la fonction "SIN()". Une telle courbe fait en sorte que le son monte lentement et régulièrement de sa fréquence minimale (0 !& à sa fréquence maximale, le paramètre "freq" de SOUND), s'y attarde un peu, puis redescende jusqu'à sa fréquence minimale pour ensuite remonter, autant de fois que le permet le paramètre "dur" de SOUND. Mais rien n'oblige à ce que le son soit sinusoïdal, une parabole est, par exemple, tout à fait envisageable (le son monte plus ou moins rapidement jusqu'à son apogée et ne descend pas), ou n'importe quelle autre courbe. En règle générale, les fonctions mathématiques (sinus donc, mais aussi cosinus, puissance, etc.) donnent des courbes aux effets surprenants.

Nous sommes parfaitement conscients qu'écrire une mélodie en GFA Basic n'est pas chose facile, surtout pour celui qui ne possède pas de connaissances particulières en solfège. C'est pourquoi nous ne serons pas trop regardants de ce côte-là... Mais soignez tout de même vos bruitages !

This is Amiga speaking

On l'a assez répété, l'Amiga possède un synthétiseur vocal intégré, auquel on peut accéder depuis le GFA Basic. Il existe pour cela deux instructions spécialisées, les mêmes qu'en AmigaBasic : SAY et TRANSLATE$(). Les accès à ces instructions nécessitent toutefois une petite précaution : le narrator.device doit se trouver dans le répertoire DEVS: de la disquette Workbench et la translator.library dans le répertoire LIBS:.

SAY envoie un texte phonétique au synthétiseur, lequel le sort sur le canal audio spécifié. SAY a$,m %() : "a$" contient alors le texte phonétique à sortir et "m %()" est un tableau d'entiers, destiné à modifier la sortie de la parole. Ce tableau est composé de sept éléments :

m %() Fonction
m %(0) Fréquence
m %(1) Modulation
m %(2) Vitesse
m %(3) Sexe
m %(4) Fréquence
m %(5) Volume
m %(6) Canal

Voici maintenant le détail de chacun de ces paramètres :
  • m %(0) contient la fréquence de base, qui peut s'échelonner de 65 à 320. La valeur par défaut est 110.
  • m %(1) contient le type modulation. "1" donne une synthèse "naturelle" (humain), tandis que 0 donne une valeur "monotone" (robot). La valeur par défaut est "0".
  • m %(2) contient la vitesse de la parole. Cette valeur peut varier de 40 à 400, sachant que le réglage par défaut est 150.
  • m %(3) contient le sexe de la voix, avec 0=masculin et 1=féminin. La valeur par défaut est "0".
  • m %(4) contient la fréquence de l'échantillonnage, c'est-à-dire la hauteur de la voix (aigüe ou grave). Cette valeur varie de 5000 à 28 000, avec une valeur par défaut de 22 000.
  • m %(5) contient le volume, de 0 à 64. Le volume par défaut est 64.
  • m %(6) contient le(s) canal(aux) où émettre la voix, d'après la table suivante :
m %(5) Canal
0 0
1 1
2 2
3 3
4 0 et 1
5 0 et 2
6 3 et 1
7 3 et 2
8 0 et 3
9 1 ou 2
10 0 ou 3 et 1 ou 2
11 0, 1, 2 ou 3

Un "et" dans le tableau signifie que la voix sera sortie sur tous les canaux spécifiés, tandis qu'un "ou" signifie qu'elle sera émise sur celui des canaux spécifiés qui sera libre à ce moment-là. La valeur par défaut est "10", ce qui donne, de toute manière, un effet stéréo.

Sampler et sans reproche

Voilà. Une dernière chose pour terminer. Il est parfaitement possible, en GFA Basic, de jouer des sons échantillonnés que l'on aura récupéré à partir de logiciels comme Aegis Sonix, SoundTracker ou AudioMaster. Mais cela oblige à bidouiller les registres machine de l'Amiga par de longues séries de DPOKE interminables (c'est le nouveau jeu de Guy Lux sur la Une : Inter-Minables), bref, à bien connaître le fonctionnement de l'Amiga. De tels sons seront bien entendu acceptés dans le cadre de notre concours, mais ne seront pas pris en compte par le jury pour l'estimation de votre jeu. Si vous désirez en savoir plus sur ce sujet, je ne peux que vous renvoyer à l'ouvrage "La Bible de l'Amiga" de chez Micro Application justement, qui possède un chapitre complet sur les sons échantillonnés.

Le troisième et dernier volet de cette (petite) initiation au GFA Basic sera consacré à l'utilisation des routines du système, et notamment de la graphics.library qui vous permettront par exemple de faire défiler l'écran, etc.


[Retour en haut] / [Retour aux articles] [Article précédent] / [Article suivant]