Browse Source

Merge pull request 'feature/init_c_version' (#1) from feature/init_c_version into develop

Reviewed-on: http://git.dslak.it:3000/dslak/Sonquencer/pulls/1
develop
dslak 5 years ago
parent
commit
25be0fe8b7
  1. BIN
      C/banks/BANK1/1.wav
  2. BIN
      C/banks/BANK1/2.wav
  3. BIN
      C/banks/BANK1/3.wav
  4. BIN
      C/banks/BANK1/4.wav
  5. BIN
      C/banks/BANK1/5.wav
  6. BIN
      C/banks/BANK1/6.wav
  7. BIN
      C/banks/BANK2/1.wav
  8. BIN
      C/banks/BANK2/2.wav
  9. BIN
      C/banks/BANK2/3.wav
  10. BIN
      C/banks/BANK2/4.wav
  11. BIN
      C/banks/BANK2/5.wav
  12. BIN
      C/banks/BANK3/1.wav
  13. BIN
      C/banks/BANK3/2.wav
  14. BIN
      C/banks/BANK3/3.wav
  15. BIN
      C/banks/BANK3/4.wav
  16. BIN
      C/banks/BANK3/5.wav
  17. BIN
      C/banks/BANK4/1.wav
  18. BIN
      C/banks/BANK4/2.wav
  19. BIN
      C/banks/BANK4/3.wav
  20. BIN
      C/banks/BANK4/4.wav
  21. BIN
      C/banks/BANK4/5.wav
  22. 1
      C/compile.sh
  23. 30
      C/loaders.cpp
  24. BIN
      C/main
  25. 104
      C/main.cpp
  26. 15
      C/players.cpp
  27. BIN
      C/sonquencer

BIN
C/banks/BANK1/1.wav

Binary file not shown.

BIN
C/banks/BANK1/2.wav

Binary file not shown.

BIN
C/banks/BANK1/3.wav

Binary file not shown.

BIN
C/banks/BANK1/4.wav

Binary file not shown.

BIN
C/banks/BANK1/5.wav

Binary file not shown.

BIN
C/banks/BANK1/6.wav

Binary file not shown.

BIN
C/banks/BANK2/1.wav

Binary file not shown.

BIN
C/banks/BANK2/2.wav

Binary file not shown.

BIN
C/banks/BANK2/3.wav

Binary file not shown.

BIN
C/banks/BANK2/4.wav

Binary file not shown.

BIN
C/banks/BANK2/5.wav

Binary file not shown.

BIN
C/banks/BANK3/1.wav

Binary file not shown.

BIN
C/banks/BANK3/2.wav

Binary file not shown.

BIN
C/banks/BANK3/3.wav

Binary file not shown.

BIN
C/banks/BANK3/4.wav

Binary file not shown.

BIN
C/banks/BANK3/5.wav

Binary file not shown.

BIN
C/banks/BANK4/1.wav

Binary file not shown.

BIN
C/banks/BANK4/2.wav

Binary file not shown.

BIN
C/banks/BANK4/3.wav

Binary file not shown.

BIN
C/banks/BANK4/4.wav

Binary file not shown.

BIN
C/banks/BANK4/5.wav

Binary file not shown.

1
C/compile.sh

@ -0,0 +1 @@
g++ -o sonquencer -I/usr/include/SDL2 main.cpp -lSDL2 -lSDL2_image -lSDL2_ttf -lSDL2_mixer

30
C/loaders.cpp

@ -0,0 +1,30 @@
int loadBank(int bank) {
memset(_sample, 0, sizeof(Mix_Chunk*) * NUM_WAVEFORMS);
int result = Mix_OpenAudio(44100, AUDIO_S16SYS, 2, 512);
if( result < 0 ) {
fprintf(stderr, "Unable to open audio: %s\n", SDL_GetError());
exit(-1);
}
result = Mix_AllocateChannels(4);
if( result < 0 ) {
fprintf(stderr, "Unable to allocate mixing channels: %s\n", SDL_GetError());
exit(-1);
}
char waveFileName[17];
for( int i = 0; i < NUM_WAVEFORMS; i++ ) {
sprintf(waveFileName, "banks/BANK%d/%d.wav", bank, i+1);
_sample[i] = Mix_LoadWAV(waveFileName);
if( _sample[i] == NULL ) {
fprintf(stderr, "Unable to load wave file: %s\n", waveFileName);
}
}
return true;
}

BIN
C/main

Binary file not shown.

104
C/main.cpp

@ -0,0 +1,104 @@
#include <stdio.h>
#include "SDL.h"
#include "SDL_mixer.h"
#include "SDL_image.h"
#include <unistd.h>
#include <syslog.h>
#include <string.h>
#include <math.h>
#define NUM_WAVEFORMS 6
Mix_Chunk* _sample[NUM_WAVEFORMS];
#include "players.cpp"
#include "loaders.cpp"
int main(int argc, char** argv) {
bool done = false;
bool play = true;
int timer = 0;
int step = 500;
SDL_Window* window;
SDL_Renderer* renderer;
SDL_Init(SDL_INIT_VIDEO | SDL_INIT_AUDIO );
atexit(SDL_Quit);
window = SDL_CreateWindow("Sonquencer", SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, 400, 300, 0);
renderer = SDL_CreateRenderer(window, -1, 0);
SDL_SetRenderDrawColor(renderer, 100, 100, 100, 255);
SDL_Delay(1000);
if(loadBank(1) == false) {return -1;}
SDL_Event event;
while (!done) {
bool gotEvent = SDL_PollEvent(&event);
SDL_RenderClear(renderer);
SDL_RenderPresent(renderer);
while (!done && gotEvent) {
switch (event.type) {
case SDL_KEYDOWN:
switch (event.key.keysym.sym) {
case 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;
}
break;
case SDL_QUIT:
done = true;
break;
default:
break;
}
if( !done ) { gotEvent = SDL_PollEvent(&event); }
}
playStep(play, &timer, &step);
}
for( int i = 0; i < NUM_WAVEFORMS; i++ ) {
Mix_FreeChunk(_sample[i]);
}
Mix_CloseAudio();
SDL_Quit();
return 0;
}

15
C/players.cpp

@ -0,0 +1,15 @@
void playStep(bool play, int *timer, int *step) {
*timer = *timer >= *step ? 0 : *timer+1;
usleep(1000);
if(*timer == 0) {
printf("%d\n", *timer);
Mix_PlayChannel(-1, _sample[1], 0);
}
}
void playSample(int sample) {
Mix_PlayChannel(-1, _sample[sample-1], 0);
}

BIN
C/sonquencer

Binary file not shown.
Loading…
Cancel
Save