Musique ! Maëstro LOGO
 
Il est possible avec LOGOPLUS de faire entendre des mélodies ( musiques à une seule voix). Aussi, cette page est-elle dédiée à la musique, que le langage LOGO va illustrer en vous proposant d'écrire un petit texte qui va créer de manière aléatoire une mélodie en lui indiquant seulement le nombre de notes que vous souhaitez entendre. L'idée d'un générateur automatique de mélodies (G.A.M.) pour composer n'est pas nouvelle puisque Bach lui-même utilisait parfois un système basé sur les initiales de nom et prénoms de personnes familières, et plus récemment, Yannis Xénakis avait utilisé l'ordinateur pour créer de la musique stochastique (du grec Kaos: le hasard).  LOGOPLUS peut jouer de la musique pour peu que son programmeur connaisse les rudiments du solfège. N'ayant pas Jean-François Zygel et son piano à notre disposition, mais une simple page web, il faudra donc nous contenter de schémas qui sont plus démonstratifs qu'explicatifs.
Voici donc les schémas rudimentaires du professeur Solfège:
 
Quelques indications (sommaires).

Précision: pour ne pas trop compliquer les choses d'un coup, les triple-croches et 
               quadruple-croches ont été "oubliées" dans le schéma ainsi que d'autres  
               valeurs de silence (pause, demi-pause).
 
LOGOPLUS couvre 6 octaves (numérotées de 1 à 6 ) et les durées sont représentées par leurs initiales: R pour ronde, BP pour Blanche Pointée, B pour blanche, NP pour Noire Pointée, N pour Noire, CP pour Croche Pointée, C pour Croche, DC pour Double-Croche.
Les valeurs de silence sont représentées par des nombres négatifs (voir le catalogue ).
 
Récapitulons:
 
- LOGOPLUS couvre 6 octaves, que l'on peut numéroter de 1 à 6.
  (Pour la mélodie, on choisira plutôt les octaves 3 et 4, plus utilisées pour le chant. )
