APPLICATIONSCREATION MUSICAL ★ MUSIC ECHANTILLONNEUR POUR AMSTRAD ★

Echantillonneur pour Amstrad (Science et Vie Micro)Applications Creation Musical

Si les ordinateurs dotés en standard de véritables possibilités de synthèse sonore sont encore rares, tous sont en théorie capables de reproduire des sons, par les techniques dites d'échantillonnage. En théorie uniquement, car seules une programmation en assembleur et une importante capacité mémoire permettent cette technique. Le programme proposé par notre gagnant Hervé Masson, étudiant à l'INSA de Lyon, fonctionne sur Amstrad CPC, et sera malheureusement difficilement adaptable à un autre micro, sans une très bonne connaissance interne de la machine visée.

L'ECHANTILLONneur est un appareil bien connu dans les studios d'enregistrement de musique. On le trouve très souvent associé à des instruments à la norme MIDI, dont il permet de retravailler les sons. Pour illustrer ses possibilités, enregistrons sur un magnétophone un son de fréquence fixe, à une certaine vitesse. Si l'on fait varier la vitesse à la lecture, on pourra, à partir de ce son original, produire des sons de différentes fréquences, voire reconstituer une gamme entière. Un échantillonneur a une fonction qui ressemble à celle d'un magnétophone, à ceci près que les sons sur lesquels on travaille sont numérisés, suivant les techniques classiques de la conversion analogique-numérique.

Figure 1. Signal analogique initial.

Figure 2. Echantillonnage du signal.

Le principe de fonctionnement

Un son analogique peut être représenté sous forme graphique par une courbe rendant compte de la durée (l'axe des abcisses) et de la fréquence (l'axe des ordonnées) (figure 1). L'échantillonnage (ou si l'on préfère la conversion analogique-numérique du son) consiste à prélever, à intervalles de temps réguliers, une information caractéristique du signal sonore. Graphiquement, on découpe la courbe que nous avons vue en « tranches de temps « plus ou moins fines, selon la qualité d'échantillonnage que l'on souhaite obtenir (figure 2). Lors de l'échantillonnage, on ne retient qu'une partie des informations définissant le signal, la quantité retenue dépendant de la fréquence d'échantillonnage : plus la fréquence est élevée, meilleure sera l'approximation effectuée. Sur le schéma 3, les informations retenues correspondant à l'amplitude du signal aux points de mesure, sont symbolisées par un trait noir. La conversion numérique se fait enfin en affectant une valeur numérique précise à chaque élément de signal échantillonné (figure 4).

Dans notre cas, l'échantillonnage fonctionne d'une manière plus simple, puisqu'il n'y a pas lieu d'effectuer la conversion analogique-numérique : le programme se contente de lire sur une cassette, à une fréquence plus ou moins élevée (qui dépend du choix de la vitesse, effectué dans le programme Basic), les informations numériques présentes sur le port B d'entrée-sortie du circuit d'interface parallèle de l'Amstrad CPC, composant chargé entre autres du contrôle du lecteur de cassettes. Le signal transmis par le magnétophone arrive sous forme d'une série de 8 bits, puis est rangé à une certaine adresse. L'échantillonneur travaille dans ce cas avec des signaux à deux états (tout ou rien), le nombre de bits 0 ou 1 étant lié à la fréquence du signal. Il ne faut évidemment pas attendre d'une telle méthode une restitution parfaite, mais elle s'est révélée assez satisfaisante pour les applications envisagées. Le port C d'entrée-sortie sert à contrôler le fonctionnement du moteur du magnétophone, et le port A règle le volume sonore. La routine graphique se trouve en fin de programme, le signal enregistré étant restitué en direct, exactement comme s'il était observé sur l'écran d'un oscilloscope. Cette routine pourra être supprimée si Ton désire seulement utiliser l'échantillonneur pour un jeu.

figure 3. Allure du signal retenu après l'échantillonnage.

figure 4. Le signal après échantillonnage et numérisation.

Le programme

Les trois listages fournis concernent respectivement le programme principal, qui charge le programme assembleur, gère l'utilisation des touches et l'image écran ; le chargeur de DATAS qui contient les codes du programme assembleur, avec le « checksum » de vérification ; le code-source du programme assembleur, abondamment commenté afin de pouvoir être modifié ou réutilisé sans problème. Il ne vous reste plus qu'à entrer les deux programmes Basic dans votre Amstrad, et à écouter attentivement les résultats obtenus, sur une voix, une musique classique, ou des bruitages plus contemporains.

