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.
// Etape 1
//Nous indiquons ici combien de fois nous allons augmenter l'amplitude
for(int laforcehbase = joc.laforceh; laforcehbase > 0; laforcehbase--)
{
for(int i=0; i<8; 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]);
}
}
// Etape 2
// la nous créons un plateau de 4 front sans variation d'amplitude
for(int laforcehbase = joc.laforceb; laforcehbase > 0; laforcehbase--)
{
for(int i=0; i<8; i++)
{
//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]);
}
}
// Etape 3
// 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<8; 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
7, // laforceh
21, // laforceb
{129, 128, 129, 128, 129, 128, 129, 128}, // amplitude
{15, 20, 25, 30, 35, 40, 240, 240}, // dureefront
{17, 16 ,15, 14 ,13, 12 ,11, 10}, // varamplitude
{0, 0 ,0, 0 ,0, 0 ,0, 0} // vardureefront
},
{ // b touche25
7, // laforceh
68, // laforceb
{129, 128, 129, 128, 129, 128, 129, 128}, // amplitude
{15, 20, 25, 25, 25, 30, 30, 30}, // dureefront
{17, 16 ,15, 14 ,13, 12 ,11, 10}, // varamplitude
{0, 0 ,0, 0 ,0, 0 ,0, 0} // vardureefront
},
{ // c touche23
7, // laforceh
65, // laforceb
{129, 128, 129, 128, 129, 128, 129, 128}, // amplitude
{15, 20, 25, 30, 30, 30, 30, 30}, // dureefront
{17, 16 ,15, 14 ,13, 12 ,11, 10}, // varamplitude
{0, 0 ,0, 0 ,0, 0 ,0, 0} // vardureefront
},
{ // d touche13
7, // laforceh
44, // laforceb
{129, 128, 129, 128, 129, 128, 129, 128}, // amplitude
{15, 20, 25, 30, 35, 40, 40, 100}, // dureefront
{17, 16 ,15, 14 ,13, 12 ,11, 10}, // varamplitude
{0, 0 ,0, 0 ,0, 0 ,0, 0} // vardureefront
},
{ // e touche3
7, // laforceh
24, // laforceb
{129, 128, 129, 128, 129, 128, 129, 128}, // amplitude
{15, 20, 25, 30, 35, 40, 160, 240}, // dureefront
{17, 16 ,15, 14 ,13, 12 ,11, 10}, // varamplitude
{0, 0 ,0, 0 ,0, 0 ,0, 0} // vardureefront
},
{ // f touche14
7, // laforceh
48, // laforceb
{129, 128, 129, 128, 129, 128, 129, 128}, // amplitude
{15, 20, 25, 30, 35, 40, 40, 80}, // dureefront
{17, 16 ,15, 14 ,13, 12 ,11, 10}, // varamplitude
{0, 0 ,0, 0 ,0, 0 ,0, 0} // vardureefront
},
{ // g touche15
7, // laforceh
51, // laforceb
{129, 128, 129, 128, 129, 128, 129, 128}, // amplitude
{15, 20, 25, 30, 35, 40, 40, 60}, // dureefront
{17, 16 ,15, 14 ,13, 12 ,11, 10}, // varamplitude
{0, 0 ,0, 0 ,0, 0 ,0, 0} // vardureefront
},
{ // h touche16
7, // laforceh
55, // laforceb
{129, 128, 129, 128, 129, 128, 129, 128}, // amplitude
{15, 20, 25, 30, 35, 40, 40, 40}, // dureefront
{17, 16 ,15, 14 ,13, 12 ,11, 10}, // varamplitude
{0, 0 ,0, 0 ,0, 0 ,0, 0} // vardureefront
},
{ // i touche8
7, // laforceh
33, // laforceb
{129, 128, 129, 128, 129, 128, 129, 128}, // amplitude
{15, 20, 25, 30, 35, 40, 40, 200}, // dureefront
{17, 16 ,15, 14 ,13, 12 ,11, 10}, // varamplitude
{0, 0 ,0, 0 ,0, 0 ,0, 0} // vardureefront
},
{ // j touche17
7, // laforceh
56, // laforceb
{129, 128, 129, 128, 129, 128, 129, 128}, // amplitude
{15, 20, 25, 30, 35, 35, 40, 40}, // dureefront
{17, 16 ,15, 14 ,13, 12 ,11, 10}, // varamplitude
{0, 0 ,0, 0 ,0, 0 ,0, 0} // vardureefront
},
{ // k touche18
7, // laforceh
58, // laforceb
{129, 128, 129, 128, 129, 128, 129, 128}, // amplitude
{15, 20, 25, 30, 35, 35, 35, 40}, // dureefront
{17, 16 ,15, 14 ,13, 12 ,11, 10}, // varamplitude
{0, 0 ,0, 0 ,0, 0 ,0, 0} // vardureefront
},
{ // l touche19
7, // laforceh
59, // laforceb
{129, 128, 129, 128, 129, 128, 129, 128}, // amplitude
{15, 20, 25, 30, 35, 35, 35, 35}, // dureefront
{17, 16 ,15, 14 ,13, 12 ,11, 10}, // varamplitude
{0, 0 ,0, 0 ,0, 0 ,0, 0} // vardureefront
},
{ // m touche20
7, // laforceh
60, // laforceb
{129, 128, 129, 128, 129, 128, 129, 128}, // amplitude
{15, 20, 25, 30, 30, 35, 35, 35}, // dureefront
{17, 16 ,15, 14 ,13, 12 ,11, 10}, // varamplitude
{0, 0 ,0, 0 ,0, 0 ,0, 0} // vardureefront
},
{ // n touche26
7, // laforceh
70, // laforceb
{129, 128, 129, 128, 129, 128, 129, 128}, // amplitude
{15, 20, 25, 25, 25, 25, 30, 30}, // dureefront
{17, 16 ,15, 14 ,13, 12 ,11, 10}, // varamplitude
{0, 0 ,0, 0 ,0, 0 ,0, 0} // vardureefront
},
{ // o touche9
7, // laforceh
35, // laforceb
{129, 128, 129, 128, 129, 128, 129, 128}, // amplitude
{15, 20, 25, 30, 35, 40, 40, 180}, // dureefront
{17, 16 ,15, 14 ,13, 12 ,11, 10}, // varamplitude
{0, 0 ,0, 0 ,0, 0 ,0, 0} // vardureefront
},
{ // p touche10
7, // laforceh
37, // laforceb
{129, 128, 129, 128, 129, 128, 129, 128}, // amplitude
{15, 20, 25, 30, 35, 40, 40, 160}, // dureefront
{17, 16 ,15, 14 ,13, 12 ,11, 10}, // varamplitude
{0, 0 ,0, 0 ,0, 0 ,0, 0} // vardureefront
},
{ // q touche11
7, // laforceh
39, // laforceb
{129, 128, 129, 128, 129, 128, 129, 128}, // amplitude
{15, 20, 25, 30, 35, 40, 40, 140}, // dureefront
{17, 16 ,15, 14 ,13, 12 ,11, 10}, // varamplitude
{0, 0 ,0, 0 ,0, 0 ,0, 0} // vardureefront
},
{ // r touche4
7, // laforceh
26, // laforceb
{129, 128, 129, 128, 129, 128, 129, 128}, // amplitude
{15, 20, 25, 30, 35, 40, 120, 240}, // dureefront
{17, 16 ,15, 14 ,13, 12 ,11, 10}, // varamplitude
{0, 0 ,0, 0 ,0, 0 ,0, 0} // vardureefront
},
{ // s touche12
7, // laforceh
42, // laforceb
{129, 128, 129, 128, 129, 128, 129, 128}, // amplitude
{15, 20, 25, 30, 35, 40, 40, 120}, // dureefront
{17, 16 ,15, 14 ,13, 12 ,11, 10}, // varamplitude
{0, 0 ,0, 0 ,0, 0 ,0, 0} // vardureefront
},
{ // t touche5
7, // laforceh
28, // laforceb
{129, 128, 129, 128, 129, 128, 129, 128}, // amplitude
{15, 20, 25, 30, 35, 40, 80, 240}, // dureefront
{17, 16 ,15, 14 ,13, 12 ,11, 10}, // varamplitude
{0, 0 ,0, 0 ,0, 0 ,0, 0} // vardureefront
},
{ // u touche7
7, // laforceh
32, // laforceb
{129, 128, 129, 128, 129, 128, 129, 128}, // amplitude
{15, 20, 25, 30, 35, 40, 40, 220}, // dureefront
{17, 16 ,15, 14 ,13, 12 ,11, 10}, // varamplitude
{0, 0 ,0, 0 ,0, 0 ,0, 0} // vardureefront
},
{ // v touche24
7, // laforceh
66, // laforceb
{129, 128, 129, 128, 129, 128, 129, 128}, // amplitude
{15, 20, 25, 25, 30, 30, 30, 30}, // dureefront
{17, 16 ,15, 14 ,13, 12 ,11, 10}, // varamplitude
{0, 0 ,0, 0 ,0, 0 ,0, 0} // vardureefront
},
{ // w touche21
7, // laforceh
62, // laforceb
{129, 128, 129, 128, 129, 128, 129, 128}, // amplitude
{15, 20, 25, 30, 30, 30, 35, 35}, // dureefront
{17, 16 ,15, 14 ,13, 12 ,11, 10}, // varamplitude
{0, 0 ,0, 0 ,0, 0 ,0, 0} // vardureefront
},
{ // x touche22
7, // laforceh
63, // laforceb
{129, 128, 129, 128, 129, 128, 129, 128}, // amplitude
{15, 20, 25, 30, 30, 30, 30, 35}, // dureefront
{17, 16 ,15, 14 ,13, 12 ,11, 10}, // varamplitude
{0, 0 ,0, 0 ,0, 0 ,0, 0} // vardureefront
},
{ // y touche6
7, // laforceh
30, // laforceb
{129, 128, 129, 128, 129, 128, 129, 128}, // amplitude
{15, 20, 25, 30, 35, 40, 40, 240}, // dureefront
{17, 16 ,15, 14 ,13, 12 ,11, 10}, // varamplitude
{0, 0 ,0, 0 ,0, 0 ,0, 0} // vardureefront
},
{ // z touche2
7, // laforceh
22, // laforceb
{129, 128, 129, 128, 129, 128, 129, 128}, // amplitude
{15, 20, 25, 30, 35, 40, 200, 240}, // dureefront
{17, 16 ,15, 14 ,13, 12 ,11, 10}, // varamplitude
{0, 0 ,0, 0 ,0, 0 ,0, 0} // vardureefront
}
};
jo *mesjo = clavier32;