|
@ -1,7 +1,8 @@ |
|
|
|
|
|
|
|
|
int loadBank(int bank) { |
|
|
int loadBank(int bank) { |
|
|
|
|
|
|
|
|
memset(_sample, 0, sizeof(Mix_Chunk*) * NUM_WAVEFORMS); |
|
|
|
|
|
|
|
|
printf("\nLoading bank %d ...\n", bank); |
|
|
|
|
|
memset(samples, 0, sizeof(Mix_Chunk*) * NUM_WAVEFORMS); |
|
|
|
|
|
|
|
|
int result = Mix_OpenAudio(44100, AUDIO_S16SYS, 2, 512); |
|
|
int result = Mix_OpenAudio(44100, AUDIO_S16SYS, 2, 512); |
|
|
if( result < 0 ) { |
|
|
if( result < 0 ) { |
|
@ -20,11 +21,70 @@ int loadBank(int bank) { |
|
|
for( int i = 0; i < NUM_WAVEFORMS; i++ ) { |
|
|
for( int i = 0; i < NUM_WAVEFORMS; i++ ) { |
|
|
sprintf(waveFileName, "banks/BANK%d/%d.wav", bank, i+1); |
|
|
sprintf(waveFileName, "banks/BANK%d/%d.wav", bank, i+1); |
|
|
|
|
|
|
|
|
_sample[i] = Mix_LoadWAV(waveFileName); |
|
|
|
|
|
if( _sample[i] == NULL ) { |
|
|
|
|
|
|
|
|
samples[i] = Mix_LoadWAV(waveFileName); |
|
|
|
|
|
if( samples[i] == NULL ) { |
|
|
fprintf(stderr, "Unable to load wave file: %s\n", waveFileName); |
|
|
fprintf(stderr, "Unable to load wave file: %s\n", waveFileName); |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
return true; |
|
|
return true; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void loadPattern(int pattern) { |
|
|
|
|
|
printf("\nLoading pattern %d ...\n", pattern); |
|
|
|
|
|
|
|
|
|
|
|
FILE *fp; |
|
|
|
|
|
char *line = NULL; |
|
|
|
|
|
size_t len = 0; |
|
|
|
|
|
ssize_t read; |
|
|
|
|
|
int lineCount = 0; |
|
|
|
|
|
char patternFile[16]; |
|
|
|
|
|
|
|
|
|
|
|
int bank = 0; |
|
|
|
|
|
int cols = 0; |
|
|
|
|
|
int rows = 0; |
|
|
|
|
|
|
|
|
|
|
|
int patternArray[10][32]; |
|
|
|
|
|
|
|
|
|
|
|
sprintf(patternFile, "patterns/pattern%d", pattern); |
|
|
|
|
|
fp = fopen(patternFile, "r"); |
|
|
|
|
|
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++) { |
|
|
|
|
|
patternArray[lineCount-2][i] = line[i]; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
lineCount++; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
printf("Pattern: %d\nBank: %d\nColumns: %d\nRows: %d\n", pattern, bank, cols, rows); |
|
|
|
|
|
|
|
|
|
|
|
for(int i=0; i<rows; i++) { |
|
|
|
|
|
//printf("\nCol %d: ", i);
|
|
|
|
|
|
for(int y=0; y<cols; y++) { |
|
|
|
|
|
printf("%d ", patternArray[i][y]-'0'); |
|
|
|
|
|
} |
|
|
|
|
|
printf("\n"); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
printf("\n"); |
|
|
|
|
|
|
|
|
|
|
|
fclose(fp); |
|
|
|
|
|
if(line) {free(line);} |
|
|
|
|
|
|
|
|
|
|
|
loadBank(bank); |
|
|
|
|
|
} |
|
|