Browse Source

Merge branch 'feature/load_data' into develop

develop
Dslak 5 years ago
parent
commit
38a8d01593
  1. 24
      Processing/Sampler/Sampler.pde
  2. 37
      Processing/Sampler/SetBeat.pde
  3. 3
      Processing/Sampler/controllerStatus.pde
  4. BIN
      Processing/Sampler/data/1.aif
  5. BIN
      Processing/Sampler/data/2.aif
  6. BIN
      Processing/Sampler/data/3.aif
  7. BIN
      Processing/Sampler/data/4.aif
  8. BIN
      Processing/Sampler/data/5.aif
  9. BIN
      Processing/Sampler/data/BANK3/1.wav
  10. BIN
      Processing/Sampler/data/BANK3/2.wav
  11. BIN
      Processing/Sampler/data/BANK3/3.wav
  12. BIN
      Processing/Sampler/data/BANK3/4.wav
  13. BIN
      Processing/Sampler/data/BANK3/5.wav
  14. BIN
      Processing/Sampler/data/BANK4/1.wav
  15. BIN
      Processing/Sampler/data/BANK4/2.wav
  16. BIN
      Processing/Sampler/data/BANK4/3.wav
  17. BIN
      Processing/Sampler/data/BANK4/4.wav
  18. BIN
      Processing/Sampler/data/BANK4/5.wav
  19. 44
      Processing/Sampler/data/data.json
  20. 65
      Processing/Sampler/loadData.pde
  21. 22
      Processing/Sampler/setData.pde

24
Processing/Sampler/Sampler.pde

