Atteinte de l'objectif proto : ça joue de la musique :) (et pas n'importe laquelle)
This commit is contained in:
BIN
sources/lecture/0.wav
Normal file
BIN
sources/lecture/0.wav
Normal file
Binary file not shown.
BIN
sources/lecture/1.wav
Normal file
BIN
sources/lecture/1.wav
Normal file
Binary file not shown.
BIN
sources/lecture/2.wav
Normal file
BIN
sources/lecture/2.wav
Normal file
Binary file not shown.
BIN
sources/lecture/3.wav
Normal file
BIN
sources/lecture/3.wav
Normal file
Binary file not shown.
BIN
sources/lecture/4.wav
Normal file
BIN
sources/lecture/4.wav
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -6,22 +6,39 @@ void lireTick (Motif* m, int tmp, Mix_Chunk* chunk[], int nbrPortees) { // On
|
||||
|
||||
for (int chaine = 0; chaine < nbrPortees; chaine++) { // On va lire les chaines une <20> une par num<75>ro croissant
|
||||
if (m != NULL) {
|
||||
if (getNote(m,0,tmp) == -1) Mix_HaltChannel(chaine); // Si la note est un silence, la chaine s'arr<72>te
|
||||
if (getInstrument(m,0,tmp) == -1) Mix_HaltChannel(chaine); // Si la note est un silence, la chaine s'arr<72>te
|
||||
else {
|
||||
Mix_PlayChannel(-1, chunk[getInstrument(m,chaine,tmp)], -1); // Sinon le sample de la chaine est jou<6F> en boucle
|
||||
if (getNote(m,0,tmp) != 0) {
|
||||
Mix_PlayChannel(chaine, chunk[getInstrument(m,chaine,tmp)], -1); // Sinon le sample de la chaine est jou<6F> en boucle
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
while (SDL_GetTicks() - tempsPrecedent < 250) {} // Si 250 ms se sont <20>coul<75>es (il faudra r<>gler ce temps sur le tempo)
|
||||
tempsPrecedent = tempsPrecedent + 250;
|
||||
while (SDL_GetTicks() - tempsPrecedent < 125) {} // Si 250 ms se sont <20>coul<75>es (il faudra r<>gler ce temps sur le tempo)
|
||||
tempsPrecedent = tempsPrecedent + 125;
|
||||
}
|
||||
|
||||
void lecture (int nombreChaines, Motif* melodie[]) {
|
||||
// Tout <20>a c'est pour ouvrir le p<>riph<70>rique audio
|
||||
int audio_rate = 44100;
|
||||
Uint16 audio_format = AUDIO_S16; /* 16-bit stereo */
|
||||
int audio_channels = 1;
|
||||
int audio_buffers = 4096;
|
||||
SDL_Init(SDL_INIT_VIDEO | SDL_INIT_AUDIO);
|
||||
|
||||
if(Mix_OpenAudio(audio_rate, audio_format, audio_channels, audio_buffers)) {
|
||||
printf("Unable to open audio!\n");
|
||||
exit(1);
|
||||
}
|
||||
|
||||
//INITIALISATION SAMPLES ET CHANNELS
|
||||
Mix_AllocateChannels(nombreChaines); // On ouvre le nombre de chaines n<>cessaires dans le mixer
|
||||
Mix_Chunk* chunk[2] = {Mix_LoadWAV("Square.wav"), Mix_LoadWAV("Saw.wav")};
|
||||
Mix_Chunk* chunk[5];
|
||||
chunk[0] = Mix_LoadWAV("lecture/0.wav");
|
||||
chunk[1] = Mix_LoadWAV("lecture/1.wav");
|
||||
chunk[2] = Mix_LoadWAV("lecture/2.wav");
|
||||
chunk[3] = Mix_LoadWAV("lecture/3.wav");
|
||||
chunk[4] = Mix_LoadWAV("lecture/4.wav");
|
||||
|
||||
//Lecture des motifs
|
||||
for (courant = 0; courant < taille; courant++) {
|
||||
for (int i = 0; i < melodie[courant] -> nbrTmp; i++) {
|
||||
|
||||
Reference in New Issue
Block a user