S

SOUND

Instruction qui permet d'écrire une valeur dans un registre du PSG

Syntaxe
SOUND numéro de registre,nombre


L'utilisation de SOUND est assez complexe pour qui n'est pas familier avec les notions d'acoustique. La génération d'un son sur le MSX résulte d'une combinaison entre les différents registres et les valeurs qui y sont mises.

Voici le tableau qui récapitule les registres, leur sens et les valeurs qui peuvent y être mises.

numéro de registre

description

plage de valeurs

0 8 bits les moins significatifs pour la fréquence du canal A 0-255
1 4 bits les plus significatifs pour la fréquence du canal A 0-15
2 8 bits les moins significatifs pour la fréquence du canal B 0-255
3 4 bits les plus significatifs pour la fréquence du canal B 0-15
4 8 bits les moins significatifs pour la fréquence du canal C 0-255
5 4 bits les plus significatifs pour la fréquence du canal C 0-15
6 5 bits pour la fréquence de bruit 0-31
7 mixage 128-191
8 bits 0-3 pour le volume du canal A ou bien bit 4 à 1 pour le contrôle du volume par enveloppe 0-16
9 bits 0-3 pour le volume du canal B ou bien bit 4 à 1 pour le contrôle du volume par enveloppe 0-16
10 bits 0-3 pour le volume du canal C ou bien bit 4 à 1 pour le contrôle du volume par enveloppe 0-16
11 8 bits les moins significatifs pour la période de l'enveloppe 0-255
12 8 bits les plus significatifs pour la période de l'enveloppe 0-255
13 forme de l'enveloppe 0-15

notes :
1) la fréquence de chacun des canaux (A, B, C) est codée sur 12 bits
2) la fréquence du bruit est codée sur 5 bits
3) le mixage (registre 7) permet d'activer/désactiver le son/bruit pour chaque canal A, B, C
bit 0 : son canal A
bit 1 : son canal B
bit 2 : son canal C
bit 3 : bruit canal A
bit 4 : bruit canal B
bit 5 : bruit canal C
bit 6 : port A d'entrée/sortie du PSG (mettre à 0 de préférence)
bit 7 : port B d'entrée/sortie du PSG (mettre à 1 de préférence)
4) la forme de l'enveloppe (registre 13) de modulation du volume (si bit 4 des registre 8 ou 9 ou 10 mis à 1)
0,1,2,3,9 \_______
4,5,6,7,15 /_______
8 \\\\\\\\
10 \/\/\/\/
11 \ ̄ ̄ ̄ ̄ ̄ ̄ ̄
12 ////////
13 / ̄ ̄ ̄ ̄ ̄ ̄ ̄
14 /\/\/\/\


Exemple (tiré de MSX2-BASIC d'A. Sickler)
10 SOUND 0,250 : SOUND 1,0
20 SOUND 6,20 : SOUND 7,20 : SOUND 13,20
30 FOR I = 15 TO 0 STEP -0.05
40 SOUND 8,I
50 NEXT I
60 END


Résultat
Le programme va provoquer un bruit de tir.


[/fieldset]
Cette page a été vue 2729 fois