joris Abadie
#include "AdnForme.h" // Génère les fichiers c.jo et c.joa void genereFichierJo(char c) { jo joc = mesjo[c-'a']; // Nom du fichier jo char nomfichierjo[32]; snprintf(nomfichierjo, 32, "%c.jo", c); // Nom du fichier joa char nomfichierjoa[32]; snprintf(nomfichierjoa, 32, "%c.joa", c); // Fichier jo FILE* fichierjo; if (!(fichierjo = fopen(nomfichierjo, "wb"))) { exit(-1); } // Fichier joa FILE* fichierjoa; if (!(fichierjoa = fopen(nomfichierjoa, "wb"))) { exit(-1); } /******************************fin*partie*fixe************/ // ici commence la zone de travail pour l'apprenant //Nous allons utiliser les boucles du for en langage c pour produire les différents sons. //Imaginer un gaulois qui marche, il va rencontrer plusieurs paysages prédéterminés. //pour les sons, il en est de même, nous allons rencontrer plusieurs plateaux en équilibre //selon le chemin emprunté et les valeurs placées dans les plateaux d'équilibre. //lmfab107 est un chemin monotone de deux fronts qui diminue l'amplitude, un marteau acoustique //A la différence de lmfab101 nous augmentons la force des fronts par la répétition //Nous indiquons ici combien de fois nous allons diminuer l'amplitude //en entrant la valeur de laforceh dans une boucle for(int laforcehbase = joc.laforceh; laforcehbase > 0; laforcehbase--) { joc.amplitude[0] -= joc.changeamplitude[0]; joc.amplitude[1] -= joc.changeamplitude[1]; joc.amplitude[2] -= joc.changeamplitude[2]; joc.amplitude[3] += joc.changeamplitude[3]; joc.amplitude[4] += joc.changeamplitude[4]; joc.amplitude[5] += joc.changeamplitude[5]; fprintf(fichierjo, "%c%c", (char)joc.amplitude[0], (char)joc.dureefront[0]); fprintf(fichierjoa, "%d %d\n", (unsigned char)joc.amplitude[0], (unsigned char)joc.dureefront[0]); fprintf(fichierjo, "%c%c", (char)joc.amplitude[1], (char)joc.dureefront[1]); fprintf(fichierjoa, "%d %d\n", (unsigned char)joc.amplitude[1], (unsigned char)joc.dureefront[1]); fprintf(fichierjo, "%c%c", (char)joc.amplitude[2], (char)joc.dureefront[2]); fprintf(fichierjoa, "%d %d\n", (unsigned char)joc.amplitude[2], (unsigned char)joc.dureefront[2]); fprintf(fichierjo, "%c%c", (char)joc.amplitude[3], (char)joc.dureefront[3]); fprintf(fichierjoa, "%d %d\n", (unsigned char)joc.amplitude[3], (unsigned char)joc.dureefront[3]); fprintf(fichierjo, "%c%c", (char)joc.amplitude[4], (char)joc.dureefront[4]); fprintf(fichierjoa, "%d %d\n", (unsigned char)joc.amplitude[4], (unsigned char)joc.dureefront[4]); fprintf(fichierjo, "%c%c", (char)joc.amplitude[5], (char)joc.dureefront[5]); fprintf(fichierjoa, "%d %d\n", (unsigned char)joc.amplitude[5], (unsigned char)joc.dureefront[5]); for(int i = joc.laforcer; i > 0; i--) { fprintf(fichierjo, "%c%c", (char)joc.amplitude[0], (char)joc.dureefront[0]); fprintf(fichierjoa, "%d %d\n", (unsigned char)joc.amplitude[0], (unsigned char)joc.dureefront[0]); fprintf(fichierjo, "%c%c", (char)joc.amplitude[1], (char)joc.dureefront[1]); fprintf(fichierjoa, "%d %d\n", (unsigned char)joc.amplitude[1], (unsigned char)joc.dureefront[1]); fprintf(fichierjo, "%c%c", (char)joc.amplitude[2], (char)joc.dureefront[2]); fprintf(fichierjoa, "%d %d\n", (unsigned char)joc.amplitude[2], (unsigned char)joc.dureefront[2]); fprintf(fichierjo, "%c%c", (char)joc.amplitude[3], (char)joc.dureefront[3]); fprintf(fichierjoa, "%d %d\n", (unsigned char)joc.amplitude[3], (unsigned char)joc.dureefront[3]); fprintf(fichierjo, "%c%c", (char)joc.amplitude[4], (char)joc.dureefront[4]); fprintf(fichierjoa, "%d %d\n", (unsigned char)joc.amplitude[4], (unsigned char)joc.dureefront[4]); fprintf(fichierjo, "%c%c", (char)joc.amplitude[5], (char)joc.dureefront[5]); fprintf(fichierjoa, "%d %d\n", (unsigned char)joc.amplitude[5], (unsigned char)joc.dureefront[5]); } } // fin de la zone de travail de l'apprenant // Ce cas utilise une seule boucle contenant 5 valeurs différentes pour chaque note placées dans fronts.cpp /************************************************************************/ fclose(fichierjo); fclose(fichierjoa); }
#include "fronts.h" #include "jo.h" jo clavier32[26] = { { // a touche1 55, // laforceh 2, // laforce par repetition {240, 238, 240, 20, 22, 20}, // amplitude {225, 225, 225, 225, 225, 225}, // dureefront {2, 2, 2, 2, 2, 2}, // varamplitude {0, 0, 0, 0, 0, 0} // vardureefront }, { // b touche25 55, // laforceh 6, // laforce par repetition {240, 238, 240, 20, 22, 20}, // amplitude {56, 56, 56, 56, 56, 56}, // dureefront {2, 2, 2, 2, 2, 2}, // varamplitude {0, 0, 0, 0, 0, 0} // vardureefront }, { // c touche23 55, // laforceh 4, // laforce par repetition {240, 238, 240, 20, 22, 20}, // amplitude {63, 63, 63, 63, 63, 63}, // dureefront {2, 2, 2, 2, 2, 2}, // varamplitude {0, 0, 0, 0, 0, 0} // vardureefront }, { // d touche13 55, // laforceh 4, // laforce par repetition {240, 238, 240, 20, 22, 20}, // amplitude {112, 112, 112, 112, 112, 112}, // dureefront {2, 2, 2, 2, 2, 2}, // varamplitude {0, 0, 0, 0, 0, 0} // vardureefront }, { // e touche3 55, // laforceh 2, // laforce par repetition {240, 238, 240, 20, 22, 20}, // amplitude {200, 200, 200, 200, 200, 200}, // dureefront {2, 2, 2, 2, 2, 2}, // varamplitude {0, 0, 0, 0, 0, 0} // vardureefront }, { // f touche14 55, // laforceh 4, // laforce par repetition {240, 238, 240, 20, 22, 20}, // amplitude {106, 106, 106, 106, 106, 106}, // dureefront {2, 2, 2, 2, 2, 2}, // varamplitude {0, 0, 0, 0, 0, 0} // vardureefront }, { // g touche15 55, // laforceh 4, // laforce par repetition {240, 238, 240, 20, 22, 20}, // amplitude {100, 100, 100, 100, 100, 100}, // dureefront {2, 2, 2, 2, 2, 2}, // varamplitude {0, 0, 0, 0, 0, 0} // vardureefront }, { // h touche16 55, // laforceh 4, // laforce par repetition {240, 238, 240, 20, 22, 20}, // amplitude {94, 94, 94, 94, 94, 94}, // dureefront {2, 2, 2, 2, 2, 2}, // varamplitude {0, 0, 0, 0, 0, 0} // vardureefront }, { // i touche8 55, // laforceh 2, // laforce par repetition {240, 238, 240, 20, 22, 20}, // amplitude {150, 150, 150, 150, 150, 150}, // dureefront {2, 2, 2, 2, 2, 2}, // varamplitude {0, 0, 0, 0, 0, 0} // vardureefront }, { // j touche17 55, // laforceh 4, // laforce par repetition {240, 238, 240, 20, 22, 20}, // amplitude {89, 89, 89, 89, 89, 89}, // dureefront {2, 2, 2, 2, 2, 2}, // varamplitude {0, 0, 0, 0, 0, 0} // vardureefront }, { // k touche18 55, // laforceh 4, // laforce par repetition {240, 238, 240, 20, 22, 20}, // amplitude {84, 84, 84, 84, 84, 84}, // dureefront {2, 2, 2, 2, 2, 2}, // varamplitude {0, 0, 0, 0, 0, 0} // vardureefront }, { // l touche19 55, // laforceh 4, // laforce par repetition {240, 238, 240, 20, 22, 20}, // amplitude {75, 75, 75, 75, 75, 75}, // dureefront {2, 2, 2, 2, 2, 2}, // varamplitude {0, 0, 0, 0, 0, 0} // vardureefront }, { // m touche20 55, // laforceh 4, // laforce par repetition {240, 238, 240, 20, 22, 20}, // amplitude {79, 79, 79, 79, 79, 79}, // dureefront {2, 2, 2, 2, 2, 2}, // varamplitude {0, 0, 0, 0, 0, 0} // vardureefront }, { // n touche26 55, // laforceh 6, // laforce par repetition {240, 238, 240, 20, 22, 20}, // amplitude {53, 53, 53, 53, 53, 53}, // dureefront {2, 2, 2, 2, 2, 2}, // varamplitude {0, 0, 0, 0, 0, 0} // vardureefront }, { // o touche9 55, // laforceh 2, // laforce par repetition {240, 238, 240, 20, 22, 20}, // amplitude {142, 142, 142, 142, 142, 142}, // dureefront {2, 2, 2, 2, 2, 2}, // varamplitude {0, 0, 0, 0, 0, 0} // vardureefront }, { // p touche10 55, // laforceh 2, // laforce par repetition {240, 238, 240, 20, 22, 20}, // amplitude {134, 134, 134, 134, 134, 134}, // dureefront {2, 2, 2, 2, 2, 2}, // varamplitude {0, 0, 0, 0, 0, 0} // vardureefront }, { // q touche11 55, // laforceh 2, // laforce par repetition {240, 238, 240, 20, 22, 20}, // amplitude {126, 126, 126, 126, 126, 126}, // dureefront {2, 2, 2, 2, 2, 2}, // varamplitude {0, 0, 0, 0, 0, 0} // vardureefront }, { // r touche4 55, // laforceh 2, // laforce par repetition {240, 238, 240, 20, 22, 20}, // amplitude {189, 189, 189, 189, 189, 189}, // dureefront {2, 2, 2, 2, 2, 2}, // varamplitude {0, 0, 0, 0, 0, 0} // vardureefront }, { // s touche12 55, // laforceh 2, // laforce par repetition {240, 238, 240, 20, 22, 20}, // amplitude {119, 119, 119, 119, 119, 119}, // dureefront {2, 2, 2, 2, 2, 2}, // varamplitude {0, 0, 0, 0, 0, 0} // vardureefront }, { // t touche5 55, // laforceh 2, // laforce par repetition {240, 238, 240, 20, 22, 20}, // amplitude {178, 178, 178, 178, 178, 178}, // dureefront {2, 2, 2, 2, 2, 2}, // varamplitude {0, 0, 0, 0, 0, 0} // vardureefront }, { // u touche7 55, // laforceh 2, // laforce par repetition {240, 238, 240, 20, 22, 20}, // amplitude {159, 159, 159, 159, 159, 159}, // dureefront {2, 2, 2, 2, 2, 2}, // varamplitude {0, 0, 0, 0, 0, 0} // vardureefront }, { // v touche24 55, // laforceh 4, // laforce par repetition {240, 238, 240, 20, 22, 20}, // amplitude {60, 59, 60, 59, 60, 59}, // dureefront {2, 2, 2, 2, 2, 2}, // varamplitude {0, 0, 0, 0, 0, 0} // vardureefront }, { // w touche21 55, // laforceh 4, // laforce par repetition {240, 238, 240, 20, 22, 20}, // amplitude {71, 71, 71, 71, 71, 71}, // dureefront {2, 2, 2, 2, 2, 2}, // varamplitude {0, 0, 0, 0, 0, 0} // vardureefront }, { // x touche22 55, // laforceh 4, // laforce par repetition {240, 238, 240, 20, 22, 20}, // amplitude {67, 67, 67, 67, 67, 67}, // dureefront {2, 2, 2, 2, 2, 2}, // varamplitude {0, 0, 0, 0, 0, 0} // vardureefront }, { // y touche6 55, // laforceh 2, // laforce par repetition {240, 238, 240, 20, 22, 20}, // amplitude {168, 168, 168, 168, 168, 168}, // dureefront {2, 2, 2, 2, 2, 2}, // varamplitude {0, 0, 0, 0, 0, 0} // vardureefront }, { // z touche2 55, // laforceh 2, // laforce par repetition {240, 238, 240, 20, 22, 20}, // amplitude {212, 212, 212, 212, 212, 212}, // dureefront {2, 2, 2, 2, 2, 2}, // varamplitude {0, 0, 0, 0, 0, 0} // vardureefront } }; jo *mesjo = clavier32;