From 9dc95dc07fafeaf9e81f9b7c4a68dbdc86610b88 Mon Sep 17 00:00:00 2001 From: Gordon JC Pearce Date: Tue, 11 Feb 2025 22:35:13 +0000 Subject: [PATCH] orangebutton is not actually orange --- plugin/Makefile | 1 + plugin/orangebutton.cpp | 242 ++++++++++++++++++++++++++++++++++++++++ plugin/parameters.cpp | 66 +---------- plugin/peacock.hpp | 7 ++ plugin/ui.cpp | 12 ++ plugin/ui.hpp | 2 + 6 files changed, 270 insertions(+), 60 deletions(-) create mode 100644 plugin/orangebutton.cpp diff --git a/plugin/Makefile b/plugin/Makefile index 8b254ae..50bd833 100644 --- a/plugin/Makefile +++ b/plugin/Makefile @@ -15,6 +15,7 @@ FILES_DSP = \ FILES_UI = \ + orangebutton.cpp \ panel.cpp \ slider.cpp \ peacock.cpp \ diff --git a/plugin/orangebutton.cpp b/plugin/orangebutton.cpp new file mode 100644 index 0000000..9ae858d --- /dev/null +++ b/plugin/orangebutton.cpp @@ -0,0 +1,242 @@ +#include "peacock.hpp" + static const char tempOrngUp[] = { + + + "---!!!#\"\"\"\"\"\"!!'&&###$##\"!!$##!!!\"\"\"\"!!&%%#\"\"$$$$$$$##&&&\"" + "!!%%%$##&&&###\"\"\"!!!$$$\"!!###!\040\040\040\040\040#\"\"$##!!!!!!%%%%$$&%%" + "#\"\"\"\"\"!!!\"!!###?GNS\\f[eoXbl[eoYblYcnWak[eoYcm\\gqYblXakZdoZeo]gqX" + "akYcmWakYclZdoZeoZdnZdnYblXak[epXblWakZdnZdoXakV`jYcl]gq\\gqZdnXakU_i\015" + "\015\015\016\016\016%$$bmw\253\263\273\231\242\253\232\243\254\227\240\252\232" + "\243\254\232\243\254\226\237\251\230\241\252\230\241\252\232\243\254\230" + "\241\252\230\241\252\232\243\255\233\244\256\231\242\253\227\241\252\230" + "\241\253\232\243\254\225\236\250\230\241\252\231\242\253\230\241\253\233" + "\244\255\231\242\253\225\237\251\231\242\253\226\237\251\231\242\253\230" + "\241\252\227\240\252\231\242\253\231\242\253\231\242\253\226\240\251\231" + "\242\254\231\242\253o{\207fq}(-\061\014\013\013%$$_jt\234\245\256~\212\226{\210" + "\224\177\213\226{\210\224\200\214\230~\212\226z\206\223~\212\225\202\216" + "\231z\207\223~\212\225~\212\226{\210\224z\207\223\177\213\226x\205\221}\210" + "\224{\210\224}\210\224z\206\222\200\214\227~\211\225{\210\224y\205\222~\212" + "\226~\212\225\177\213\226\177\213\226{\210\224y\205\222{\210\224\177\213" + "\226\200\214\230{\210\224}\210\224t\200\215kw\202CKS\036!$$##_it\226\240\252" + "u\202\216n{\207n{\207t\201\215lx\205my\205u\202\217ly\205o{\207o{\207mz\206" + "q}\212s\200\215p|\211my\206p|\211my\205s\200\215o|\210lx\205o{\210kw\204" + "s\200\215t\200\215r~\213ju\201u\202\217my\206q}\212my\206my\206q}\212my\206" + "my\206u\202\216q~\212_it=DK\032\035\040!!!]gr\225\236\250mz\206r\177\213jv\201" + "mz\206o{\207p}\211r\177\213q}\212my\205p}\212q}\212lx\205q}\212kw\202nz\207" + "my\206mz\206r\177\213lx\205p|\211s\200\215r~\213kw\203n{\207q}\212lx\205" + "n{\207o{\210my\205q}\212o{\210o{\210n{\207kw\204p}\211r\177\213\\gq;BI\034" + "\040##\"\"^hs\231\242\253v\202\217p}\212mz\206t\201\215o{\207p}\211r\177\214" + "lx\204my\205o|\210q}\212iu\201mz\206s\200\215t\201\215q~\212mz\206n{\207" + "kw\204r\177\213ly\205q}\212o{\210r\177\213s\200\215o{\207o|\210nz\207kw\203" + "r\177\213o|\210kw\202kw\203t\201\215mz\206p}\212^hr:AG\036\"&$##_it\226\240" + "\252u\202\217p}\211kw\202mz\206u\202\216p}\212p}\212r\177\214t\200\215n{" + "\207mz\206u\202\216q}\212o{\210p}\212my\205o{\207o{\207p}\212s\200\215r\177" + "\214q~\212p}\211p}\211q}\212r\177\213o{\207u\202\216o{\207o{\207r\177\214" + "u\202\216p}\212jv\201u\202\217u\202\216\\fp:AH\036\"&!\040\040_it\230\242\253" + "z\206\222o{\207ly\205o{\210q}\212p|\211u\202\217r\177\214o{\210ly\205my\205" + "kw\204p}\211p}\212o|\210p}\212my\205my\206o{\207my\205o{\207my\206kw\204" + "q~\212my\205p}\212u\202\216r\177\214o{\210kw\202u\202\216t\200\215p}\211" + "r\177\213u\202\216lx\204blw:AG\036\"&###_jt\226\240\252x\204\220my\206kw\203" + "ly\205my\206kw\202lx\205t\201\215r\177\214p}\212r\177\214n{\207kw\202s\200" + "\215p|\210ju\201mz\206my\205u\202\216o{\210my\206o|\210o{\207n{\207o{\210" + "p}\212my\205s\200\215nz\207mz\206p}\212q~\212p}\212o{\207q~\212p}\212^it" + "FM\036" + "\"&&%%\\fq\223\235\246my\206my\206my\205kw\204my\205my\205t\201\215p|\210" + "o{\207o{\210p|\211p}\212p}\211o{\210u\202\216r\177\213lx\205ly\205n{\207" + "my\205kw\202my\206kw\204u\202\217p}\212my\205ly\205u\202\217lx\205mz\206" + "p}\212kw\203nz\207kw\203my\205q}\212alwD\070>D\070?E\070" + ">D\070?F\070?F\070?F\070?F\070?F\071@G\070?F:AH\064;A,\062\067\036\"&$##\015\015\015:A" + "G(-\061',\061\061\067<\063\071>\062\070=\061\067<\062\070=\061\067<\061\067<\061\067<\061\067" + "<\061\067<\061\067<\061\067<\061\067<\061\067<\061\067<\061\067\062\070=\061" + "\067<\062\070=\061\067<\061\067<\061\067<\061\067<\061\067<\061\067<\061\067<\061\067<\061\067" + "<\061\067<\061\067EU_iS\\eU_iS\\fT]gR[dU_iT]fWajS\\fR[eU^hU_hWakR[eT]fR[dS]fU^hU_hU" + "^gU^gS\\fR[eV_iS\\eR[dU^gU^hR[eQ[dS]fWakWajU^gR[eS]f\016\016\016$##\014\014\014" + "\071@G\062\067;RX^Y_eW]cY_eY_eV\\cW^dW^dY_eW^dW^dY_eZ`eX_eW]cX^dY_eV]cW^dX_" + "eX^dY_eX_eV]cX_eV\\cX_eW^dW]cX_eX_eX_eV]cX_eX_eBJR\070>E\023\025\026!!!\016\015" + "\015\070?ETZ_s}\210r}\210u\200\212r}\210v\201\214t\177\212q|\207s\177\212x" + "\203\215q|\207s\177\212t\177\212r}\210q|\207u\200\212oz\205s~\211r}\210s" + "~\211p|\207v\201\213s~\212r}\210p{\206t\177\212s\177\212u\200\212u\200\212" + "r}\210p{\206r}\210u\200\212v\201\214r}\210s~\211kv\202`ku\023\024\024#\"\"\021" + "\020\020\070?E]dju\202\216n{\207n{\207t\201\215lx\205my\205u\202\217ly\205o" + "{\207o{\207mz\206q}\212s\200\215p|\211my\206p|\211my\205s\200\215o|\210l" + "x\205o{\210kw\204s\200\215t\200\215r~\213ju\201u\202\217my\206q}\212my\206" + "my\206q}\212my\206my\206u\202\216q~\212_it\034\037!$##\017\017\017\070>D\\cjmz" + "\206r\177\213jv\201mz\206o{\207p}\211r\177\213q}\212my\205p}\212q}\212lx" + "\205q}\212kw\202nz\207my\206mz\206r\177\213lx\205p|\211s\200\215r~\213kw" + "\203n{\207q}\212lx\205n{\207o{\210my\205q}\212o{\210o{\210n{\207kw\204p}" + "\211r\177\213\\gq\034\037!!\040\040\014\014\014\070>D_ekv\202\217p}\212mz\206t\201" + "\215o{\207p}\211r\177\214lx\204my\205o|\210q}\212iu\201mz\206s\200\215t\201" + "\215q~\212mz\206n{\207kw\204r\177\213ly\205q}\212o{\210r\177\213s\200\215" + "o{\207o|\210nz\207kw\203r\177\213o|\210kw\202kw\203t\201\215mz\206p}\212" + "^hr\034\037!###\016\015\015\070?E]dju\202\217p}\211kw\202mz\206u\202\216p}\212" + "p}\212r\177\214t\200\215n{\207mz\206u\202\216q}\212o{\210p}\212my\205o{\207" + "o{\207p}\212s\200\215r\177\214q~\212p}\211p}\211q}\212r\177\213o{\207u\202" + "\216o{\207o{\207r\177\214u\202\216p}\212jv\201u\202\217u\202\216\\fp\034\037" + "!$$$\016\016\016\070?E^ekz\206\222o{\207ly\205o{\210q}\212p|\211u\202\217r\177" + "\214o{\210ly\205my\205kw\204p}\211p}\212o|\210p}\212my\205my\206o{\207my" + "\205o{\207my\206kw\204q~\212my\205p}\212u\202\216r\177\214o{\210kw\202u\202" + "\216t\200\215p}\211r\177\213u\202\216lx\204blw\034\037!$##\016\016\016\070?E]d" + "jx\204\220my\206kw\203ly\205my\206kw\202lx\205t\201\215r\177\214p}\212r\177" + "\214n{\207kw\202s\200\215p|\210ju\201mz\206my\205u\202\216o{\210my\206o|" + "\210o{\207n{\207o{\210p}\212my\205s\200\215nz\207mz\206p}\212q~\212p}\212" + "o{\207q~\212p}\212^it\034\037!#\"\"\014\014\014\071?E]djs\200\215u\202\216r\177" + "\214r\177\213my\205q~\212o{\207mz\206p}\211kw\204p}\212r\177\213o{\207mz" + "\206p}\212mz\206ly\205q~\212mz\206t\200\215r\177\213mz\206kw\204r\177\213" + "u\202\217o{\207n{\207o{\210q}\212my\205p|\210o{\207s\200\215s\200\215my\206" + "p}\212_it\033\036\040\"!!\015\014\014\070?E_ekp}\212jv\201mz\206mz\206o|\210r\177" + "\213o{\207my\205o{\207p|\210t\201\215o{\207p}\211lx\205lx\204s\200\215o{" + "\207kw\202kv\202lx\204u\202\216p}\212o{\210ly\205s\200\215o{\207v\202\217" + "ly\205r\177\214u\202\217p}\212r\177\213kw\204o{\207o{\207o{\210^hs\033\036" + "!&%%\014\014\014\070?E]djmy\206o{\207s\200\215my\206o{\207kw\202r\177\213kw\203" + "ly\205my\205o{\210s\200\214p}\212my\205s\200\215mz\206q}\212q~\212r\177\213" + "my\205q~\212s\200\214kw\203my\205n{\207kw\203lx\204p}\212r\177\214o{\207" + "s\200\215r\177\214o{\207t\200\215p}\211my\205do{\033\036!%%%\015\015\015\070>D" + "\\cjr\177\214s\200\215q~\212n{\207mz\206q}\212o{\207my\205o{\207p}\212o{" + "\207kw\203iu\201r\177\214kv\202q~\212p}\211u\202\216kw\202mz\206p|\210mz" + "\206p}\212p}\211t\201\215my\206lx\205q~\212my\205o{\207kw\202p}\211o{\207" + "s\200\215p}\212p}\212bmw\033\036!\"\"\"\014\014\014\067=D[bhmy\206my\206my\205" + "kw\204my\205my\205t\201\215p|\210o{\207o{\210p|\211p}\212p}\211o{\210u\202" + "\216r\177\213lx\205ly\205n{\207my\205kw\202my\206kw\204u\202\217p}\212my" + "\205ly\205u\202\217lx\205mz\206p}\212kw\203nz\207kw\203my\205q}\212alw\033" + "\036!#\"\"\011\010\010\070>D\\cjo{\207mz\206mz\206p}\212p}\212my\205p}\212p}\211" + "r\177\213r\177\214my\205u\202\217p}\212p}\212ju\201q}\212my\206p}\211ly\205" + "lx\204p}\212o{\207p}\212p}\212my\205p}\212p}\212t\200\215u\202\217r\177\213" + "q}\212p}\211r\177\213jv\202my\205r\177\213\\gq\034\037!!!!\014\013\013\070>D[b" + "ir\177\214kw\203o{\210mz\206n{\207my\205s\200\215my\206r\177\214s\200\215" + "r\177\213p}\212o{\210q}\212q~\212p}\211n{\207r\177\214my\205ly\205kw\204" + "my\206mz\206nz\206p}\212q~\212o{\210o{\207q~\212n{\207ly\205q~\212mz\206" + "my\205p}\212p}\212`ku\034\037\"$##\014\014\014\070>DZagt\200\215s\200\215ly\205" + "r\177\213my\206p}\212o{\207mz\206ly\205p}\212r\177\213o{\210r\177\213p}\212" + "kw\203my\205p}\212nz\206my\205o{\210q~\212p}\212p|\210ly\205p}\211q~\212" + "my\206t\200\215o{\207my\205q}\212p}\212s\200\215nz\207u\202\216my\205bmw" + "\034\037\"\"\"\"\013\013\013\067=D\\cjn{\207kw\203q~\212mz\206r\177\214r\177\214" + "my\206p}\212r\177\214mz\206p}\212t\201\215p}\211r\177\213p}\212o{\210r\177" + "\214o{\210o{\210kx\204s\200\215p}\212o{\207my\205o{\207p}\211p}\211o{\207" + "o{\210q}\212n{\207n{\207my\205s\200\215p}\211my\205akv\034\037!\"!!\014\013\013" + "\067=D[biq~\213o{\207q~\212o{\207iu\201o{\207p}\212p}\212my\206kv\202s\200" + "\215p}\212my\205p}\212r\177\214q}\212s\200\214o{\210my\205p}\211p}\212o{" + "\207my\205q}\212p}\212s\200\215o{\210q~\212mz\206p}\212o|\210r\177\214n{" + "\207r\177\214ly\205r\177\214bmx\033\036!###\015\015\015\070>D^dku\202\216o{\210" + "s\200\214ly\205my\206o{\207o{\207o{\207p}\212my\206q}\212t\200\215o{\207" + "lx\205p|\210kw\203t\201\215o{\207q}\212p}\212o{\207t\201\215kw\204my\205" + "p}\212my\206o{\210my\206p}\211o{\210o{\207mz\206o{\207p}\211p}\212r~\213" + "akv\033\036!\"!!\015\015\015\070>D]djly\205my\205o{\210kw\202p|\211o{\207v\202" + "\217o{\207t\200\215n{\207p}\211mz\206my\206my\205u\202\216o{\210n{\207lx" + "\205o{\210kw\203my\205p}\212q}\212q~\212p|\210jv\201o{\207q}\212q}\212my" + "\205o{\207kw\203s\200\215my\205r\177\214r\177\213^is\033\036!$##\014\014\014\070" + ">D\\cjq~\213nz\207r\177\214kw\203s\200\215p}\212mz\206u\202\217my\206o{\207" + "r\177\213my\205p}\212kw\202t\201\215my\205n{\207my\206o{\210n{\207r\177\214" + "my\205u\202\217my\205o|\210p}\212r\177\213p}\212n{\207my\206lx\204my\205" + "lx\205kw\202o{\207v\203\217_it\033\036!\"!!\013\012\012\070>D[biu\202\217p}\212" + "p}\212r\177\213o{\207o{\207r\177\213u\202\216s\200\215r\177\214p}\211p}\211" + "o{\207lx\205p}\212r\177\213p}\211q}\212s\177\214r\177\214s\200\215kw\202" + "u\202\217kw\203q}\212my\205kw\203my\205my\205r\177\214ju\201my\206q~\212" + "p}\212my\206s\200\215_it\033\036!$$$\020\020\020\070?E\\cjo{\207w\204\220p}\212" + "q}\212my\205kw\204p}\212kw\204p}\212s\200\214my\205n{\207my\205o{\207s\177" + "\214r\177\214kw\202q}\212kw\203o{\207q~\212r\177\213p}\212my\206p|\210p}" + "\212w\204\220o{\207o{\207r\177\214o{\210ju\201q}\212kw\204mz\206u\202\216" + "^hs\034\037!!!!\016\016\016\070>DKQWy\206\222my\205p}\212p}\212n{\207p}\211nz\207" + "r\177\213p|\211my\205q}\212w\204\220p}\212r\177\213r\177\213r~\213my\205" + "my\206o{\207p}\212t\201\215p}\212r\177\213o{\207kw\204my\205r~\213s\200\215" + "r\177\213r\177\213w\204\220q}\212lx\205my\205q}\212r~\213`ku\033\036!#\"\"" + "\015\015\015-\062\067%)-x\204\220kw\203t\200\215s\200\215p}\212o{\207p|\211t\200" + "\215my\205mz\206o{\210t\200\215u\201\216p|\211s\200\215s\200\215p}\211r\177" + "\213s\200\215r\177\213o{\210nz\207t\200\215r\177\214p}\212my\205u\202\216" + "p|\211n{\207p}\212p}\212q}\212s\200\215u\202\217u\201\216kw\204`kv\033\036" + "!$##\015\015\015=DJ;BH]gqT]gT]fU^gU_hQZcPYbMV_T]fQZcOXaQ[dU^h]gqXblWakZdnT]" + "fQZdQ[dU^gYblYcm[eoYclZdoYcm[epZeo[eoXblYclXbl\\fq[epU^hR[d\033\036!\"!!\015" + "\015\015'+.).\063/\065::AH=DKD\070>D\070?E\070>D\070?F\070?F\070?F\070?F\070?F\071" + "@G\070?F:AH\064;A\035!$\060//$$$%$$!!!\"\"\"$##$##\"\"\"###\"\"\"$$$\"!!$##$" + "##&%%\040\040\040\040\040\040%$$%$$!\040\040###%$$$$$#\"\"$#####%$$!!!%$$!!!\"!!" + "$$$$##\040\037\037###\"!!%%%$######\"\"#\"\"!\040\040", +}; + + +const char* Artwork::orngBtnUp = (const char*)tempOrngUp; +const char* Artwork::orngBtnDn = (const char*)tempOrngDn; + diff --git a/plugin/parameters.cpp b/plugin/parameters.cpp index 6e00d6e..dc6770f 100644 --- a/plugin/parameters.cpp +++ b/plugin/parameters.cpp @@ -19,14 +19,15 @@ #include "chassis.hpp" void Chassis::initParameter(uint32_t index, Parameter& parameter) { + parameter.ranges.min = 0.0f; + parameter.ranges.max = 127.0f; + parameter.hints = kParameterIsAutomatable; + parameter.ranges.def = 0.0f; + 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.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; diff --git a/plugin/peacock.hpp b/plugin/peacock.hpp index 3c7c129..290180f 100644 --- a/plugin/peacock.hpp +++ b/plugin/peacock.hpp @@ -2,6 +2,13 @@ namespace Artwork { +extern const char *orngBtnUp; +extern const char *orngBtnDn; +const unsigned int orngBtnSize = 42 * 32 * 3; +const unsigned int orngBtnWidth = 42; +const unsigned int orngBtnHeight = 32; + + extern const char *ledOnData; const unsigned int ledDataSize = 24 * 24 * 4; const unsigned int ledWidth = 24; diff --git a/plugin/ui.cpp b/plugin/ui.cpp index 98b9040..08c49d7 100644 --- a/plugin/ui.cpp +++ b/plugin/ui.cpp @@ -154,9 +154,21 @@ DistrhoUIchassis::DistrhoUIchassis() : UI(Art::backgroundWidth, Art::backgroundH xSliderRls->setInverted(true); xSliderRls->setCallback(this); + xBtn16ft = new ImageButton(this, Image(Art::orngBtnUp, Art::orngBtnWidth, Art::orngBtnHeight, kImageFormatRGB), + Image(Art::orngBtnDn, Art::orngBtnWidth, Art::orngBtnHeight, kImageFormatRGB)); + xBtn16ft->setAbsolutePos(149,103); + xBtn8ft = new ImageButton(this, Image(Art::orngBtnUp, Art::orngBtnWidth, Art::orngBtnHeight, kImageFormatRGB), + Image(Art::orngBtnDn, Art::orngBtnWidth, Art::orngBtnHeight, kImageFormatRGB)); + xBtn8ft->setAbsolutePos(190,103); + xBtn4ft = new ImageButton(this, Image(Art::orngBtnUp, Art::orngBtnWidth, Art::orngBtnHeight, kImageFormatRGB), + Image(Art::orngBtnDn, Art::orngBtnWidth, Art::orngBtnHeight, kImageFormatRGB)); + xBtn4ft->setAbsolutePos(231,103); + programLoaded(0); } + + DistrhoUIchassis::~DistrhoUIchassis() { printf("Called destructor for UI\n"); } diff --git a/plugin/ui.hpp b/plugin/ui.hpp index 43f24b2..635f6e8 100644 --- a/plugin/ui.hpp +++ b/plugin/ui.hpp @@ -30,6 +30,8 @@ class DistrhoUIchassis : public UI, xSliderLFODepth, xSliderPWMDepth, xSliderSubLevel, xSliderNoiseLevel, xSliderHPF, xSliderCutoff, xSliderRes, xSliderEnv, xSliderLfo, xSliderKyb, xSliderVCALevel, xSliderAtk, xSliderDcy, xSliderStn, xSliderRls; + ScopedPointer xBtn16ft, xBtn8ft, xBtn4ft; + uint8_t sw1 = 0, sw2 = 0; DISTRHO_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(DistrhoUIchassis) // ImageAboutWindow fAboutWindow;