Browse Source

set sample

develop
Carmine De Rosa 5 years ago
parent
commit
8b1f3db406
  1. 18
      C/inputs.cpp
  2. 6
      C/loaders.cpp
  3. 33
      C/main.cpp
  4. 8
      C/patterns/pattern1
  5. 14
      C/players.cpp
  6. BIN
      C/sonquencer

18
C/inputs.cpp

@ -0,0 +1,18 @@
void inputActions(SDL_Event e, int step) {
switch (e.key.keysym.sym) {
case SDLK_1:
setSample(1, step);
break;
case SDLK_2:
setSample(2, step);
break;
case SDLK_3:
setSample(3, step);
break;
case SDLK_4:
setSample(4, step);
break;
default:
break;
}
}

6
C/loaders.cpp

@ -50,16 +50,14 @@ void loadPattern(int patternNum) {
if(fp == NULL) {exit(EXIT_FAILURE);}
while ((read = getline(&line, &len, fp)) != -1) {
//printf("Retrieved line of length %zu:\n", read);
if(lineCount == 0) { bank = line[10]-'0'; }
if(lineCount == 1) { rows = line[10]-'0'; }
if(lineCount > 1) {
if(lineCount == 2) {
cols = read-1;
}
for(int i=0; i<cols; i++) {
pattern[lineCount-2][i] = line[i];
pattern[lineCount-2][i] = line[i]-'0';
}
}
lineCount++;
@ -72,7 +70,7 @@ void loadPattern(int patternNum) {
for(int i=0; i<rows; i++) {
for(int y=0; y<cols; y++) {
printf("%d ", pattern[i][y]-'0');
printf("%d ", pattern[i][y]);
}
printf("\n");
}

33
C/main.cpp

@ -18,6 +18,7 @@ int matrix[] = {PATTERN_ROWS, PATTERN_COLS};
#include "players.cpp"
#include "loaders.cpp"
#include "inputs.cpp"
int main(int argc, char** argv) {
@ -52,43 +53,21 @@ int main(int argc, char** argv) {
while (!done && gotEvent) {
switch (event.type) {
case SDL_KEYDOWN:
switch (event.key.keysym.sym) {
case SDLK_ESCAPE:
if(event.key.keysym.sym == SDLK_ESCAPE) {
Mix_CloseAudio();
SDL_Quit();
return 0;
break;
case SDLK_1:
playSample(1);
break;
case SDLK_2:
playSample(2);
break;
case SDLK_3:
playSample(3);
break;
case SDLK_4:
playSample(4);
break;
case SDLK_5:
playSample(5);
break;
case SDLK_6:
playSample(6);
break;
default:
break;
} else {
inputActions(event, step);
}
break;
case SDL_QUIT:
done = true;
break;
default:
break;
}
if( !done ) { gotEvent = SDL_PollEvent(&event); }

8
C/patterns/pattern1

@ -1,6 +1,6 @@
bank 1
rows 4
00011010
01100010
00011000
10000000
00000000
00000000
00000000
00000000

14
C/players.cpp

@ -5,14 +5,20 @@ void playPattern(int *timer, int duration, int *step) {
if(*timer == 0) {
for(int i=0; i<matrix[0]; i++) {
if(pattern[i][*step-1]-'0' == 1) {
if(pattern[i][*step-1] == 1) {
Mix_PlayChannel(-1, samples[i], 0);
}
}
*step = *step < matrix[1]-1 ? *step+1 : 1;
*step = *step < matrix[1] ? *step+1 : 1;
}
}
void playSample(int sample) {
Mix_PlayChannel(-1, samples[sample-1], 0);
void setSample(int sample, int step) {
pattern[sample-1][step-1] = 1;
for(int i=0; i<matrix[0]; i++) {
for(int y=0; y<matrix[1]; y++) {
printf("%d ", pattern[i][y]);
}
printf("\n");
}
}

BIN
C/sonquencer

Binary file not shown.
Loading…
Cancel
Save