16 : Musique et Son

Une des grandes forces d'AMOS par rapport aux autres langages BASIC, c'est sa maîtrise des capacités sonores stupéfiantes de l'Amiga. Mais tout l'objectif d'AMOS est de vous permettre d'accéder facilement et rapidement à toutes les fonctionnalités de l'Amiga, là où il fallait auparavant des centaines de lignes de code.

L'Amiga peut capturer et lire des sons numérisés très facilement, ce qui signifie que l'on peut produire de la musique stéréo de haute qualité en utilisant uniquement la génération sonore interne. Il existe quelques sons préintégrés comme :

Rem * Basic Sounds.AMOS *
Rem
Shoot
Wait Key
Boom
Wait Key
Bell
Wait Key

Le chipset sonore peut être utilisé, et les échantillons peuvent être placés dans une banque à utiliser dans vos programmes. De plus, AMOS peut lire de la musique, comme les fichiers ABK que vous trouvez sur vos disquettes de démonstration.

AMOS peut lire un morceau de musique aussi facilement que la plupart des BASIC affichent "Hello World". Il suffit de taper :

Music 1

Et le premier morceau de musique stocké dans la banque musicale se met à jouer, jusqu'à ce que vous tapiez :

Music Stop

Pour arrêter la musique en cours, ou plus radicalement :

Music Off

C'est facile, une fois que la musique est dans l'Amiga, bien sûr. En général, cela signifie qu'une série d'échantillons sont stockés dans la mémoire de l'ordinateur, et qu'un petit morceau de code indique à quels moments jouer les sons et à quelle hauteur. La méthode habituelle pour cela est d'utiliser un programme tracker comme Soundtracker, Noisetracker, Protracker ou le brillant MED.

Tous ces programmes peuvent être utilisés avec AMOS. Une fois le morceau composé, vous pouvez le convertir en fichier ABK et l'utiliser sans problème. Il est aussi possible de le charger directement avec les commandes TRACK LOAD.

TRACK LOAD

Charge un morceau dans la banque musicale. En général on utilise :

Track Load "df0:mod.music",3

Ce qui charge un module mod.music dans la banque 3.

TRACK PLAY

Lit le morceau chargé dans la banque musicale (généralement la banque 3). Par exemple :

Track Play 14

Permet de jouer le morceau stocké ailleurs que dans la banque par défaut.

TRACK STOP