@ -7,37 +7,41 @@ int numSounds = 0;
int numTracks = 0;
int bpm = 0;
int pattern = 0;
int bank = 0;
int swing = 0;
int divider = 0;
int duration = 0;
int beat = 0;
String patternLabel = "NO PATTERN";
String bpmLabel = "UNSET";
String swingLabel = "100%";
boolean[][] samples;
void setup() {
size(640, 460);
size(640, 460, P2D);
background(255);
loadData();
setData();
}
void draw() {
background(50);
stroke(255);
strokeWeight(3);
fill(200);
printControllerStatus();
if(controller[0] == "PLAY") {
for(int i=0; i<numSounds; i++) {
for(int y=0; y<divider; y++) {
fill(samples[i][y] ? 120: 90);
rect((width/divider)*y,((height-100)/numSounds)*i, width/divider, (height-100)/numSounds);
}
for(int i=0; i<numSounds; i++) {
for(int y=0; y<divider; y++) {
fill(samples[i][y] ? 120: 90);
stroke(50);
rect((width/divider)*y,((height-100)/numSounds)*i, width/divider, (height-100)/numSounds, 5);
}
}
if(controller[0] == "PLAY") {
for(int i=0; i<numSounds; i++) {
fill(150);
if(samples[i][beat]) {
@ -45,7 +49,9 @@ void draw() {
file[i].stop();
file[i].play();
}
rect((width/divider)*beat,((height-100)/numSounds)*i, width/divider, (height-100)/numSounds);
stroke(50);
rect((width/divider)*beat,((height-100)/numSounds)*i, width/divider, (height-100)/numSounds, 5);
}
beat++;

37
Processing/Sampler/SetBeat.pde

@ -9,6 +9,8 @@ void setBeat(int index, int sample) {
samples[sample][index] = true;
}
void keyPressed() {
//println(keyCode);
if(keyCode >= 64 && keyCode <= 88) { // From A to Z
@ -28,6 +30,10 @@ void keyPressed() {
controller[1] = controller[1] == "UNSET" ? "REC/OVERDUB" : "UNSET";
doRec = true;
}
if(key == 's') { // BPM
bpmLabel = "CHOOSE...";
chooseBPM = true;
}
if(key == 'o') { // PATTERN
choosePattern = true;
controller[0] = "STOP";
@ -42,17 +48,36 @@ void keyPressed() {
ereaseRow = controller[1] == "EREASE" ? keyCode-48 : 0;
doErease = ereaseRow>0;
if(code >= 0 && code < numSounds && !doErease) {
//&& code < numSounds
if(code >= 0 && !doErease) {
if(chooseBank) {
controller[2] = "BANK" + (code+1);
setData();
controller[2] = banksLabels[code];
bank = code+1;
chooseBank = false;
setData();
} else if(chooseBPM) {
bpmLabel = bpmsArray[code]+"";
bpm = bpmsArray[code];
chooseBPM = false;
setData();
} else if(choosePattern) {
pattern = (code+1);
pattern = code;
patternLabel = "PATTERN" + (code+1);
setData();
choosePattern = false;
} else if(controller[1] != "EREASE" && controller[1] != "UNSET") {
samples = patternsArray[code];
numSounds = soundNumbersArray[code];
divider = dividersArray[code];
bank = banksArray[code];
bpm = bpmPatArray[code];
bpmLabel = bpmPatArray[code]+"";
numTracks = numSounds;
controller[2] = banksLabels[code];
setData();
} else if(controller[1] != "EREASE" && controller[1] != "UNSET" && controller[0] != "STOP") {
setBeat(beat, code);
}
}

3
Processing/Sampler/controllerStatus.pde

@ -20,9 +20,10 @@ void printControllerStatus() {
fill(240);
text(patternLabel, (width/2)+100, height-75);
text(bpm, (width/2)+100, height-55);
text(bpmLabel, (width/2)+100, height-55);
text(swing, (width/2)+100, height-35);
stroke(200);
line(width/2, height-85, width/2, height-15);
}

BIN
Processing/Sampler/data/1.aif

Binary file not shown.

BIN
Processing/Sampler/data/2.aif

Binary file not shown.

BIN
Processing/Sampler/data/3.aif

Binary file not shown.

BIN
Processing/Sampler/data/4.aif

Binary file not shown.

BIN
Processing/Sampler/data/5.aif

Binary file not shown.

BIN
Processing/Sampler/data/BANK3/1.wav

Binary file not shown.

BIN
Processing/Sampler/data/BANK3/2.wav

Binary file not shown.

BIN
Processing/Sampler/data/BANK3/3.wav

Binary file not shown.

BIN
Processing/Sampler/data/BANK3/4.wav

Binary file not shown.

BIN
Processing/Sampler/data/BANK3/5.wav

Binary file not shown.

BIN
Processing/Sampler/data/BANK4/1.wav

Binary file not shown.

BIN
Processing/Sampler/data/BANK4/2.wav

Binary file not shown.

BIN
Processing/Sampler/data/BANK4/3.wav

Binary file not shown.

BIN
Processing/Sampler/data/BANK4/4.wav

Binary file not shown.

BIN
Processing/Sampler/data/BANK4/5.wav

Binary file not shown.

44
Processing/Sampler/data/data.json

@ -0,0 +1,44 @@
{
"patterns": [
{
"name": "Pattern 1",
"numSounds": 5,
"divider": 8,
"bank": 1,
"bpm": 280,
"pattern": [
[true, false, true, false, true, false, true, false],
[true, false, false, true, false, true, false, false],
[false, true, false, false, false, false, false, false],
[false, false, true, false, false, false, true, false],
[false, false, false, false, true, false, false, false]
]
},
{
"name": "Pattern 2",
"numSounds": 3,
"divider": 6,
"bank": 2,
"bpm": 180,
"pattern": [
[false, true, false, true, false, true],
[false, false, true, false, false, true],
[false, false, false, true, false, false]
]
}
],
"banks": [
{"name": "Bank1"},
{"name": "Drum"},
{"name": "Electric"},
{"name": "Bank 123"}
],
"bpm": [
{"value": 80},
{"value": 120},
{"value": 180},
{"value": 280}
]
}

65
Processing/Sampler/loadData.pde

@ -0,0 +1,65 @@
String[] patternLabels = {};
String[] banksLabels = {};
int[] soundNumbersArray = {};
int[] dividersArray = {};
int[] banksArray = {};
int[] bpmPatArray = {};
int[] bpmsArray = {};
boolean[][][] patternsArray = {};
void loadData() {
JSONObject json;
json = loadJSONObject("data.json");
JSONArray pattsArray = json.getJSONArray("patterns");
JSONArray bnksArray = json.getJSONArray("banks");
JSONArray bpmArray = json.getJSONArray("bpm");
for(int bpm=0; bpm<bpmArray.size(); bpm++) {
JSONObject single = bpmArray.getJSONObject(bpm);
bpmsArray = append(bpmsArray, single.getInt("value"));
}
bpm = bpmsArray[0];
for(int bnk=0; bnk<bnksArray.size(); bnk++) {
JSONObject single = bnksArray.getJSONObject(bnk);
banksLabels = append(banksLabels, single.getString("name"));
}
for(int pat=0; pat<pattsArray.size(); pat++) {
JSONObject single = pattsArray.getJSONObject(pat);
JSONArray singlePattsArray = single.getJSONArray("pattern");
boolean[][] tmpPat = {};
patternLabels = append(patternLabels, single.getString("name"));
soundNumbersArray = append(soundNumbersArray, single.getInt("numSounds"));
dividersArray = append(dividersArray, single.getInt("divider"));
banksArray = append(banksArray, single.getInt("bank"));
bpmPatArray = append(bpmPatArray, single.getInt("bpm"));
for(int x=0; x<singlePattsArray.size(); x++) {
boolean[] tmpRow = {};
JSONArray rowsArray = singlePattsArray.getJSONArray(x);
for(int y=0; y<rowsArray.size(); y++) {
boolean boolVal = rowsArray.getBoolean(y);
tmpRow = (boolean[]) append(tmpRow, boolVal);
}
tmpPat = (boolean[][]) append(tmpPat, tmpRow);
}
patternsArray = (boolean[][][]) append(patternsArray, tmpPat);
}
/*
for(int i=0; i<patternsArray.length; i++) {
println("######"+i);
for(int x=0; x<patternsArray[i].length; x++) {
println("######"+x);
printArray(patternsArray[i][x]);
}
}
*/
}

22
Processing/Sampler/setData.pde

@ -1,33 +1,27 @@
void setData() {
numSounds = 5;
numTracks = numSounds;
bpm = 280;
pattern = 1;
swing = 50;
divider = 16;
duration = int((60/float(bpm))*1000);
beat = 0;
//println(bpm);
//println(patternLabel);
String bank = controller[2];
println(bank);
println(patternLabel);
/*
samples = new boolean[numTracks][divider];
for(int i=0; i<numTracks; i++) {
boolean[] tmp = new boolean[divider];
for(int x=0; x<divider; x++) {
tmp[x] = false;
}
samples[i] = tmp;
}
samples[i] = tmp;
}*/
// Load sound files
file = new SoundFile[numSounds];
for (int i = 0; i < numSounds; i++) {
file[i] = new SoundFile(this, bank + "/" + (i+1) + ".wav");
file[i] = new SoundFile(this, "BANK" + bank + "/" + (i+1) + ".wav");
}
}

Loading…
Cancel
Save