diff --git a/.gitignore b/.gitignore index 292f521..bea6a33 100644 --- a/.gitignore +++ b/.gitignore @@ -25,4 +25,5 @@ sources/melodie/.melodie.h.swp sources/main.o sources/melodie.o sources/motifs.o -sources/ponytracker \ No newline at end of file +sources/ponytracker +sources/lecture/.lecture.c.swp \ No newline at end of file diff --git a/sources/lecture/lecture.c b/sources/lecture/lecture.c index c258564..c8c7140 100644 --- a/sources/lecture/lecture.c +++ b/sources/lecture/lecture.c @@ -8,37 +8,37 @@ void lecture (int nombreChaine) { - SDL_Init(SDL_INIT_VIDEO | SDL_INIT_AUDIO); + SDL_Init(SDL_INIT_VIDEO | SDL_INIT_AUDIO); - //INITIALISATION SAMPLES ET CHANNELS - Mix_AllocateChannels(nombreChaines) // On ouvre le nombre de chaines nécessaires dans le mixer + //INITIALISATION SAMPLES ET CHANNELS + Mix_AllocateChannels(nombreChaines) // On ouvre le nombre de chaines nécessaires dans le mixer - Mix_Chunk *1 = Mix_LoadWAV("Square.wav"); // Import du sample Square - Mix_Chunk *2 = Mix_LoadWAV("Saw.wav"); // Import du sample Saw + Mix_Chunk *1 = Mix_LoadWAV("Square.wav"); // Import du sample Square + Mix_Chunk *2 = Mix_LoadWAV("Saw.wav"); // Import du sample Saw - //Lecture des motifs - for (courant = 0; courant < 4; courant++) { - for (int i = 0; i < melodie[courant] -> nbrTmp; i++) { - lireTick (int getInstrument(m, portee, tmp), int tmp); - } - } - Mix_CloseAudio(); - SDL_Quit(); + //Lecture des motifs + for (courant = 0; courant < 4; courant++) { + for (int i = 0; i < melodie[courant] -> nbrTmp; i++) { + lireTick (int getInstrument(m, portee, tmp), int tmp); + } + } + Mix_CloseAudio(); + SDL_Quit(); } void lireTick (int n, int tmp) { // On va lire les ticks (plus petite division temporelle de la playlist) de haut en bas - int tempsPrecedent = SDL_GetTicks(), tempsActuel = SDL_GetTicks(); + int tempsPrecedent = SDL_GetTicks(), tempsActuel = SDL_GetTicks(); - for (int chaine = 0; chaine <= nombreChaines; chaine++) { // On va lire les chaines une à une par numéro croissant - if n != NULL { - if n -> note = 0 Mix_HaltChannel(chaine); // Si la note est un silence, la chaine s'arrête - else Mix_PlayChannel(chaine, Mix_Chunk *chaine, -1); // Sinon le sample de la chaine est joué en boucle - } - while (tempsActuel - tempsPrecedent > 250) { // Si 250 ms se sont écoulées (il faudra régler ce temps sur le tempo) - tempsActuel = SDL_GetTicks(); - } - tempsPrecedent = tempsActuel; // On actualise l'horloge du programme - } + for (int chaine = 0; chaine <= nombreChaines; chaine++) { // On va lire les chaines une à une par numéro croissant + if n != NULL { + if n -> note = 0 Mix_HaltChannel(chaine); // Si la note est un silence, la chaine s'arrête + else Mix_PlayChannel(chaine, Mix_Chunk *chaine, -1); // Sinon le sample de la chaine est joué en boucle + } + while (tempsActuel - tempsPrecedent > 250) { // Si 250 ms se sont écoulées (il faudra régler ce temps sur le tempo) + tempsActuel = SDL_GetTicks(); + } + tempsPrecedent = tempsActuel; // On actualise l'horloge du programme + } }