CODINGCHRONIQUE A100% DES LOGON SYSTEM ★ LE SOUNDTRACK SUR CPC ★

Logon System ACPC n°49 - Le soundtrack sur CPCCoding Chronique A100% Des Logon System

Un bon jeu ou bien une bonne démo, rythmés par une belle musique, sont d'autant plus prenants et destinés à rester à jamais gravés dans nos mémoires, si la bande sonore est de qualité.

Beaucoup de CPCistes, habitués aux sons peu élaborés de leur bonne vieille machine, ont été émerveillés par les musiques existant sur d'autres bécanes (Amiga ou Atari, par exemple).

Certains diront que c'est scientifique, car le CPC est équipé d'un microprocesseur 8 bits, tandis que ses concurrents (enfin, il y a longtemps que le CPC n'est plus dans le coup) sont pourvus de microprocesseurs 16 bits (en l'occurrence le 68000 pour Amiga et Atari). D'autres, encore, diront que le son du CPC ne sort pas en stéréo par le moniteur et n'est donc pas mis en valeur. Et enfin les pros crieront d'une seule et même voix: « C'est normal, c'est du soundtrack ! ».

KESAKO?

Évidemment les néophytes ne seront pas plus avancés si le principe de base de cette technique ne leur est pas expliqué.

À la base du soundtrack, comme dans beaucoup d'équipements sonores modernes (boîte à rythme, synthé, modules d'effets sonores comme les chambres d'écho ou de réverbération -, etc.), on retrouve le sampling (ou échantillonnage).

Le sampling consiste à enregistrer, grâce à des circuits spécialisés (appelés convertisseurs analogiques/numériques). des sons d'instruments de musique ou non, sous forme numérique (une suite de 0 et 1). afin de pouvoir les mémoriser. Chaque enregistrement devient un sample (un échantillon). Une fois mis en mémoire, il peut-être déformé, filtré et retravaillé selon les capacités de chaque machine et de chaque utilisateur). Il est bien évident qu'un échantillon samplé sur une très grosse machine de studio électroacoustique, selon les directives de Prince, aura un son autrement riche que celui d'un quelconque rap-system. Une fois traité, l'échantillon permet d'obtenir de nouveaux sons ou des effets sonores particuliers. Il est ensuite possible d'enchaîner les samples modifiés pour composer des morceaux de musique.

En général. très peu de micros sont équipés pour enregistrer d'origine des sons sous forme numérique. Pour cela, des cartes spécialisées sont nécessaires. Par contre, la restitution est à la portée de n'importe quelle machine et se fait par l'intermédiaire du processeur sonore qui l'équipe.

APPLICATION: LE CD

Le lecteur de disque compact illustre très bien le fonctionnement de ce système. Pour l'enregistrement d'un disque, les musiciens jouent en studio (la plupart des studios enregistrent en numérique, du fait de la totale absence de souffle). Une fois travaillé et remixé par l'ingénieur du son, l'enregistrement. qui n'est en fait qu'un gigantesque échantillon, est transféré sur une machine-outil qui le gravera sur disque compact sous la forme d'une suite de 0 et de 1.

Lorsque vous désirez écouter un disque (Longshot me propose Barbelivien, non merci), vous l'insérez avec délicatesse dans votre lecteur. Le faisceau laser parcourt le disque en lisant les petits 0 et 1, gravés sous la forme d'alvéoles, pour les convertir en un signal sonore, grâce à un convertisseur numérique/analogique, que vos oreilles (elles-mêmes analogiques) pourront percevoir. En résumé, on pourrait dire qu'un CD n'est ni plus ni moins qu'un gros sample qui dure une heure.

UN PEU DE THEORIE

Il est difficile d'obtenir une restitution de bonne qualité, je vais vous expliquer pourquoi en réveillant les mathématiciens qui dorment chez certains d'entre vous, quant aux autres...

La conversion d'un signal (que ce soit l'acquisition ou la restitution) doit se faire très rapidement et nécessite donc un microprocesseur rapide. Mais pourquoi, me demandez-vous?

Tout simplement. parce qu'il faut savoir, d'une part, que l'être humain perçoit des sons ayant des fréquences de 20 Hz jusqu'à 20 kHz (20 Hz correspond au son le plus grave que l'oreille entend et 20 kHz, le plus aigu). De plus, un mathématicien a ajouté (je crois que c'est un certain Nyquist) que pour ne rien perdre d'un signal (à la restitution ou à l'acquisition), il faut l'échantillonner au double de sa fréquence, soit légèrement au-delà de 40 kHz.

