Search this site
Embedded Files
Mon BBC SDL pas à pas
  • Accueil
  • BBC BASIC
  • BBC OS
  • BBC MODULES
  • RUBRIQUES
  • LIENS
Mon BBC SDL pas à pas
  • Accueil
  • BBC BASIC
  • BBC OS
  • BBC MODULES
  • RUBRIQUES
  • LIENS
  • More
    • Accueil
    • BBC BASIC
    • BBC OS
    • BBC MODULES
    • RUBRIQUES
    • LIENS

⇨ MENU ⇨ BIBLIOTHEQUE ⇨ nowait.bbc

PROCsound()

DESCRIPTION.


La procédure PROCsound() permet de produire des notes de musique précises ou des sons.



SYNTAXE.


PROCsound( canal , amplitude , hauteur , duree )




REMARQUES.


canal peut être un nombre entier compris entre 0 et 3, pour sélectionner le canal audio, ou une valeur hexadécimal définissant les effets spéciaux attendus et ayant la forme générale &hsfc, où :

- la valeur de h indique s'il faut tenir, maintenir, ou non la note ; 

 - si h = 0, valeur par défaut, la note simplement jouée ; 

 - si h = 1, la note jouée indéfiniment sans tenir compte des valeurs de amplitude et de hauteur ; 

- la valeur de s indique s'il faut synchroniser la note avec les notes des autres canaux la note ; 

 - si s = 0, valeur par défaut, la note sera jouée dès sue la précédente, sur le même canal sera terminée ; 

 - si s = 1, la note sera jouée quand celle correspondante sur un autre canal est prête à être jouée ; 

 - si s = 2, la note sera jouée quand celles correspondantes sur les 2 autres canaux seront prêtes à être jouées ; 

 - si s = 3, la note sera jouée quand celles correspondantes sur tous les autres canaux seront prêtes à être jouées ; 

- la valeur de f indique s'il faut supprimer les notes en attende ; 

 - si f = 0, valeur par défaut, la note sera jouée quand toutes les notes en attente sur ce canal auront été jouées ; 

 - si f = 1, toutes les notes en attendes dans ce canal sont supprimées et pour jouer immédiatement cette note ; 

- la valeur de c indique sur quel canal audio sera jouée cette note ; 

- si c = 0, est un canal spécial qui produit du bruit blanc ou des bourdonnement (voir la note sous hauteur) ; 

- si c = 1, la note sera jouée sur le canal 1 ; 

- si c = 2, la note sera jouée sur le canal 2 ; 

- si c = 3, la note sera jouée sur le canal 3.


Note : le canal 0 peut être configuré comme canal de son en ajoutant 128 à la valeur de la commande système *TEMPO.



amplitude doit être un nombre entier : 

- compris entre 0, silencieuse, et -15, la plus forte, pour déterminer l'intensité de la note à jouer ;

- compris entre 1 et 16, pour associer la note à jouer à une norme définie avec l'instruction ENVELOPPE.



hauteur doit être un nombre entier entre 0 et 255 où on utilisera : 

- 100 pour générer un Do central ; 

- 136 pour générer un La3, La de référence du diapason (440 Hz) ;

- 1 augmentera la fréquence de la note produite d'un quart de demi-ton ;

- 4 pour jouer un Do¹, le Do de l'octave 2 ;

- 52 pour jouer un Do², le Do de l'octave 3 ;

- 100 pour jouer un Do³, le Do de l'octave 4 ;

- 148 pour jouer un Do⁴ de l'octave 5 ;

- 196 pour jouer un Do⁵ de l'octave 6 ;

- 244 pour jouer un Do⁶ de l'octave 7 ;

- pour monter ou descendre d'une octave, la hauteur doit être modifiée de 48 ;

- pour monter d'une quinte parfaite, la hauteur doit être augmentée de 28.


Note : avec le canal 0, hauteur se comporte différemment : 

- les valeurs 4 à 7 produisent un bruit blanc ; 

- les valeurs 0 à 3 produisent des bourdonnements périodiques ;

- les valeurs 3 et 7, ne sont pas implémentées, elles auront respectivement le même effet que les valeurs 1 et 5 ;

- les valeurs de 8 à 255 seront ramenées à une valeur de 0 à 7 (valeur = hauteur MOD 8).



duree doit être un nombre entier entre -1 et 254 qui définit la durée de la note, en vingtièmes de seconde, par défaut. Dans le cas d'une enveloppe d'amplitude, la durée correspond au temps écoulé avant que la note n'entre en phase de relachement. Et si duree vaut -1, la note sera jouée indéfiniment jusqu'à ce que : 

- l'utilisateur appuie sur la touche d'échappement (Esc ou Échap) ; 

- l'appel d'une instruction SOUND dans le même canal et avec la valeur si f = 1 qui videra toutes les notes dans ce canal ; 

- l'utilisation de SOUND OFF dans le même canal et avec la valeur si f = 1 qui videra toutes les notes dans ce canal.


Note : la valeur de la durée par défaut peut être redéfinie entre 1 et 5 centisecondes avec la commande système *TEMPO.



Chaque procédure PROCsound() joue une note, et son appel doit avoir la forme PROCsound( canal , amplitude , hauteur , duree )

 où :

- canal définit le canal sonore à utiliser ou les effets spéciaux à utiliser ; 

- amplitude définit l'amplitude de la note à jouer ou le numéro d'enveloppe ; 

- hauteur définit la hauteur de la note à jouer en quarts de demi-tons ;

- duree indique la durée de la note à jouer.



Voir l'instruction SOUND pour plus de détails la production de sons dans une application SSC BASIC for SDL 2.0.



La procédure PROCsound() est importée depuis le module nowait.bbc. 




EXEMPLE.


INSTALL @lib$ + "nowait.bbc"

PRINT "Do " ; : PROCsound( 1 , -8 , 100 , 10 ) : WAIT 100

PRINT "Re " ; : PROCsound( 1 , -8 , 108 , 10 ) : WAIT 100

PRINT "Mi " ; : PROCsound( 1 , -8 , 116 , 10 ) : WAIT 100

PRINT "Fa " ; : PROCsound( 1 , -8 , 120 , 10 ) : WAIT 100

PRINT "Sol " ; : PROCsound( 1 , -8 , 128 , 10 ) : WAIT 100

PRINT "La " ; : PROCsound( 1 , -8 , 136 , 10 ) : WAIT 100

PRINT "Si" : PROCsound( 1 , -8 , 144 , 10 ) : WAIT 100

PRINT "Test termine."

END

Votre aide est précieuse pour améliorer ce site, alors n'hésitez pas à faire part de

vos remarques, vos commentaires et de vos suggestions.

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.

Google Sites
Report abuse
Page details
Page updated
Google Sites
Report abuse