You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
65 lines
1.4 KiB
65 lines
1.4 KiB
#include <Audio.h>
|
|
#include "synth_dexed.h"
|
|
#include "banks.h"
|
|
|
|
AudioSynthDexed dexed(4, SAMPLE_RATE); // 4 voices max
|
|
AudioOutputI2S i2s1;
|
|
AudioControlSGTL5000 sgtl5000_1;
|
|
AudioConnection patchCord1(dexed, 0, i2s1, 0);
|
|
AudioConnection patchCord2(dexed, 0, i2s1, 1);
|
|
|
|
void setup()
|
|
{
|
|
Serial.begin(230400);
|
|
|
|
AudioMemory(32);
|
|
|
|
sgtl5000_1.enable();
|
|
sgtl5000_1.lineOutLevel(29);
|
|
sgtl5000_1.dacVolumeRamp();
|
|
sgtl5000_1.dacVolume(1.0);
|
|
sgtl5000_1.unmuteHeadphone();
|
|
sgtl5000_1.unmuteLineout();
|
|
sgtl5000_1.volume(0.8, 0.8); // Headphone volume
|
|
|
|
randomSeed(analogRead(0));
|
|
}
|
|
|
|
void loop()
|
|
{
|
|
uint8_t b = random(0, 10);
|
|
uint8_t v = random(0, 32);
|
|
uint8_t t = random(0, 36);
|
|
char voice_name[11];
|
|
uint8_t decoded_voice[156];
|
|
|
|
memset(voice_name, 0, 11);
|
|
memcpy(voice_name, &progmem_bank[b][v][117], 10);
|
|
|
|
Serial.print("Voice: ");
|
|
Serial.print(voice_name);
|
|
Serial.print(" ");
|
|
Serial.print("Transpose: ");
|
|
Serial.println(t);
|
|
|
|
dexed.decodeVoice(progmem_bank[b][v],decoded_voice);
|
|
dexed.loadVoiceParameters(decoded_voice);
|
|
dexed.setTranspose(t);
|
|
|
|
Serial.println("Key-Down");
|
|
dexed.keydown(48, 100);
|
|
delay(100);
|
|
dexed.keydown(52, 100);
|
|
delay(100);
|
|
dexed.keydown(55, 100);
|
|
delay(100);
|
|
dexed.keydown(60, 100);
|
|
delay(2000);
|
|
|
|
Serial.println("Key-Up");
|
|
dexed.keyup(48);
|
|
dexed.keyup(52);
|
|
dexed.keyup(55);
|
|
dexed.keyup(60);
|
|
delay(1000);
|
|
}
|
|
|