Un tutoriel sur les signaux sonores.

Voir aussi l'activité «unplug» (sans programmation)

Objectif.

Le but de ce tutoriel est

Introduction.

  1. La notion de signal périodique.

    Une note est une vibration de l'air comme détaillé ici (bien lire le document avant de commencer). Les sons les plus graves correspondent à une vibration de 20Hz (20 fois par seconde), les plus aigus de 20000Hz, notre voix humaine vibre principalement entre 100 et 3000Hz.
    Voir aussi un document sur la numérisation du son.

Travail proposé.

  1. Construire un signal périodique de forme donnée.

    Tous les signaux périodiques peuvent se construire comme une somme de sinusoïdes. Par exemple, comme on peut l'observer sur la figure suivante:


    où l'on voit, à gauche, la sinusoïde sinus(t) en marron, puis la sinusoïde "scpultée" en vert où en ajoutant sinus(t) + sinus(3 t) / 3 on rabote un peu le haut de la sinusoïde, puis en rouge sinus(t) + sinus(3 t) / 3 + sinus(5 t) / 5 et, à droite, on continue d'ajouter les sinusoïdes jusqu'à approcher un signal carré.
    • En utilisant la fonction playSignal décrite ici faire un petit programme qui va déclencher sur les canaux 1, 2 et 3, des sinusoïdes de fréquence 100Hz puis 300Hz etc.. avec les bonnes amplitudes. Ecrire ce programme en mettant une instruction playSignal sur chaque ligne.
    • Observer le son (sa forme sur l'affichage de la proglet et écouter sa forme). Comparer avec un signal carré et sinusoïdal: le son ressemble t'il plus à un signal carré ?
    • Reprendre le programme en faisant une petite boucle for(intc = 0; c < 3; c++) { pour vous entraîner à utiliser des boucles.
    • Pour mieux observer ces différents signaux sonnores, utiliser la fonction playStop et la fonction:
      void sleep(int duree) Arrête l'exécution du programme pendant une durée fixée donnée en milli-secondes.
      pour faire produire, trois signaux de même fréquence:
      1. Une sinusoïde pendant 4 secondes
      2. La sommes des trois sinusoïdes pendant 4 secondes
      3. Un signal carré pendant 4 secondes
      ceci une vingtaine de fois. Entrainez vous à deviner lequel des trois signaux est produit.
  2. L'effet du son lorsque la porte est fermée/ouverte.

    Lorsque l'on ferme une porte les sons de la pièce attenante nous paraissent plus étouffés. Cette sensation provient du fait que les hautes fréquences sont atténuées tandis que les basses fréquences, traversent mieux la paroi de la porte car elles ont davantage d'énergie. Nous allons recréer cet effet en programmant cette proglet.
    • Choisir une musique ou un son de votre choix (quelques secondes) et créer un programme d'une ligne avec l'instruction playRecord décrite ici pour le lancer.
    • Utiliser manuellement l'interface pour ajuster la fréquence de coupure des sons aigus et l'amplitude du signal afin de voir comment créer l'effet sonore / du son original ou assourdi.
    • Utiliser ensuite la fonction playStop et la fonction:
      void sleep(int duree) Arrête l'exécution du programme pendant une durée fixée donnée en milli-secondes.
      pour créer un petit programme qui va émettre votre son "porte ouverte" (sans fréquence de coupure ni atténuation) pendant 3-4 secondes puis comme si une porte était fermée entre le son et l'auditeur.
    • Faire un programme plus sophistiqué qui va progressivement (en 10 secondes, par exemple, par pas de 1 secondes) "ouvrir et fermer" la porte. Commentez dans le programme le résultat obtenu.
    • Ecoutez le clip de Bjorg et notez à quel endroit (quelle minute/seconde du clip) cet effet est utilisé.