ENVELOPE
DESCRIPTION.
L'instruction ENVELOPE permet de créer des modèles pour la définition des enveloppes de hauteur et d'amplitude des notes de musique générées par l'instruction SOUND.
SYNTAXE.
ENVELOPE id , duree , h1 , h2 , h3 , a1 , a2 , a3 , attaque , declin , maintien , relache , fin1 , fin2
REMARQUES.
L'instruction ENVELOPE doit être obligatoirement suivie de 14 attributs, qui doivent tous être des nombres entiers, qui correspondent dans cet ordre :
- id, l'identifiant de l'enveloppe, entre 1 et 16 ;
- duree, la durée de chaque étape en centièmes de seconde*, entre 0 et 127 ;
- h1, changement de hauteur par étape dans la phase 1, entre -128 et 127 ;
- h2, changement de hauteur par étape dans la phase 2, entre -128 et 127 ;
- h3, changement de hauteur par étape dans la phase 3, entre -128 et 127 ;
- a1, nombre d'étapes dans la phase 1, entre 0 et 255 ;
- a2, nombre d'étapes dans la phase 2, entre 0 et 255 ;
- a3, nombre d'étapes dans la phase 3, entre 0 et 255 ;
- attaque, changement d'amplitude par pas pendant la phase d'attaque, entre -127 et 127 ;
- declin, changement d'amplitude par pas pendant la phase de déclin, entre -127 et 127 ;
- maintien, changement d'amplitude par pas pendant la phase de maintien, entre -127 et 127 ;
- relache, changement d'amplitude par pas pendant la phase de relachement.
- fin1, cible de niveau à la fin de la phase d'attaque, entre 0 et 126 ;
- fin2, objectif de niveau à la fin de la phase de décroissance, entre 0 et 126.
*Cet attribut répétera automatiquement l'enveloppe de hauteur, sauf si on ajoute la valeur de 127 à la valeur de la durée en centième de seconde. Dans ce cas, l'enveloppe de hauteur ne sera pas répétée. Par exemple, si cet attribut vaut 100, l'enveloppe de hauteur sera répétée automatiquement, s'il vaut 227, cette durée ne sera utilisé qu'une seule fois.
Durant son exécution, le volume, ou amplitude, et la hauteur, d'une note produite par l'instruction SOUND peuvent varier. Les différences d'amplitude et de haute d'une note, dans le temps, sont nommées enveloppe d'amplitude et enveloppe de hauteur.
En BBC BASIC for SDL 2.0, l'amplitude se divise en 4 phases : l'attaque, le déclin, le maintien et le relachement, tandis que la hauteur comporte 3 phases.
L'instruction SOUND permet de préciser pour chaque note une hauteur et une amplitude. Mais si l'on doit utiliser des réglages identiques pour plusieurs notes, on pourra définir, jusqu'à 16 modèles d’enveloppement, grâce à l'instruction ENVELOPE. Et on pourra utiliser un modèle d'enveloppe existant en indiquant son identifiant, un nombre entre 1 et 16, comme attribut amplitude lors de l'appel de l'instruction SOUND.
Les durées des trois phases de hauteur sont explicitement spécifiées avec les valeurs des attributs h1, h2 et h3, mais celles des phases de l'enveloppe d'amplitude sont déterminées indirectement avec la commande système *TEMPO.
La durée de la phase d'attaque de l'amplitude est déterminée par les attributs fin1 et attaque, la durée est donc égale fin1 / attaque, sauf si la valeur de la durée totale donnée dans l'instruction SOUND, est plus courte.
La durée de la phase de déclin de l'amplitude est déterminée par les attributs fin2 et declin, la durée est donc égale ( fin2 - fin1 ) / declin, sauf si la valeur de la durée totale donnée dans l'instruction SOUND, est plus courte.
La durée de la phase de maintien de l'amplitude sera égale au reste de la durée totale spécifiée dans l'instruction SOUND.
La phase de relachement se maintiendra jusqu'à ce qu'une autre note est prête à être jouée sur ce canal, sinon, elle sera jouée indéfiniment, ou jusqu'à ce que l'amplitude devienne nulle. Une instruction SOUND avec le bit de poids fort activé peut être utilisée pour forcer le déclenchement de tout ou partie de la phase de relachement, même si d'autres notes sont prêtes à être jouées.
La commande système *TEMPO détermine le comportement qui sera retenu lorsque une hauteur est configurée pour se répéter automatiquement, cela signifie que :
- soit les changements de hauteur se répètent ;
- soit que les hauteurs réelles se répètent, comportement par défaut.
Pour être utilisé, l'identifiant du modèle d'enveloppe doit être présent comme deuxième attribut d'une instruction SOUND.
Voir l'instruction SOUND pour plus de détail sur la production et la gestion des sons et de la musique.
EXEMPLES.
MODE 8
GCOL 11
ENVELOPE 1 , 129 , -15 , -8 , -3 , 10 , 10 , 10 , 126 , 0 , 0 , -126 , 126 , 126
REPEAT
MOVE 640 , 512
PRINT TAB( 0 , 0 ) "Appuyez sur une touche pour tirer ou Q pour quitter ..."
kpause$ = GET$
DRAW 640 , 200
SOUND 1 , 1 , 255 , 5
WAIT( 10 )
CLG
UNTIL kpause$ = "Q" OR kpause$ = "q"
PRINT "Fin du test. Au revoir."
END
Votre aide est précieuse pour améliorer ce site, alors n'hésitez pas à faire part de
Dans la RETROGICIEL vous trouvez des suggestions simples et classiques pour
TESTER - DÉCOUVRIR - PRATIQUER - APPROFONDIR - EXPLORER
avec un exemple de résolution à télécharger pour vous inspirer.