diff --git a/.gitignore b/.gitignore index 69e5dbf..149f5e6 100644 --- a/.gitignore +++ b/.gitignore @@ -41,4 +41,5 @@ sources/instruments/.instruments.c.swp sources/instruments/instruments.o sources/samples/.samples.c.swp sources/samples/samples.o -sources/mainTest/.maintest.c.swp \ No newline at end of file +sources/mainTest/.maintest.c.swp +sources/fichier/.fichier.c.swp \ No newline at end of file diff --git a/sources/fichier/fichier.c b/sources/fichier/fichier.c index fec317b..cd18d73 100644 --- a/sources/fichier/fichier.c +++ b/sources/fichier/fichier.c @@ -3,12 +3,6 @@ #include #include -void creerProjet(char chemin[]){ - mkdir(chemin, 0777); - // Remarque : faudra sûrement encadrer tout ça par un test pour savoir si ça s'est bien passé, mais passons. - char* samples; - strcpy(samples,chemin); - strcat(samples,"samples/"); - mkdir(chemin, 0777); - // C'est pas fini mais je vais au pieux. +void sauverProjet(char chemin[], Sample* smpl[], Instrument* inst[], Motif* liste, Motif* melodie[]) { + FILE* fichier = fopen(chemin, "w"); } diff --git a/sources/fichier/fichier.h b/sources/fichier/fichier.h index ec98769..8acaaea 100644 --- a/sources/fichier/fichier.h +++ b/sources/fichier/fichier.h @@ -4,12 +4,12 @@ #include #include -void creerProjet(char chemin[]); +void creerProjet(char chemin[], Sample* smpl[], Instrument* inst[], Motif* liste, Motif* melodie[]); -void chargerProjet(char chemin[]); +void chargerProjet(char chemin[], Sample* smpl[], Instrument* inst[], Motif* liste, Motif* melodie[]); -void sauverProjet(char chemin[]); +void sauverProjet(char chemin[], Sample* smpl[], Instrument* inst[], Motif* liste, Motif* melodie[]); -void copierProjet(char chemin[]); +void copierProjet(char chemin[], Sample* smpl[], Instrument* inst[], Motif* liste, Motif* melodie[]); #endif diff --git a/sources/lecture/lecture.c b/sources/lecture/lecture.c index 128a00c..50ab4b7 100644 --- a/sources/lecture/lecture.c +++ b/sources/lecture/lecture.c @@ -115,17 +115,16 @@ void lecture (int nombreChaines, int nombreInst, int tempo, Instrument* inst[], for (int courant = 0; courant < taille; courant++) { for (int i = 0; i < melodie[courant] -> nbrTmp; i++) { - printf("lecture temps %d : N=%d I=%d\n",i,getNote(melodie[courant],0,i),getInstrument(melodie[courant],0,i)); // DÉBUT DU COPIER COLLER POTENTIELLEMENT FOIREUX m = melodie[courant]; for (int chaine = 0; chaine < nombreChaines; chaine++) { // On va lire les chaines une à une par numéro croissant if (m != NULL) { - if (getInstrument(m,0,i) == -1) FMOD_Channel_Stop(chan[chaine]); // Si la note est un silence, la chaine s'arrête + if (getInstrument(m,chaine,i) == -1) FMOD_Channel_Stop(chan[chaine]); // Si la note est un silence, la chaine s'arrête else { - if (getNote(m,0,i) != -1) { + if (getNote(m,chaine,i) != -1) { FMOD_Channel_Stop(chan[chaine]); FMOD_System_PlaySound(system, FMOD_CHANNEL_FREE, sample[getInstrument(m,chaine,i)], 0, &chan[chaine]); @@ -133,7 +132,7 @@ void lecture (int nombreChaines, int nombreInst, int tempo, Instrument* inst[], //Ici on va s'occuper du pitch FMOD_DSP *pitch; FMOD_System_CreateDSPByType(system, FMOD_DSP_TYPE_PITCHSHIFT, &pitch); - FMOD_DSP_SetParameter(pitch, FMOD_DSP_PITCHSHIFT_PITCH, rapportPitch(inst[getInstrument(m,0,i)],getNote(m,0,i),4)); + FMOD_DSP_SetParameter(pitch, FMOD_DSP_PITCHSHIFT_PITCH, rapportPitch(inst[getInstrument(m,chaine,i)],getNote(m,chaine,i),getOctave(m,chaine,i))); FMOD_Channel_AddDSP(chan[chaine], pitch, 0); // C'est quoi chan1 ??? Je l'ai remplacé par chan[1], vu que chan1 est as déclaré... // On va passer une bonne journée... } diff --git a/sources/main.c b/sources/main.c index e09a099..af5f4c9 100644 --- a/sources/main.c +++ b/sources/main.c @@ -36,6 +36,13 @@ #define NBR_INST 10 #define NBR_SMPL 5 +// Variables globales +Motif* melodie[MAX_PATTERNS] = {NULL}; +Motif* liste = NULL; +Instrument* inst[NBR_INST] = {NULL}; +Sample* smpl[NBR_SMPL] = {NULL}; + + // Fonctions de débug void afficherMotif(Motif* m, int nbrPortees){ @@ -56,10 +63,13 @@ void debut(Motif* melodie[], Instrument* inst[], Sample* smpl[], Motif* liste, i int i; + // En guise d'exemple, voici la mélodie du générique de My Little Pony : Friendship is Magic. + // My Little Pony. for (i = 0; i < DEF_NBR_TMP; i++) { definirNote(m,0,i,-1); + definirOctave(m,0,i,3); } definirNote(m,0,0,1); @@ -84,6 +94,7 @@ void debut(Motif* melodie[], Instrument* inst[], Sample* smpl[], Motif* liste, i for (i = 0; i < DEF_NBR_TMP; i++) { definirNote(n,0,i,-1); + definirOctave(n,0,i,3); } definirNote(n,0,1,5); @@ -119,6 +130,7 @@ void debut(Motif* melodie[], Instrument* inst[], Sample* smpl[], Motif* liste, i for (i = 0; i < DEF_NBR_TMP; i++) { definirNote(p,0,i,-1); + definirOctave(p,0,i,3); } definirNote(p,0,0,5); @@ -233,11 +245,6 @@ void fenetreMotif ( int argc, char *argv[] ) void lancerLecture () { - Motif* melodie[MAX_PATTERNS] = {NULL}; - Motif* liste = NULL; - Instrument* inst[NBR_INST] = {NULL}; - Sample* smpl[NBR_SMPL] = {NULL}; - int nbrPortees = 1; //courant = 0; taille = 0;