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.
//lmfab100 est un chemin monotone de deux fronts qui augmente l'amplitude, puis la diminue.
//Nous indiquons ici combien de fois nous allons augmenter l'amplitude
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 diminuons la durée des fronts
joc.dureefront[i] -= joc.changedureefront[i];
// création d'une décurité afin que la durée ne soit jamais inférieure à 6
if (joc.dureefront[i]<6)
joc.dureefront[i] = 6;
//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]);
}
}
// la nous reprenons la premiere forme en changeant le sens pour revenir aux valeurs de départ
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];
joc.dureefront[i] += joc.changedureefront[i];
// création d'une dé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
/************************************************************************/
fclose(fichierjo);
fclose(fichierjoa);
}
#include "fronts.h"
#include "jo.h"
jo clavier32[26] = {
{ // a touche1
100, // laforceh
{129, 128}, // amplitude
{12, 58}, // dureefront
{1, 1}, // varamplitude
{0, 0} // vardureefront
},
{ // b touche25
100, // laforceh
{129, 128}, // amplitude
{12, 178}, // dureefront
{1, 1}, // varamplitude
{0, 0} // vardureefront
},
{ // c touche23
100, // laforceh
{129, 128}, // amplitude
{12, 168}, // dureefront
{1, 1}, // varamplitude
{0, 0} // vardureefront
},
{ // d touche13
100, // laforceh
{129, 128}, // amplitude
{12, 118}, // dureefront
{1, 1}, // varamplitude
{0, 0} // vardureefront
},
{ // e touche3
100, // laforceh
{129, 128}, // amplitude
{12, 68}, // dureefront
{1, 1}, // varamplitude
{0, 0} // vardureefront
},
{ // f touche14
100, // laforceh
{129, 128}, // amplitude
{12, 123}, // dureefront
{1, 1}, // varamplitude
{0, 0} // vardureefront
},
{ // g touche15
100, // laforceh
{129, 128}, // amplitude
{12, 128}, // dureefront
{1, 1}, // varamplitude
{0, 0} // vardureefront
},
{ // h touche16
100, // laforceh
{129, 128}, // amplitude
{12, 133}, // dureefront
{1, 1}, // varamplitude
{0, 0} // vardureefront
},
{ // i touche8
100, // laforceh
{129, 128}, // amplitude
{12, 93}, // dureefront
{1, 1}, // varamplitude
{0, 0} // vardureefront
},
{ // j touche17
100, // laforceh
{129, 128}, // amplitude
{12, 138}, // dureefront
{1, 1}, // varamplitude
{0, 0} // vardureefront
},
{ // k touche18
100, // laforceh
{129, 128}, // amplitude
{12, 143}, // dureefront
{1, 1}, // varamplitude
{0, 0} // vardureefront
},
{ // l touche19
100, // laforceh
{129, 128}, // amplitude
{12, 148}, // dureefront
{1, 1}, // varamplitude
{0, 0} // vardureefront
},
{ // m touche20
100, // laforceh
{129, 128}, // amplitude
{12, 153}, // dureefront
{1, 1}, // varamplitude
{0, 0} // vardureefront
},
{ // n touche26
100, // laforceh
{129, 128}, // amplitude
{12, 183}, // dureefront
{1, 1}, // varamplitude
{0, 0} // vardureefront
},
{ // o touche9
100, // laforceh
{129, 128}, // amplitude
{12, 98}, // dureefront
{1, 1}, // varamplitude
{0, 0} // vardureefront
},
{ // p touche10
100, // laforceh
{129, 128}, // amplitude
{12, 103}, // dureefront
{1, 1}, // varamplitude
{0, 0} // vardureefront
},
{ // q touche11
100, // laforceh
{129, 128}, // amplitude
{12, 108}, // dureefront
{1, 1}, // varamplitude
{0, 0} // vardureefront
},
{ // r touche4
100, // laforceh
{129, 128}, // amplitude
{12, 73}, // dureefront
{1, 1}, // varamplitude
{0, 0} // vardureefront
},
{ // s touche12
100, // laforceh
{129, 128}, // amplitude
{12, 113}, // dureefront
{1, 1}, // varamplitude
{0, 0} // vardureefront
},
{ // t touche5
100, // laforceh
{129, 128}, // amplitude
{12, 78}, // dureefront
{1, 1}, // varamplitude
{0, 0} // vardureefront
},
{ // u touche7
100, // laforceh
{129, 128}, // amplitude
{12, 88}, // dureefront
{1, 1}, // varamplitude
{0, 0} // vardureefront
},
{ // v touche24
100, // laforceh
{129, 128}, // amplitude
{12, 173}, // dureefront
{1, 1}, // varamplitude
{0, 0} // vardureefront
},
{ // w touche21
100, // laforceh
{129, 128}, // amplitude
{12, 158}, // dureefront
{1, 1}, // varamplitude
{0, 0} // vardureefront
},
{ // x touche22
100, // laforceh
{129, 128}, // amplitude
{12, 163}, // dureefront
{1, 1}, // varamplitude
{0, 0} // vardureefront
},
{ // y touche6
100, // laforceh
{129, 128}, // amplitude
{12, 83}, // dureefront
{1, 1}, // varamplitude
{0, 0} // vardureefront
},
{ // z touche2
100, // laforceh
{129, 128}, // amplitude
{12, 63}, // dureefront
{1, 1}, // varamplitude
{0, 0} // vardureefront
}
};
jo *mesjo = clavier32;