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;