[center][size=100][size=150]Pardon mais c'est en français ![/size][/size][/center][br]Confectionné avec l'aide de [u][b][url=https://www.geogebra.org/u/mathmagic]mathmagicGGB[/url][/b][/u][b] et les [/b][url=https://phyanim.sciences.univ-nantes.fr/Ondes/son/synthese_son.php][b]documents de Geneviève[/b] [b]Tulloue[/b][/url][br][br]L'idée est de jouer des notes de musique aussi bien sur les versions 6 que 5.2 de[br]GeoGebra en utilisant PlaySound (JouerSon) d'une somme de fonctions[br]sinusoïdale avec des coefficients constants.[br][br][br]Avec l'aide des données de Geneviève Tulloue sur : [br][url=https://phyanim.sciences.univ-nantes.fr/Ondes/son/synthese_son.php] https://phyanim.sciences.univ-nantes.fr/Ondes/son/synthese_son.php[/url][br]Pour un peu améliorer le son d'une note par exemple de fréquence f=440 : un La (ou[br]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 .[br]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.[br]De sorte que la fonction utilisée pour une note est de la forme : [br][br]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))+...)[br][br]Chaque note jouée est représentée par un élément de m1 de la forme[br]{hauteur de son dans un octave de 1 à 13 (de Do à Si puis silence , numéro d'octave , durée}[br]Par exemple {1,3,2} joue le Do de l’octave 3 durant 2 unités.[br]Par exemple {5,4,.5} joue le Mi de l’octave 4 durant 0,5 unités.[br]Par exemple {0,4,3} "joue" une pause durant 3 unités.[br]La5 a pour fréquence de base 440.[br]La suite des fréquences depuis les notes bases jusqu'aux aiguës étant géométrique de raison 2^(1/12)[br]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))[br][br]L’excellente idée de mathmagicGGB ést d’utiliser une « minuterie » tim à partir de laquelle on peut construire des fonctions discontinues :[br]→ la variable[br]step : qui donne l’élément de m1 joué à l’instant x[br] step = 1 + Longueur(GarderSi(x < tim, cumdur))[br]où cumdur est la liste des durées cumulées de notes [br][br]→ "enveloppe" sert aussi aux silences[br] enveloppe = Si(Element(m1,step,1)==0,0,env(tim- cumdur(step-1)))[br]ainsi une seule activation de JouerSon est suffisante, c’est la fonction f(x) qui change suivant le temps.[br][br]Pour jouer sur la vitesse : un curseur speed :[br]→ la vitesse de tim est proportionnelle à speed[br]→ 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. [br][br]Les éléments 8000 et 8, proposés sur l’aide sur JouerSon, semblent aller.[br]Le JouerSon est dans le bouton de lancement.[br][br]ATTENTION : Une fois lancé JouerSon sur une durée, il fournira un son durant cette durée entière.[br][br]Je me suis amusé à rajouter un affichage des notes durant l’exécution du morceau.[br]Pardon pour les erreurs de saisies et le son pas encore au top.[br][br]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. [br]Sur smartphone, en cas d'absence de son, rafraîchir la page puis l'applet (symbole [br] au coin supérieur droit du rectangle bleu) avant de réessayer.[br][br][br][br]A vous de jouer ![br]