Tout cela pour vous dire qu'une très bonne qualité d'échantillonnage s'obtient avec une fréquence de plus de 40 kHz (pour votre culture personnelle, il faut savoir que les CD échantillonnent à 44 kHz).

La place mémoire est aussi un problème, d'après nos calculs savants (voir plus haut), on sait que si l'on échantillonne à 40 khz, cela revient à stocker 40 000 échantillons par seconde.

Tout cela est théorique, dans la pratique, très peu de micros échantillonnent à des vitesse aussi élevées (en général 15 kHz sur Atari et Amiga), mais ce que l'on peut retenir, c'est que le soundtrack est un gros consommateur de place mémoire et de temps machine.

LE SOUNDTRACK

Le soundtrack consiste à composer une musique grâce à l'assemblage de samples de quelques secondes. Ce travail est facilité par des logiciels appelés soundtracker, Ce type de logiciels existe depuis longtemps sur beaucoup de machines et sont utilisés par les musiciens sur Atari et Amiga.

Pour faire un morceau de batterie, il n'est pas nécessaire d'enregistrer un batteur pendant 10 minutes, il suffit d'enregistrer chaque son de la batterie (grosse caisse, cymbales, caisse claire, etc.), puis d'utiliser un soundtracker pour organiser tous ces sons dans le temps.

LA PRODUCTION

En fonction du type de machine, il est plus ou moins aisé de faire du soundtrack, Je va is essayer de vous en expliquer les causes, en énumérant les techniques utilisées sur les différents micros.

L'exemple le plus simple est l'Amiga, Il dispose de 4 voies sonores auxquelles sont dédiés 4 canaux DMAs (Direct Memory Access), Les canaux DMA lisent les échantillons directement en mémoire et les envoient au processeur sonore qui convertit chaque valeur en son, Cette lecture s'exécute à chaque balayage ligne (ce qui donne une fréquence d'à peu près 15,,6 kHz) sans intervention du microprocesseur.

Les programmeurs sur Atari ne peuvent pas s'appuyer sur une architecture hardware (je parle pour la famille ST) aussi puissante que celle de l'Amiga, Un programme de soundtrack sur cette machine doit régulièrement (en général toutes les 64 micro secondes) envoyer des échantillon vers le processeur sonore, avec une cadence suffisamment rapide afin d'obtenir une bonne qualité de restitution.

Heureusement pour les Ataristes, ceux-ci disposent de la puissance du 68000, qui d'une seule instruction (je crois que c'est l'instruction MOVEP) permet de programmer tous les registres du processeur sonore (le même que CPC dailleur, l'AY38912).

Jetons brièvement un regard sur le monde PC, car de nos jours on ne peut plus passer à côté, et que voit-on ? On remarque immédiatement la performance des cartes sonores PC (cartes Adlib, Soundblaster pro, etc.) face à la pauvreté de cette machine, avec son équipement de base qui se limite à un générateur de fréquence branché sur un misérable petit haut-parleur.

ET SUR CPC?

Comme je l'ai dit plus haut le CPC est équipé du même processeur sonore que l'Atari, il s'agit de l'AY3-8912, Pour résumer, l'AY3 est doté des caractéristiques suivantes: 3 canaux sonores sur lesquels on peut agir en changeant leur fréquence, leur volume et en les mixant avec un bruit (c'est un résumé, je ne vais pas vous décrire tous les registres, vous êtes censés les connaître).

Attendez un moment le petit Pict se tourne vers moi pour me poser une question: « Pourquoi sur Atari ils font du soundtrack et pas nous ? ».

Cela devrait effectivement être possible, puisque les deux machines possèdent le même processeur sonore, C'est sans compter sur le microprocesseur, ni sur l'architecture hardware qui ne sont pas du tout les mêmes. Et c'est là que réside LA différence.

Tandis qu'une seule instruction en 68000 permet de programmer tous les registres de l'AY3, plusieurs instructions (dont beaucoup de OUT) sont nécessaire sur CPC pour programmer un seul registre de l'AY3.

QUE FAIRE?

