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;