syntheSons

syntheSonsCollectif d'auteurs [x]

La «proglet» syntheSons.

Cette proglet permet de générer une séquence de notes et d'en regarder le spectre de fréquence.
Pour définir son propre son il faut utiliser la construction Java'sCool, par exemple:
@tone: sqr(t) + noi(t);
@tone: est une « macro-instruction », suivie, sur la même ligne d'une expression de la variable t qui définit la forme du son, tandis que les fonctions suivantes sont prédéfinies:

// Sinusoide

double sns(t)

// Signal carré

double sqr(t)

// Signal triangulaire

double tri(t)

// Souffle aléatoire

double noi(t)
Pour écouter le son ou la séquence de notes il faut utiliser la fonction:
play();
La visualisation du son s'effectue en montrant:
  • Les amplitudes des fréquences du son (tracé en rouge, l'unité est de décibel, renormalisé pour offrir le meilleur tracé).
    Les fréquences sont tracées entre le La sous-grave (octave 0 à 27.5Hz, à peine audible) et le La sur-aigu (octave 9 à 6400Hz), tandis que le milieu de l'échelle est le La du diapason (octave 4 à 440Hz).
  • Le début du signal (tracé en jaune), permet de voir sa forme et son aspect temporel. Les premières 11ms (0.011 secondes) sont tracées.
Pour définir une séquence de notes il faut utiliser la fonction:
setNotes("séquence-de-note");
où la syntaxe de "séquence-de-note" est définie dans la documentation de la classe.
Un exemple d'utilisation: lors de la démonstration, les différents sons:
@tone: cos(t);
play();
puis
@tone: 0.5 * sqr(t);
play();
puis
@tone: 0.8 * tri(t) + 0.2 * noi(t);
play();
puis
@tone: 0.3 * sqr(t/2) * sin(t) + 0.3 * sin(2 * t) + 0.3 * tri(3 * t);
play();
sont présentés, puis le codage de partition des 1ères notes de quelque chose qui ressemble à la «Lettre à Elise» de L.v.Beethoven est jouée et son spectre affiché et ensuite
. . à vous de jouer !
Voici aussi comment défini un code en morse
Voici aussi un programmee exemple qui utilise l'entrée de son sur le microphone
Voici une activité complète sur le son présentation et fichiers de l'activité grâce au collègue Laurent Roy.
Cette «proglet» est un composant logiciel ouvert dont documentation et code-source sont disponibles ici