mirror of
https://github.com/AquaMorph/Droplets.git
synced 2025-04-29 17:35:33 +00:00
Basic sequencer display
This commit is contained in:
parent
ffcea81e57
commit
2b9c18850e
@ -34,7 +34,17 @@ void SequencerDroplet::Process(AudioHandle::InputBuffer in,
|
|||||||
}
|
}
|
||||||
|
|
||||||
void SequencerDroplet::Draw() {
|
void SequencerDroplet::Draw() {
|
||||||
WriteString(Patch(), 0, 10, std::to_string(step));
|
int left_padding = 4+GetScreenMin();
|
||||||
|
|
||||||
|
for (int i = 0; i < 24; i++) {
|
||||||
|
WriteString(Patch(),
|
||||||
|
GetScreenWidth()/4*(i%4)+left_padding,
|
||||||
|
8+(std::floor(i/4)*8),
|
||||||
|
FloatToString(sequence[i], 2),
|
||||||
|
i!=step);
|
||||||
|
}
|
||||||
|
DrawSolidRect(Patch(),GetScreenMin(),56,GetScreenMax(),63, true);
|
||||||
|
WriteString(Patch(), 2+GetScreenMin(), 56, std::to_string(step), false);
|
||||||
DrawName("Sequencer");
|
DrawName("Sequencer");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -10,12 +10,13 @@
|
|||||||
#include "../util.h"
|
#include "../util.h"
|
||||||
|
|
||||||
#define MAX_SEQUENCE_LENGTH 32
|
#define MAX_SEQUENCE_LENGTH 32
|
||||||
#define CONTROL_DEADZONE = 0.01f
|
#define CONTROL_DEADZONE = 0.03f
|
||||||
|
|
||||||
class SequencerDroplet: public Droplet {
|
class SequencerDroplet: public Droplet {
|
||||||
private:
|
private:
|
||||||
int step = 0;
|
int step = 0;
|
||||||
int selected = 0;
|
int selected = 0;
|
||||||
|
int sequence_length = 32;
|
||||||
float sequence[MAX_SEQUENCE_LENGTH] = { 0.0f };
|
float sequence[MAX_SEQUENCE_LENGTH] = { 0.0f };
|
||||||
Parameter control[4];
|
Parameter control[4];
|
||||||
float last_control_value[4] = { 0.0f };
|
float last_control_value[4] = { 0.0f };
|
||||||
|
@ -129,7 +129,7 @@ static void AudioThrough(AudioHandle::InputBuffer in,
|
|||||||
Droplet* GetDroplet(DropletState state,
|
Droplet* GetDroplet(DropletState state,
|
||||||
MenuState menu) {
|
MenuState menu) {
|
||||||
switch(menu) {
|
switch(menu) {
|
||||||
default:
|
|
||||||
case MenuState::kAD:
|
case MenuState::kAD:
|
||||||
return new ADDroplet(&patch,
|
return new ADDroplet(&patch,
|
||||||
state,
|
state,
|
||||||
@ -148,7 +148,8 @@ Droplet* GetDroplet(DropletState state,
|
|||||||
case MenuState::kNoise:
|
case MenuState::kNoise:
|
||||||
return new NoiseDroplet(&patch,
|
return new NoiseDroplet(&patch,
|
||||||
state);
|
state);
|
||||||
case MenuState::kSequencer:
|
default:
|
||||||
|
case MenuState::kSequencer:
|
||||||
return new SequencerDroplet(&patch,
|
return new SequencerDroplet(&patch,
|
||||||
state,
|
state,
|
||||||
sample_rate);
|
sample_rate);
|
||||||
|
10
src/util.cpp
10
src/util.cpp
@ -33,7 +33,15 @@ void WriteString(DaisyPatch* patch,
|
|||||||
int x,
|
int x,
|
||||||
int y,
|
int y,
|
||||||
std::string text) {
|
std::string text) {
|
||||||
WriteString(patch, x, y, Font_6x8, text, true);
|
WriteString(patch, x, y, text, true);
|
||||||
|
}
|
||||||
|
|
||||||
|
void WriteString(DaisyPatch* patch,
|
||||||
|
int x,
|
||||||
|
int y,
|
||||||
|
std::string text,
|
||||||
|
bool on) {
|
||||||
|
WriteString(patch, x, y, Font_6x8, text, on);
|
||||||
}
|
}
|
||||||
|
|
||||||
void WriteCenteredString(DaisyPatch* patch,
|
void WriteCenteredString(DaisyPatch* patch,
|
||||||
|
15
src/util.h
15
src/util.h
@ -63,6 +63,21 @@ void WriteString(DaisyPatch* patch,
|
|||||||
FontDef font,
|
FontDef font,
|
||||||
std::string text);
|
std::string text);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Draws text on screen flushed left.
|
||||||
|
*
|
||||||
|
* @param patch daisy patch board
|
||||||
|
* @param x start of text x coordinate
|
||||||
|
* @param y start of text y coordinate
|
||||||
|
* @param text text to be written
|
||||||
|
* @param on draw screen on or off
|
||||||
|
*/
|
||||||
|
void WriteString(DaisyPatch* patch,
|
||||||
|
int x,
|
||||||
|
int y,
|
||||||
|
std::string text,
|
||||||
|
bool on);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Draws text on screen flushed left.
|
* Draws text on screen flushed left.
|
||||||
*
|
*
|
||||||
|
Loading…
x
Reference in New Issue
Block a user