Arrête le morceau actuel. (Oui, il s'arrête dans ses "tracks", ho ho.)

Utilisation des trackers

Les différents trackers sont pour la plupart du domaine public, sauf certaines versions de MED qui sont en licenseware (vous payez un petit prix et l'auteur reçoit une redevance). Un tracker propose généralement un éditeur de motifs (pattern editor) semblable à ceux des boîtes à rythmes modernes, où le clavier de l'Amiga devient un clavier musical. Les sons utilisés sont en grande partie des échantillons (samples), souvent issus de synthétiseurs très chers !

La création musicale se fait par motifs de 64 battements. Une fois les motifs de couplet, refrain, intro, etc. composés, vous les chaînez pour produire une musique complète. Voici un exemple de séquence :

  1. Pattern 1 : intro
  2. Pattern 2 : couplet
  3. Pattern 2 : couplet
  4. Pattern 2 : couplet
  5. Pattern 3 : refrain
  6. Pattern 4 : transition
  7. Pattern 2 : couplet
  8. Pattern 2 : couplet

Ce système est très efficace car on entre chaque motif une seule fois.

Conversion

Une fois votre musique composée avec un tracker, vous pouvez la convertir en format ABK pour l'utiliser dans AMOS. Les disquettes AMOS incluent plusieurs convertisseurs compatibles avec Soundtracker, Noisetracker, Protracker, MED, etc.

Attention, certains fichiers ne sont pas correctement lus après conversion, à cause de variations de format entre les versions des trackers. Le meilleur choix reste Protracker 2.5 ou 3.0 et MED 3.2.

Music Engine

Music Engine de Paul Townsend (Technical Fred Software) est un utilitaire populaire de la bibliothèque Deja Vu. Il permet de lire des musiques sans les convertir au format AMOS. Il sert d'interface entre AMOS et le CLI, et fonctionne en appelant les lecteurs depuis Workbench.

Il reconnaît automatiquement les formats : MED, OctaMED, Soundtracker, Sonix, AMOS. En mode manuel, vous sélectionnez vous-même le type de fichier. Si le type est incorrect, la musique ne sera pas lue, voire crashera l'ordinateur.

Un bouton Help permet d'obtenir une aide contextuelle. Des manuels complets sont fournis sur disque. Music Engine est assez puissant pour exécuter d'autres programmes, permettant une forme de multitâche depuis AMOS !

Disquette : LPD79 - Contact :
Technical Fred Software
117 Hilton Lane, Walkden, Worsley, Manchester, M28 5TB
Tél/Fax : 061-703 7842

Réaliser vos propres échantillons

Vous pouvez bien sûr utiliser des échantillons PD, mais le mieux est de créer vos propres sons. Il suffit d?un micro, d?un logiciel de sampling, et d?un sampler compatible Amiga.

Samplers

Parmi les meilleurs :

Pour enregistrer un son, vous branchez un micro ou une source externe (cassette, vidéo, etc.) et capturez l?audio. (Attention aux droits d?auteur !) Le son apparaît sous forme d?onde. Vous pouvez éditer l?échantillon et le sauvegarder pour l?utiliser dans AMOS.

Utiliser des échantillons dans AMOS

Utiliser des sons échantillonnés dans AMOS est facile, et ressemble à l'utilisation de fichiers image IFF. Vous pouvez les charger depuis le disque ou les utiliser depuis une banque. Il vous faut un programme AMOS appelé Sam Maker, qui permet de charger des échantillons et de les réunir dans une banque en mémoire. J'utilise celui fourni avec Easy AMOS, que je trouve le plus simple et le plus stable, mais vous pouvez aussi utiliser celui fourni avec AMOS. C'est à vous de choisir.

L'inconvénient de charger des échantillons depuis le disque, c'est que vous devez utiliser BLOAD et spécifier les emplacements en mémoire, ce qui est un peu technique et gourmand en mémoire. Il est préférable de les stocker dans une banque, prêts à être accédés à tout moment de votre programme, et chargés instantanément.

Une fois vos échantillons dans une banque, vous pouvez les lire à n'importe quelle vitesse, ce qui modifie la durée et donc la hauteur du son. Vous pouvez avoir des discours, des extraits musicaux, ou même des notes individuelles d?un instrument que vous pourrez jouer à différentes hauteurs via un tracker.

Lecture d'échantillons

Comme je l'ai dit, jouer des échantillons en AMOS est facile. Utilisez la commande :

Sam Play V,S,F

Les voix utilisées sont définies par le bit dans V, comme ceci :

L'Amiga possède quatre voix, réparties en stéréo : les voix 0 et 3 jouent sur le canal gauche, les voix 1 et 2 sur le canal droit. Pour simuler un panoramique stéréo, il suffit d'envoyer le même son sur les deux canaux et d'ajuster le volume sur chacun. Un son plus fort dans l?oreille droite semblera venir de la droite. Voici un exemple :

Rem * Stereo Panning.AMOS *
Rem
Screen Open 0,640,320,16,Hires
Hide : Curs Off : Paper 0 : Cls 0
Load "AMOS_Data:samples/samp1es.abk"
Sam Loop On
Volume %10,0 : Volume %1,50
X=1
Locate ,5 : Pen 4 : Centre "This is a sample of Stereo Panning..."
Locate ,7 : Centre "Notice how the sound moves from left to right."
Do
  Sam Play %11,3
  PANIT
Loop

Procedure PANIT
  P1=0 : P2=50
  Repeat
    Volume %10,P1 : Volume %1,P2
    Wait 25
    Inc P1 : Dec P2
  Until P1=50
End Proc

La procédure PANIT fait varier le volume d'un canal à l'autre pour faire se déplacer le son. Vous pouvez même créer un deuxième son qui se déplace dans l'autre sens si vous le souhaitez !

Utiliser le chipset sonore

Les échantillons sont la méthode la plus populaire, mais l'Amiga contient aussi un excellent générateur de son (synthétiseur). Utilisez SET WAVE ou WAVE pour définir un son, puis PLAY pour le jouer :

Rem * Power Sound.AMOS *
Rem
Screen Open 1,640,200,16,Hires
Paper 0 : Pen 4 : Cls 0 : Curs Off : Hide
Wave 0 To 15
Locate ,0
NOISE
Wait 50
Locate ,2 : Centre " Welcome to AMOS Power Programming" : Bell
Wait 50
Locate 0,4
NOISE

Procedure NOISE
  For L=79 To 0 Step -1
    Play 96-(20+(L/2)),0
    Print "*";
  Next L
End Proc
Wait Key

La commande SET WAVE permet de créer des sons personnalisés. Les numéros de son commencent à 2, car 0 (bruit) et 1 (sinus pur) sont pré-définis. Voici un exemple où l'on crée une onde avec SIN :

Rem * Setwave.AMOS *
Rem
Hide : Curs Off : Cls 0
Pen 4 : Paper 0
Locate 0,0 : Print "This is the wave you are hearing..."
S$="" : Degree
For S=0 To 255
  V=Int((Sin(S)/2+Sin(S*2+45)/4)*128)+127
  S$=S$+Chr$(V)
  Plot S,V
Next S
Set Wave 2,S$
Wave 2 To 15
For N=0 To 10 : Play N,10 : Next N
Print "...and now a bit higher!"
For N=20 To 30 : Play N,10 : Next N
Print "Ahh sweet music!"
Wait Key

Si vous pouvez dessiner une onde sur l?écran avec PLOT, vous pouvez la transformer en onde sonore pour l?Amiga. Essayez de créer une onde carrée ou une onde triangulaire de type "dent de scie".

Noisy Drums

L'onde de bruit peut être utilisée pour créer un effet d'explosion, mais comme la plupart des sons percussifs, elle est sans mélodie mais possède un certain rythme. Essayez ce kit de batterie à base de bruit :

Rem * Drumset.AMOS *
Rem
Flash Off : Curs Off : Cls 0
Pen 4 : Paper 0
Centre "Play the drums by pressing keys..."
Noise To 15
Volume 15,63 : Mvolume 32
Set Envel 0,0 To 1,63
Set Envel 0,1 To 10,0
Do
  Locate ,2 : Centre "I particularly like the function keys"
  Repeat : A$=Inkey$ : Until A$<>""
  Exit If A$=Chr$(13)
  S=Scancode
  If S>0 And S<95 Then Play S100,S,0
Loop

La fonction Scancode retourne la valeur de la touche pressée et transmet cette valeur à la fonction PLAY. Évidemment, si vous êtes malin, vous pourriez concevoir non seulement un échantillon différent pour chaque touche au lieu d'un son interne, mais aussi faire en sorte que chaque pression de touche enregistre le rythme dans un fichier que vous pourriez rejouer. C'est une boîte à rythme à faire soi-même !

Conseils sonores

Les possibilités de production sonore sur l'Amiga sont plus grandes que sur n'importe quelle autre machine. En utilisant des échantillons, vous pouvez créer une musique au rendu professionnel même si vous ne l'êtes pas. Procurez-vous un programme tracker et un échantillonneur, et découvrez ce que la dimension sonore peut apporter à vos programmes.

Contact

MED et OctaMED sont disponibles chez :

Amiganuts United,
12 Hinckler Road,
Southampton,
SO2 6FT.
← Retour au sommaire