mirror of
https://codeberg.org/armin/rmx-19.git
synced 2026-10-11 16:51:55 +02:00
Add delay tempo sync, rack faceplate, README, docs
- Add host-tempo-synced delay: FX screen gains a 4th SYNC row for rhythmic divisions (1/16 .. 1/1) that lock delay time to DAW tempo - Embed rack faceplate background (b2.png) via juce binary data - Add offline dev probe (rmx_probe) for GUI-less MIDI testing - Allow overriding JUCE_ROOT when configuring the build - Write comprehensive README describing the instrument, UI, MIDI, DSP, and build/install steps
This commit is contained in:
parent
d63db3af8a
commit
2e870380d4
17 changed files with 1413 additions and 324 deletions
|
|
@ -14,6 +14,7 @@ public:
|
|||
void navUp(); void navDown();
|
||||
void navLeft(); void navRight();
|
||||
void navEnter(); void navExit();
|
||||
void applyPatchOnBrowserMove();
|
||||
|
||||
void resetToHome();
|
||||
|
||||
|
|
@ -34,19 +35,28 @@ private:
|
|||
int patchCursor = 0;
|
||||
int paramScreenIdx = 0; // which param screen is open
|
||||
|
||||
float meterL = 0.0f, meterR = 0.0f;
|
||||
float powerGlow = 0.0f;
|
||||
int lastVoices = -1;
|
||||
juce::uint32 lastMidi = 0;
|
||||
|
||||
juce::Image dotImage;
|
||||
juce::Image dotImage; // 160x64 content scratch buffer
|
||||
juce::Image displayImage; // 320x128 cached green-on-black result
|
||||
juce::Image backdrop; // 320x128 static base (backlight + ghost dots)
|
||||
bool contentDirty = true;
|
||||
|
||||
static const juce::uint8* glyphFor (int key);
|
||||
static const juce::uint8* glyphM (int key);
|
||||
|
||||
void rebuild();
|
||||
void buildBackdrop();
|
||||
|
||||
void drawContent (juce::Graphics&);
|
||||
void px (juce::Graphics&, int x, int y, float intensity);
|
||||
void pxText (juce::Graphics&, int x, int y, const juce::String&, float intensity);
|
||||
void pxText (juce::Graphics&, int x, int y, const juce::String&, float intensity);
|
||||
void pxTextM (juce::Graphics&, int x, int y, const juce::String&, float intensity);
|
||||
void drawFilled (juce::Graphics&, int x, int y, int w, int h, float intensity);
|
||||
void drawHBar (juce::Graphics&, int x, int y, int w, double level, float intensity);
|
||||
void drawSelBar (juce::Graphics&, int y);
|
||||
|
||||
void drawSplash (juce::Graphics&);
|
||||
void drawHome (juce::Graphics&);
|
||||
|
|
@ -57,9 +67,12 @@ private:
|
|||
void drawInfo (juce::Graphics&);
|
||||
void drawFooter (juce::Graphics&);
|
||||
|
||||
void stepParam (prm::Id id, int dir, bool coarse);
|
||||
void selectPatchCyclic (int dir);
|
||||
|
||||
void setDirty() { dotImage.clear (dotImage.getBounds()); repaint(); }
|
||||
void stepParam (prm::Id id, int dir, bool coarse);
|
||||
void stepDelaySync (int dir);
|
||||
|
||||
void setDirty() { contentDirty = true; repaint(); }
|
||||
void enterScreen (Screen s) { screen = s; cursor = 0; setDirty(); }
|
||||
|
||||
void timerCallback() override;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue