★ CODING ★ AMSLIVE ★ AMSLIVE n°12 - VU, MAITRE ? ★ |
AMSLIVE n°12 - Vu Metre | Coding Amslive |
Plat du jour : Les Equalisers ! 1 ère Partie - Le principeMais d'abord ! Un nez kwa liseur c'est quoi donc ? Classiquement, c'est un effet qui permet de voir l'évolution du volume sonore des 3 voies (comme un vumètre), en fonction de la fréquence. La méthode pour faire des equalisers et très proche de celle des vumètres. La seule différence c'est qu'il faut prendre en compte les registres de fréquence du PSG en plus des registres de volume. (NDRC : gros abus de langage. Un équaliser -égaliseur en français-, comme son nom l'indique, permet d'ajuster individuellement l'amplification de bandes de fréquence. C'est le vumètre -volume meter- , comme son nom l'indique aussi, qui mesure et représente le volume, que ce soit d'une voie entière, ou de bandes de fréquence). (NDSNN : Madram, on avait dit que tu te reposais pendant un mois, donc, par pitié, tu ranges ton clavier dans un coin et tu vas dormir. Merci.) Donc sur CPC, on peut avoir 4096 notes différentes par leur fréquence (sans tenir compte des enveloppes hard). Imaginons que nous ayons une table de A chaque synchro verticale on joue la musique qui va modifier les registres du PSG pour obtenir un son (audible de préférence :). Avant de tester le PSG, on s'occupe de décrémenter chaque octet de la table qui n'est pas égal à 0 puis on teste la fréquence et le volume des 3 voies sonore. Si par exemple la voie 1 a une fréquence définie par la valeur 142 (LA 4/440Hz) et un volume de 10, et bin on met dans le 142ème octet de notre table la valeur du volume, soit 10. On fait de même pour les voies 2 et 3. Pour représenter cette table, on peut faire comme dans le Soundtracker 128 ou comme dans la Hard'n'Heavy (Voyage 93) ou encore avec des sprites, des rasters, du plasma, wobbler,... Voie 1 R0 et R1 : poids faible et fort de la fréquence. Voie 2 R2 et R3 : idem voie 1 Voie 3 R4 et R5 : idem voie 1 Pour le moment on n'utilisera que cela. Remarques : la fréquence est codée sur 12 bits donc seul les 4 bits de poids faible de R1, R3 et R5 sont utiles. Pour obtenir cette valeur sur 12 bits en fonction de la fréquence (en Hertz), on fait : Valeur12bit = 62500/fréquence Le volume lui est codé sur 4 bit. Le bit 4 de R8, R9 ou R10 permet d'activer ou non les enveloppes hard du PSG. Voila, à présent on s'attaque à la pratique avec un source d'exemple. 2ème partie - la deuxième partie. Donc on a vu qu'il fallait gérer une table de 64 valeurs plutôt que de 4096. Pour cela la méthode ne change pas si ce n'est qu'il faut diviser par 64 la valeur des registres de fréquence ! (si si ! 4096/64=64 !!!). Pourquoi choisir 64 et pas 157 ? Bin paske les divisions par des puissances de 2 sont beaucoup plus simples et rapides à faire avec le Z80 ! Il suffit juste de faire des décalages ! Le source d'exemple est volontairement très primitif afin d'être compris rapidement pour que VOUS puissiez l'améliorer à vot' sauce à vous ! Primitif d'abord car les 3 voies sonore n'ont pas le même niveau de priorité, c'est la dernière testée qui l'emporte ! C'est à dire que si plusieurs voies ont la même période, c'est le volume de la dernière voie testée qui sera pris en compte alors que cela devrait être le volume maximum atteint PARMI les 3 voies... (NDMR : ah ?!?) (NDSNN : Mad ! AU LIT !) Primitif ensuite parce tous les paramètres ne sont pas pris en compte comme l'influence des enveloppes hard ou du bruit... Voici en gros la routine de gestion de la table : ; DECREMENTE SI VALEUR > 0 |
|
Page précédente : AMSLIVE n°12 - Sons et Samples |
|