Jouez-le encore

GW-BASIC  (PC-BASIC)

Initiation au langage Basic

Donc vous pensez que votre ordinateur est un bon artiste, hein ?

Eh bien, vous n'avez encore rien entendu !

Attendez de découvrir ses talents musicaux ! Prêt?

Alors allons-y pour travailler et JOUER.

La fonction PLAY de votre ordinateur vous permet non seulement d'écouter de la musique, mais aussi de la composer.

Écoutez attentivement

Voici la syntaxe pour PLAY :

PLAY music lit la valeur de la musique, " expression de chaîne comprenant les éléments suivants :

A-G [#,+,-]
A-G sont des notes. # ou + après une note produit un dièse ; - produit un plat.

Toute note suivie de #, + ou - doit faire référence à une touche noire sur un piano.

L(n)
Définit la longueur de chaque note. L4 est une noire, L1 est une ronde, et ainsi de suite. n peut être compris entre 1 et 64.

La longueur peut également suivre la note pour modifier la longueur de cette note uniquement. A16 est équivalent à L16A.

MF Musique de premier plan. Les instructions PLAY et SOUND (Voir Les premiers pas) doivent être exécutées au premier plan. C'est-à-dire que chaque note ou son suivant n'est pas démarré tant que la note ou le son précédent n'est pas terminé. Il s'agit de la valeur par défaut initiale.

MB Fond de musique. Les instructions PLAY et SOUND doivent s'exécuter en arrière-plan. C'est-à-dire que chaque note ou son est placé dans un tampon permettant au programme BASIC de continuer son exécution pendant que la musique joue en arrière-plan. Jusqu'à 32 notes (ou silences) peuvent être jouées en arrière-plan en même temps.

MN Musique normale. Chaque note joue sept huitièmes du temps déterminé par L (longueur).

ML Music legato. Chaque note joue la période complète définie par L.

MS Musique saccadée. Chaque note joue les trois quarts du temps déterminé par L.

N(n) Joue la note n. n peut varier de 0 à 84. Dans les 7 octaves possibles, il y a 84 notes. n mis à 0 indique un silence.

O(n) Octave 0 définit l'octave actuelle. Il y a 7 octaves (0 à 6). La valeur par défaut est 4. Le do médian est au début de l'octave 3.

P(n) Pause. P peut varier de 1 à 64.

T(n) Tempo. T définit le nombre de L4 en une minute. n peut varier de 32 à 255. La valeur par défaut est 120.

. (point)
Un point après une note augmente le temps de jeu de la note de 3/2 fois la période déterminée par L (longueur de note) fois T (tempo). Plusieurs points peuvent apparaître après une note, et le temps de jeu est mis à l'échelle en conséquence.

Par exemple, A. fera jouer la note A une fois et demie le temps de jeu déterminé par L (longueur de la note) fois T (le tempo); deux points placés après A (A..) feront jouer la note à 9/4 fois sa valeur attribuée ; un A à trois points (A...) à 27/8, etc.

Des points peuvent également apparaître après un P (pause) et augmenter la durée de la pause comme décrit ci-dessus.

Xstring ;
Exécute une sous-chaîne, où chaîne est une variable affectée à une chaîne de commandes PLAY.

En raison de la lenteur du taux d'interruption de l'horloge, certaines notes ne jouent pas à des tempos plus élevés ; par exemple, 1,64 à T255. Ces combinaisons note/tempo doivent être déterminées par l'expérimentation.

>n Un symbole supérieur à précédant la note n joue la note dans l'octave immédiatement supérieure.
<n Un symbole inférieur à précédant la note n joue la note dans l'octave inférieure suivante.

Note

Les arguments numériques suivent la même syntaxe décrite sous l'instruction DRAW.

n en tant qu'argument peut être une constante, ou il peut s'agir d'une variable avec = devant (= variable).

Un point-virgule est requis après la variable et également après la variable dans Xstring.

Comparons les notes
(NOTE)

De toute évidence, vous pouvez avoir de la musique sans notes. PLAY offre deux façons de spécifier la note précise dont vous avez besoin.

Le premier moyen, et probablement le plus simple, de jouer la note souhaitée est d'entrer l'une des notes de musique standard - A, B, C, D, E, For G. Pour indiquer une note aiguë, suivez la note avec un signe plus (+) ou avec le signe dièse (#).

Pour indiquer un bémol, faites-le suivre d'un signe moins (-).

Par exemple, A représente A naturel ; A # est A dièse; et A - est A bémol.

Tapez ce qui suit pour voir (entendre ?) ce que nous voulons dire :

PLAY "A"

Pour entendre le changement que peuvent faire un dièse et un bémol, entrez ces lignes :

PLAY "A;Aa"
PLAY "A-;A;A#;A;A-"

Vous pouvez faire la même chose avec les sept notes (A-G) sur l'échelle, sauf C et B. Puisque B# = C, vous devez utiliser C. De même, puisque C - = B, vous devez utiliser B.

Notes entières, demi temps, quart de temps.
(LONGUEUR DE LA NOTE)

Pour choisir la longueur de note, utilisez L suivi d'un nombre de 1 à 64. Le nombre 1, par exemple, désigne une ronde, 2 une blanche, 4 une noire, 8 une croche, 16 une double croche.

En fait, vous pouvez utiliser n'importe quel nombre de 1 à 64. (Qui a déjà entendu parler d'une 1/1 5ème note ?)

Variez les longueurs de notes pour produire un roulement de tambour. Taper:

PLAY "L2;A;L4;A;A;L2;A;A"

L1 Ronde 0

L2 demi temps

L3 1/4 note pointée

L4 1/4 note

L8 1/8 note

L16 1/16 note

L32 1/32 note

..

L64 1/64 note

L2 indique une demi temps ; L4 un quart de temps.

PLAY "L1;A;A#;A-"

Notez que vous n'avez pas besoin de répéter l'option L pour chaque note. PLAY utilise la valeur de note actuelle jusqu'à ce que vous saisissiez une autre commande pour lui dire le contraire.

En fait, la plupart des options PLAY discutées dans le reste de cette section utilisent une valeur "actuelle" jusqu'à ce que vous les changiez.

Juste pour le plaisir, essayez de jouer trois notes 1/64 sur A :

PLAY "L64;A;A#;A-"

Maintenant c'est staccato.

J'adore cette note pointée

Si vous lisez la musique, vous connaissez déjà les "notes pointées". Le point vous indique d'augmenter la longueur de la note de la moitié de sa valeur normale.

Par exemple, une note 1/4 pointée est égale à une note "3/8".

Vous pouvez jouer une telle note en ajoutant une point (.) ou une série de périodes (...J au nombre L. Chaque point augmente la longueur de note de la moitié de sa valeur normale.

Par exemple :

1/2 de 1/4 = 1/8

1/4. = 1/4 + 1/8 = une note 3/8

Essaye ça:

PLAY "L4;A.;L8;C;L4;E.;L8;C;E;C;E;C;L4;A"

Jouez par numéro

N(x) Joue la note x. x peut varier de 0 à 84. Dans les 7 octaves possibles, il y a 84 notes. x mis à 0 indique un silence.

10 FOR X = 0 TO 84
20 PRINT "NOTE#"; X
30 PLAY "N" + STR$(X)
40 NEXT X

Montons (ou descendons) d'une octave ou deux
(OCTAVE)

Notre simple octave (octave 2) sonne bien, mais, la variété étant le piment de la musique, il devient un peu ennuyeux lorsqu'il est joué encore et encore (comme un piano avec seulement 12 touches).

Pour changer d'octave, utilisez la lettre O suivie d'un nombre compris entre 1 et 5. (Tout nombre en dehors de cette plage entraîne une erreur d'appel de fonction illégale.)

Si vous ne spécifiez pas l'octave, l'ordinateur utilise automatiquement l'octave 2, qui inclut le do médian. essayons de jouer une gamme de C simple :

PLAY "CDEFGABAGFEDCBA"

Qu'est-il arrivé? G est la note la plus haute de l'octave 2, donc quand l'ordinateur a atteint A, il est passé au début de l'octave. Pour entrer dans l'Octave 3, essayez ceci :

PLAY "CDEF;O3;GABA;O2;GFEDCBA"

Une minute de silence, s'il vous plait
(PAUSE)

Peut-être que ce dernier petit programme serait plus facile à écouter si toutes les notes n'étaient pas jouées ensemble. Utilisez la fonction P (pause) pour quelques instants de silence entre les notes et voyez si elles sonnent mieux.
Pour mettre une pause entre les notes, utilisez P suivi d'un nombre de 1 à 64.

Les longueurs de pause correspondent aux longueurs de note avec une différence importante. Vous ne pouvez pas utiliser de points (points) avec P. Pour compenser, tapez simplement une série de pauses. Par exemple, pour obtenir une pause de 3/8, tapez P4P8.

10 PLAY "A;P2;A;P2;A;P2;A;P2;A;P2;A;P2"

En fait, une pause de demi temps (P2) entre tous ces A ne les fait pas sonner beaucoup mieux, mais vous devriez avoir une idée de la façon dont P fonctionne.

Il est temps de prendre le rythme
(TEMPO)

Pour l'instant, le programme de test ressemble à ceci :

5 CLS
10 PLAY "A;P2;A;P2;A;P2;A;P2;A;P2;A;P2"

C'est passable, sinon agréable, mais le tempo (vitesse) est un peu lent. Vous pouvez augmenter ou diminuer le tempo avec T et un nombre de 1 à 255.

Si vous ne spécifiez pas de tempo, votre ordinateur utilise automatiquement T2.

T Tempo définit le nombre de L4 en une minute. n peut varier de 32 à 255. La valeur par défaut est 120.

Commencez par ralentir le tempo du programme :

5 CLS
10 PLAY "T32;A;P2;A;P2;A;P2;A;P2;A;P2;A;P2"

Accélérez-le en changeant T32 en T45. Maintenant, c'est plus comme ça.

Que diriez-vous de l'accélérer au maximum, 255, et d'exécuter le programme.

Cela n'a pas pris longtemps, n'est-ce pas ?

Exécution de la sous-chaîne
(X)

Vous souvenez-vous de l'option d'exécution (X) de DRAW ? PLAY a une fonctionnalité similaire qui vous permet d'exécuter la sous-chaîne, puis de revenir à la chaîne d'origine et de la compléter.

La fonction execute prend la forme suivante :

XA $ ;

A$ contient une séquence de commandes et de fonctions de lecture normales. X dit à l'ordinateur de JOUER A$.

Réorganisez le programme de démonstration afin qu'il exécute une sous-chaîne :

5 CLS
10 A$ = "A;A#;A-"
20 B$ = "O5;XA$;"
30 C$ = "O1;XA$;XB$;"
40 PLAY C$

Exécutez le programme et suivez son exécution.

Remarque : Chaque fois que vous utilisez la fonction d'exécution, un point-virgule(;) doit suivre le signe dollar ($). Dans cet exemple, vous pouvez supprimer tous les points-virgules à l'exception de ceux qui suivent le signe dollar.

Une note supplémentaire
+,-,<>

Non, nous n'allons pas lancer une nouvelle note, comme H ou L sur vous. Nous avons juste une dernière façon d'utiliser certaines des options de PLAY. Avec O (octave), T (tempo) et L (longueur de note), vous pouvez utiliser l'un des suffixes suivants au lieu d'ajouter un chiffre :

+ Ajoute 1 à la valeur actuelle.
- Soustrait 1 de la valeur actuelle.
>n Un symbole supérieur à précédant la note n joue la note dans l'octave immédiatement supérieure.
<n Un symbole inférieur à précédant la note n joue la note dans l'octave inférieure suivante.

Utilisez l'exemple de programme pour en savoir plus sur ces fonctionnalités.

5 CLS
10 PLAY "A;A#;A-"

Remarquez que la ligne 10 définit le tempo. Exécutez le programme une fois juste pour avoir une oreille attentive. Rien n'a changé; c'est comme toujours, maintenant A+ à la ligne 10 et ajouter la ligne 20.

10 PLAY "A;A#;A-;A+"
20 GOTO 10

Maintenant changez la ligne 10:

10 PLAY "A>;A#;A-;A+"

Lancez le programme. Le signe > augmente automatiquement la valeur de A à chaque fois que la ligne 10 est exécutée.

Rouler, Beethoven

Après tout le travail acharné que vous avez fait ces derniers temps, vous méritez une sérénade.

Connaissez-vous toutes les fonctions de PLAY ? Si c'est le cas, regardez-les travailler dans le programme suivant et voyez si vous pouvez nommer cette chanson !

5 CLS
100 A$ ="C;E;F;L1;G;P4;L4;C;E;F;L1;G"
105 B$= "P4;L4;C;E;F;L2;G;E;C;E;L1;D"
110 C$ ="P8;L4;E;E;D;L2;C;L4;C;L2;E"
115 D$ ="L4;G;G;G;L1;F;L4;E;F"
120 E$ ="L2;G;E;L4;C;L8;D;D+;D;E;G;A;L1;O3;C"
125 X$ = "XA$;XB$;XC$;XD$;XE$;"
130 PLAY X$

Reconnaissez-vous cette chanson ? Habillez-le un peu en ajoutant ces lignes :

10 PRINT STRING$ (32,"*")
20 PRINT "WHEN THE SAINTS"
30 PRINT "GO MARCHING IN"
35 PRINT STRING$ (32,"*")
40 FOR X = 1 TO 500: NEXT X
45 CLS
50 PRINT "OH WHEN THE SAINTS"
55 PRINT "OH WHEN THE SAINTS"
60 PRINT "OH WHEN THE SAINTS, GO MARCHIN IN"
65 PRINT "YES I WANT TO BE IN THAT NUMBER"
70 PRINT "WHEN THE SAINTS GO MARCHIN IN"

Exécutez le programme maintenant et chantez avec votre ordi.

Programme faites-le vous même

Notre interprétation de "Saints" sonne bien, mais ce n'est pas le vrai style de la Nouvelle-Orléans. Jazzez-le selon vos propres goûts musicaux. Essayez de changer d'octave ou d'ajouter quelques dièses ou bémols.

Essayez vos propres arrangements musicaux. Nous en avons inclus plusieurs dans les exemples de programmes.

100 A$ = "C;E;F;L1;G;P4;L4;C;E;F;L1;G"
105 B$ = "P4;L4;C;E;F;L2;G;E;C;E;L1;D"
110 C$ = "P4;L4;D+;L8;E;G;E;P8;L4;C;L8;D;D+"
115 D$ = "L4;E;C;L2;O3;C;L8;O3;D;L8;O2;B-"
120 E$ = "G;E;L4;G;L1;F;P4;L8;G;F;E;F"
125 F$ = "L2;G;E;L4;C;L8;D;D+;E;G;L4;A;L1;O3;C"
130 X$ = "XA$;XB$;XC$;XD$;XE$;XF$;"
140 PLAY X$

 

 

 

 

 

 

 

Recherche personnalisée