Obligement - L'Amiga au maximum

Samedi 31 mai 2025 - 17:13  

Translate

En De Nl Nl
Es Pt It Nl


Rubriques

Actualité (récente)
Actualité (archive)
Comparatifs
Dossiers
Entrevues
Matériel (tests)
Matériel (bidouilles)
Points de vue
En pratique
Programmation
Reportages
Quizz
Tests de jeux
Tests de logiciels
Tests de compilations
Trucs et astuces
Articles divers

Articles in English


Réseaux sociaux

Suivez-nous sur X




Liste des jeux Amiga

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


Trucs et astuces

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


Glossaire

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


Galeries

Menu des galeries

BD d'Amiga Spécial
Caricatures Dudai
Caricatures Jet d'ail
Diagrammes de Jay Miner
Images insolites
Fin de jeux (de A à E)
Fin de Jeux (de F à O)
Fin de jeux (de P à Z)
Galerie de Mike Dafunk
Logos d'Obligement
Pubs pour matériels
Systèmes d'exploitation
Trombinoscope Alchimie 7
Vidéos


Téléchargement

Documents
Jeux
Logiciels
Magazines
Divers


Liens

Associations
Jeux
Logiciels
Matériel
Magazines et médias
Pages personnelles
Réparateurs
Revendeurs
Scène démo
Sites de téléchargement
Divers


Partenaires

Annuaire Amiga

Amedia Computer

Relec


A Propos

A propos d'Obligement

A Propos


Contact

David Brunet

Courriel

 


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.
=SAM SWAPPED(Voix)

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.
SAM STOP [Canaux]

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 !

AMOS
AMOS

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...
TRACK BANK Banque

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...

TRACK STOP

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.

TRACK LOOP ON/OFF

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é !).


[Retour en haut] / [Retour aux articles]