- Il y a 7 notes (naturelles) par octave, que l'on peut numéroter de 1 à 7..
- Il y a 2 altérations possibles (1 = # et 0 =  b ; 2 représentera la note naturelle).
- Il y a 8 valeurs de durées: R, BP, B, NP, N CP, C, DC,  numérotées de 1 à 8.
  (Dans la mélodie, on choisira des durées comprises entre la croche et la blanche)
 
Cela se traduit parfaitement en LOGO de la manière suivante:
 
POUR note :n  /* Les notes de musique */
SI :n = 1 REPONDRE "DO"
SI :n = 2 REPONDRE "RE"
SI :n = 3 REPONDRE "MI"
SI :n = 4 REPONDRE "FA"
SI :n = 5 REPONDRE "SOL"
SI :n = 6 REPONDRE "LA"
SI :n = 7 REPONDRE "SI"
FIN
 
POUR hauteur :n  /* L'octave choisie */
SI (:n = 1) REPONDRE "1
SI (:n = 2) REPONDRE "2
SI (:n = 3) REPONDRE "3
SI (:n = 4) REPONDRE "4
SI (:n = 5) REPONDRE "5
SI (:n = 6) REPONDRE "6
FIN
 
POUR valeur :n  /* Les durées */
SI :n = 1 REPONDRE "QC"
SI :n = 2 REPONDRE "DC"
SI :n = 3 REPONDRE "T"
SI :n = 4 REPONDRE "C"
SI :n = 5 REPONDRE "CP"
SI :n = 6 REPONDRE "N"
SI :n = 7 REPONDRE "NP"
SI :n = 8 REPONDRE "B"
SI :n = 9 REPONDRE "BP"
SI :n = 10 REPONDRE "R"
FIN
 
Ces procédures étant définies, il ne reste plus qu'à écrire une boucle REPETE qui va assembler les notes de notre mélodie:
 
POUR aléa :n  /*:n représente le nombre de notes de la mélodie.*/
EFFACETEXTE TEMPO 80  /* 80 battements par minute. */
DONNE "chaîne "  /* Elle contiendra la mélodie. */
REPETE :n [
FIXEHASARD 1 7  /* On choisit la note. */
DONNE "chaîne MOT :chaîne note HASARD
FIXEHASARD 0 2 DONNE "choix HASARD /* altération ou pas ? */
TESTE ( :choix = 1 )
SIVRAI DONNE "chaîne MOT :chaîne "#" /* On place un dièse. */
SIFAUX 
  SI (: choix = 0 ) DONNE "chaîne MOT :chaîne "b"  /* On place un bémol. */
FIXEHASARD 3 4 /* On restreint le choix de l'octave à la 3ième et à la 4ième octave.*//
DONNE "chaîne MOT :chaîne hauteur HASARD
FIXEHASARD 4 8 /* On choisit les valeurs de durées. */
DONNE "chaîne MOT :chaîne valeur HASARD
]
ECRISLIGNE :chaîne
JOUE :chaîne /* C'est le moment de s'asseoir dans un bon fauteuil ! */
FIN
 
aléa 8 /* On choisit une mélodie de 8 notes. */
 
 
La mélodie construite étant par définition aléatoire, le résultat entendu peut parfois être surprenant. Cela peut cependant être une base, en la retravaillant, pour écrire une musique agréable à écouter. Il est également possible de modifier les paramètres du G.A.M.O. (Générateur Aléatoire de Musique sur Ordinateur) pour élargir la tessiture (nombre d'octaves), modifier le tempo, élargir les durées ... A chacun(e) de jouer !
 
Pour télécharger les textes-programmes du G.A.M.O. , cliquer ici .

                                                                         

A voir: il existe un G.A.T.O. ( l'équivalent du G.A.M.O. mais pour les textes ) dans le répertoire LogoPlus/Programmation/Données/Listes/ intitulé expression.logo .
Attention, le texte de programmation contient des listes de mots très longues et il faut parfois du temps à LogoPlus pour les analyser lors de l'apprentissage de ce texte.
 
Il est possible d'utiliser également un clavier musical pour écrire des mélodies simples.
 
Voir la fenêtre du clavier musical >>
 
Du rythme à présent.
 
Objectif pédagogique: reconnaître un rythme simple, un enchaînement rythmique.
 
La reconnaissance d'un rythme est une chose difficile à acquérir pour un enfant. Impalpable, courant et fuyant, le rythme ne se laisse pas facilement apprivoiser et codifier. On peut cependant et grâce au langage LOGO, faire travailler l'oreille sur la reconnaissance rythmique par l'écoute du code Morse. 
Samuel F.B. Morse, peintre et physicien américain (1791-1872), inventa le télégraphe électrique et le code qui porte son nom : Code MORSE.
Chaque symbole ou caractère est représenté par une série de points et de traits. Chaque point est traduit par un son de courte durée (environ de 5 unités de temps) et chaque trait par un son de longue durée (de 20 unités de temps):
                   A.-     K-.-    N -       Q --.-
                   B -...  L .-.     0 ---     R .-.
                   C-.-.  M --     P .--.    S ...
                   D -..                         T -
                   E .                           U..-
                   F ..-.                         V ... -
                   G --.                        W .--
                   H ....                         X -..-
                   I ..                           Y -.--
                   J .---                       Z --.. 

Il est possible en LOGO et en quelques procédures, d'écrire n'importe quel message sur le clavier, avec l'écriture courante et de faire apparaître sur l'écran ces mêmes messages, en Code MORSE, tout en produisant les sons correspondants.
 
1) Une procédure qui déterminera le rang d'une lettre à coder.
 
pour rang :c
donne "c ascii :c /* On demande le code ascii de la lettre. */
teste :c > 96  /* On le ramène dans un intervalle [1 26] lettres de l'alphabet. */
sivrai donne "c :c - 96
sifaux donne "c :c - 64
rends item :codes :c /* C'est le rang de la lettre. */
fin
 
2) Définir la liste des codes MORSE dans l'ordre des 26 lettres de l'alphabet.
 
donne "codes
 [ .- -... -.-. -.. . ..-. --. .... .. .--- -.- .-.. -- -. --- .--. --.- .-. ... - ..- ...- .-- -..- -.-- --.. ]
/* A  B  C  D  E F   G H  I  J   K   L   M N O  P   Q   R  S T U  V  W  X   Y   Z */
 
3) Une procédure qui assemblera les codes.
 
pour concatène :chaîne
ecl :chaîne
donne "beeps " /* chaîne des points et tirets du code MORSE. */
teste diff? (card :chaîne ) 0 /* On assemble la chaîne. */
sivrai répète card :chaîne donne "beeps mot :beeps rang item :chaîne boucle
sifaux [ transforme :chaîne donne "beeps mot :beeps rang :chaîne ]
ecl :beeps
rends :beeps
fin
 
4) Des procédures pour faire entendre les points et les tirets.
 
pour bref /* le point. */
joue "la3qc-4
fin
 
pour long /* le tiret - */
joue "la3c-4
fin
 
5) Une procédure pour émettre le code MORSE.
 
pour émission :chaîne
tempo 240 /* 240 battements par seconde. */
répète card :chaîne [ /* On fait entendre le code. */
teste ( item :chaîne boucle ) = ".
sivrai bref sifaux long
                              ]
fin
 
efftxt donne "expression [ Bonjour les enfants ] /* Il y a trois items */
répète card :expression émission concatène item :expression boucle
 
On peut, si on dispose d'un ordinateur dans la classe, faire trouver une lettre, un mot ou une phrase codée en Morse. Le tempo, fixé initialement à 240 battements par seconde pourra bien sûr être abaissé pour faciliter le travail de reconnaissance des élèves, au moins au début de cette activité d'écoute rythmique.
 
Pour télécharger cet émetteur de code MORSE, cliquer ici .
(Le code Morse des chiffres de 0 à 9 ainsi que le point et le code de l'erreur ont été ajoutés.)

                                                                     

Haut de page >>

Retourner à la page d'accueil >>

Rückkehr >>