Compare commits
13 Commits
Author | SHA1 | Date |
---|---|---|
|
9f69ef4e6a | |
|
04446708c3 | |
|
1e1add37bb | |
|
c33fd60c5c | |
|
11df5c186f | |
|
80987f0875 | |
|
7607c71dad | |
|
b095ff1a0f | |
|
23e9e5f079 | |
|
d7fcc9c0b0 | |
|
9dc95dc07f | |
|
e7212cd5d5 | |
|
2d678b4437 |
|
@ -30,4 +30,38 @@
|
|||
#define DISTRHO_PLUGIN_WANT_PROGRAMS 1
|
||||
#define DISTRHO_PLUGIN_HAS_UI 1
|
||||
|
||||
enum Parameters {
|
||||
pLFORate,
|
||||
pLFODelay,
|
||||
|
||||
pVCORange,
|
||||
pLFODepth,
|
||||
pPWMDepth,
|
||||
pSqr,
|
||||
pSaw,
|
||||
pSubLevel,
|
||||
pNoiseLevel,
|
||||
|
||||
pHPF,
|
||||
pCutoff,
|
||||
pRes,
|
||||
pEnv,
|
||||
pLfo,
|
||||
pKyb,
|
||||
|
||||
pVCALevel,
|
||||
|
||||
pAtk,
|
||||
pDcy,
|
||||
pStn,
|
||||
pRls,
|
||||
|
||||
pChorus,
|
||||
|
||||
parameterCount,
|
||||
|
||||
btn16, btn8, btn4, btnPls, btnSaw, btnCh0, btnCh1, btnCh2
|
||||
};
|
||||
|
||||
|
||||
#endif
|
||||
|
|
|
@ -15,6 +15,7 @@ FILES_DSP = \
|
|||
|
||||
|
||||
FILES_UI = \
|
||||
orangebutton.cpp \
|
||||
panel.cpp \
|
||||
slider.cpp \
|
||||
peacock.cpp \
|
||||
|
|
|
@ -27,37 +27,6 @@ START_NAMESPACE_DISTRHO
|
|||
|
||||
class Chassis : public Plugin {
|
||||
public:
|
||||
enum Parameters {
|
||||
pLFORate,
|
||||
pLFODelay,
|
||||
|
||||
pVCORange,
|
||||
pLFODepth,
|
||||
pPWMDepth,
|
||||
pSqr,
|
||||
pSaw,
|
||||
pSubLevel,
|
||||
pNoiseLevel,
|
||||
|
||||
pHPF,
|
||||
pCutoff,
|
||||
pRes,
|
||||
pEnv,
|
||||
pLfo,
|
||||
pKyb,
|
||||
|
||||
pVCALevel,
|
||||
|
||||
pAtk,
|
||||
pDcy,
|
||||
pStn,
|
||||
pRls,
|
||||
|
||||
pChorus,
|
||||
|
||||
parameterCount
|
||||
};
|
||||
|
||||
Chassis();
|
||||
|
||||
protected:
|
||||
|
|
|
@ -0,0 +1,367 @@
|
|||
#include "peacock.hpp"
|
||||
static const char tempOrngUp[] = {
|
||||
"jF#\377\213].\377\230e\062\377\223b\061\377\230e\062\377\224c\061\377\226d\061"
|
||||
"\377\222a\060\377\230e\062\377\225c\061\377\232f\063\377\224c\061\377\223b\060"
|
||||
"\377\227e\062\377\227d\062\377\233g\063\377\223b\060\377\225c\061\377\222a\060"
|
||||
"\377\224b\061\377\227e\062\377\227d\062\377\226d\062\377\226d\062\377\224c\061"
|
||||
"\377\223b\060\377\231f\062\377\223b\061\377\222a\060\377\226d\062\377\227e\062"
|
||||
"\377\223b\060\377\220`\060\377\224b\061\377\233g\063\377\232f\063\377\226d\062"
|
||||
"\377\223b\060\377\217_/\377\004\003\001\000\004\003\001\000\243l\066\377\331\263\215\377\321"
|
||||
"\242s\377\321\243u\377\320\241q\377\321\243u\377\321\243u\377\320\240o\377"
|
||||
"\320\241r\377\320\241r\377\321\243u\377\320\241r\377\320\241r\377\322\244"
|
||||
"u\377\322\245w\377\321\242s\377\320\240q\377\321\242r\377\321\243u\377\317"
|
||||
"\237n\377\320\241r\377\321\242s\377\321\242r\377\322\244v\377\321\242s\377"
|
||||
"\317\237o\377\321\242s\377\320\240o\377\321\242s\377\320\241r\377\320\241"
|
||||
"q\377\321\242s\377\321\242s\377\321\242s\377\320\237o\377\321\243t\377\321"
|
||||
"\242s\377\271{=\377\253r\070\377\217_/\062\004\003\001\000\237i\064\377\322\245x\377"
|
||||
"\305\212O\377\304\207K\377\305\212P\377\304\207K\377\306\214R\377\305\212"
|
||||
"O\377\303\207J\377\305\211N\377\307\215T\377\303\206J\377\305\211N\377\305"
|
||||
"\212O\377\304\207K\377\303\206J\377\305\212P\377\302\204G\377\304\211M\377"
|
||||
"\304\207K\377\304\211M\377\303\206I\377\306\213Q\377\305\212N\377\304\207"
|
||||
"K\377\303\206H\377\305\212O\377\305\211N\377\305\212P\377\305\212P\377\304"
|
||||
"\207K\377\303\206H\377\304\207K\377\305\212P\377\306\214R\377\304\207K\377"
|
||||
"\304\211M\377\300\201A\377\262v;\377rK$\377>(\024\226\237j\064\377\320\240"
|
||||
"p\377\301\201B\377\270z=\377\270z=\377\300\200A\377\265y<\377\266y<\377\301"
|
||||
"\202C\377\265x<\377\271{=\377\271{=\377\267y<\377\275~>\377\300\200@\377"
|
||||
"\273}>\377\267z<\377\273}>\377\266y<\377\300\200@\377\272{=\377\265y<\377"
|
||||
"\272|=\377\264x;\377\300\200@\377\300\201A\377\276\177?\377\261v:\377\301"
|
||||
"\202C\377\267z<\377\275~>\377\267z<\377\267z<\377\275~>\377\267z<\377\267"
|
||||
"z<\377\301\201B\377\275}>\377\237j\064\377hD\040\377>(\024n\234h\063\377\317"
|
||||
"\237n\377\267y<\377\276~?\377\261u:\377\267y<\377\271{=\377\273|>\377\276"
|
||||
"~?\377\275~>\377\266y<\377\274}>\377\275~>\377\265y<\377\275~>\377\262v;"
|
||||
"\377\270{=\377\267z<\377\267y<\377\276~?\377\265y<\377\273}>\377\300\200"
|
||||
"@\377\276\177?\377\263w;\377\270z=\377\275~>\377\265y<\377\270z=\377\272"
|
||||
"|=\377\266y<\377\275~>\377\272|=\377\272|=\377\270z=\377\264x;\377\273|>"
|
||||
"\377\276~?\377\232f\063\377eB\037\377\065\"\020\303\235i\064\377\321\242s\377"
|
||||
"\301\203D\377\274}>\377\267y<\377\300\200A\377\271{=\377\273|>\377\277\177"
|
||||
"?\377\264x<\377\266y<\377\272{=\377\275~>\377\260u:\377\267y<\377\300\200"
|
||||
"@\377\300\200A\377\275}>\377\267y<\377\270z=\377\264x;\377\276~?\377\265"
|
||||
"x<\377\275~>\377\272|=\377\276~?\377\300\200@\377\271{=\377\272{=\377\270"
|
||||
"{=\377\263w;\377\276~?\377\272{=\377\262v;\377\263w;\377\300\200A\377\267"
|
||||
"y<\377\274}>\377\234h\064\377b@\037\377\065\"\020\370\237j\064\377\320\240p\377"
|
||||
"\301\202C\377\273|>\377\262v;\377\267y<\377\301\201B\377\274}>\377\274}>"
|
||||
"\377\277\177?\377\300\201A\377\270z=\377\267y<\377\301\201B\377\275~>\377"
|
||||
"\272|=\377\274}>\377\266y<\377\271{=\377\271{=\377\274}>\377\300\200@\377"
|
||||
"\277\177?\377\275}>\377\273|>\377\273|>\377\275~>\377\276~?\377\271{=\377"
|
||||
"\301\201B\377\271{=\377\271{=\377\277\177?\377\301\201B\377\274}>\377\261"
|
||||
"u:\377\301\202C\377\301\201B\377\231f\063\377cA\037\377\065\"\020\370\237j\064"
|
||||
"\377\321\241r\377\303\206I\377\271{=\377\265x<\377\272|=\377\275~>\377\273"
|
||||
"}>\377\301\202C\377\277\177?\377\272|=\377\265x<\377\266y<\377\264x;\377"
|
||||
"\273|>\377\274}>\377\272{=\377\274}>\377\266y<\377\267z<\377\271{=\377\266"
|
||||
"y<\377\271{=\377\267z<\377\264x;\377\275}>\377\266y<\377\274}>\377\301\201"
|
||||
"B\377\277\177?\377\272|=\377\262v;\377\301\201B\377\300\201A\377\273|>\377"
|
||||
"\276~?\377\301\201B\377\264x<\377\243m\066\377b@\037\377\065\"\020\370\237i\064"
|
||||
"\377\320\240p\377\302\204F\377\267z<\377\263w;\377\265x<\377\267z<\377\262"
|
||||
"v;\377\265y<\377\300\200A\377\277\177?\377\274}>\377\277\177?\377\270z=\377"
|
||||
"\262v;\377\300\200@\377\272|>\377\261v:\377\267y<\377\266y<\377\301\201B"
|
||||
"\377\272|=\377\267z<\377\272{=\377\271{=\377\270z=\377\272|=\377\274}>\377"
|
||||
"\266y<\377\300\200@\377\270{=\377\267y<\377\274}>\377\275}>\377\274}>\377"
|
||||
"\271{=\377\275}>\377\274}>\377\236i\064\377gD\040\377\065\"\020\370\240j\065\377"
|
||||
"\320\240p\377\300\200@\377\301\201B\377\277\177?\377\276~?\377\266y<\377"
|
||||
"\275}>\377\271{=\377\267y<\377\273|>\377\264x;\377\274}>\377\276~?\377\271"
|
||||
"{=\377\267y<\377\274}>\377\267y<\377\265x<\377\275}>\377\267y<\377\300\201"
|
||||
"A\377\276~?\377\267y<\377\264x;\377\276~?\377\301\202C\377\271{=\377\270"
|
||||
"z=\377\272|=\377\275~>\377\266y<\377\272|>\377\271{=\377\300\200@\377\300"
|
||||
"\200@\377\267z<\377\274}>\377\237j\064\377dB\037\377\065\"\020\370\237j\064\377"
|
||||
"\321\242s\377\274}>\377\261u:\377\267y<\377\267y<\377\272{=\377\276~?\377"
|
||||
"\271{=\377\266y<\377\271{=\377\272|>\377\300\200A\377\271{=\377\273|>\377"
|
||||
"\265y<\377\264x<\377\300\200@\377\271{=\377\262v;\377\262w;\377\264x<\377"
|
||||
"\301\201B\377\274}>\377\272|=\377\265x<\377\300\200@\377\271{=\377\301\203"
|
||||
"D\377\265x<\377\277\177?\377\301\202C\377\274}>\377\276~?\377\264x;\377\271"
|
||||
"{=\377\271{=\377\272|=\377\235i\064\377eB\037\377\065\"\020\370\237i\064\377\320"
|
||||
"\240p\377\267z<\377\271{=\377\300\200@\377\267z<\377\271{=\377\262v;\377"
|
||||
"\276~?\377\263w;\377\265x<\377\266y<\377\272|=\377\300\177?\377\274}>\377"
|
||||
"\266y<\377\300\200@\377\267y<\377\275~>\377\275}>\377\276~?\377\266y<\377"
|
||||
"\275}>\377\300\177?\377\263w;\377\266y<\377\270z=\377\263w;\377\264x<\377"
|
||||
"\274}>\377\277\177?\377\271{=\377\300\200@\377\277\177?\377\271{=\377\300"
|
||||
"\201A\377\273|>\377\266y<\377\250p\067\377dB\037\377\065\"\020\370\235i\064\377"
|
||||
"\320\237o\377\277\177?\377\300\200@\377\275}>\377\270z=\377\267y<\377\275"
|
||||
"~>\377\271{=\377\266y<\377\271{=\377\274}>\377\271{=\377\263w;\377\260u:"
|
||||
"\377\277\177?\377\262w;\377\275}>\377\273|>\377\301\201B\377\262v;\377\267"
|
||||
"y<\377\272|>\377\267y<\377\274}>\377\273|>\377\300\200A\377\267z<\377\265"
|
||||
"y<\377\275}>\377\266y<\377\271{=\377\262v;\377\273|>\377\271{=\377\300\200"
|
||||
"@\377\274}>\377\274}>\377\243l\066\377jE!\377\065\"\020\370\232g\063\377\316"
|
||||
"\234k\377\267z<\377\267z<\377\266y<\377\264x;\377\266y<\377\266y<\377\300"
|
||||
"\200A\377\272|>\377\271{=\377\272|=\377\273}>\377\274}>\377\273|>\377\272"
|
||||
"|=\377\301\201B\377\276~?\377\265y<\377\265x<\377\270z=\377\266y<\377\262"
|
||||
"v;\377\267z<\377\264x;\377\301\202C\377\274}>\377\266y<\377\265x<\377\301"
|
||||
"\202C\377\265y<\377\267y<\377\274}>\377\263w;\377\270{=\377\263w;\377\266"
|
||||
"y<\377\275~>\377\242l\066\377gC\040\377\065\"\020\370\234h\063\377\317\236n\377"
|
||||
"\271{=\377\267y<\377\267y<\377\274}>\377\274}>\377\266y<\377\274}>\377\273"
|
||||
"|>\377\276~?\377\277\177?\377\266y<\377\301\202C\377\274}>\377\274}>\377"
|
||||
"\261v:\377\275~>\377\267z<\377\273|>\377\265x<\377\264x<\377\274}>\377\271"
|
||||
"{=\377\274}>\377\274}>\377\266y<\377\274}>\377\274}>\377\300\201A\377\301"
|
||||
"\202C\377\276~?\377\275~>\377\273|>\377\276~?\377\261v;\377\266y<\377\276"
|
||||
"~?\377\232f\063\377fC\040\377\065\"\020\370\233g\063\377\317\235l\377\277\177"
|
||||
"?\377\263w;\377\272|=\377\267y<\377\270z=\377\266y<\377\300\200@\377\267"
|
||||
"z<\377\277\177?\377\300\200@\377\276~?\377\274}>\377\272|=\377\275~>\377"
|
||||
"\275}>\377\273|>\377\270z=\377\277\177?\377\266y<\377\265x<\377\264x;\377"
|
||||
"\267z<\377\267y<\377\267z=\377\274}>\377\275}>\377\272|=\377\271{=\377\275"
|
||||
"}>\377\270z=\377\265x<\377\275}>\377\267y<\377\266y<\377\274}>\377\274}>"
|
||||
"\377\240j\065\377b@\037\377\065\"\020\370\234h\063\377\316\233i\377\300\201A\377"
|
||||
"\300\200@\377\265x<\377\276~?\377\267z<\377\274}>\377\271{=\377\267y<\377"
|
||||
"\265x<\377\274}>\377\276~?\377\272|=\377\276~?\377\274}>\377\263w;\377\266"
|
||||
"y<\377\274}>\377\267z=\377\266y<\377\272|=\377\275}>\377\274}>\377\272|>"
|
||||
"\377\265x<\377\273|>\377\275}>\377\267z<\377\300\201A\377\271{=\377\266y"
|
||||
"<\377\275~>\377\274}>\377\300\200@\377\270{=\377\301\201B\377\266y<\377\243"
|
||||
"l\066\377eB\040\377\065\"\020\370\232g\063\377\320\237o\377\270z=\377\263w;\377"
|
||||
"\275}>\377\267y<\377\277\177?\377\277\177?\377\267z<\377\274}>\377\277\177"
|
||||
"?\377\267y<\377\274}>\377\300\200A\377\273|>\377\276~?\377\274}>\377\272"
|
||||
"|=\377\277\177?\377\272|=\377\272|=\377\264w;\377\300\200@\377\274}>\377"
|
||||
"\271{=\377\266y<\377\271{=\377\273|>\377\273|>\377\271{=\377\272|=\377\275"
|
||||
"~>\377\270z=\377\270z=\377\266y<\377\300\200@\377\273|>\377\266y<\377\242"
|
||||
"l\065\377gC\040\377\065\"\020\370\232g\063\377\317\236l\377\275~?\377\271{=\377"
|
||||
"\275}>\377\271{=\377\260u:\377\271{=\377\274}>\377\274}>\377\267z<\377\262"
|
||||
"w;\377\300\200@\377\274}>\377\266y<\377\274}>\377\277\177?\377\275~>\377"
|
||||
"\300\177?\377\272|=\377\266y<\377\273|>\377\274}>\377\271{=\377\266y<\377"
|
||||
"\275~>\377\274}>\377\300\200@\377\272|=\377\275}>\377\267y<\377\274}>\377"
|
||||
"\272{=\377\277\177?\377\270z=\377\277\177?\377\265x<\377\277\177?\377\244"
|
||||
"m\066\377fC\040\377\065\"\020\370\233g\063\377\321\242r\377\301\201B\377\272|"
|
||||
"=\377\300\177?\377\265x<\377\267z<\377\271{=\377\271{=\377\271{=\377\274"
|
||||
"}>\377\267z<\377\275~>\377\300\201A\377\271{=\377\265y<\377\272|>\377\263"
|
||||
"w;\377\300\200A\377\271{=\377\275~>\377\274}>\377\271{=\377\300\200A\377"
|
||||
"\264x;\377\266y<\377\274}>\377\267z<\377\272|=\377\267z<\377\273|>\377\272"
|
||||
"|=\377\271{=\377\267y<\377\271{=\377\273|>\377\274}>\377\276\177?\377\242"
|
||||
"l\065\377gD\040\377\065\"\020\370\235i\064\377\320\240p\377\265x<\377\266y<\377"
|
||||
"\272|=\377\262v;\377\273}>\377\271{=\377\301\203D\377\271{=\377\300\201A"
|
||||
"\377\270z=\377\273|>\377\267y<\377\267z<\377\266y<\377\301\201B\377\272|"
|
||||
"=\377\270z=\377\265y<\377\272|=\377\263w;\377\266y<\377\274}>\377\275~>\377"
|
||||
"\275}>\377\272|>\377\261u:\377\271{=\377\275~>\377\275~>\377\266y<\377\271"
|
||||
"{=\377\263w;\377\300\200@\377\266y<\377\277\177?\377\276~?\377\235h\064\377"
|
||||
"fC\040\377\065\"\020\370\233g\063\377\317\236n\377\275~?\377\270{=\377\277\177"
|
||||
"?\377\263w;\377\300\200@\377\274}>\377\267y<\377\301\202C\377\267z<\377\271"
|
||||
"{=\377\276~?\377\266y<\377\274}>\377\262v;\377\300\200A\377\266y<\377\270"
|
||||
"z=\377\267z<\377\272|=\377\270z=\377\277\177?\377\266y<\377\301\202C\377"
|
||||
"\266y<\377\272{=\377\274}>\377\276~?\377\274}>\377\270z=\377\267z<\377\264"
|
||||
"x<\377\266y<\377\265y<\377\262v;\377\271{=\377\301\202D\377\237j\064\377d"
|
||||
"A\037\377\065\"\020\370\234h\063\377\317\235l\377\301\202C\377\274}>\377\274"
|
||||
"}>\377\276~?\377\271{=\377\271{=\377\276~?\377\301\201B\377\300\200@\377"
|
||||
"\277\177?\377\273|>\377\273|>\377\271{=\377\265y<\377\274}>\377\276~?\377"
|
||||
"\273|>\377\275~>\377\300\200?\377\277\177?\377\300\200@\377\262v;\377\301"
|
||||
"\202C\377\263w;\377\275~>\377\266y<\377\263w;\377\266y<\377\266y<\377\277"
|
||||
"\177?\377\261v:\377\267z<\377\275}>\377\274}>\377\267z<\377\300\200@\377"
|
||||
"\237j\064\377eB\037\377\065\"\020\370\237j\064\377\317\236n\377\271{=\377\302"
|
||||
"\203E\377\274}>\377\275~>\377\266y<\377\264x;\377\274}>\377\264x;\377\274"
|
||||
"}>\377\300\177?\377\266y<\377\270z=\377\266y<\377\271{=\377\300\200?\377"
|
||||
"\277\177?\377\262v;\377\275~>\377\263w;\377\271{=\377\275}>\377\276~?\377"
|
||||
"\274}>\377\267z<\377\272|>\377\274}>\377\302\203E\377\271{=\377\271{=\377"
|
||||
"\277\177?\377\272|=\377\261v:\377\275~>\377\264x;\377\267y<\377\301\201B"
|
||||
"\377\235i\064\377eB\037\377\065\"\020\370\233g\063\377\317\235l\377\303\205H\377"
|
||||
"\266y<\377\274}>\377\274}>\377\270z=\377\273|>\377\270{=\377\276~?\377\273"
|
||||
"}>\377\266y<\377\275~>\377\302\203E\377\274}>\377\276~?\377\276~?\377\276"
|
||||
"\177?\377\266y<\377\267z<\377\271{=\377\274}>\377\300\200A\377\274}>\377"
|
||||
"\276~?\377\271{=\377\264x;\377\266y<\377\276\177?\377\300\200@\377\276~?"
|
||||
"\377\276~?\377\302\203E\377\275~>\377\265y<\377\266y<\377\275~>\377\276\177"
|
||||
"?\377\240j\065\377dB\037\377\065\"\020\370\264x;\377\331\263\215\377\302\204"
|
||||
"F\377\263w;\377\300\201A\377\300\200@\377\274}>\377\271{=\377\273}>\377\300"
|
||||
"\201A\377\266y<\377\267y<\377\272|=\377\300\201A\377\301\202B\377\273}>\377"
|
||||
"\300\200@\377\300\200@\377\273|>\377\276~?\377\300\200@\377\276~?\377\272"
|
||||
"|=\377\270{=\377\300\201A\377\277\177?\377\274}>\377\266y<\377\301\201B\377"
|
||||
"\273}>\377\270z=\377\274}>\377\274}>\377\275~>\377\300\200@\377\301\202C"
|
||||
"\377\301\202B\377\264x;\377\241k\065\377eB\040\377\065\"\020\370kG#\377\210["
|
||||
"-\377\233g\063\377\215^.\377\214].\377\215^/\377\216^/\377\207Z-\377\206Y"
|
||||
",\377\201V+\377\214].\377\207Z-\377\204X,\377\210Z-\377\216_/\377\233g\063"
|
||||
"\377\223b\061\377\222a\060\377\226d\062\377\214].\377\210[-\377\210Z-\377\215"
|
||||
"^/\377\224c\061\377\225c\061\377\230e\062\377\224b\061\377\227e\062\377\225c\061"
|
||||
"\377\231f\062\377\227d\062\377\230e\062\377\223b\061\377\224b\061\377\223b\061"
|
||||
"\377\232g\063\377\231f\062\377\216_/\377\211[-\377fC\040\377\065\"\020\370\304"
|
||||
"\206I\025[\071\034\377P\063\031\377cA\037\377gC!\377eA\040\377cA\040\377eB\040\377"
|
||||
"cA\037\377b@\037\377c@\037\377cA\037\377c@\037\377c@\037\377c@\037\377b@\037\377"
|
||||
"b@\037\377c@\037\377c@\037\377_>\036\377a?\037\377a?\037\377c@\037\377b?\037\377"
|
||||
"a?\037\377`>\036\377^>\036\377^>\036\377_>\036\377^>\036\377`>\036\377`>\036\377"
|
||||
"`>\036\377`>\036\377`>\036\377a?\037\377`>\036\377c@\037\377Y:\034\377L\061\027\377"
|
||||
"\065\"\020\370\004\003\001\000a@\040\377D,\025\377C+\025\377S\066\032\377V\070\033\377U\066"
|
||||
"\032\377S\066\032\377U\067\032\377S\066\032\377S\066\032\377S\066\032\377S\066\032\377"
|
||||
"S\066\032\377S\066\032\377S\066\032\377S\066\032\377S\066\032\377S\066\032\377S\066\032"
|
||||
"\377Q\064\031\377R\065\032\377R\065\032\377S\066\032\377S\065\032\377R\065\032\377Q\064"
|
||||
"\031\377P\064\031\377P\064\031\377Q\064\031\377P\064\031\377Q\064\031\377Q\064\031\377"
|
||||
"Q\064\031\377Q\064\031\377Q\064\031\377R\065\032\377Q\064\031\377O\063\030\377='\022\377"
|
||||
"\065\"\020\373\004\003\001\000J\061\031\334A*\024\377L\061\030\377N\063\030\377V\070\033\377"
|
||||
"U\066\032\377S\066\032\377U\067\032\377S\066\032\377S\066\032\377S\066\032\377S\066\032"
|
||||
"\377S\066\032\377S\066\032\377S\066\032\377S\066\032\377S\066\032\377S\066\032\377S\066"
|
||||
"\032\377Q\064\031\377R\065\032\377R\065\032\377S\066\032\377S\065\032\377R\065\032\377"
|
||||
"Q\064\031\377P\064\031\377P\064\031\377Q\064\031\377P\064\031\377Q\064\031\377Q\064\031"
|
||||
"\377Q\064\031\377Q\064\031\377Q\064\031\377R\065\032\377Q\064\031\377S\066\032\377I/"
|
||||
"\027\377\065\"\020\376",
|
||||
};
|
||||
|
||||
static const char tempOrngDn[] = {
|
||||
"\004\003\001\000\004\003\001\000\004\003\001\000\004\003\001\000\004\003\001\000\004\003\001\000\004\003\001\000\004\003\001\000\004\003\001\000"
|
||||
"\004\003\001\000\004\003\001\000\004\003\001\000\004\003\001\000\004\003\001\000\004\003\001\000\004\003\001\000\004\003\001\000\004\003\001\000"
|
||||
"\004\003\001\000\004\003\001\000\004\003\001\000\004\003\001\000\004\003\001\000\004\003\001\000\004\003\001\000\004\003\001\000\004\003\001\000"
|
||||
"\004\003\001\000\004\003\001\000\004\003\001\000\004\003\001\000\004\003\001\000\004\003\001\000\004\003\001\000\004\003\001\000\004\003\001\000"
|
||||
"\004\003\001\000\004\003\001\000\004\003\001\000\004\003\001\000\004\003\001\000\004\003\001\000>(\024&>(\024\331>(\024\235"
|
||||
">(\024\235>(\024\235>(\024\235>(\024\235>(\024\235>(\024\235>(\024\235>(\024\235"
|
||||
">(\024\235>(\024\235>(\024\235>(\024\235>(\024\235>(\024\235>(\024\235>(\024\235"
|
||||
">(\024\235>(\024\235>(\024\235>(\024\235>(\024\235>(\024\235>(\024\235>(\024\235"
|
||||
">(\024\235>(\024\235>(\024\235>(\024\235>(\024\235>(\024\235>(\024\235>(\024\235"
|
||||
">(\024\235>(\024\235>(\024\235\004\003\001\000\004\003\001\000\004\003\001\000eC!\377_@\036\377\217_"
|
||||
"/\377\212\\.\377\217_/\377\213].\377\215^.\377\211[-\377\217_/\377\214]."
|
||||
"\377\221`\060\377\213].\377\212\\-\377\216_/\377\216^/\377\222a\060\377\212"
|
||||
"\\-\377\214].\377\211[-\377\213\\.\377\216_/\377\216^/\377\215^/\377\215"
|
||||
"^/\377\213].\377\212\\-\377\220`/\377\212\\.\377\211[-\377\215^/\377\216"
|
||||
"_/\377\212\\-\377\210Z-\377\213\\.\377\222a\060\377\221`\060\377\215^/\377"
|
||||
"\212\\-\377\217_/\360\004\003\001\000\004\003\001\000a?\037\377K\066\"\377uX;\377}^A\377|]"
|
||||
">\377}^A\377}^A\377|]=\377|]?\377|]?\377}^A\377|]?\377|]?\377}_A\377}_B\377"
|
||||
"}^@\377|]>\377}^?\377}^A\377|\\=\377|]?\377}^@\377}^?\377}_A\377}^@\377|"
|
||||
"\\=\377}^@\377|]=\377}^@\377|]?\377|]>\377}^@\377}^@\377}^@\377|\\=\377}"
|
||||
"^@\377}^@\377pJ$\375jF!\313>(\024+\004\003\001\000_>\036\377vY=\377\264~G\377\265|"
|
||||
"E\377\266\177I\377\265|E\377\267\201K\377\266\177H\377\264|D\377\266~G\377"
|
||||
"\270\202M\377\264{D\377\266~G\377\266\177H\377\265|E\377\264{D\377\266\177"
|
||||
"I\377\263zA\377\265~G\377\265|E\377\265~G\377\264{C\377\267\200J\377\266"
|
||||
"\177G\377\265|E\377\264{B\377\266\177H\377\266~G\377\266\177I\377\266\177"
|
||||
"I\377\265|E\377\264{B\377\265|E\377\266\177I\377\267\201K\377\265|E\377\265"
|
||||
"~G\377\261w<\377\245m\066\360>(\024\036\004\003\001\000_>\036\377\204cC\377\301\201B"
|
||||
"\377\270z=\377\270z=\377\300\200A\377\265y<\377\266y<\377\301\202C\377\265"
|
||||
"x<\377\271{=\377\271{=\377\267y<\377\275~>\377\300\200@\377\273}>\377\267"
|
||||
"z<\377\273}>\377\266y<\377\300\200@\377\272{=\377\265y<\377\272|=\377\264"
|
||||
"x;\377\300\200@\377\300\201A\377\276\177?\377\261v:\377\301\202C\377\267"
|
||||
"z<\377\275~>\377\267z<\377\267z<\377\275~>\377\267z<\377\267z<\377\301\201"
|
||||
"B\377\275}>\377\237j\064\377\065\"\020\262\004\003\001\000^>\036\377\204cB\377\267y<"
|
||||
"\377\276~?\377\261u:\377\267y<\377\271{=\377\273|>\377\276~?\377\275~>\377"
|
||||
"\266y<\377\274}>\377\275~>\377\265y<\377\275~>\377\262v;\377\270{=\377\267"
|
||||
"z<\377\267y<\377\276~?\377\265y<\377\273}>\377\300\200@\377\276\177?\377"
|
||||
"\263w;\377\270z=\377\275~>\377\265y<\377\270z=\377\272|=\377\266y<\377\275"
|
||||
"~>\377\272|=\377\272|=\377\270z=\377\264x;\377\273|>\377\276~?\377\232f\063"
|
||||
"\377\065\"\020\262\004\003\001\000^>\036\377\205eE\377\301\203D\377\274}>\377\267y<"
|
||||
"\377\300\200A\377\271{=\377\273|>\377\277\177?\377\264x<\377\266y<\377\272"
|
||||
"{=\377\275~>\377\260u:\377\267y<\377\300\200@\377\300\200A\377\275}>\377"
|
||||
"\267y<\377\270z=\377\264x;\377\276~?\377\265x<\377\275~>\377\272|=\377\276"
|
||||
"~?\377\300\200@\377\271{=\377\272{=\377\270{=\377\263w;\377\276~?\377\272"
|
||||
"{=\377\262v;\377\263w;\377\300\200A\377\267y<\377\274}>\377\234h\064\377\065"
|
||||
"\"\020\262\004\003\001\000_>\036\377\204cC\377\301\202C\377\273|>\377\262v;\377\267"
|
||||
"y<\377\301\201B\377\274}>\377\274}>\377\277\177?\377\300\201A\377\270z=\377"
|
||||
"\267y<\377\301\201B\377\275~>\377\272|=\377\274}>\377\266y<\377\271{=\377"
|
||||
"\271{=\377\274}>\377\300\200@\377\277\177?\377\275}>\377\273|>\377\273|>"
|
||||
"\377\275~>\377\276~?\377\271{=\377\301\201B\377\271{=\377\271{=\377\277\177"
|
||||
"?\377\301\201B\377\274}>\377\261u:\377\301\202C\377\301\201B\377\231f\063"
|
||||
"\377\065\"\020\262\004\003\001\000_>\036\377\205dD\377\303\206I\377\271{=\377\265x<"
|
||||
"\377\272|=\377\275~>\377\273}>\377\301\202C\377\277\177?\377\272|=\377\265"
|
||||
"x<\377\266y<\377\264x;\377\273|>\377\274}>\377\272{=\377\274}>\377\266y<"
|
||||
"\377\267z<\377\271{=\377\266y<\377\271{=\377\267z<\377\264x;\377\275}>\377"
|
||||
"\266y<\377\274}>\377\301\201B\377\277\177?\377\272|=\377\262v;\377\301\201"
|
||||
"B\377\300\201A\377\273|>\377\276~?\377\301\201B\377\264x<\377\243m\066\377"
|
||||
"\065\"\020\262\004\003\001\000_>\036\377\204cC\377\302\204F\377\267z<\377\263w;\377"
|
||||
"\265x<\377\267z<\377\262v;\377\265y<\377\300\200A\377\277\177?\377\274}>"
|
||||
"\377\277\177?\377\270z=\377\262v;\377\300\200@\377\272|>\377\261v:\377\267"
|
||||
"y<\377\266y<\377\301\201B\377\272|=\377\267z<\377\272{=\377\271{=\377\270"
|
||||
"z=\377\272|=\377\274}>\377\266y<\377\300\200@\377\270{=\377\267y<\377\274"
|
||||
"}>\377\275}>\377\274}>\377\271{=\377\275}>\377\274}>\377\236i\064\377\065\""
|
||||
"\020\262\004\003\001\000_>\037\377\204cC\377\300\200@\377\301\201B\377\277\177?\377"
|
||||
"\276~?\377\266y<\377\275}>\377\271{=\377\267y<\377\273|>\377\264x;\377\274"
|
||||
"}>\377\276~?\377\271{=\377\267y<\377\274}>\377\267y<\377\265x<\377\275}>"
|
||||
"\377\267y<\377\300\201A\377\276~?\377\267y<\377\264x;\377\276~?\377\301\202"
|
||||
"C\377\271{=\377\270z=\377\272|=\377\275~>\377\266y<\377\272|>\377\271{=\377"
|
||||
"\300\200@\377\300\200@\377\267z<\377\274}>\377\237j\064\377\065\"\020\262\004"
|
||||
"\003\001\000_>\036\377\205eE\377\274}>\377\261u:\377\267y<\377\267y<\377\272{=\377"
|
||||
"\276~?\377\271{=\377\266y<\377\271{=\377\272|>\377\300\200A\377\271{=\377"
|
||||
"\273|>\377\265y<\377\264x<\377\300\200@\377\271{=\377\262v;\377\262w;\377"
|
||||
"\264x<\377\301\201B\377\274}>\377\272|=\377\265x<\377\300\200@\377\271{="
|
||||
"\377\301\203D\377\265x<\377\277\177?\377\301\202C\377\274}>\377\276~?\377"
|
||||
"\264x;\377\271{=\377\271{=\377\272|=\377\235i\064\377\065\"\020\262\004\003\001\000"
|
||||
"_>\036\377\204cC\377\267z<\377\271{=\377\300\200@\377\267z<\377\271{=\377"
|
||||
"\262v;\377\276~?\377\263w;\377\265x<\377\266y<\377\272|=\377\300\177?\377"
|
||||
"\274}>\377\266y<\377\300\200@\377\267y<\377\275~>\377\275}>\377\276~?\377"
|
||||
"\266y<\377\275}>\377\300\177?\377\263w;\377\266y<\377\270z=\377\263w;\377"
|
||||
"\264x<\377\274}>\377\277\177?\377\271{=\377\300\200@\377\277\177?\377\271"
|
||||
"{=\377\300\201A\377\273|>\377\266y<\377\250p\067\377\065\"\020\262\004\003\001\000^"
|
||||
">\036\377\204cB\377\277\177?\377\300\200@\377\275}>\377\270z=\377\267y<\377"
|
||||
"\275~>\377\271{=\377\266y<\377\271{=\377\274}>\377\271{=\377\263w;\377\260"
|
||||
"u:\377\277\177?\377\262w;\377\275}>\377\273|>\377\301\201B\377\262v;\377"
|
||||
"\267y<\377\272|>\377\267y<\377\274}>\377\273|>\377\300\200A\377\267z<\377"
|
||||
"\265y<\377\275}>\377\266y<\377\271{=\377\262v;\377\273|>\377\271{=\377\300"
|
||||
"\200@\377\274}>\377\274}>\377\243l\066\377\065\"\020\262\004\003\001\000]>\036\377\203"
|
||||
"a@\377\267z<\377\267z<\377\266y<\377\264x;\377\266y<\377\266y<\377\300\200"
|
||||
"A\377\272|>\377\271{=\377\272|=\377\273}>\377\274}>\377\273|>\377\272|=\377"
|
||||
"\301\201B\377\276~?\377\265y<\377\265x<\377\270z=\377\266y<\377\262v;\377"
|
||||
"\267z<\377\264x;\377\301\202C\377\274}>\377\266y<\377\265x<\377\301\202C"
|
||||
"\377\265y<\377\267y<\377\274}>\377\263w;\377\270{=\377\263w;\377\266y<\377"
|
||||
"\275~>\377\242l\066\377\065\"\020\262\004\003\001\000^>\036\377\204bB\377\271{=\377\267"
|
||||
"y<\377\267y<\377\274}>\377\274}>\377\266y<\377\274}>\377\273|>\377\276~?"
|
||||
"\377\277\177?\377\266y<\377\301\202C\377\274}>\377\274}>\377\261v:\377\275"
|
||||
"~>\377\267z<\377\273|>\377\265x<\377\264x<\377\274}>\377\271{=\377\274}>"
|
||||
"\377\274}>\377\266y<\377\274}>\377\274}>\377\300\201A\377\301\202C\377\276"
|
||||
"~?\377\275~>\377\273|>\377\276~?\377\261v;\377\266y<\377\276~?\377\232f\063"
|
||||
"\377\065\"\020\262\004\003\001\000^>\036\377\204b@\377\277\177?\377\263w;\377\272|="
|
||||
"\377\267y<\377\270z=\377\266y<\377\300\200@\377\267z<\377\277\177?\377\300"
|
||||
"\200@\377\276~?\377\274}>\377\272|=\377\275~>\377\275}>\377\273|>\377\270"
|
||||
"z=\377\277\177?\377\266y<\377\265x<\377\264x;\377\267z<\377\267y<\377\267"
|
||||
"z=\377\274}>\377\275}>\377\272|=\377\271{=\377\275}>\377\270z=\377\265x<"
|
||||
"\377\275}>\377\267y<\377\266y<\377\274}>\377\274}>\377\240j\065\377\065\"\020"
|
||||
"\262\004\003\001\000^>\036\377\203`>\377\300\201A\377\300\200@\377\265x<\377\276~"
|
||||
"?\377\267z<\377\274}>\377\271{=\377\267y<\377\265x<\377\274}>\377\276~?\377"
|
||||
"\272|=\377\276~?\377\274}>\377\263w;\377\266y<\377\274}>\377\267z=\377\266"
|
||||
"y<\377\272|=\377\275}>\377\274}>\377\272|>\377\265x<\377\273|>\377\275}>"
|
||||
"\377\267z<\377\300\201A\377\271{=\377\266y<\377\275~>\377\274}>\377\300\200"
|
||||
"@\377\270{=\377\301\201B\377\266y<\377\243l\066\377\065\"\020\262\004\003\001\000]>"
|
||||
"\036\377\204cB\377\270z=\377\263w;\377\275}>\377\267y<\377\277\177?\377\277"
|
||||
"\177?\377\267z<\377\274}>\377\277\177?\377\267y<\377\274}>\377\300\200A\377"
|
||||
"\273|>\377\276~?\377\274}>\377\272|=\377\277\177?\377\272|=\377\272|=\377"
|
||||
"\264w;\377\300\200@\377\274}>\377\271{=\377\266y<\377\271{=\377\273|>\377"
|
||||
"\273|>\377\271{=\377\272|=\377\275~>\377\270z=\377\270z=\377\266y<\377\300"
|
||||
"\200@\377\273|>\377\266y<\377\242l\065\377\065\"\020\262\004\003\001\000]>\036\377\204"
|
||||
"b@\377\275~?\377\271{=\377\275}>\377\271{=\377\260u:\377\271{=\377\274}>"
|
||||
"\377\274}>\377\267z<\377\262w;\377\300\200@\377\274}>\377\266y<\377\274}"
|
||||
">\377\277\177?\377\275~>\377\300\177?\377\272|=\377\266y<\377\273|>\377\274"
|
||||
"}>\377\271{=\377\266y<\377\275~>\377\274}>\377\300\200@\377\272|=\377\275"
|
||||
"}>\377\267y<\377\274}>\377\272{=\377\277\177?\377\270z=\377\277\177?\377"
|
||||
"\265x<\377\277\177?\377\244m\066\377\065\"\020\262\004\003\001\000^>\036\377\205eD\377"
|
||||
"\301\201B\377\272|=\377\300\177?\377\265x<\377\267z<\377\271{=\377\271{="
|
||||
"\377\271{=\377\274}>\377\267z<\377\275~>\377\300\201A\377\271{=\377\265y"
|
||||
"<\377\272|>\377\263w;\377\300\200A\377\271{=\377\275~>\377\274}>\377\271"
|
||||
"{=\377\300\200A\377\264x;\377\266y<\377\274}>\377\267z<\377\272|=\377\267"
|
||||
"z<\377\273|>\377\272|=\377\271{=\377\267y<\377\271{=\377\273|>\377\274}>"
|
||||
"\377\276\177?\377\242l\065\377\065\"\020\262\004\003\001\000^>\036\377\204cC\377\265"
|
||||
"x<\377\266y<\377\272|=\377\262v;\377\273}>\377\271{=\377\301\203D\377\271"
|
||||
"{=\377\300\201A\377\270z=\377\273|>\377\267y<\377\267z<\377\266y<\377\301"
|
||||
"\201B\377\272|=\377\270z=\377\265y<\377\272|=\377\263w;\377\266y<\377\274"
|
||||
"}>\377\275~>\377\275}>\377\272|>\377\261u:\377\271{=\377\275~>\377\275~>"
|
||||
"\377\266y<\377\271{=\377\263w;\377\300\200@\377\266y<\377\277\177?\377\276"
|
||||
"~?\377\235h\064\377\065\"\020\262\004\003\001\000^>\036\377\204bB\377\275~?\377\270{"
|
||||
"=\377\277\177?\377\263w;\377\300\200@\377\274}>\377\267y<\377\301\202C\377"
|
||||
"\267z<\377\271{=\377\276~?\377\266y<\377\274}>\377\262v;\377\300\200A\377"
|
||||
"\266y<\377\270z=\377\267z<\377\272|=\377\270z=\377\277\177?\377\266y<\377"
|
||||
"\301\202C\377\266y<\377\272{=\377\274}>\377\276~?\377\274}>\377\270z=\377"
|
||||
"\267z<\377\264x<\377\266y<\377\265y<\377\262v;\377\271{=\377\301\202D\377"
|
||||
"\237j\064\377\065\"\020\262\004\003\001\000^>\036\377\204b@\377\301\202C\377\274}>\377"
|
||||
"\274}>\377\276~?\377\271{=\377\271{=\377\276~?\377\301\201B\377\300\200@"
|
||||
"\377\277\177?\377\273|>\377\273|>\377\271{=\377\265y<\377\274}>\377\276~"
|
||||
"?\377\273|>\377\275~>\377\300\200?\377\277\177?\377\300\200@\377\262v;\377"
|
||||
"\301\202C\377\263w;\377\275~>\377\266y<\377\263w;\377\266y<\377\266y<\377"
|
||||
"\277\177?\377\261v:\377\267z<\377\275}>\377\274}>\377\267z<\377\300\200@"
|
||||
"\377\237j\064\377\065\"\020\262\004\003\001\000_>\036\377\204bB\377\271{=\377\302\203"
|
||||
"E\377\274}>\377\275~>\377\266y<\377\264x;\377\274}>\377\264x;\377\274}>\377"
|
||||
"\300\177?\377\266y<\377\270z=\377\266y<\377\271{=\377\300\200?\377\277\177"
|
||||
"?\377\262v;\377\275~>\377\263w;\377\271{=\377\275}>\377\276~?\377\274}>\377"
|
||||
"\267z<\377\272|>\377\274}>\377\302\203E\377\271{=\377\271{=\377\277\177?"
|
||||
"\377\272|=\377\261v:\377\275~>\377\264x;\377\267y<\377\301\201B\377\235i"
|
||||
"\064\377\065\"\020\262\004\003\001\000^>\036\377nQ\064\377\303\205H\377\266y<\377\274"
|
||||
"}>\377\274}>\377\270z=\377\273|>\377\270{=\377\276~?\377\273}>\377\266y<"
|
||||
"\377\275~>\377\302\203E\377\274}>\377\276~?\377\276~?\377\276\177?\377\266"
|
||||
"y<\377\267z<\377\271{=\377\274}>\377\300\200A\377\274}>\377\276~?\377\271"
|
||||
"{=\377\264x;\377\266y<\377\276\177?\377\300\200@\377\276~?\377\276~?\377"
|
||||
"\302\203E\377\275~>\377\265y<\377\266y<\377\275~>\377\276\177?\377\240j\065"
|
||||
"\377\065\"\020\262\004\003\001\000L\062\030\377>(\024\377\302\204F\377\263w;\377\300\201"
|
||||
"A\377\300\200@\377\274}>\377\271{=\377\273}>\377\300\201A\377\266y<\377\267"
|
||||
"y<\377\272|=\377\300\201A\377\301\202B\377\273}>\377\300\200@\377\300\200"
|
||||
"@\377\273|>\377\276~?\377\300\200@\377\276~?\377\272|=\377\270{=\377\300"
|
||||
"\201A\377\277\177?\377\274}>\377\266y<\377\301\201B\377\273}>\377\270z=\377"
|
||||
"\274}>\377\274}>\377\275~>\377\300\200@\377\301\202C\377\301\202B\377\264"
|
||||
"x;\377\241k\065\377\065\"\020\262\004\003\001\000fC!\377cA\040\377\233g\063\377\215^."
|
||||
"\377\214].\377\215^/\377\216^/\377\207Z-\377\206Y,\377\201V+\377\214].\377"
|
||||
"\207Z-\377\204X,\377\210Z-\377\216_/\377\233g\063\377\223b\061\377\222a\060"
|
||||
"\377\226d\062\377\214].\377\210[-\377\210Z-\377\215^/\377\224c\061\377\225"
|
||||
"c\061\377\230e\062\377\224b\061\377\227e\062\377\225c\061\377\231f\062\377\227"
|
||||
"d\062\377\230e\062\377\223b\061\377\224b\061\377\223b\061\377\232g\063\377\231"
|
||||
"f\062\377\216_/\377\211[-\377\065\"\020\262\004\003\001\000V\071\035\177F-\026\377P\063"
|
||||
"\031\377cA\037\377gC!\377eA\040\377cA\040\377eB\040\377cA\037\377b@\037\377c@\037"
|
||||
"\377cA\037\377c@\037\377c@\037\377c@\037\377b@\037\377b@\037\377c@\037\377c@\037"
|
||||
"\377_>\036\377a?\037\377a?\037\377c@\037\377b?\037\377a?\037\377`>\036\377^>\036"
|
||||
"\377^>\036\377_>\036\377^>\036\377`>\036\377`>\036\377`>\036\377`>\036\377`>\036"
|
||||
"\377a?\037\377`>\036\377c@\037\377Y:\034\377\065\"\020\324",
|
||||
};
|
||||
|
||||
|
||||
const char* Artwork::orngBtnUp = (const char*)tempOrngUp;
|
||||
const char* Artwork::orngBtnDn = (const char*)tempOrngDn;
|
||||
|
|
@ -19,14 +19,15 @@
|
|||
#include "chassis.hpp"
|
||||
|
||||
void Chassis::initParameter(uint32_t index, Parameter& parameter) {
|
||||
switch (index) {
|
||||
case pLFORate:
|
||||
parameter.hints = kParameterIsAutomatable;
|
||||
parameter.name = "LFO Rate";
|
||||
parameter.symbol = "ch_lforate";
|
||||
parameter.ranges.min = 0.0f;
|
||||
parameter.ranges.max = 127.0f;
|
||||
parameter.ranges.def = 48.0f;
|
||||
parameter.hints = kParameterIsAutomatable;
|
||||
parameter.ranges.def = 0.0f;
|
||||
|
||||
switch (index) {
|
||||
case pLFORate:
|
||||
parameter.name = "LFO Rate";
|
||||
parameter.symbol = "ch_lforate";
|
||||
parameter.midiCC = 3;
|
||||
break;
|
||||
|
||||
|
@ -34,9 +35,6 @@ void Chassis::initParameter(uint32_t index, Parameter& parameter) {
|
|||
parameter.hints = kParameterIsAutomatable;
|
||||
parameter.name = "LFO Delay";
|
||||
parameter.symbol = "ch_lfodelay";
|
||||
parameter.ranges.min = 0.0f;
|
||||
parameter.ranges.max = 127.0f;
|
||||
parameter.ranges.def = 0.0f;
|
||||
parameter.midiCC = 9;
|
||||
break;
|
||||
|
||||
|
@ -44,9 +42,7 @@ void Chassis::initParameter(uint32_t index, Parameter& parameter) {
|
|||
parameter.hints = kParameterIsAutomatable | kParameterIsInteger;
|
||||
parameter.name = "Range";
|
||||
parameter.symbol = "ch_vcorange";
|
||||
parameter.ranges.min = 0.0f;
|
||||
parameter.ranges.max = 2.0f;
|
||||
parameter.ranges.def = 1.0f;
|
||||
parameter.midiCC = 12;
|
||||
parameter.enumValues.count = 3;
|
||||
parameter.enumValues.restrictedMode = true;
|
||||
|
@ -66,9 +62,6 @@ void Chassis::initParameter(uint32_t index, Parameter& parameter) {
|
|||
parameter.hints = kParameterIsAutomatable;
|
||||
parameter.name = "LFO";
|
||||
parameter.symbol = "ch_lfo";
|
||||
parameter.ranges.min = 0.0f;
|
||||
parameter.ranges.max = 127.0f;
|
||||
parameter.ranges.def = 10.0f;
|
||||
parameter.midiCC = 13;
|
||||
break;
|
||||
|
||||
|
@ -76,9 +69,6 @@ void Chassis::initParameter(uint32_t index, Parameter& parameter) {
|
|||
parameter.hints = kParameterIsAutomatable;
|
||||
parameter.name = "PWM";
|
||||
parameter.symbol = "ch_pwm";
|
||||
parameter.ranges.min = 0.0f;
|
||||
parameter.ranges.max = 127.0f;
|
||||
parameter.ranges.def = 48.0f;
|
||||
parameter.midiCC = 14;
|
||||
break;
|
||||
/*
|
||||
|
@ -106,9 +96,7 @@ void Chassis::initParameter(uint32_t index, Parameter& parameter) {
|
|||
parameter.hints = kParameterIsAutomatable | kParameterIsBoolean;
|
||||
parameter.name = "Saw";
|
||||
parameter.symbol = "ch_saw";
|
||||
parameter.ranges.min = 0.0f;
|
||||
parameter.ranges.max = 1.0f;
|
||||
parameter.ranges.def = 0.0f;
|
||||
parameter.midiCC = 17;
|
||||
break;
|
||||
|
||||
|
@ -116,9 +104,7 @@ void Chassis::initParameter(uint32_t index, Parameter& parameter) {
|
|||
parameter.hints = kParameterIsAutomatable | kParameterIsBoolean;
|
||||
parameter.name = "Square";
|
||||
parameter.symbol = "ch_sqr";
|
||||
parameter.ranges.min = 0.0f;
|
||||
parameter.ranges.max = 1.0f;
|
||||
parameter.ranges.def = 0.0f;
|
||||
parameter.midiCC = 16;
|
||||
break;
|
||||
|
||||
|
@ -126,9 +112,6 @@ void Chassis::initParameter(uint32_t index, Parameter& parameter) {
|
|||
parameter.hints = kParameterIsAutomatable;
|
||||
parameter.name = "Sub Osc";
|
||||
parameter.symbol = "ch_sub";
|
||||
parameter.ranges.min = 0.0f;
|
||||
parameter.ranges.max = 127.0f;
|
||||
parameter.ranges.def = 0.0f;
|
||||
parameter.midiCC = 18;
|
||||
break;
|
||||
|
||||
|
@ -136,9 +119,6 @@ void Chassis::initParameter(uint32_t index, Parameter& parameter) {
|
|||
parameter.hints = kParameterIsAutomatable;
|
||||
parameter.name = "Noise";
|
||||
parameter.symbol = "ch_noise";
|
||||
parameter.ranges.min = 0.0f;
|
||||
parameter.ranges.max = 127.0f;
|
||||
parameter.ranges.def = 0.0f;
|
||||
parameter.midiCC = 19;
|
||||
break;
|
||||
|
||||
|
@ -146,9 +126,7 @@ void Chassis::initParameter(uint32_t index, Parameter& parameter) {
|
|||
parameter.hints = kParameterIsAutomatable | kParameterIsInteger;
|
||||
parameter.name = "HPF";
|
||||
parameter.symbol = "ch_hpf";
|
||||
parameter.ranges.min = 0.0f;
|
||||
parameter.ranges.max = 3.9f;
|
||||
parameter.ranges.def = 0.0f;
|
||||
parameter.ranges.max = 4.0f;
|
||||
parameter.midiCC = 20;
|
||||
break;
|
||||
|
||||
|
@ -156,18 +134,12 @@ void Chassis::initParameter(uint32_t index, Parameter& parameter) {
|
|||
parameter.hints = kParameterIsAutomatable;
|
||||
parameter.name = "Freq";
|
||||
parameter.symbol = "ch_freq";
|
||||
parameter.ranges.min = 0.0f;
|
||||
parameter.ranges.max = 127.0f;
|
||||
parameter.ranges.def = 60.0f;
|
||||
parameter.midiCC = 74;
|
||||
break;
|
||||
case pRes:
|
||||
parameter.hints = kParameterIsAutomatable;
|
||||
parameter.name = "Res";
|
||||
parameter.symbol = "ch_reso";
|
||||
parameter.ranges.min = 0.0f;
|
||||
parameter.ranges.max = 127.0f;
|
||||
parameter.ranges.def = 0.0f;
|
||||
parameter.midiCC = 71;
|
||||
break;
|
||||
/*
|
||||
|
@ -195,27 +167,18 @@ void Chassis::initParameter(uint32_t index, Parameter& parameter) {
|
|||
parameter.hints = kParameterIsAutomatable;
|
||||
parameter.name = "Env";
|
||||
parameter.symbol = "ch_vcfenv";
|
||||
parameter.ranges.min = 0.0f;
|
||||
parameter.ranges.max = 127.0f;
|
||||
parameter.ranges.def = 46.0f;
|
||||
parameter.midiCC = 22;
|
||||
break;
|
||||
case pLfo:
|
||||
parameter.hints = kParameterIsAutomatable;
|
||||
parameter.name = "LFO";
|
||||
parameter.symbol = "ch_vcflfo";
|
||||
parameter.ranges.min = 0.0f;
|
||||
parameter.ranges.max = 127.0f;
|
||||
parameter.ranges.def = 0.0f;
|
||||
parameter.midiCC = 23;
|
||||
break;
|
||||
case pKyb:
|
||||
parameter.hints = kParameterIsAutomatable;
|
||||
parameter.name = "Kybd";
|
||||
parameter.symbol = "ch_vcfkey";
|
||||
parameter.ranges.min = 0.0f;
|
||||
parameter.ranges.max = 127.0f;
|
||||
parameter.ranges.def = 71.0f;
|
||||
parameter.midiCC = 24;
|
||||
break;
|
||||
|
||||
|
@ -223,9 +186,6 @@ void Chassis::initParameter(uint32_t index, Parameter& parameter) {
|
|||
parameter.hints = kParameterIsAutomatable;
|
||||
parameter.name = "Attack";
|
||||
parameter.symbol = "ch_attack";
|
||||
parameter.ranges.min = 0.0f;
|
||||
parameter.ranges.max = 127.0f;
|
||||
parameter.ranges.def = 27.0f;
|
||||
parameter.midiCC = 73;
|
||||
break;
|
||||
|
||||
|
@ -233,9 +193,6 @@ void Chassis::initParameter(uint32_t index, Parameter& parameter) {
|
|||
parameter.hints = kParameterIsAutomatable;
|
||||
parameter.name = "Decay";
|
||||
parameter.symbol = "ch_decay";
|
||||
parameter.ranges.min = 0.0f;
|
||||
parameter.ranges.max = 127.0f;
|
||||
parameter.ranges.def = 57.0f;
|
||||
parameter.midiCC = 75;
|
||||
break;
|
||||
|
||||
|
@ -243,9 +200,6 @@ void Chassis::initParameter(uint32_t index, Parameter& parameter) {
|
|||
parameter.hints = kParameterIsAutomatable;
|
||||
parameter.name = "Sustain";
|
||||
parameter.symbol = "ch_sustain";
|
||||
parameter.ranges.min = 0.0f;
|
||||
parameter.ranges.max = 127.0f;
|
||||
parameter.ranges.def = 57.0f;
|
||||
parameter.midiCC = 27;
|
||||
break;
|
||||
|
||||
|
@ -253,9 +207,6 @@ void Chassis::initParameter(uint32_t index, Parameter& parameter) {
|
|||
parameter.hints = kParameterIsAutomatable;
|
||||
parameter.name = "Release";
|
||||
parameter.symbol = "ch_release";
|
||||
parameter.ranges.min = 0.0f;
|
||||
parameter.ranges.max = 127.0f;
|
||||
parameter.ranges.def = 48.0f;
|
||||
parameter.midiCC = 72;
|
||||
break;
|
||||
/*
|
||||
|
@ -283,9 +234,6 @@ void Chassis::initParameter(uint32_t index, Parameter& parameter) {
|
|||
parameter.hints = kParameterIsAutomatable;
|
||||
parameter.name = "VCA Level";
|
||||
parameter.symbol = "ch_vcalevel";
|
||||
parameter.ranges.min = 0.0f;
|
||||
parameter.ranges.max = 127.0f;
|
||||
parameter.ranges.def = 40.0f;
|
||||
parameter.midiCC = 26;
|
||||
break;
|
||||
|
||||
|
@ -293,9 +241,7 @@ void Chassis::initParameter(uint32_t index, Parameter& parameter) {
|
|||
parameter.hints = kParameterIsAutomatable | kParameterIsInteger;
|
||||
parameter.name = "Chorus Mode";
|
||||
parameter.symbol = "ch_chorus";
|
||||
parameter.ranges.min = 0.0f;
|
||||
parameter.ranges.max = 2.0f;
|
||||
parameter.ranges.def = 1.0f;
|
||||
parameter.midiCC = 12;
|
||||
parameter.enumValues.count = 3;
|
||||
parameter.enumValues.restrictedMode = true;
|
||||
|
|
30394
plugin/peacock.cpp
30394
plugin/peacock.cpp
File diff suppressed because it is too large
Load Diff
|
@ -2,6 +2,13 @@
|
|||
|
||||
namespace Artwork {
|
||||
|
||||
extern const char *orngBtnUp;
|
||||
extern const char *orngBtnDn;
|
||||
const unsigned int orngBtnSize = 41 * 30 * 4;
|
||||
const unsigned int orngBtnWidth = 41;
|
||||
const unsigned int orngBtnHeight = 30;
|
||||
|
||||
|
||||
extern const char *ledOnData;
|
||||
const unsigned int ledDataSize = 24 * 24 * 4;
|
||||
const unsigned int ledWidth = 24;
|
||||
|
|
260
plugin/ui.cpp
260
plugin/ui.cpp
|
@ -7,6 +7,14 @@ START_NAMESPACE_DISTRHO
|
|||
|
||||
namespace Art = Artwork;
|
||||
|
||||
void prepSlider(ImageSlider* s, uint id, int x, int y) {
|
||||
s->setId(id);
|
||||
s->setStartPos(x, y);
|
||||
s->setEndPos(x, y + 79); // 80px high
|
||||
s->setInverted(true);
|
||||
s->setRange(0, 127.0f);
|
||||
}
|
||||
|
||||
DistrhoUIchassis::DistrhoUIchassis() : UI(Art::backgroundWidth, Art::backgroundHeight, true),
|
||||
fImgBackground(Art::backgroundData, Art::backgroundWidth, Art::backgroundHeight, kImageFormatRGB),
|
||||
fImgLedOn(Art::ledOnData, Art::ledWidth, Art::ledHeight, kImageFormatRGBA)
|
||||
|
@ -18,142 +26,119 @@ DistrhoUIchassis::DistrhoUIchassis() : UI(Art::backgroundWidth, Art::backgroundH
|
|||
Image whiteSlider(Art::whiteData, Art::sliderWidth, Art::sliderHeight, kImageFormatRGBA);
|
||||
|
||||
xSliderLFORate = new ImageSlider(this, orangeSlider);
|
||||
xSliderLFORate->setId(Chassis::pLFORate);
|
||||
xSliderLFORate->setStartPos(50, 72);
|
||||
xSliderLFORate->setEndPos(50, 151);
|
||||
xSliderLFORate->setRange(0, 127.0f);
|
||||
xSliderLFORate->setInverted(true);
|
||||
prepSlider(xSliderLFORate, pLFORate, 46, 72);
|
||||
xSliderLFORate->setCallback(this);
|
||||
|
||||
xSliderLFODelay = new ImageSlider(this, orangeSlider);
|
||||
xSliderLFODelay->setId(Chassis::pLFODelay);
|
||||
xSliderLFODelay->setStartPos(92, 72);
|
||||
xSliderLFODelay->setEndPos(92, 151);
|
||||
xSliderLFODelay->setRange(0, 127.0f);
|
||||
xSliderLFODelay->setInverted(true);
|
||||
prepSlider(xSliderLFODelay, pLFODelay, 84, 72);
|
||||
xSliderLFODelay->setCallback(this);
|
||||
|
||||
xSliderLFODepth = new ImageSlider(this, greenSlider);
|
||||
xSliderLFODepth->setId(Chassis::pLFODepth);
|
||||
xSliderLFODepth->setStartPos(292, 72);
|
||||
xSliderLFODepth->setEndPos(292, 151);
|
||||
xSliderLFODepth->setRange(0, 127.0f);
|
||||
xSliderLFODepth->setInverted(true);
|
||||
prepSlider(xSliderLFODepth, pLFODepth, 290, 72);
|
||||
xSliderLFODepth->setCallback(this);
|
||||
|
||||
xSliderPWMDepth = new ImageSlider(this, greenSlider);
|
||||
xSliderPWMDepth->setId(Chassis::pPWMDepth);
|
||||
xSliderPWMDepth->setStartPos(331, 72);
|
||||
xSliderPWMDepth->setEndPos(331, 151);
|
||||
xSliderPWMDepth->setRange(0, 127.0f);
|
||||
xSliderPWMDepth->setInverted(true);
|
||||
prepSlider(xSliderPWMDepth, pPWMDepth, 329, 72);
|
||||
xSliderPWMDepth->setCallback(this);
|
||||
|
||||
xSliderSubLevel = new ImageSlider(this, greenSlider);
|
||||
xSliderSubLevel->setId(Chassis::pSubLevel);
|
||||
xSliderSubLevel->setStartPos(518, 72);
|
||||
xSliderSubLevel->setEndPos(518, 151);
|
||||
xSliderSubLevel->setRange(0, 127.0f);
|
||||
xSliderSubLevel->setInverted(true);
|
||||
prepSlider(xSliderSubLevel, pSubLevel, 510, 72);
|
||||
xSliderSubLevel->setCallback(this);
|
||||
|
||||
xSliderNoiseLevel = new ImageSlider(this, greenSlider);
|
||||
xSliderNoiseLevel->setId(Chassis::pNoiseLevel);
|
||||
xSliderNoiseLevel->setStartPos(560, 72);
|
||||
xSliderNoiseLevel->setEndPos(560, 151);
|
||||
xSliderNoiseLevel->setRange(0, 127.0f);
|
||||
xSliderNoiseLevel->setInverted(true);
|
||||
prepSlider(xSliderNoiseLevel, pNoiseLevel, 551, 72);
|
||||
xSliderNoiseLevel->setCallback(this);
|
||||
|
||||
xSliderHPF = new ImageSlider(this, blueSlider);
|
||||
xSliderHPF->setId(Chassis::pHPF);
|
||||
xSliderHPF->setStartPos(619, 72);
|
||||
xSliderHPF->setEndPos(619, 151);
|
||||
xSliderHPF->setRange(0, 3.0f);
|
||||
prepSlider(xSliderHPF, pHPF, 618, 72);
|
||||
xSliderHPF->setStep(1);
|
||||
xSliderHPF->setInverted(true);
|
||||
xSliderHPF->setRange(0, 3);
|
||||
xSliderHPF->setCallback(this);
|
||||
|
||||
xSliderCutoff = new ImageSlider(this, blueSlider);
|
||||
xSliderCutoff->setId(Chassis::pCutoff);
|
||||
xSliderCutoff->setStartPos(21, 261);
|
||||
xSliderCutoff->setEndPos(21, 340);
|
||||
xSliderCutoff->setRange(0, 127.0f);
|
||||
xSliderCutoff->setInverted(true);
|
||||
prepSlider(xSliderCutoff, pCutoff, 26, 261);
|
||||
xSliderCutoff->setCallback(this);
|
||||
|
||||
xSliderRes = new ImageSlider(this, blueSlider);
|
||||
xSliderRes->setId(Chassis::pRes);
|
||||
xSliderRes->setStartPos(60, 261);
|
||||
xSliderRes->setEndPos(60, 340);
|
||||
xSliderRes->setRange(0, 127.0f);
|
||||
xSliderRes->setInverted(true);
|
||||
prepSlider(xSliderRes, pRes, 65, 261);
|
||||
xSliderRes->setCallback(this);
|
||||
|
||||
xSliderEnv = new ImageSlider(this, blueSlider);
|
||||
xSliderEnv->setId(Chassis::pEnv);
|
||||
xSliderEnv->setStartPos(144, 261);
|
||||
xSliderEnv->setEndPos(144, 340);
|
||||
xSliderEnv->setRange(0, 127.0f);
|
||||
xSliderEnv->setInverted(true);
|
||||
prepSlider(xSliderEnv, pEnv, 149, 261);
|
||||
xSliderEnv->setCallback(this);
|
||||
|
||||
xSliderLfo = new ImageSlider(this, blueSlider);
|
||||
xSliderLfo->setId(Chassis::pLfo);
|
||||
xSliderLfo->setStartPos(183, 261);
|
||||
xSliderLfo->setEndPos(183, 340);
|
||||
xSliderLfo->setRange(0, 127.0f);
|
||||
xSliderLfo->setInverted(true);
|
||||
prepSlider(xSliderLfo, pLfo, 189, 261);
|
||||
xSliderLfo->setCallback(this);
|
||||
|
||||
xSliderKyb = new ImageSlider(this, blueSlider);
|
||||
xSliderKyb->setId(Chassis::pKyb);
|
||||
xSliderKyb->setStartPos(222, 261);
|
||||
xSliderKyb->setEndPos(222, 340);
|
||||
xSliderKyb->setRange(0, 127.0f);
|
||||
xSliderKyb->setInverted(true);
|
||||
prepSlider(xSliderKyb, pKyb, 228, 261);
|
||||
xSliderKyb->setCallback(this);
|
||||
|
||||
xSliderVCALevel = new ImageSlider(this, whiteSlider);
|
||||
xSliderVCALevel->setId(Chassis::pVCALevel);
|
||||
xSliderVCALevel->setStartPos(314, 261);
|
||||
xSliderVCALevel->setEndPos(314, 340);
|
||||
xSliderVCALevel->setRange(0, 127.0f);
|
||||
xSliderVCALevel->setInverted(true);
|
||||
prepSlider(xSliderVCALevel, pVCALevel, 319, 261);
|
||||
xSliderVCALevel->setCallback(this);
|
||||
|
||||
xSliderAtk = new ImageSlider(this, whiteSlider);
|
||||
xSliderAtk->setId(Chassis::pAtk);
|
||||
xSliderAtk->setStartPos(375, 261);
|
||||
xSliderAtk->setEndPos(375, 340);
|
||||
xSliderAtk->setRange(0, 127.0f);
|
||||
xSliderAtk->setInverted(true);
|
||||
prepSlider(xSliderAtk, pVCALevel, 385, 261);
|
||||
xSliderAtk->setCallback(this);
|
||||
|
||||
xSliderDcy = new ImageSlider(this, whiteSlider);
|
||||
xSliderDcy->setId(Chassis::pDcy);
|
||||
xSliderDcy->setStartPos(414, 261);
|
||||
xSliderDcy->setEndPos(414, 340);
|
||||
xSliderDcy->setRange(0, 127.0f);
|
||||
xSliderDcy->setInverted(true);
|
||||
prepSlider(xSliderDcy, pDcy, 425, 261);
|
||||
xSliderDcy->setCallback(this);
|
||||
|
||||
xSliderStn = new ImageSlider(this, whiteSlider);
|
||||
xSliderStn->setId(Chassis::pStn);
|
||||
xSliderStn->setStartPos(454, 261);
|
||||
xSliderStn->setEndPos(454, 340);
|
||||
xSliderStn->setRange(0, 127.0f);
|
||||
xSliderStn->setInverted(true);
|
||||
prepSlider(xSliderStn, pStn, 465, 261);
|
||||
xSliderStn->setCallback(this);
|
||||
|
||||
xSliderRls = new ImageSlider(this, whiteSlider);
|
||||
xSliderRls->setId(Chassis::pRls);
|
||||
xSliderRls->setStartPos(493, 261);
|
||||
xSliderRls->setEndPos(493, 340);
|
||||
xSliderRls->setRange(0, 127.0f);
|
||||
xSliderRls->setInverted(true);
|
||||
prepSlider(xSliderRls, pRls, 505, 261);
|
||||
xSliderRls->setCallback(this);
|
||||
|
||||
xBtn16ft = new ImageButton(this, Image(Art::orngBtnUp, Art::orngBtnWidth, Art::orngBtnHeight, kImageFormatRGBA),
|
||||
Image(Art::orngBtnDn, Art::orngBtnWidth, Art::orngBtnHeight, kImageFormatRGBA));
|
||||
xBtn16ft->setAbsolutePos(149, 104);
|
||||
xBtn16ft->setId(btn16);
|
||||
xBtn16ft->setCallback(this);
|
||||
xBtn8ft = new ImageButton(this, Image(Art::orngBtnUp, Art::orngBtnWidth, Art::orngBtnHeight, kImageFormatRGBA),
|
||||
Image(Art::orngBtnDn, Art::orngBtnWidth, Art::orngBtnHeight, kImageFormatRGBA));
|
||||
xBtn8ft->setAbsolutePos(190, 104);
|
||||
xBtn8ft->setId(btn8);
|
||||
xBtn8ft->setCallback(this);
|
||||
xBtn4ft = new ImageButton(this, Image(Art::orngBtnUp, Art::orngBtnWidth, Art::orngBtnHeight, kImageFormatRGBA),
|
||||
Image(Art::orngBtnDn, Art::orngBtnWidth, Art::orngBtnHeight, kImageFormatRGBA));
|
||||
xBtn4ft->setAbsolutePos(231, 104);
|
||||
xBtn4ft->setId(btn4);
|
||||
xBtn4ft->setCallback(this);
|
||||
|
||||
// waveform
|
||||
xBtnPls = new ImageButton(this, Image(Art::orngBtnUp, Art::orngBtnWidth, Art::orngBtnHeight, kImageFormatRGBA),
|
||||
Image(Art::orngBtnDn, Art::orngBtnWidth, Art::orngBtnHeight, kImageFormatRGBA));
|
||||
xBtnPls->setAbsolutePos(414, 104);
|
||||
xBtnPls->setId(btnPls);
|
||||
xBtnPls->setCallback(this);
|
||||
xBtnSaw = new ImageButton(this, Image(Art::orngBtnUp, Art::orngBtnWidth, Art::orngBtnHeight, kImageFormatRGBA),
|
||||
Image(Art::orngBtnDn, Art::orngBtnWidth, Art::orngBtnHeight, kImageFormatRGBA));
|
||||
xBtnSaw->setAbsolutePos(455, 104);
|
||||
xBtnSaw->setId(btnSaw);
|
||||
xBtnSaw->setCallback(this);
|
||||
|
||||
// Chorus
|
||||
xBtnCh0 = new ImageButton(this, Image(Art::orngBtnUp, Art::orngBtnWidth, Art::orngBtnHeight, kImageFormatRGBA),
|
||||
Image(Art::orngBtnDn, Art::orngBtnWidth, Art::orngBtnHeight, kImageFormatRGBA));
|
||||
xBtnCh0->setAbsolutePos(562, 293);
|
||||
xBtnCh0->setId(btnCh0);
|
||||
xBtnCh0->setCallback(this);
|
||||
xBtnCh1 = new ImageButton(this, Image(Art::orngBtnUp, Art::orngBtnWidth, Art::orngBtnHeight, kImageFormatRGBA),
|
||||
Image(Art::orngBtnDn, Art::orngBtnWidth, Art::orngBtnHeight, kImageFormatRGBA));
|
||||
xBtnCh1->setAbsolutePos(603, 293);
|
||||
xBtnCh1->setId(btnCh1);
|
||||
xBtnCh1->setCallback(this);
|
||||
xBtnCh2 = new ImageButton(this, Image(Art::orngBtnUp, Art::orngBtnWidth, Art::orngBtnHeight, kImageFormatRGBA),
|
||||
Image(Art::orngBtnDn, Art::orngBtnWidth, Art::orngBtnHeight, kImageFormatRGBA));
|
||||
xBtnCh2->setAbsolutePos(644, 293);
|
||||
xBtnCh2->setId(btnCh2);
|
||||
xBtnCh2->setCallback(this);
|
||||
programLoaded(0);
|
||||
}
|
||||
|
||||
|
@ -163,86 +148,92 @@ DistrhoUIchassis::~DistrhoUIchassis() {
|
|||
|
||||
void DistrhoUIchassis::programLoaded(uint32_t index) {
|
||||
switch (index) {
|
||||
case Chassis::pLFORate:
|
||||
case pLFORate:
|
||||
xSliderLFORate->setValue(0.5);
|
||||
break;
|
||||
case Chassis::pLFODelay:
|
||||
case pLFODelay:
|
||||
xSliderLFODelay->setValue(0.5);
|
||||
break;
|
||||
}
|
||||
}
|
||||
void DistrhoUIchassis::parameterChanged(uint32_t index, float value) {
|
||||
switch (index) {
|
||||
case Chassis::pLFORate:
|
||||
case pLFORate:
|
||||
xSliderLFORate->setValue(value);
|
||||
break;
|
||||
case Chassis::pLFODelay:
|
||||
case pLFODelay:
|
||||
xSliderLFODelay->setValue(value);
|
||||
break;
|
||||
case Chassis::pLFODepth:
|
||||
case pLFODepth:
|
||||
xSliderLFODepth->setValue(value);
|
||||
break;
|
||||
case Chassis::pPWMDepth:
|
||||
case pPWMDepth:
|
||||
xSliderPWMDepth->setValue(value);
|
||||
break;
|
||||
case Chassis::pSubLevel:
|
||||
case pSubLevel:
|
||||
xSliderSubLevel->setValue(value);
|
||||
break;
|
||||
case Chassis::pNoiseLevel:
|
||||
case pNoiseLevel:
|
||||
xSliderNoiseLevel->setValue(value);
|
||||
break;
|
||||
case Chassis::pHPF:
|
||||
case pHPF:
|
||||
xSliderHPF->setValue(value);
|
||||
break;
|
||||
case Chassis::pCutoff:
|
||||
case pCutoff:
|
||||
xSliderCutoff->setValue(value);
|
||||
break;
|
||||
case Chassis::pRes:
|
||||
case pRes:
|
||||
xSliderRes->setValue(value);
|
||||
break;
|
||||
case Chassis::pEnv:
|
||||
case pEnv:
|
||||
xSliderEnv->setValue(value);
|
||||
break;
|
||||
case Chassis::pLfo:
|
||||
case pLfo:
|
||||
xSliderLfo->setValue(value);
|
||||
break;
|
||||
case Chassis::pKyb:
|
||||
case pKyb:
|
||||
xSliderKyb->setValue(value);
|
||||
break;
|
||||
case Chassis::pAtk:
|
||||
case pAtk:
|
||||
xSliderAtk->setValue(value);
|
||||
break;
|
||||
case Chassis::pDcy:
|
||||
case pDcy:
|
||||
xSliderDcy->setValue(value);
|
||||
break;
|
||||
case Chassis::pStn:
|
||||
case pStn:
|
||||
xSliderStn->setValue(value);
|
||||
break;
|
||||
case Chassis::pRls:
|
||||
case pRls:
|
||||
xSliderRls->setValue(value);
|
||||
break;
|
||||
// now the switches
|
||||
case Chassis::pVCORange:
|
||||
case pVCORange:
|
||||
sw1 &= 0xf8; // mask
|
||||
if (value > 2) value = 2;
|
||||
sw1 |= (1 << (int)value);
|
||||
break;
|
||||
case Chassis::pSqr:
|
||||
case pSqr:
|
||||
sw1 &= 0xf7;
|
||||
sw1 |= ((value >= 0.5)) << 3;
|
||||
break;
|
||||
case Chassis::pSaw:
|
||||
case pSaw:
|
||||
sw1 &= 0xef;
|
||||
sw1 |= (value > 0.5) << 4;
|
||||
break;
|
||||
|
||||
case Chassis::pChorus:
|
||||
case pChorus:
|
||||
sw1 &= 0x9f;
|
||||
//60, 40, 00
|
||||
switch((int)value) {
|
||||
case 0: sw1 |= 0x60; break;
|
||||
case 1: sw1 |= 0x40; break;
|
||||
case 2: sw1 |= 0x00; break;
|
||||
// 60, 40, 00
|
||||
switch ((int)value) {
|
||||
case 0:
|
||||
sw1 |= 0x60;
|
||||
break;
|
||||
case 1:
|
||||
sw1 |= 0x40;
|
||||
break;
|
||||
case 2:
|
||||
sw1 |= 0x00;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -259,6 +250,43 @@ void DistrhoUIchassis::imageSliderValueChanged(ImageSlider* slider, float value)
|
|||
setParameterValue(slider->getId(), value);
|
||||
}
|
||||
|
||||
void DistrhoUIchassis::imageButtonClicked(ImageButton* imgBtn, int) {
|
||||
int id = imgBtn->getId();
|
||||
// printf("imagebutton %d\n", id);
|
||||
switch (id) {
|
||||
case btn16:
|
||||
sw1 &= 0xf8;
|
||||
sw1 |= 0x01;
|
||||
break;
|
||||
case btn8:
|
||||
sw1 &= 0xf8;
|
||||
sw1 |= 0x02;
|
||||
break;
|
||||
case btn4:
|
||||
sw1 &= 0xf8;
|
||||
sw1 |= 0x04;
|
||||
break;
|
||||
case btnPls:
|
||||
sw1 ^= 0x08;
|
||||
break;
|
||||
case btnSaw:
|
||||
sw1 ^= 0x10;
|
||||
break;
|
||||
case btnCh0:
|
||||
sw1 = (sw1 & 0x1f) | 0x20;
|
||||
break;
|
||||
case btnCh1:
|
||||
sw1 = (sw1 & 0x1f) | 0x40;
|
||||
break;
|
||||
case btnCh2:
|
||||
sw1 = (sw1 & 0x1f);
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void DistrhoUIchassis::onDisplay() {
|
||||
const GraphicsContext& context(getGraphicsContext());
|
||||
fImgBackground.draw(context);
|
||||
|
@ -267,10 +295,10 @@ void DistrhoUIchassis::onDisplay() {
|
|||
if (sw1 & 0x01) fImgLedOn.drawAt(context, 160, 77); // 16'
|
||||
if (sw1 & 0x02) fImgLedOn.drawAt(context, 198, 77); // 8'
|
||||
if (sw1 & 0x04) fImgLedOn.drawAt(context, 238, 77); // 4'
|
||||
if (sw1 & 0x08) fImgLedOn.drawAt(context, 427, 77); // pulse
|
||||
if (sw1 & 0x10) fImgLedOn.drawAt(context, 465, 77); // saw
|
||||
if ((sw1 & 0x60) == 0x40) fImgLedOn.drawAt(context, 604, 269); // chorus 1
|
||||
if ((sw1 & 0x60) == 0x00) fImgLedOn.drawAt(context, 644, 269); // chorus 2
|
||||
if (sw1 & 0x08) fImgLedOn.drawAt(context, 424, 77); // pulse
|
||||
if (sw1 & 0x10) fImgLedOn.drawAt(context, 464, 77); // saw
|
||||
if ((sw1 & 0x60) == 0x40) fImgLedOn.drawAt(context, 612, 267); // chorus 1
|
||||
if ((sw1 & 0x60) == 0x00) fImgLedOn.drawAt(context, 652, 267); // chorus 2
|
||||
};
|
||||
|
||||
UI* createUI() {
|
||||
|
|
|
@ -8,7 +8,8 @@
|
|||
START_NAMESPACE_DISTRHO
|
||||
|
||||
class DistrhoUIchassis : public UI,
|
||||
public ImageSlider::Callback {
|
||||
public ImageSlider::Callback,
|
||||
public ImageButton::Callback {
|
||||
public:
|
||||
DistrhoUIchassis();
|
||||
~DistrhoUIchassis() override;
|
||||
|
@ -22,6 +23,8 @@ class DistrhoUIchassis : public UI,
|
|||
void imageSliderDragFinished(ImageSlider* slider) override;
|
||||
void imageSliderValueChanged(ImageSlider* slider, float value) override;
|
||||
|
||||
void imageButtonClicked(ImageButton *imageButton, int button) override;
|
||||
|
||||
private:
|
||||
Image fImgBackground;
|
||||
Image fImgLedOn;
|
||||
|
@ -30,6 +33,8 @@ class DistrhoUIchassis : public UI,
|
|||
xSliderLFODepth, xSliderPWMDepth, xSliderSubLevel, xSliderNoiseLevel,
|
||||
xSliderHPF, xSliderCutoff, xSliderRes, xSliderEnv, xSliderLfo, xSliderKyb,
|
||||
xSliderVCALevel, xSliderAtk, xSliderDcy, xSliderStn, xSliderRls;
|
||||
ScopedPointer<ImageButton> xBtn16ft, xBtn8ft, xBtn4ft, xBtnPls, xBtnSaw, xBtnCh0, xBtnCh1, xBtnCh2;
|
||||
|
||||
uint8_t sw1 = 0, sw2 = 0;
|
||||
DISTRHO_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(DistrhoUIchassis)
|
||||
// ImageAboutWindow fAboutWindow;
|
||||
|
|
Loading…
Reference in New Issue