Vivaldi Concerto in C maj RV558 for ggb 6 & 5.2
Réalisé avec l'aide de mathmagicGGB. Cliquer sur le rectangle vert pour démarrer. S'il n'y a pas de son sur smartphone, rafraîchir la page et l'applet (symbole coin supérieur droit du rectangle bleu) . La musique joue tout le morceau : patience !
Pardon mais c'est en français !
Confectionné avec l'aide de mathmagicGGB et les documents de Geneviève Tulloue L'idée est de jouer des notes de musique aussi bien sur les versions 6 que 5.2 de GeoGebra en utilisant PlaySound (JouerSon) d'une somme de fonctions sinusoïdale avec des coefficients constants. Avec l'aide des données de Geneviève Tulloue sur : https://phyanim.sciences.univ-nantes.fr/Ondes/son/synthese_son.php Pour un peu améliorer le son d'une note par exemple de fréquence f=440 : un La (ou A) j'additionne des harmoniques c'est à dire des fonctions de fréquence 2f, 3f, 4f .... Chacune avec un coefficient contenu dans la liste coe . En plus les données de ce même site permet d'avoir une "enveloppe" du son de l'instrument (courbe de la fonction env, gérant le volume durant la durée de la note. De sorte que la fonction utilisée pour une note est de la forme : f(x)= enveloppe volume(sin(2pi f x)+coe(2) sin(4pi f x)+coe(3)sin(6pi f x)+coe(4) sin(8pi f x)+.coe(5)sin(10pi f x))+...) Chaque note jouée est représentée par un élément de m1 de la forme {hauteur de son dans un octave de 1 à 13 (de Do à Si puis silence , numéro d'octave , durée} Par exemple {1,3,2} joue le Do de l’octave 3 durant 2 unités. Par exemple {5,4,.5} joue le Mi de l’octave 4 durant 0,5 unités. Par exemple {0,4,3} "joue" une pause durant 3 unités. La5 a pour fréquence de base 440. La suite des fréquences depuis les notes bases jusqu'aux aiguës étant géométrique de raison 2^(1/12) Pour passer d’une même note à l’octave supérieur ou inférieur, on multiplie ou divise la fréquence par 2 d'où freq = 880 * 2^((Element(m1, step, 1) - 10) / 12) / 2^(5 - Element(m1, step, 2)) L’excellente idée de mathmagicGGB ést d’utiliser une « minuterie » tim à partir de laquelle on peut construire des fonctions discontinues : → la variable step : qui donne l’élément de m1 joué à l’instant x step = 1 + Longueur(GarderSi(x < tim, cumdur)) où cumdur est la liste des durées cumulées de notes → "enveloppe" sert aussi aux silences enveloppe = Si(Element(m1,step,1)==0,0,env(tim- cumdur(step-1))) ainsi une seule activation de JouerSon est suffisante, c’est la fonction f(x) qui change suivant le temps. Pour jouer sur la vitesse : un curseur speed : → la vitesse de tim est proportionnelle à speed → l'intervalle de temps sur lequel JouerSon travaille est [0 ; totdur/speed] donc de taille la durée totale de la partition divisée par speed. Les éléments 8000 et 8, proposés sur l’aide sur JouerSon, semblent aller. Le JouerSon est dans le bouton de lancement. ATTENTION : Une fois lancé JouerSon sur une durée, il fournira un son durant cette durée entière. Je me suis amusé à rajouter un affichage des notes durant l’exécution du morceau. Pardon pour les erreurs de saisies et le son pas encore au top. Il y a pas mal de mémoire à utiliser or ATTENTION : JouerSon(false) fait une pause mais n'efface pas ce qu'il y a dans la mémoire. Sur smartphone, en cas d'absence de son, rafraîchir la page puis l'applet (symbole au coin supérieur droit du rectangle bleu) avant de réessayer. A vous de jouer !