Skip to content

Update examples to use HW instead of "Patch" for hardware object #284 #301

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
wants to merge 5 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -131,3 +131,6 @@ MyProjects/
.cortex-debug.registers.state.json
.cortex-debug.peripherals.state.json

libDaisy
libDaisy
libDaisy
4 changes: 2 additions & 2 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
Expand Up @@ -89,6 +89,6 @@
}
}
]
}

},
"cmake.sourceDirectory": "X:/code/CleanRoom/DaisyExamples/DaisySP"
}
36 changes: 18 additions & 18 deletions patch/Compressor/Compressor.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
using namespace daisy;
using namespace daisysp;

DaisyPatch patch;
DaisyPatch hw;
Compressor comp;

bool isSideChained;
Expand Down Expand Up @@ -44,47 +44,47 @@ static void AudioCallback(AudioHandle::InputBuffer in,
int main(void)
{
float samplerate;
patch.Init(); // Initialize hardware
samplerate = patch.AudioSampleRate();
hw.Init(); // Initialize hardware
samplerate = hw.AudioSampleRate();

comp.Init(samplerate);

isSideChained = false;

//parameter parameters
threshParam.Init(patch.controls[0], -80.0f, 0.f, Parameter::LINEAR);
ratioParam.Init(patch.controls[1], 1.2f, 40.f, Parameter::LINEAR);
attackParam.Init(patch.controls[2], 0.01f, 1.f, Parameter::EXPONENTIAL);
releaseParam.Init(patch.controls[3], 0.01f, 1.f, Parameter::EXPONENTIAL);
threshParam.Init(hw.controls[0], -80.0f, 0.f, Parameter::LINEAR);
ratioParam.Init(hw.controls[1], 1.2f, 40.f, Parameter::LINEAR);
attackParam.Init(hw.controls[2], 0.01f, 1.f, Parameter::EXPONENTIAL);
releaseParam.Init(hw.controls[3], 0.01f, 1.f, Parameter::EXPONENTIAL);

patch.StartAdc();
patch.StartAudio(AudioCallback);
hw.StartAdc();
hw.StartAudio(AudioCallback);
while(1)
{
//update the oled
patch.display.Fill(false);
hw.display.Fill(false);

patch.display.SetCursor(0, 0);
hw.display.SetCursor(0, 0);
std::string str = "Compressor";
char* cstr = &str[0];
patch.display.WriteString(cstr, Font_7x10, true);
hw.display.WriteString(cstr, Font_7x10, true);

patch.display.SetCursor(0, 25);
hw.display.SetCursor(0, 25);
str = "Sidechain: ";
str += isSideChained ? "On" : "Off";
patch.display.WriteString(cstr, Font_7x10, true);
hw.display.WriteString(cstr, Font_7x10, true);

patch.display.Update();
hw.display.Update();
}
}

void UpdateControls()
{
patch.ProcessAnalogControls();
patch.ProcessDigitalControls();
hw.ProcessAnalogControls();
hw.ProcessDigitalControls();

//encoder click
isSideChained = patch.encoder.RisingEdge() ? !isSideChained : isSideChained;
isSideChained = hw.encoder.RisingEdge() ? !isSideChained : isSideChained;

//controls
comp.SetThreshold(threshParam.Process());
Expand Down
50 changes: 25 additions & 25 deletions patch/EnvelopeOscillator/EnvelopeOscillator.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
using namespace daisy;
using namespace daisysp;

DaisyPatch patch;
DaisyPatch hw;
float sampleRate;

constexpr uint8_t NUM_CV_IN = 4;
Expand All @@ -27,25 +27,25 @@ inline float static CalcFreq(const float value)

void UpdateControls()
{
patch.ProcessAnalogControls();
patch.ProcessDigitalControls();
hw.ProcessAnalogControls();
hw.ProcessDigitalControls();

for(uint8_t n = 0; n < NUM_CV_IN; n++)
{
ctrl[n] = patch.GetKnobValue(static_cast<DaisyPatch::Ctrl>(n));
ctrl[n] = hw.GetKnobValue(static_cast<DaisyPatch::Ctrl>(n));
}

for(uint8_t n = 0; n < NUM_GATE_IN; n++)
{
gate[n] = patch.gate_input[n].Trig();
gate[n] = hw.gate_input[n].Trig();
}

osc.SetFreq(CalcFreq(ctrl[0]));
osc.SetMorph(ctrl[1]);
env.SetRise(ctrl[2]);
env.SetFall(ctrl[3]);

if(gate[0] || patch.encoder.FallingEdge())
if(gate[0] || hw.encoder.FallingEdge())
{
env.Trigger();
}
Expand All @@ -65,7 +65,7 @@ static void AudioCallback(AudioHandle::InputBuffer in,
out[3][n] = 0.f;
}

patch.seed.dac.WriteValue(DacHandle::Channel::BOTH,
hw.seed.dac.WriteValue(DacHandle::Channel::BOTH,
static_cast<uint16_t>(4095 * env.GetCurrValue()));
}

Expand All @@ -75,47 +75,47 @@ void UpdateDisplay()
uint32_t minY = 0;
uint32_t lineOffset = 8;

patch.display.Fill(false);
hw.display.Fill(false);

std::string str = "ENVELOPE OSCILLATOR";
char* cstr = &str[0];
patch.display.SetCursor(minX, minY);
patch.display.WriteString(cstr, Font_6x8, true);
hw.display.SetCursor(minX, minY);
hw.display.WriteString(cstr, Font_6x8, true);

str = "FREQ:" + std::to_string(static_cast<uint32_t>(osc.GetFreq()));
patch.display.SetCursor(minX, lineOffset + minY);
patch.display.WriteString(cstr, Font_6x8, true);
hw.display.SetCursor(minX, lineOffset + minY);
hw.display.WriteString(cstr, Font_6x8, true);

str = "MRPH:" + std::to_string(static_cast<uint8_t>(100 * osc.GetMorph()));
patch.display.SetCursor(minX, 2 * lineOffset + minY);
patch.display.WriteString(cstr, Font_6x8, true);
hw.display.SetCursor(minX, 2 * lineOffset + minY);
hw.display.WriteString(cstr, Font_6x8, true);

str = "RISE:" + std::to_string(static_cast<uint32_t>(1000 * env.GetRise()));
patch.display.SetCursor(minX, 3 * lineOffset + minY);
patch.display.WriteString(cstr, Font_6x8, true);
hw.display.SetCursor(minX, 3 * lineOffset + minY);
hw.display.WriteString(cstr, Font_6x8, true);

str = "FALL:" + std::to_string(static_cast<uint32_t>(1000 * env.GetFall()));
patch.display.SetCursor(minX, 4 * lineOffset + minY);
patch.display.WriteString(cstr, Font_6x8, true);
hw.display.SetCursor(minX, 4 * lineOffset + minY);
hw.display.WriteString(cstr, Font_6x8, true);

str = "ENV:"
+ std::to_string(static_cast<uint8_t>(100 * env.GetCurrValue()));
patch.display.SetCursor(minX, 5 * lineOffset + minY);
patch.display.WriteString(cstr, Font_6x8, true);
hw.display.SetCursor(minX, 5 * lineOffset + minY);
hw.display.WriteString(cstr, Font_6x8, true);

patch.display.Update();
hw.display.Update();
}

int main(void)
{
patch.Init();
sampleRate = patch.AudioSampleRate();
hw.Init();
sampleRate = hw.AudioSampleRate();

env.Init(sampleRate);
osc.Init(sampleRate);

patch.StartAdc();
patch.StartAudio(AudioCallback);
hw.StartAdc();
hw.StartAudio(AudioCallback);

while(1)
{
Expand Down
36 changes: 18 additions & 18 deletions patch/FilterBank/FilterBank.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
using namespace daisy;
using namespace daisysp;

DaisyPatch patch;
DaisyPatch hw;
int freqs[16];

int bank;
Expand Down Expand Up @@ -102,15 +102,15 @@ void UpdateControls();
int main(void)
{
float samplerate;
patch.Init(); // Initialize hardware (daisy seed, and patch)
samplerate = patch.AudioSampleRate();
hw.Init(); // Initialize hardware (daisy seed, and patch)
samplerate = hw.AudioSampleRate();

InitFreqs();
InitFilters(samplerate);
bank = 0;

patch.StartAdc();
patch.StartAudio(AudioCallback);
hw.StartAdc();
hw.StartAudio(AudioCallback);
while(1)
{
UpdateOled();
Expand All @@ -120,12 +120,12 @@ int main(void)

void UpdateOled()
{
patch.display.Fill(false);
hw.display.Fill(false);

std::string str = "Filter Bank";
char* cstr = &str[0];
patch.display.SetCursor(0, 0);
patch.display.WriteString(cstr, Font_7x10, true);
hw.display.SetCursor(0, 0);
hw.display.WriteString(cstr, Font_7x10, true);

str = "";
for(int i = 0; i < 2; i++)
Expand All @@ -134,8 +134,8 @@ void UpdateOled()
str += " ";
}

patch.display.SetCursor(0, 25);
patch.display.WriteString(cstr, Font_7x10, true);
hw.display.SetCursor(0, 25);
hw.display.WriteString(cstr, Font_7x10, true);

str = "";
for(int i = 2; i < 4; i++)
Expand All @@ -144,28 +144,28 @@ void UpdateOled()
str += " ";
}

patch.display.SetCursor(0, 35);
patch.display.WriteString(cstr, Font_7x10, true);
hw.display.SetCursor(0, 35);
hw.display.WriteString(cstr, Font_7x10, true);


patch.display.Update();
hw.display.Update();
}

void UpdateControls()
{
patch.ProcessAnalogControls();
patch.ProcessDigitalControls();
hw.ProcessAnalogControls();
hw.ProcessDigitalControls();

//encoder
bank += patch.encoder.Increment();
bank += hw.encoder.Increment();
bank = (bank % 4 + 4) % 4;

bank = patch.encoder.RisingEdge() ? 0 : bank;
bank = hw.encoder.RisingEdge() ? 0 : bank;

//controls
for(int i = 0; i < 4; i++)
{
float val = patch.controls[i].Process();
float val = hw.controls[i].Process();
if(condUpdates[i].Process(val))
{
filters[i + bank * 4].amp = val;
Expand Down
36 changes: 18 additions & 18 deletions patch/MultiDelay/MultiDelay.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
using namespace daisy;
using namespace daisysp;

DaisyPatch patch;
DaisyPatch hw;

DelayLine<float, MAX_DELAY> DSY_SDRAM_BSS delMems[3];

Expand Down Expand Up @@ -72,30 +72,30 @@ void InitDelays(float samplerate)
delMems[i].Init();
delays[i].del = &delMems[i];
//3 delay times
params[i].Init(patch.controls[i],
params[i].Init(hw.controls[i],
samplerate * .05,
MAX_DELAY,
Parameter::LOGARITHMIC);
}

//feedback
params[3].Init(patch.controls[3], 0, 1, Parameter::LINEAR);
params[3].Init(hw.controls[3], 0, 1, Parameter::LINEAR);
}

void UpdateOled();

int main(void)
{
float samplerate;
patch.Init(); // Initialize hardware (daisy seed, and patch)
samplerate = patch.AudioSampleRate();
hw.Init(); // Initialize hardware (daisy seed, and patch)
samplerate = hw.AudioSampleRate();

InitDelays(samplerate);

drywet = 50;

patch.StartAdc();
patch.StartAudio(AudioCallback);
hw.StartAdc();
hw.StartAudio(AudioCallback);
while(1)
{
UpdateOled();
Expand All @@ -104,28 +104,28 @@ int main(void)

void UpdateOled()
{
patch.display.Fill(false);
hw.display.Fill(false);

patch.display.SetCursor(0, 0);
hw.display.SetCursor(0, 0);
std::string str = "Multi Delay";
char * cstr = &str[0];
patch.display.WriteString(cstr, Font_7x10, true);
hw.display.WriteString(cstr, Font_7x10, true);

patch.display.SetCursor(0, 30);
hw.display.SetCursor(0, 30);
str = "Dry/Wet: ";
patch.display.WriteString(cstr, Font_7x10, true);
hw.display.WriteString(cstr, Font_7x10, true);

patch.display.SetCursor(60, 30);
hw.display.SetCursor(60, 30);
str = std::to_string(drywet);
patch.display.WriteString(cstr, Font_7x10, true);
hw.display.WriteString(cstr, Font_7x10, true);

patch.display.Update();
hw.display.Update();
}

void ProcessControls()
{
patch.ProcessAnalogControls();
patch.ProcessDigitalControls();
hw.ProcessAnalogControls();
hw.ProcessDigitalControls();

//knobs
for(int i = 0; i < 3; i++)
Expand All @@ -135,7 +135,7 @@ void ProcessControls()
feedback = params[3].Process();

//encoder
drywet += 5 * patch.encoder.Increment();
drywet += 5 * hw.encoder.Increment();
drywet > 100 ? drywet = 100 : drywet = drywet;
drywet < 0 ? drywet = 0 : drywet = drywet;
}
Loading