« Mais pourquoi tant de haine ? », me direz-vous ? J'ajouterai: « Pourquoi tant de temps machine ? », Tout simplement parce que, pour programmer, l'AY3, il faut d'abord passer par le 8255, eh oui, vous l'aviez oublié, et pourtant vos cauchemar ne sont pas loin, « Que dois-je faire ? » Tout d'abord mettre le port A en sortie puis sélectionner le numéro de registre par un OUT bien senti en &F6 puis en &F4, etc, Stop, j'arrête là, cet article n'est pas fait pour vous apprendre à programmer l'AY3-8912, mais uniquement pour vous expliquer le principe du soundtrack, Donc, retournons à nos moutons.

La création de sons dans les musiques CPC (je parle des musiques non soundtrack) utilise les registres de fréquence de l'AY3 et utilise peu de temps machine, La routine jouant la musique est en général appelée tous les balayages (toutes les 20 millisecondes), Malheureusement, le générateur de fréquence de l'AY3 est seulement capable de fournir des signaux de forme rectangulaire, riches en harmoniques, mais très différents de ceux que peut produire un instrument de musique, Il nous faut donc générer nous-mêmes notre signal. Pour cela, nous utiliserons les registres de volume (registres 8, 9 et 10 de l'AY3) en changeant rapidement leur valeur, ce qui provoquera la vibration du petit haut-parleur de votre CPC et créera un son (pas forcément harmonieux, mais enfin...)

L'intérêt pour nous est de créer nos propres sons grâce à des tables précalculées se trouvant en mémoire, Cela peut-être une table de sinus, par exemple, Chaque octet dans la table est perçu comme un échantillon que nous allons écrire dans un des registres de volume de l'AY3, et ceci toutes les 64 microsecondes jusqu'à la fin de notre table en mémoire (si la table ne fait que quelques kilo-octets, le son ne durera pas très longtemps). Par contre, un problème se pose occasionné par les registres que nous utilisons, En effet, ce sont des registres 8 bits dont seulement 4 bits sont utilisables (donnant des valeurs de 0 à 15) et qui limitent la valeur des échantillons (sur un compact disque les échantillons sont codés sur 18 ou 20 bits).

Pour augmenter la précision du son, vous pouvez utiliser deux registres de volume simultanément, car il faut savoir que, sur un CPC standard, les trois canaux sonores sont additionnés (ceci est fait électriquement par des résistances) avant d'être envoyé vers le haut-parleur. On peut, en quelque sorte, dire qu'au lieu d'avoir 3 registres de 4 bits, on a un seul registre de 12 bits, Malheureusement il y a un problème (eh oui rien n'est simple sur CPC), lorsque vous voulez programmer vos 3 registres de volume les uns à la suite des autres, il y a un temps non négligeable entre la programmation du premier et du dernier, ce qui fait qu'ils ne changent pas de valeur tous les 3 en même temps. Ce problème induit un bruit parasite disgracieux.

MOINS SUR LE CPC +

Les programmeurs sur CPC + verront leur tâche grandement facilitée par les 3 canaux DMA de l'Asic (veinards n. Il leur suffit de faire une liste d'instructions DMA (Longshot à dû vous expliquer en quoi cela consiste) qui charge des valeurs dans les registres de volume.

Évidemment ce n'est pas du jour au lendemain que vous ferez des musiques soundtrack sur CPC, pourtant sachez que c'est possible et je peux vous citer entre autres, les musiques transférées par Longshot et Fefesse, certaines musique de WEEE et une démo allemande sur CPC+ exploitant les canaux DMA.

Voilà, c'est ici que se termine la rubrique Logon, et pour la dernière fois je vous dis TSHAW !!! (onomatopée inspiré d'un titre d'album d'Edika, il est destroy ce mec).

Digit, ACPC n°49 Oct93 p28-29

★ ANNÉE: ???
★ AUTEUR: DiGIT

Page précédente : Logon System ACPC n°48 - Les scroll hard vertical

★ AMSTRAD CPC ★ A voir aussi sur CPCrulez , les sujets suivants pourront vous intéresser...

Lien(s):
» Coding » Logon System ACPC n°37 - Histoire de rasters
» Coding » Logon System ACPC n°39 - Faites onduler vos écrans
» Coding » Logon System ACPC n°33 - Les interruptions du Z80
» Coding » Logon System ACPC n°45 - Sinus Dots
» Coding Src's » Test CRTC v1.1 (Longshot)
» Coding » Logon System ACPC n°48 - Les scroll hard vertical
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 274 millisecondes et consultée 2215 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.