BEEP BEEP Yeah!: The SuperBASIC BEEP Command

See all articles from QL_DOC n2
Author(s): Réal Gagnon
Publication: QL_DOC
Pub Details: QL_DOC n2 (Issue 2)
Date: February-March 1988
Pages: 9-11

In English: A parameter-by-parameter explanation of the Sinclair QL's SuperBASIC BEEP command: duration, pitch_a, pitch_b, grad_x, grad_y, wrap, fuzz and random, with their ranges, a worked example of how the pitch steps between two values, and a diagram of the wrap effect. A table gives BEEP settings for sound effects such as a death ray, general alarm, racing car, French police siren, alarm clock and laser.

Printed title: BEEP BEEP yeah!…. The article below is in French, as printed in QL_DOC n2 (February-March 1988).


La syntaxe de la commande BEEP est:

BEEP durée,pitch_a,pitch_b,grad_x,grad_y,wrap,fuzz,random

1° DUREE

Valeurs possibles : 0 → 32767

Chaque unité représente 1/72 de seconde, la valeur 32767 rprésente 2.36 secondes et 0 signifie que le son répété à l’infini.

2° PITCH_A

Valeurs possibles : 0 → 255

C’est le son proprement dit. Mais le problème est que le son produit est en complexe relation avec sa durée. Il n’est pas question de dire que la note FA sera toujours la même valeur. Un PITCH de 1 est bas et un de 255 est haut.

3° PITCH_B

Valeurs possibles : 0 → 255

C’est le son final vers où le PITCH va se rendre. Mais avant d’aller plus loin, voyons les 2 autres paramètres!

4° GRAD_X

Valeurs possibles : -32768 → -32767

Indique le temps de transition que le son prend pour passer de PITCH_A à PITCH_B, en augmentant (ou diminuant) de GRAD_Y.

5° GRAD_Y

Valeurs possibles : -8 → 7

Indique de combien on va augmenter à chaque transition pour atteindre PITCH_B.


EXEMPLE: BEEP 0,10,20,100,2

0 → le son se répète à l'infini
10 → c'est le son initial
20 → c'est le son final
100 → c'est le temps de transition, 100* 1/72 de seconde
2 → on augmente de 2 après chaque transition
.içi on commence à 10
.on attend 100 unités
.on augmente de 2, c'est-à-dire à 12
.on attend 100 unités
.on augmente de 2, c'est-à-dire à 14
.et on continue jusqu'au PITCH égale à 20
.après on recommence, mais dans le sens inverse en  soustrayant 2, jusqu'à 10.

6° WRAP

Valeurs possibles : 0 → 15

Comme nous avons vu précedemment, on part de PITCH_A, on monte jusqu’à PITCH_B pour redescendre par la suite vers PITCH_A. WRAP peut faire changer tout ça!

Si WRAP égale à 1, nous aurons la situation suivante.

. nous partons de PITCH_A, on monte jusqu'à PITCH_B.
. à PITCH_B, on recommence à PITCH_A pour remonter vers   PITCH_B, c'est le WRAP.
. une fois rendu à PITCH_B, on redescend vers PITCH_A comme
. auparavant. mais voilà lorsque rendu à PITCH_A, on remonte
. à PITCH_B sans attendre pour redescendre vers PITCH_A, pour   un WRAP.  Est-ce clair ?!?

note: si WRAP égale 15, on WRAP tout le temps.

exemple graphique
exemple graphique

7° FUZZ

Valeurs possibles : 0 → 15

8° RANDOM

Valeurs possibles : 0 → 15

FUZZ ajoute un élément aléatoire au PITCH. Tandis que RANDOM ajoute un élément aléatoire au GRAD_Y.


EXEMPLE DE L’UTILISATION DE LA COMMANDE BEEP

RAYON DE LA MORT       BEEP 0,255,1,200,-1,5,0,9
ALERTE GENERALE        BEEP 0,255,1,200,-1,5
AUTO DE COURSE         BEEP 0,100,250,1000,-1,2,10,8
POLICE (francaise)     BEEP 0,30,37,9000,7,0,0,0
PIECE ALEATOIRE        BEEP 0,1,1,4500,0,5,0,9
REVEILLE MATIN         BEEP 0,0,67,475
LASER                  BEEP 0,0,12,43,1,0,0,0

Pour mettre le son a OFF, on fait simplement BEEP avec aucun paramètre!