Suivez-nous sur X

|
|
|
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,
ALL
|
|
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
|
|
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
|
|
A propos d'Obligement
|
|
David Brunet
|
|
|
|
Programmation : AMOS - La nouvelle extension musicale
(Article écrit par François Lionet et extrait d'Amiga News Tech - janvier 1992)
|
|
Une fois n'est pas coutume, je ne vais pas vous donner de listing aujourd'hui, mais plutôt vous parler des nouvelles
routines musicales disponibles pour AMOS.
Vous trouverez la nouvelle extension musicale sur la disquette
de l'Amiga News Tech de ce mois-ci. Elle sera également mise en téléchargement sur les deux
serveurs de la rédaction, j'ai nommé le 3615 ANT et le 3615 ComRev. J'y ai fourré bien sûr le programme de
l'extension, mais aussi le source assembleur ainsi que l'exemple.
Installation
Bon, vous prenez votre BASIC favori (AmigaBasic... heu, non, pardon, AMOS), vous chargez le programme Musique_Install.AMOS :
la prochaine fois que vous chargerez l'interpréteur, les nouvelles instructions seront disponibles.
Quoi de neuf ?
Plein de choses.
Les longs échantillons (samples) : j'ai totalement modifié la gestion des échantillons, ils utilisent maintenant
les interruptions de fin de son. La conséquence est que l'on peut jouer des échantillons de plus de 64 ko,
en fait sans aucune limitation de taille (sauf la mémoire bien sûr).
Le double tampon mémoire sonore : de toutes nouvelles instructions permettent de jouer des échantillons
aussi longs que vous le désirez, en utilisant très peu de mémoire. La méthode utilisée est celle du
double tampon mémoire. Comme pour les BOB, on va travailler dans deux espaces mémoire distincts :
l'un est joué sur le haut-parleur pendant que l'on charge la suite des sons dans l'autre.
Avant de voir comment programmer un tel système, on passe en revue les nouvelles instructions :
SLOAD Fichier TO Adresse,Longueur
|
SLOAD est mis pour "Sample LOAD". Il s'agit d'un BLOAD amélioré.
- "Fichier" est le numéro d'un fichier déjà ouvert par OPEN IN.
- "Adresse" est l'adresse de chargement.
- "Longueur" est le nombre d'octets à charger. Si vous spécifiez une longueur supérieure
à celle restant à charger, AMOS ne produira pas d'erreur et chargera simplement le nombre correct d'octets.
Cette instruction est conçue pour être utilisée conjointement aux fonctions de gestion des fichiers séquetiels
=POF()=, =LOF(), =EOF(). Vous pourrez l'utiliser pour faire bien plus de choses que simplement charger des échantillons...
SAM SWAP Canaux TO Adresse_Buffer,Longueur
|
Cette instruction permet de réaliser l'échange des tampons mémoire, et n'a d'action qu'une fois que le tampon
mémoire actuel est terminé.
- "Canaux" est un masque de bits représentant les voix affectées par l'instruction (comme pour SAM PLAY par exemple).
- "Adresse_Buffer" est l'adresse à laquelle doit se poursuivre la lecture du son. La jonction entre les deux tampons
mémoire est faite sous interruption et est donc totalement inaudible.
- "Longueur" est le nombre d'octets sonores à lire dans le nouveau tampon mémoire.
Cette fonction permet de se synchroniser avec l'échange des tampons mémoire. C'est elle qui indique quand charger
une nouvelle partie de l'échantillon.
- "Voix" est un nombre de 0 à 3.
Elle peut retourner trois valeurs différentes :
- 0 : les circuits n'ont pas terminé la lecture du tampon mémoire actuel. Il faut encore attendre.
- -1 : ça y est, on peut y aller...
- +1 : on a attendu trop longtemps, le son est coupé. Il faut alors réinitialiser totalement la voix.
Une instruction qui manquait cruellement : il était quasiment impossible d'arrêter un échantillon une fois lancé !
- "Canaux" est un masque de bits, comme pour SAM SWAP.
Un exemple
...valant mieux qu'un long discours, en voici un petit permettant de jouer un échantillon de longueur indéfinie,
en n'utilisant que 16 ko de mémoire Chip !
Les instructions Track
J'ai prévu les routines sonores de l'AMOS pour être aussi générales que possible. En théorie, il est possible de
jouer n'importe quelle musique, en utilisant un programme de conversion.
Cet utilitaire de conversion s'est avéré difficile à réaliser, et finalement assez pénible à utiliser. De plus,
je passais mon temps à le modifier, vu qu'un nouveau modèle de SoundTracker sort chaque semaine, au moins.
Bien, pour essayer d'améliorer les choses, j'ai mis dans cette version de l'extension musicale, un lecteur
direct de module SoundTracker, celui de StarTracker pour être précis. Ce lecteur est compatible avec la plupart
des éditeurs musicaux par piste (sauf MED) au moment où j'écris cet article. Quand vous le lirez,
il ne le sera certainement plus, mais bon, vous ferez avec !
Alors, il y a de nouvelles et toutes belles instructions.
TRACK LOAD "Nom du module",Banque
|
Comme son nom l'indique, cette instruction charge un module dans une banque. Elle se charge de réserver
la banque en mémoire Chip, et de charger le fichier. Elle appelle également TRACK BANK : tout est prêt pour jouer la musique.
TRACK PLAY [Banque] [,Pattern]
|
Cela démarre la musique !
- "Banque" est un paramètre facultatif qui précise la banque (ou l'adresse) où prendre la musique.
S'il est omis, la banque fixée par TRACK BANK ou TRACK LOAD est utilisée...
- "Pattern" (motif rythmique) est facultatif lui aussi et précise le début de la musique. Attention, aucun contrôle
n'est fait sur sa validité : vous devez être sûr de vous, sous peine de faire planter la machine. Cette option peut être
très utile pour avoir plus d'une musique dans un module ; il suffit alors de choisir le premier motif rythmique
pour démarrer une autre musique...
Vous pouvez charger plusieurs modules dans plusieurs banques. TRACK BANK sert alors à spécifier la banque par
défaut, comme SAM BANK pour les échantillons...
Pour... devinez quoi ? J'en vois un qui suit dans le fond. C'est ça, arrêter une musique en train d'être jouée.
Inhibe ou autorise le bouclage de la musique lorsque celle-ci est terminée. Mode par défaut : TRACK LOOP OFF.
Bon à savoir...
Plusieurs petites choses sont à noter :
- Les musiques jouées par TRACK PLAY n'autorisent pas les interruptions comme on pouvait le faire avec une
musique AMOS normale. Par exemple, vous ne pouvez pas faire de bruitage pendant l'exécution d'une musique
Tracker, sans prévoir dans la musique, une voix libre spécifiquement pour cet usage. Pour un jeu complexe,
il vaut donc mieux utiliser les banques de musique normales...
- Les VU-mètres fonctionnent parfaitement !
- Je ne vais pas vous proposer d'exemple, tout de même ! Oh 'pi si, un 'achement gros exemple.
Track Load "mod.essai",5
Track Play
|
Et voilà, en avant la musique !
Bien, j'en ai terminé. Désolé d'avoir un peu bousculé l'ordre (le désordre ?) habituel de cette
rubrique, mais je pense que ces nouvelles instructions feront plaisir à plus d'un (dont moi, hé, hé !).
|