ECHANTILLOMEUR DEUX ETATS.
BASIC POUR AMSTRAD CPC.
ADAPTATION TRES DIFFICILE

Pour utiliser le programme Echantillonneur, il faudra tout d'abord taper le premier programme Basic, puis le sauvegarder sur cassette ou disquette sous le nom ECH.BAS. Puis on tapera le programme Basic de création du module en langage machine (intitulé chargeur de DATAS), que l'on devra lancer séparément pour pouvoir créer le fichier ECH.BIN. Sur cassette, il sera nécessaire de sauvegarder le fichier ECH.BIN juste à la suite du programme ECH.BAS. Le chargeur de DATAS pourra ensuite être supprimé.

On lance le programme ECH.BAS, qui va lui-même charger les données contenues dans le fichier ECH.BAS. On obtient alors sur l'écran la représentation d'une sorte de magnétophone, avec deux touches PLAY et REC, ainsi que diverses flèches qui ressemblent un peu aux touches de défilement rapide (ce n'est pas tout à fait leur signification ici). Pour pouvoir échantillonner un son, il faut tout d'abord qu'il soit disponible sur une cassette introduite dans le lecteur, intégré pour le CPC 464, externe pour les 664 et 6128. On devra donc au préalable enregistrer de manière traditionnelle sur une cassette environ 20 à 40 secondes de son à numériser, parole ou musique. Une fois la bande placée dans le lecteur, on échantillonne le son en actionnant la touche REC du magnétophone représenté à l'écran. Les touches sont accessibles par les flèches de déplacement du curseur, et la validation se fait avec la touche COPY. Il est possible de régler la vitesse d'échantillonnage, 1 correspondant à la meilleure qualité possible (on découpe le signal en tranches très fines) et 99 au minimum d'occupation de la mémoire (les tranches sont moins fines, la qualité médiocre, mais il est possible d'enregistrer davantage de son). Les deux autres flèches servent à déplacer le pointeur de début d'emplacement mémoire et à délimiter la quantité de mémoire qui sera utilisée : en ce cas, une partie seulement de la mémoire disponible sera occupée par l'enregistrement.

Une partie du programme assembleur concerne la représentation graphique du son enregistré : celui-ci apparaît en effet à l'écran sous la forme d'un graphique en dents de scie, en même temps qu'il est enregistré. Cette astuce visuelle permet de choisir la partie sonore que l'on désire écouter, en réglant à l'aide des flèches horizontales la position de début et la longueur. Puis on choisit la vitesse (qui peut être différente de celle utilisée pour l'enregistrement) et on appuie sur la touche PLAY. Le haut-parleur de l'Amstrad va alors restituer le signal échantillonné.

Il sera possible d'utiliser cette technique pour doter vos programmes d'une interface vocale, semblable à celle utilisée dans certains jeux. Il faudra bien sûr modifier le programme assembleur, qui devra simplement permettre la restitution des sons mémorisés, et incorporer les octets constituant la partie sonore dans votre programme, en les chargeant en mémoire au bon emplacement.

Hervé MASSON, SVM n°44

★ EDITEUR: SVM
★ ANNÉE: 1987
★ AUTEUR: Hervé MASSON

 

★ AMSTRAD CPC ★ DOWNLOAD ★

Type-in/Listing:
» svm44-echantillonDATE: 2011-05-12
DL: 324
TYPE: ZIP
SiZE: 275Ko
NOTE: 40 Cyls
.HFE: Χ

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

Lien(s):
» Coding » AMSLIVE n°12 - Sons et Samples
» Coding » AMSLIVE n°03 - Creation Sonore
» Coding Src's » Sound Programming (Computing with the Amstrad)
» Coding » Music - Wyztracker
» Coding » Music - Arkos Tracker 2
» Coding Src's » Mega-Mad - Mix Demo (sourcepack)
Je participe au site:
» Vous avez des infos personnel, des fichiers que nous ne possédons pas concernent ce programme ?
» 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 301 millisecondes et consultée 3206 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.