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. //lmfab101 est un chemin monotone de deux fronts qui diminue l'amplitude. //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--) { for(int i=0; i<2; i++) { //ici nous appliquons le changement de la valeur d'amplitude du front tous les 2 fronts if(i%2) joc.amplitude[i] += joc.changeamplitude[i]; else joc.amplitude[i] -= joc.changeamplitude[i]; //nous augmentons la durée des fronts joc.dureefront[i] += joc.changedureefront[i]; // création d'une sécurité afin que la durée ne soit jamais supérieur à 240 if (joc.dureefront[i] > 240) joc.dureefront[i] = 240; //les 2 lignes suivantes écrivent les fichiers audio, le premier en binaire, l'autre en ascii fprintf(fichierjo, "%c%c", (char)joc.amplitude[i], (char)joc.dureefront[i]); fprintf(fichierjoa, "%d %d\n", (unsigned char)joc.amplitude[i], (unsigned char)joc.dureefront[i]); } } // 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 83, // laforceh {240, 20}, // amplitude {12, 58}, // dureefront {1, 1}, // varamplitude {5, 0} // vardureefront }, { // b touche25 30, // laforceh {240, 20}, // amplitude {12, 178}, // dureefront {3, 3}, // varamplitude {5, 0} // vardureefront }, { // c touche23 32, // laforceh {240, 20}, // amplitude {12, 168}, // dureefront {3, 3}, // varamplitude {5, 0} // vardureefront }, { // d touche13 45, // laforceh {240, 20}, // amplitude {12, 118}, // dureefront {2, 2}, // varamplitude {5, 0} // vardureefront }, { // e touche3 73, // laforceh {240, 20}, // amplitude {12, 68}, // dureefront {1, 1}, // varamplitude {5, 0} // vardureefront }, { // f touche14 43, // laforceh {240, 20}, // amplitude {12, 123}, // dureefront {2, 2}, // varamplitude {5, 0} // vardureefront }, { // g touche15 41, // laforceh {240, 20}, // amplitude {12, 128}, // dureefront {2, 2}, // varamplitude {5, 0} // vardureefront }, { // h touche16 40, // laforceh {240, 20}, // amplitude {12, 133}, // dureefront {2, 2}, // varamplitude {5, 0} // vardureefront }, { // i touche8 55, // laforceh {240, 20}, // amplitude {12, 93}, // dureefront {2, 2}, // varamplitude {5, 0} // vardureefront }, { // j touche17 39, // laforceh {240, 20}, // amplitude {12, 138}, // dureefront {2, 2}, // varamplitude {5, 0} // vardureefront }, { // k touche18 37, // laforceh {240, 20}, // amplitude {12, 143}, // dureefront {3, 3}, // varamplitude {5, 0} // vardureefront }, { // l touche19 36, // laforceh {240, 20}, // amplitude {12, 148}, // dureefront {3, 3}, // varamplitude {5, 0} // vardureefront }, { // m touche20 35, // laforceh {240, 20}, // amplitude {12, 153}, // dureefront {3, 3}, // varamplitude {5, 0} // vardureefront }, { // n touche26 30, // laforceh {240, 20}, // amplitude {12, 183}, // dureefront {3, 3}, // varamplitude {5, 0} // vardureefront }, { // o touche9 53, // laforceh {240, 20}, // amplitude {12, 98}, // dureefront {2, 2}, // varamplitude {5, 0} // vardureefront }, { // p touche10 50, // laforceh {240, 20}, // amplitude {12, 103}, // dureefront {2, 2}, // varamplitude {5, 0} // vardureefront }, { // q touche11 48, // laforceh {240, 20}, // amplitude {12, 108}, // dureefront {2, 2}, // varamplitude {5, 0} // vardureefront }, { // r touche4 68, // laforceh {240, 20}, // amplitude {12, 73}, // dureefront {1, 1}, // varamplitude {5, 0} // vardureefront }, { // s touche12 46, // laforceh {240, 20}, // amplitude {12, 113}, // dureefront {2, 2}, // varamplitude {5, 0} // vardureefront }, { // t touche5 65, // laforceh {240, 20}, // amplitude {12, 78}, // dureefront {1, 1}, // varamplitude {5, 0} // vardureefront }, { // u touche7 58, // laforceh {240, 20}, // amplitude {12, 88}, // dureefront {1, 1}, // varamplitude {5, 0} // vardureefront }, { // v touche24 31, // laforceh {240, 20}, // amplitude {12, 173}, // dureefront {3, 3}, // varamplitude {5, 0} // vardureefront }, { // w touche21 34, // laforceh {240, 20}, // amplitude {12, 158}, // dureefront {3, 3}, // varamplitude {5, 0} // vardureefront }, { // x touche22 33, // laforceh {240, 20}, // amplitude {12, 163}, // dureefront {3, 3}, // varamplitude {5, 0} // vardureefront }, { // y touche6 61, // laforceh {240, 20}, // amplitude {12, 83}, // dureefront {1, 1}, // varamplitude {5, 0} // vardureefront }, { // z touche2 178, // laforceh {240, 20}, // amplitude {12, 63}, // dureefront {1, 1}, // varamplitude {5, 0} // vardureefront } }; jo *mesjo = clavier32;