diff --git a/JuceLibraryCode/AppConfig.h b/JuceLibraryCode/AppConfig.h
index a44df3d876..11104a054d 100644
--- a/JuceLibraryCode/AppConfig.h
+++ b/JuceLibraryCode/AppConfig.h
@@ -307,7 +307,7 @@
#define JucePlugin_IsMidiEffect 0
#endif
#ifndef JucePlugin_EditorRequiresKeyboardFocus
- #define JucePlugin_EditorRequiresKeyboardFocus 1
+ #define JucePlugin_EditorRequiresKeyboardFocus 0
#endif
#ifndef JucePlugin_Version
#define JucePlugin_Version 0.9.0
diff --git a/JuceLibraryCode/BinaryData.cpp b/JuceLibraryCode/BinaryData.cpp
index cb0b58a9e0..46abd65e04 100644
--- a/JuceLibraryCode/BinaryData.cpp
+++ b/JuceLibraryCode/BinaryData.cpp
@@ -5999,331 +5999,331 @@ const char* RobotoThin_ttf = (const char*) temp_binary_data_3;
//================== helm_debian_icon.xpm ==================
static const unsigned char temp_binary_data_4[] =
-"/* XPM */\n"
-"static char * helm_logo_32_1x_xpm[] = {\n"
-"\"32 32 290 2\",\n"
-"\" \tc None\",\n"
-"\". \tc #FFCF32\",\n"
-"\"+ \tc #FFCE30\",\n"
-"\"@ \tc #58ACF4\",\n"
-"\"# \tc #4CA8F4\",\n"
-"\"$ \tc #49A8F4\",\n"
-"\"% \tc #4BABF4\",\n"
-"\"& \tc #FFCA26\",\n"
-"\"* \tc #FFD21E\",\n"
-"\"= \tc #FFD315\",\n"
-"\"- \tc #FFD20D\",\n"
-"\"; \tc #FFD20E\",\n"
-"\"> \tc #FFD314\",\n"
-"\", \tc #FFD322\",\n"
-"\"' \tc #FFCB03\",\n"
-"\") \tc #DDC187\",\n"
-"\"! \tc #7FAEE7\",\n"
-"\"~ \tc #009FFF\",\n"
-"\"{ \tc #32A3FF\",\n"
-"\"] \tc #34A3FF\",\n"
-"\"^ \tc #2FA4FF\",\n"
-"\"/ \tc #38A5FF\",\n"
-"\"( \tc #3EA2F4\",\n"
-"\"_ \tc #48A9F4\",\n"
-"\": \tc #FFC923\",\n"
-"\"< \tc #FFD311\",\n"
-"\"[ \tc #FFC600\",\n"
-"\"} \tc #FFC300\",\n"
-"\"| \tc #FEC316\",\n"
-"\"1 \tc #FDC322\",\n"
-"\"2 \tc #FEC421\",\n"
-"\"3 \tc #FDC321\",\n"
-"\"4 \tc #FDC31E\",\n"
-"\"5 \tc #FFC626\",\n"
-"\"6 \tc #FFCA00\",\n"
-"\"7 \tc #FDC716\",\n"
-"\"8 \tc #B1ADB1\",\n"
-"\"9 \tc #008FF7\",\n"
-"\"0 \tc #0095F6\",\n"
-"\"a \tc #2595F3\",\n"
-"\"b \tc #1894F3\",\n"
-"\"c \tc #1D96F6\",\n"
-"\"d \tc #2CA3FF\",\n"
-"\"e \tc #3DA1F4\",\n"
-"\"f \tc #FFCD30\",\n"
-"\"g \tc #FFD61C\",\n"
-"\"h \tc #FFC500\",\n"
-"\"i \tc #FFC401\",\n"
-"\"j \tc #FFC40F\",\n"
-"\"k \tc #FFC700\",\n"
-"\"l \tc #FFCD00\",\n"
-"\"m \tc #CDB595\",\n"
-"\"n \tc #2194F0\",\n"
-"\"o \tc #1F97F4\",\n"
-"\"p \tc #2697F3\",\n"
-"\"q \tc #2196F3\",\n"
-"\"r \tc #1E95F4\",\n"
-"\"s \tc #1C96F5\",\n"
-"\"t \tc #37A8FF\",\n"
-"\"u \tc #FFD519\",\n"
-"\"v \tc #FFC404\",\n"
-"\"w \tc #FFC40E\",\n"
-"\"x \tc #EDBF62\",\n"
-"\"y \tc #DABA8D\",\n"
-"\"z \tc #DDBB89\",\n"
-"\"A \tc #DCBA8A\",\n"
-"\"B \tc #DCBB8A\",\n"
-"\"C \tc #DBBA8B\",\n"
-"\"D \tc #DCB98B\",\n"
-"\"E \tc #E4C07B\",\n"
-"\"F \tc #8CA7D2\",\n"
-"\"G \tc #0093F8\",\n"
-"\"H \tc #2C97F2\",\n"
-"\"I \tc #2096F3\",\n"
-"\"J \tc #2296F3\",\n"
-"\"K \tc #1994F3\",\n"
-"\"L \tc #33A7FF\",\n"
-"\"M \tc #FFC71A\",\n"
-"\"N \tc #FEC402\",\n"
-"\"O \tc #FEC411\",\n"
-"\"P \tc #F7C135\",\n"
-"\"Q \tc #6B9FE1\",\n"
-"\"R \tc #0096FB\",\n"
-"\"S \tc #0298F5\",\n"
-"\"T \tc #0098F7\",\n"
-"\"U \tc #0098F6\",\n"
-"\"V \tc #319AF3\",\n"
-"\"W \tc #2097F3\",\n"
-"\"X \tc #2197F3\",\n"
-"\"Y \tc #2196F2\",\n"
-"\"Z \tc #2396F3\",\n"
-"\"` \tc #349DF4\",\n"
-"\" .\tc #FFC922\",\n"
-"\"..\tc #FFD104\",\n"
-"\"+.\tc #FFC402\",\n"
-"\"@.\tc #FFC403\",\n"
-"\"#.\tc #FEC417\",\n"
-"\"$.\tc #F0BD53\",\n"
-"\"%.\tc #4997EB\",\n"
-"\"&.\tc #1695F4\",\n"
-"\"*.\tc #3196F1\",\n"
-"\"=.\tc #2C96F2\",\n"
-"\"-.\tc #2D96F1\",\n"
-"\";.\tc #2A96F2\",\n"
-"\">.\tc #2396F2\",\n"
-"\",.\tc #2B97F2\",\n"
-"\"'.\tc #2196F4\",\n"
-"\").\tc #24A0FF\",\n"
-"\"!.\tc #3AA1F4\",\n"
-"\"~.\tc #FFC613\",\n"
-"\"{.\tc #FEC416\",\n"
-"\"].\tc #F0BD4E\",\n"
-"\"^.\tc #3796EE\",\n"
-"\"/.\tc #0096FC\",\n"
-"\"(.\tc #0097F8\",\n"
-"\"_.\tc #0097F9\",\n"
-"\":.\tc #0997F6\",\n"
-"\"<.\tc #2497F3\",\n"
-"\"[.\tc #1E97F5\",\n"
-"\"}.\tc #2C9AF3\",\n"
-"\"|.\tc #FFCE07\",\n"
-"\"1.\tc #FFC40A\",\n"
-"\"2.\tc #FBC104\",\n"
-"\"3.\tc #969CBA\",\n"
-"\"4.\tc #4B90DC\",\n"
-"\"5.\tc #6093D6\",\n"
-"\"6.\tc #5C92D7\",\n"
-"\"7.\tc #5C92D8\",\n"
-"\"8.\tc #5F92D5\",\n"
-"\"9.\tc #4295E7\",\n"
-"\"0.\tc #1597F5\",\n"
-"\"a.\tc #2195F3\",\n"
-"\"b.\tc #269EFF\",\n"
-"\"c.\tc #FFC614\",\n"
-"\"d.\tc #FFD003\",\n"
-"\"e.\tc #FFC409\",\n"
-"\"f.\tc #FDC200\",\n"
-"\"g.\tc #F5BC13\",\n"
-"\"h.\tc #F5BD10\",\n"
-"\"i.\tc #F5BD0F\",\n"
-"\"j.\tc #F4BC24\",\n"
-"\"k.\tc #FCBF00\",\n"
-"\"l.\tc #BEACA0\",\n"
-"\"m.\tc #0092F9\",\n"
-"\"n.\tc #2F97F2\",\n"
-"\"o.\tc #239FFF\",\n"
-"\"p.\tc #2D9AF4\",\n"
-"\"q.\tc #FFC408\",\n"
-"\"r.\tc #FFC501\",\n"
-"\"s.\tc #FFC512\",\n"
-"\"t.\tc #FFC601\",\n"
-"\"u.\tc #FFC51D\",\n"
-"\"v.\tc #FFC900\",\n"
-"\"w.\tc #D5B386\",\n"
-"\"x.\tc #0091F5\",\n"
-"\"y.\tc #2B98F3\",\n"
-"\"z.\tc #2597F3\",\n"
-"\"A.\tc #FDC303\",\n"
-"\"B.\tc #FFC40B\",\n"
-"\"C.\tc #FFC400\",\n"
-"\"D.\tc #FFC406\",\n"
-"\"E.\tc #D2B084\",\n"
-"\"F.\tc #0090F5\",\n"
-"\"G.\tc #2C98F3\",\n"
-"\"H.\tc #2094F1\",\n"
-"\"I.\tc #F8BE04\",\n"
-"\"J.\tc #F9C339\",\n"
-"\"K.\tc #F9C337\",\n"
-"\"L.\tc #F8C23F\",\n"
-"\"M.\tc #BBAAA3\",\n"
-"\"N.\tc #0091F9\",\n"
-"\"O.\tc #3098F2\",\n"
-"\"P.\tc #2091EB\",\n"
-"\"Q.\tc #FFCC03\",\n"
-"\"R.\tc #FFC40C\",\n"
-"\"S.\tc #FCC314\",\n"
-"\"T.\tc #A1AAC7\",\n"
-"\"U.\tc #5FA0E9\",\n"
-"\"V.\tc #70A2E3\",\n"
-"\"W.\tc #6CA2E4\",\n"
-"\"X.\tc #6DA2E4\",\n"
-"\"Y.\tc #6FA2E3\",\n"
-"\"Z.\tc #4A9BEC\",\n"
-"\"`.\tc #0F96F4\",\n"
-"\" +\tc #2296F4\",\n"
-"\".+\tc #229CFD\",\n"
-"\"++\tc #F8BF03\",\n"
-"\"@+\tc #FFC703\",\n"
-"\"#+\tc #FEC403\",\n"
-"\"$+\tc #F1BE50\",\n"
-"\"%+\tc #3496EE\",\n"
-"\"&+\tc #0093FA\",\n"
-"\"*+\tc #0094F6\",\n"
-"\"=+\tc #0094F7\",\n"
-"\"-+\tc #0094F8\",\n"
-"\";+\tc #0196F5\",\n"
-"\">+\tc #2195F2\",\n"
-"\",+\tc #2298F7\",\n"
-"\"'+\tc #2191EC\",\n"
-"\")+\tc #EBB403\",\n"
-"\"!+\tc #FFD103\",\n"
-"\"~+\tc #F0BD52\",\n"
-"\"{+\tc #4C99EC\",\n"
-"\"]+\tc #2198F6\",\n"
-"\"^+\tc #3799F3\",\n"
-"\"/+\tc #3299F4\",\n"
-"\"(+\tc #3399F4\",\n"
-"\"_+\tc #3399F3\",\n"
-"\":+\tc #2F98F4\",\n"
-"\"<+\tc #2A98F4\",\n"
-"\"[+\tc #2D97F2\",\n"
-"\"}+\tc #23A0FF\",\n"
-"\"|+\tc #1F8ADF\",\n"
-"\"1+\tc #F1B903\",\n"
-"\"2+\tc #FFC803\",\n"
-"\"3+\tc #FEC303\",\n"
-"\"4+\tc #FEC410\",\n"
-"\"5+\tc #F6BF2E\",\n"
-"\"6+\tc #6095D9\",\n"
-"\"7+\tc #008DF4\",\n"
-"\"8+\tc #0090EF\",\n"
-"\"9+\tc #008FF0\",\n"
-"\"0+\tc #008EF0\",\n"
-"\"a+\tc #0090F0\",\n"
-"\"b+\tc #2694EE\",\n"
-"\"c+\tc #2299F8\",\n"
-"\"d+\tc #1F8FE6\",\n"
-"\"e+\tc #FFCA03\",\n"
-"\"f+\tc #FEC302\",\n"
-"\"g+\tc #FFC40D\",\n"
-"\"h+\tc #E8B74E\",\n"
-"\"i+\tc #D1AD77\",\n"
-"\"j+\tc #D5AF73\",\n"
-"\"k+\tc #D4AE73\",\n"
-"\"l+\tc #D2AD75\",\n"
-"\"m+\tc #D8B278\",\n"
-"\"n+\tc #CFA75D\",\n"
-"\"o+\tc #698FC7\",\n"
-"\"p+\tc #2997F2\",\n"
-"\"q+\tc #229BFA\",\n"
-"\"r+\tc #D6A404\",\n"
-"\"s+\tc #FFC503\",\n"
-"\"t+\tc #FEC401\",\n"
-"\"u+\tc #FEC40D\",\n"
-"\"v+\tc #FFC800\",\n"
-"\"w+\tc #FFCB00\",\n"
-"\"x+\tc #FFC000\",\n"
-"\"y+\tc #B19B87\",\n"
-"\"z+\tc #1793EE\",\n"
-"\"A+\tc #2297F4\",\n"
-"\"B+\tc #2197F6\",\n"
-"\"C+\tc #2299F7\",\n"
-"\"D+\tc #1E7FCB\",\n"
-"\"E+\tc #E8B204\",\n"
-"\"F+\tc #FFCD03\",\n"
-"\"G+\tc #FFC515\",\n"
-"\"H+\tc #FFC51F\",\n"
-"\"I+\tc #FFC51E\",\n"
-"\"J+\tc #FFC61C\",\n"
-"\"K+\tc #FFC822\",\n"
-"\"L+\tc #E6B100\",\n"
-"\"M+\tc #9091A4\",\n"
-"\"N+\tc #008FF4\",\n"
-"\"O+\tc #1798F8\",\n"
-"\"P+\tc #2697F5\",\n"
-"\"Q+\tc #2198F7\",\n"
-"\"R+\tc #239DFE\",\n"
-"\"S+\tc #1F89DD\",\n"
-"\"T+\tc #D7A605\",\n"
-"\"U+\tc #E6B103\",\n"
-"\"V+\tc #FCC204\",\n"
-"\"W+\tc #FFC902\",\n"
-"\"X+\tc #FDC30A\",\n"
-"\"Y+\tc #E7B200\",\n"
-"\"Z+\tc #B79559\",\n"
-"\"`+\tc #5588C7\",\n"
-"\" @\tc #0096FD\",\n"
-"\".@\tc #2C9DFD\",\n"
-"\"+@\tc #279BFA\",\n"
-"\"@@\tc #219AF9\",\n"
-"\"#@\tc #2195F0\",\n"
-"\"$@\tc #1F88DA\",\n"
-"\"%@\tc #1D80CC\",\n"
-"\"&@\tc #D2A304\",\n"
-"\"*@\tc #D7A505\",\n"
-"\"=@\tc #D2A305\",\n"
-"\"-@\tc #3280C7\",\n"
-"\";@\tc #207FCA\",\n"
-"\">@\tc #1C7FCC\",\n"
-"\",@\tc #1F7EC9\",\n"
-"\" \",\n"
-"\" \",\n"
-"\" \",\n"
-"\" \",\n"
-"\" \",\n"
-"\" . + + . @ # $ % \",\n"
-"\" + & * = - ; > , ' ) ! ~ { ] ^ / ( _ \",\n"
-"\" : < [ } | 1 2 3 4 5 6 7 8 9 0 a b c d e \",\n"
-"\" f g h } i j [ k [ [ [ [ h [ l m n o p q r s t $ \",\n"
-"\" u } v v w h x y z A A B z C D E F G H I J J K L \",\n"
-"\" M h v N O h P Q R S T T T T U T T V W W X q Y Z s ` \",\n"
-"\" ...+.@.i #.[ $.%.&.*.=.=.=.=.=.-.;.>.,.p W X q q '.).!. \",\n"
-"\" ~.[ v @.i {.[ ].^./.(._._._._._._._._._.:.<.W X q q [.}. \",\n"
-"\" |.i @.@.@.1.h 2.3.4.5.6.6.6.6.6.6.6.7.8.9.0.Z X q q a.b. \",\n"
-"\" c.d.@.@.@.@.+.e.h f.g.h.h.h.h.h.h.h.i.j.k.l.m.n.I q q q o.p. \",\n"
-"\" q.d.@.@.@.@.@.r.q.s.[ t.t.t.t.t.t.t.[ u.v.w.x.y.J X X q o.z. \",\n"
-"\" A.d.@.@.@.@.@.r.B.v h h C.h h C.h C.C.D.k E.F.G.J q q q o.H. \",\n"
-"\" I.d.@.@.@.@.i B.h h J.K.K.K.K.K.K.K.K.L.h M.N.O.I q q q o.P. \",\n"
-"\" Q.@.@.@.+.R.h S.T.U.V.W.X.X.X.X.X.X.W.Y.Z.`.<.X q q +.+ \",\n"
-"\" ++@+#+@.i #.[ $+%+&+*+=+=+=+=+=+=+=+=+-+;+<.W X X >+,+'+ \",\n"
-"\" )+!+@.@.i #.[ ~+{+]+^+/+(+(+(+/+_+:+<+[+p W X q q '.}+|+ \",\n"
-"\" 1+2+3+N 4+[ 5+6+7+8+9+9+9+9+9+0+a+b+I W X q Y a.c+d+ \",\n"
-"\" e+@+@.f+g+h h+i+j+k+k+k+k+l+m+n+o+(.p+I Y a.,+q+ \",\n"
-"\" r+2+2+s+t+u+k v+v+v+k k v+w+x+y+z+A+>.>+B+c+C+D+ \",\n"
-"\" E+F+2+t.G+H+I+I+J+K+h L+M+N+O+P+Q+c+R+S+ \",\n"
-"\" T+U+V+W+w+w+v.X+Y+Z+`+ @.@+@@@#@$@%@ \",\n"
-"\" &@*@*@=@ -@;@>@,@ \",\n"
-"\" \",\n"
-"\" \",\n"
-"\" \",\n"
-"\" \",\n"
-"\" \"};\n";
+"/* XPM */\r\n"
+"static char * helm_logo_32_1x_xpm[] = {\r\n"
+"\"32 32 290 2\",\r\n"
+"\" \tc None\",\r\n"
+"\". \tc #FFCF32\",\r\n"
+"\"+ \tc #FFCE30\",\r\n"
+"\"@ \tc #58ACF4\",\r\n"
+"\"# \tc #4CA8F4\",\r\n"
+"\"$ \tc #49A8F4\",\r\n"
+"\"% \tc #4BABF4\",\r\n"
+"\"& \tc #FFCA26\",\r\n"
+"\"* \tc #FFD21E\",\r\n"
+"\"= \tc #FFD315\",\r\n"
+"\"- \tc #FFD20D\",\r\n"
+"\"; \tc #FFD20E\",\r\n"
+"\"> \tc #FFD314\",\r\n"
+"\", \tc #FFD322\",\r\n"
+"\"' \tc #FFCB03\",\r\n"
+"\") \tc #DDC187\",\r\n"
+"\"! \tc #7FAEE7\",\r\n"
+"\"~ \tc #009FFF\",\r\n"
+"\"{ \tc #32A3FF\",\r\n"
+"\"] \tc #34A3FF\",\r\n"
+"\"^ \tc #2FA4FF\",\r\n"
+"\"/ \tc #38A5FF\",\r\n"
+"\"( \tc #3EA2F4\",\r\n"
+"\"_ \tc #48A9F4\",\r\n"
+"\": \tc #FFC923\",\r\n"
+"\"< \tc #FFD311\",\r\n"
+"\"[ \tc #FFC600\",\r\n"
+"\"} \tc #FFC300\",\r\n"
+"\"| \tc #FEC316\",\r\n"
+"\"1 \tc #FDC322\",\r\n"
+"\"2 \tc #FEC421\",\r\n"
+"\"3 \tc #FDC321\",\r\n"
+"\"4 \tc #FDC31E\",\r\n"
+"\"5 \tc #FFC626\",\r\n"
+"\"6 \tc #FFCA00\",\r\n"
+"\"7 \tc #FDC716\",\r\n"
+"\"8 \tc #B1ADB1\",\r\n"
+"\"9 \tc #008FF7\",\r\n"
+"\"0 \tc #0095F6\",\r\n"
+"\"a \tc #2595F3\",\r\n"
+"\"b \tc #1894F3\",\r\n"
+"\"c \tc #1D96F6\",\r\n"
+"\"d \tc #2CA3FF\",\r\n"
+"\"e \tc #3DA1F4\",\r\n"
+"\"f \tc #FFCD30\",\r\n"
+"\"g \tc #FFD61C\",\r\n"
+"\"h \tc #FFC500\",\r\n"
+"\"i \tc #FFC401\",\r\n"
+"\"j \tc #FFC40F\",\r\n"
+"\"k \tc #FFC700\",\r\n"
+"\"l \tc #FFCD00\",\r\n"
+"\"m \tc #CDB595\",\r\n"
+"\"n \tc #2194F0\",\r\n"
+"\"o \tc #1F97F4\",\r\n"
+"\"p \tc #2697F3\",\r\n"
+"\"q \tc #2196F3\",\r\n"
+"\"r \tc #1E95F4\",\r\n"
+"\"s \tc #1C96F5\",\r\n"
+"\"t \tc #37A8FF\",\r\n"
+"\"u \tc #FFD519\",\r\n"
+"\"v \tc #FFC404\",\r\n"
+"\"w \tc #FFC40E\",\r\n"
+"\"x \tc #EDBF62\",\r\n"
+"\"y \tc #DABA8D\",\r\n"
+"\"z \tc #DDBB89\",\r\n"
+"\"A \tc #DCBA8A\",\r\n"
+"\"B \tc #DCBB8A\",\r\n"
+"\"C \tc #DBBA8B\",\r\n"
+"\"D \tc #DCB98B\",\r\n"
+"\"E \tc #E4C07B\",\r\n"
+"\"F \tc #8CA7D2\",\r\n"
+"\"G \tc #0093F8\",\r\n"
+"\"H \tc #2C97F2\",\r\n"
+"\"I \tc #2096F3\",\r\n"
+"\"J \tc #2296F3\",\r\n"
+"\"K \tc #1994F3\",\r\n"
+"\"L \tc #33A7FF\",\r\n"
+"\"M \tc #FFC71A\",\r\n"
+"\"N \tc #FEC402\",\r\n"
+"\"O \tc #FEC411\",\r\n"
+"\"P \tc #F7C135\",\r\n"
+"\"Q \tc #6B9FE1\",\r\n"
+"\"R \tc #0096FB\",\r\n"
+"\"S \tc #0298F5\",\r\n"
+"\"T \tc #0098F7\",\r\n"
+"\"U \tc #0098F6\",\r\n"
+"\"V \tc #319AF3\",\r\n"
+"\"W \tc #2097F3\",\r\n"
+"\"X \tc #2197F3\",\r\n"
+"\"Y \tc #2196F2\",\r\n"
+"\"Z \tc #2396F3\",\r\n"
+"\"` \tc #349DF4\",\r\n"
+"\" .\tc #FFC922\",\r\n"
+"\"..\tc #FFD104\",\r\n"
+"\"+.\tc #FFC402\",\r\n"
+"\"@.\tc #FFC403\",\r\n"
+"\"#.\tc #FEC417\",\r\n"
+"\"$.\tc #F0BD53\",\r\n"
+"\"%.\tc #4997EB\",\r\n"
+"\"&.\tc #1695F4\",\r\n"
+"\"*.\tc #3196F1\",\r\n"
+"\"=.\tc #2C96F2\",\r\n"
+"\"-.\tc #2D96F1\",\r\n"
+"\";.\tc #2A96F2\",\r\n"
+"\">.\tc #2396F2\",\r\n"
+"\",.\tc #2B97F2\",\r\n"
+"\"'.\tc #2196F4\",\r\n"
+"\").\tc #24A0FF\",\r\n"
+"\"!.\tc #3AA1F4\",\r\n"
+"\"~.\tc #FFC613\",\r\n"
+"\"{.\tc #FEC416\",\r\n"
+"\"].\tc #F0BD4E\",\r\n"
+"\"^.\tc #3796EE\",\r\n"
+"\"/.\tc #0096FC\",\r\n"
+"\"(.\tc #0097F8\",\r\n"
+"\"_.\tc #0097F9\",\r\n"
+"\":.\tc #0997F6\",\r\n"
+"\"<.\tc #2497F3\",\r\n"
+"\"[.\tc #1E97F5\",\r\n"
+"\"}.\tc #2C9AF3\",\r\n"
+"\"|.\tc #FFCE07\",\r\n"
+"\"1.\tc #FFC40A\",\r\n"
+"\"2.\tc #FBC104\",\r\n"
+"\"3.\tc #969CBA\",\r\n"
+"\"4.\tc #4B90DC\",\r\n"
+"\"5.\tc #6093D6\",\r\n"
+"\"6.\tc #5C92D7\",\r\n"
+"\"7.\tc #5C92D8\",\r\n"
+"\"8.\tc #5F92D5\",\r\n"
+"\"9.\tc #4295E7\",\r\n"
+"\"0.\tc #1597F5\",\r\n"
+"\"a.\tc #2195F3\",\r\n"
+"\"b.\tc #269EFF\",\r\n"
+"\"c.\tc #FFC614\",\r\n"
+"\"d.\tc #FFD003\",\r\n"
+"\"e.\tc #FFC409\",\r\n"
+"\"f.\tc #FDC200\",\r\n"
+"\"g.\tc #F5BC13\",\r\n"
+"\"h.\tc #F5BD10\",\r\n"
+"\"i.\tc #F5BD0F\",\r\n"
+"\"j.\tc #F4BC24\",\r\n"
+"\"k.\tc #FCBF00\",\r\n"
+"\"l.\tc #BEACA0\",\r\n"
+"\"m.\tc #0092F9\",\r\n"
+"\"n.\tc #2F97F2\",\r\n"
+"\"o.\tc #239FFF\",\r\n"
+"\"p.\tc #2D9AF4\",\r\n"
+"\"q.\tc #FFC408\",\r\n"
+"\"r.\tc #FFC501\",\r\n"
+"\"s.\tc #FFC512\",\r\n"
+"\"t.\tc #FFC601\",\r\n"
+"\"u.\tc #FFC51D\",\r\n"
+"\"v.\tc #FFC900\",\r\n"
+"\"w.\tc #D5B386\",\r\n"
+"\"x.\tc #0091F5\",\r\n"
+"\"y.\tc #2B98F3\",\r\n"
+"\"z.\tc #2597F3\",\r\n"
+"\"A.\tc #FDC303\",\r\n"
+"\"B.\tc #FFC40B\",\r\n"
+"\"C.\tc #FFC400\",\r\n"
+"\"D.\tc #FFC406\",\r\n"
+"\"E.\tc #D2B084\",\r\n"
+"\"F.\tc #0090F5\",\r\n"
+"\"G.\tc #2C98F3\",\r\n"
+"\"H.\tc #2094F1\",\r\n"
+"\"I.\tc #F8BE04\",\r\n"
+"\"J.\tc #F9C339\",\r\n"
+"\"K.\tc #F9C337\",\r\n"
+"\"L.\tc #F8C23F\",\r\n"
+"\"M.\tc #BBAAA3\",\r\n"
+"\"N.\tc #0091F9\",\r\n"
+"\"O.\tc #3098F2\",\r\n"
+"\"P.\tc #2091EB\",\r\n"
+"\"Q.\tc #FFCC03\",\r\n"
+"\"R.\tc #FFC40C\",\r\n"
+"\"S.\tc #FCC314\",\r\n"
+"\"T.\tc #A1AAC7\",\r\n"
+"\"U.\tc #5FA0E9\",\r\n"
+"\"V.\tc #70A2E3\",\r\n"
+"\"W.\tc #6CA2E4\",\r\n"
+"\"X.\tc #6DA2E4\",\r\n"
+"\"Y.\tc #6FA2E3\",\r\n"
+"\"Z.\tc #4A9BEC\",\r\n"
+"\"`.\tc #0F96F4\",\r\n"
+"\" +\tc #2296F4\",\r\n"
+"\".+\tc #229CFD\",\r\n"
+"\"++\tc #F8BF03\",\r\n"
+"\"@+\tc #FFC703\",\r\n"
+"\"#+\tc #FEC403\",\r\n"
+"\"$+\tc #F1BE50\",\r\n"
+"\"%+\tc #3496EE\",\r\n"
+"\"&+\tc #0093FA\",\r\n"
+"\"*+\tc #0094F6\",\r\n"
+"\"=+\tc #0094F7\",\r\n"
+"\"-+\tc #0094F8\",\r\n"
+"\";+\tc #0196F5\",\r\n"
+"\">+\tc #2195F2\",\r\n"
+"\",+\tc #2298F7\",\r\n"
+"\"'+\tc #2191EC\",\r\n"
+"\")+\tc #EBB403\",\r\n"
+"\"!+\tc #FFD103\",\r\n"
+"\"~+\tc #F0BD52\",\r\n"
+"\"{+\tc #4C99EC\",\r\n"
+"\"]+\tc #2198F6\",\r\n"
+"\"^+\tc #3799F3\",\r\n"
+"\"/+\tc #3299F4\",\r\n"
+"\"(+\tc #3399F4\",\r\n"
+"\"_+\tc #3399F3\",\r\n"
+"\":+\tc #2F98F4\",\r\n"
+"\"<+\tc #2A98F4\",\r\n"
+"\"[+\tc #2D97F2\",\r\n"
+"\"}+\tc #23A0FF\",\r\n"
+"\"|+\tc #1F8ADF\",\r\n"
+"\"1+\tc #F1B903\",\r\n"
+"\"2+\tc #FFC803\",\r\n"
+"\"3+\tc #FEC303\",\r\n"
+"\"4+\tc #FEC410\",\r\n"
+"\"5+\tc #F6BF2E\",\r\n"
+"\"6+\tc #6095D9\",\r\n"
+"\"7+\tc #008DF4\",\r\n"
+"\"8+\tc #0090EF\",\r\n"
+"\"9+\tc #008FF0\",\r\n"
+"\"0+\tc #008EF0\",\r\n"
+"\"a+\tc #0090F0\",\r\n"
+"\"b+\tc #2694EE\",\r\n"
+"\"c+\tc #2299F8\",\r\n"
+"\"d+\tc #1F8FE6\",\r\n"
+"\"e+\tc #FFCA03\",\r\n"
+"\"f+\tc #FEC302\",\r\n"
+"\"g+\tc #FFC40D\",\r\n"
+"\"h+\tc #E8B74E\",\r\n"
+"\"i+\tc #D1AD77\",\r\n"
+"\"j+\tc #D5AF73\",\r\n"
+"\"k+\tc #D4AE73\",\r\n"
+"\"l+\tc #D2AD75\",\r\n"
+"\"m+\tc #D8B278\",\r\n"
+"\"n+\tc #CFA75D\",\r\n"
+"\"o+\tc #698FC7\",\r\n"
+"\"p+\tc #2997F2\",\r\n"
+"\"q+\tc #229BFA\",\r\n"
+"\"r+\tc #D6A404\",\r\n"
+"\"s+\tc #FFC503\",\r\n"
+"\"t+\tc #FEC401\",\r\n"
+"\"u+\tc #FEC40D\",\r\n"
+"\"v+\tc #FFC800\",\r\n"
+"\"w+\tc #FFCB00\",\r\n"
+"\"x+\tc #FFC000\",\r\n"
+"\"y+\tc #B19B87\",\r\n"
+"\"z+\tc #1793EE\",\r\n"
+"\"A+\tc #2297F4\",\r\n"
+"\"B+\tc #2197F6\",\r\n"
+"\"C+\tc #2299F7\",\r\n"
+"\"D+\tc #1E7FCB\",\r\n"
+"\"E+\tc #E8B204\",\r\n"
+"\"F+\tc #FFCD03\",\r\n"
+"\"G+\tc #FFC515\",\r\n"
+"\"H+\tc #FFC51F\",\r\n"
+"\"I+\tc #FFC51E\",\r\n"
+"\"J+\tc #FFC61C\",\r\n"
+"\"K+\tc #FFC822\",\r\n"
+"\"L+\tc #E6B100\",\r\n"
+"\"M+\tc #9091A4\",\r\n"
+"\"N+\tc #008FF4\",\r\n"
+"\"O+\tc #1798F8\",\r\n"
+"\"P+\tc #2697F5\",\r\n"
+"\"Q+\tc #2198F7\",\r\n"
+"\"R+\tc #239DFE\",\r\n"
+"\"S+\tc #1F89DD\",\r\n"
+"\"T+\tc #D7A605\",\r\n"
+"\"U+\tc #E6B103\",\r\n"
+"\"V+\tc #FCC204\",\r\n"
+"\"W+\tc #FFC902\",\r\n"
+"\"X+\tc #FDC30A\",\r\n"
+"\"Y+\tc #E7B200\",\r\n"
+"\"Z+\tc #B79559\",\r\n"
+"\"`+\tc #5588C7\",\r\n"
+"\" @\tc #0096FD\",\r\n"
+"\".@\tc #2C9DFD\",\r\n"
+"\"+@\tc #279BFA\",\r\n"
+"\"@@\tc #219AF9\",\r\n"
+"\"#@\tc #2195F0\",\r\n"
+"\"$@\tc #1F88DA\",\r\n"
+"\"%@\tc #1D80CC\",\r\n"
+"\"&@\tc #D2A304\",\r\n"
+"\"*@\tc #D7A505\",\r\n"
+"\"=@\tc #D2A305\",\r\n"
+"\"-@\tc #3280C7\",\r\n"
+"\";@\tc #207FCA\",\r\n"
+"\">@\tc #1C7FCC\",\r\n"
+"\",@\tc #1F7EC9\",\r\n"
+"\" \",\r\n"
+"\" \",\r\n"
+"\" \",\r\n"
+"\" \",\r\n"
+"\" \",\r\n"
+"\" . + + . @ # $ % \",\r\n"
+"\" + & * = - ; > , ' ) ! ~ { ] ^ / ( _ \",\r\n"
+"\" : < [ } | 1 2 3 4 5 6 7 8 9 0 a b c d e \",\r\n"
+"\" f g h } i j [ k [ [ [ [ h [ l m n o p q r s t $ \",\r\n"
+"\" u } v v w h x y z A A B z C D E F G H I J J K L \",\r\n"
+"\" M h v N O h P Q R S T T T T U T T V W W X q Y Z s ` \",\r\n"
+"\" ...+.@.i #.[ $.%.&.*.=.=.=.=.=.-.;.>.,.p W X q q '.).!. \",\r\n"
+"\" ~.[ v @.i {.[ ].^./.(._._._._._._._._._.:.<.W X q q [.}. \",\r\n"
+"\" |.i @.@.@.1.h 2.3.4.5.6.6.6.6.6.6.6.7.8.9.0.Z X q q a.b. \",\r\n"
+"\" c.d.@.@.@.@.+.e.h f.g.h.h.h.h.h.h.h.i.j.k.l.m.n.I q q q o.p. \",\r\n"
+"\" q.d.@.@.@.@.@.r.q.s.[ t.t.t.t.t.t.t.[ u.v.w.x.y.J X X q o.z. \",\r\n"
+"\" A.d.@.@.@.@.@.r.B.v h h C.h h C.h C.C.D.k E.F.G.J q q q o.H. \",\r\n"
+"\" I.d.@.@.@.@.i B.h h J.K.K.K.K.K.K.K.K.L.h M.N.O.I q q q o.P. \",\r\n"
+"\" Q.@.@.@.+.R.h S.T.U.V.W.X.X.X.X.X.X.W.Y.Z.`.<.X q q +.+ \",\r\n"
+"\" ++@+#+@.i #.[ $+%+&+*+=+=+=+=+=+=+=+=+-+;+<.W X X >+,+'+ \",\r\n"
+"\" )+!+@.@.i #.[ ~+{+]+^+/+(+(+(+/+_+:+<+[+p W X q q '.}+|+ \",\r\n"
+"\" 1+2+3+N 4+[ 5+6+7+8+9+9+9+9+9+0+a+b+I W X q Y a.c+d+ \",\r\n"
+"\" e+@+@.f+g+h h+i+j+k+k+k+k+l+m+n+o+(.p+I Y a.,+q+ \",\r\n"
+"\" r+2+2+s+t+u+k v+v+v+k k v+w+x+y+z+A+>.>+B+c+C+D+ \",\r\n"
+"\" E+F+2+t.G+H+I+I+J+K+h L+M+N+O+P+Q+c+R+S+ \",\r\n"
+"\" T+U+V+W+w+w+v.X+Y+Z+`+ @.@+@@@#@$@%@ \",\r\n"
+"\" &@*@*@=@ -@;@>@,@ \",\r\n"
+"\" \",\r\n"
+"\" \",\r\n"
+"\" \",\r\n"
+"\" \",\r\n"
+"\" \"};\r\n";
const char* helm_debian_icon_xpm = (const char*) temp_binary_data_4;
@@ -12328,7 +12328,7 @@ const char* getNamedResource (const char* resourceNameUTF8, int& numBytes) throw
case 0x5f707d58: numBytes = 126792; return RobotoLight_ttf;
case 0x93fe9a1e: numBytes = 126072; return RobotoRegular_ttf;
case 0x8ccb49c5: numBytes = 127584; return RobotoThin_ttf;
- case 0x20d826f8: numBytes = 6879; return helm_debian_icon_xpm;
+ case 0x20d826f8: numBytes = 7204; return helm_debian_icon_xpm;
case 0xa4953e86: numBytes = 1230; return helm_icon_16_1x_png;
case 0xa64a1725: numBytes = 2718; return helm_icon_16_2x_png;
case 0x2d99690c: numBytes = 2718; return helm_icon_32_1x_png;
diff --git a/JuceLibraryCode/BinaryData.h b/JuceLibraryCode/BinaryData.h
index 07288fe5d8..40f27568c4 100644
--- a/JuceLibraryCode/BinaryData.h
+++ b/JuceLibraryCode/BinaryData.h
@@ -21,7 +21,7 @@ namespace BinaryData
const int RobotoThin_ttfSize = 127584;
extern const char* helm_debian_icon_xpm;
- const int helm_debian_icon_xpmSize = 6879;
+ const int helm_debian_icon_xpmSize = 7204;
extern const char* helm_icon_16_1x_png;
const int helm_icon_16_1x_pngSize = 1230;
diff --git a/builds/linux/LV2/Makefile.binary b/builds/linux/LV2/Makefile.binary
index 6fde7132ee..079c617e73 100644
--- a/builds/linux/LV2/Makefile.binary
+++ b/builds/linux/LV2/Makefile.binary
@@ -158,6 +158,7 @@ OBJECTS_SHARED_CODE := \
$(JUCE_OBJDIR)/about_section_7d82e4ff.o \
$(JUCE_OBJDIR)/arp_section_a0da8a91.o \
$(JUCE_OBJDIR)/bpm_section_6b714e11.o \
+ $(JUCE_OBJDIR)/contribute_section_44364711.o \
$(JUCE_OBJDIR)/delay_section_9df39f5.o \
$(JUCE_OBJDIR)/delete_section_a0453dcf.o \
$(JUCE_OBJDIR)/distortion_section_2cd18141.o \
@@ -625,6 +626,11 @@ $(JUCE_OBJDIR)/bpm_section_6b714e11.o: ../../../src/editor_sections/bpm_section.
@echo "Compiling bpm_section.cpp"
$(V_AT)$(CXX) $(JUCE_CXXFLAGS) $(JUCE_CPPFLAGS_SHARED_CODE) $(JUCE_CFLAGS_SHARED_CODE) -o "$@" -c "$<"
+$(JUCE_OBJDIR)/contribute_section_44364711.o: ../../../src/editor_sections/contribute_section.cpp
+ -$(V_AT)mkdir -p $(JUCE_OBJDIR)
+ @echo "Compiling contribute_section.cpp"
+ $(V_AT)$(CXX) $(JUCE_CXXFLAGS) $(JUCE_CPPFLAGS_SHARED_CODE) $(JUCE_CFLAGS_SHARED_CODE) -o "$@" -c "$<"
+
$(JUCE_OBJDIR)/delay_section_9df39f5.o: ../../../src/editor_sections/delay_section.cpp
-$(V_AT)mkdir -p $(JUCE_OBJDIR)
@echo "Compiling delay_section.cpp"
diff --git a/builds/linux/VST/Makefile b/builds/linux/VST/Makefile
index 95dcbf60ae..9816a6241e 100644
--- a/builds/linux/VST/Makefile
+++ b/builds/linux/VST/Makefile
@@ -157,6 +157,7 @@ OBJECTS_SHARED_CODE := \
$(JUCE_OBJDIR)/about_section_7d82e4ff.o \
$(JUCE_OBJDIR)/arp_section_a0da8a91.o \
$(JUCE_OBJDIR)/bpm_section_6b714e11.o \
+ $(JUCE_OBJDIR)/contribute_section_44364711.o \
$(JUCE_OBJDIR)/delay_section_9df39f5.o \
$(JUCE_OBJDIR)/delete_section_a0453dcf.o \
$(JUCE_OBJDIR)/distortion_section_2cd18141.o \
@@ -618,6 +619,11 @@ $(JUCE_OBJDIR)/bpm_section_6b714e11.o: ../../../src/editor_sections/bpm_section.
@echo "Compiling bpm_section.cpp"
$(V_AT)$(CXX) $(JUCE_CXXFLAGS) $(JUCE_CPPFLAGS_SHARED_CODE) $(JUCE_CFLAGS_SHARED_CODE) -o "$@" -c "$<"
+$(JUCE_OBJDIR)/contribute_section_44364711.o: ../../../src/editor_sections/contribute_section.cpp
+ -$(V_AT)mkdir -p $(JUCE_OBJDIR)
+ @echo "Compiling contribute_section.cpp"
+ $(V_AT)$(CXX) $(JUCE_CXXFLAGS) $(JUCE_CPPFLAGS_SHARED_CODE) $(JUCE_CFLAGS_SHARED_CODE) -o "$@" -c "$<"
+
$(JUCE_OBJDIR)/delay_section_9df39f5.o: ../../../src/editor_sections/delay_section.cpp
-$(V_AT)mkdir -p $(JUCE_OBJDIR)
@echo "Compiling delay_section.cpp"
diff --git a/builds/osx/Helm.xcodeproj/project.pbxproj b/builds/osx/Helm.xcodeproj/project.pbxproj
index 6e3411d0c8..e8d24b9ee8 100644
--- a/builds/osx/Helm.xcodeproj/project.pbxproj
+++ b/builds/osx/Helm.xcodeproj/project.pbxproj
@@ -99,6 +99,7 @@
EDAA0BEF46E9C5979EFD5FFB = {isa = PBXBuildFile; fileRef = 121B46F5DDCCF31911E5CAB4; };
19C33CEF178C776F076B0177 = {isa = PBXBuildFile; fileRef = 43FA097C88B5333B84AEC57C; };
CFD4A95B90E0F64F91E51400 = {isa = PBXBuildFile; fileRef = 1DBED9C9D9979EE7390FE4B9; };
+ 279E2E24021B42127D792D92 = {isa = PBXBuildFile; fileRef = A5FC42F66B13C28D7AE002DB; };
37945D07A6BA18A323039663 = {isa = PBXBuildFile; fileRef = 6E4B84817E3088F503321710; };
3243DFB12372641E59D08AB2 = {isa = PBXBuildFile; fileRef = 7003A620FBD394F7F2A37623; };
A2C12BC10CADCAD976638382 = {isa = PBXBuildFile; fileRef = 109907FE77F9110A10C90C74; };
@@ -281,6 +282,7 @@
4D8A838542D61C7AC42FA75A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "midi_lookup.h"; path = "../../mopo/src/midi_lookup.h"; sourceTree = "SOURCE_ROOT"; };
4DBFDDC57F692A26490E5051 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "portamento_slope.cpp"; path = "../../mopo/src/portamento_slope.cpp"; sourceTree = "SOURCE_ROOT"; };
4DCF7D1C35D7808E4B31E450 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "synthesis_interface.cpp"; path = "../../src/editor_sections/synthesis_interface.cpp"; sourceTree = "SOURCE_ROOT"; };
+ 4DDD3E571712090A072B28DB = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "contribute_section.h"; path = "../../src/editor_sections/contribute_section.h"; sourceTree = "SOURCE_ROOT"; };
4DE9F7DD56A6A047F2CF264F = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "linear_slope.cpp"; path = "../../mopo/src/linear_slope.cpp"; sourceTree = "SOURCE_ROOT"; };
4E8A25627AEF6B318DB1ABDC = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "helm_voice_handler.cpp"; path = "../../src/synthesis/helm_voice_handler.cpp"; sourceTree = "SOURCE_ROOT"; };
4F68884C1729261C618CCD79 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "volume_section.h"; path = "../../src/editor_sections/volume_section.h"; sourceTree = "SOURCE_ROOT"; };
@@ -381,6 +383,7 @@
A2545F2BC7482E55796936FA = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "browser_look_and_feel.cpp"; path = "../../src/look_and_feel/browser_look_and_feel.cpp"; sourceTree = "SOURCE_ROOT"; };
A3A33ED63C604CE2E93E4084 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "text_look_and_feel.h"; path = "../../src/look_and_feel/text_look_and_feel.h"; sourceTree = "SOURCE_ROOT"; };
A4EE4562C83B552BD05A57B1 = {isa = PBXFileReference; lastKnownFileType = image.png; name = "helm_icon_16_2x.png"; path = "../../images/helm_icon_16_2x.png"; sourceTree = "SOURCE_ROOT"; };
+ A5FC42F66B13C28D7AE002DB = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "contribute_section.cpp"; path = "../../src/editor_sections/contribute_section.cpp"; sourceTree = "SOURCE_ROOT"; };
A6894BA8C1E038D246416555 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "helm_lfo.cpp"; path = "../../src/synthesis/helm_lfo.cpp"; sourceTree = "SOURCE_ROOT"; };
A696505C35C1DD2446018F00 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "synth_button.h"; path = "../../src/editor_components/synth_button.h"; sourceTree = "SOURCE_ROOT"; };
A6B25BEE44F66BF421287AD4 = {isa = PBXFileReference; lastKnownFileType = file.ttf; name = "Roboto-Thin.ttf"; path = "../../fonts/Roboto-Thin.ttf"; sourceTree = "SOURCE_ROOT"; };
@@ -700,6 +703,8 @@
B0A24C9951B143CCA7C62069,
1DBED9C9D9979EE7390FE4B9,
1F043D1A3D23CCD2F72B57EF,
+ A5FC42F66B13C28D7AE002DB,
+ 4DDD3E571712090A072B28DB,
6E4B84817E3088F503321710,
D8CDAE4774D99246AA6FE349,
7003A620FBD394F7F2A37623,
@@ -919,6 +924,7 @@
GENERATE_PKGINFO_FILE = YES;
HEADER_SEARCH_PATHS = ("../../VST3_SDK", "../../JuceLibraryCode", "../../JUCE/modules", "../../concurrentqueue", "../../mopo/src", "../../src", "../../src/common", "../../src/editor_components", "../../src/editor_sections", "../../src/look_and_feel", "../../src/standalone", "../../src/synthesis", "../../JUCE/modules/juce_audio_plugin_client", "$(inherited)");
INFOPLIST_FILE = Info-VST.plist;
+ INFOPLIST_PREPROCESS = NO;
INSTALL_PATH = "$(HOME)/Library/Audio/Plug-Ins/VST/";
LIBRARY_STYLE = Bundle;
MACOSX_DEPLOYMENT_TARGET = 10.7;
@@ -959,6 +965,7 @@
GENERATE_PKGINFO_FILE = YES;
HEADER_SEARCH_PATHS = ("../../VST3_SDK", "../../JuceLibraryCode", "../../JUCE/modules", "../../concurrentqueue", "../../mopo/src", "../../src", "../../src/common", "../../src/editor_components", "../../src/editor_sections", "../../src/look_and_feel", "../../src/standalone", "../../src/synthesis", "../../JUCE/modules/juce_audio_plugin_client", "$(inherited)");
INFOPLIST_FILE = Info-VST.plist;
+ INFOPLIST_PREPROCESS = NO;
INSTALL_PATH = "$(HOME)/Library/Audio/Plug-Ins/VST/";
LIBRARY_STYLE = Bundle;
MACOSX_DEPLOYMENT_TARGET = 10.7;
@@ -997,6 +1004,7 @@
GENERATE_PKGINFO_FILE = YES;
HEADER_SEARCH_PATHS = ("../../VST3_SDK", "../../JuceLibraryCode", "../../JUCE/modules", "../../concurrentqueue", "../../mopo/src", "../../src", "../../src/common", "../../src/editor_components", "../../src/editor_sections", "../../src/look_and_feel", "../../src/standalone", "../../src/synthesis", "../../JUCE/modules/juce_audio_plugin_client", "$(inherited)");
INFOPLIST_FILE = Info-VST3.plist;
+ INFOPLIST_PREPROCESS = NO;
INSTALL_PATH = "$(HOME)/Library/Audio/Plug-Ins/VST3/";
LIBRARY_STYLE = Bundle;
MACOSX_DEPLOYMENT_TARGET = 10.7;
@@ -1037,6 +1045,7 @@
GENERATE_PKGINFO_FILE = YES;
HEADER_SEARCH_PATHS = ("../../VST3_SDK", "../../JuceLibraryCode", "../../JUCE/modules", "../../concurrentqueue", "../../mopo/src", "../../src", "../../src/common", "../../src/editor_components", "../../src/editor_sections", "../../src/look_and_feel", "../../src/standalone", "../../src/synthesis", "../../JUCE/modules/juce_audio_plugin_client", "$(inherited)");
INFOPLIST_FILE = Info-VST3.plist;
+ INFOPLIST_PREPROCESS = NO;
INSTALL_PATH = "$(HOME)/Library/Audio/Plug-Ins/VST3/";
LIBRARY_STYLE = Bundle;
MACOSX_DEPLOYMENT_TARGET = 10.7;
@@ -1075,6 +1084,7 @@
GENERATE_PKGINFO_FILE = YES;
HEADER_SEARCH_PATHS = ("../../VST3_SDK", "../../JuceLibraryCode", "../../JUCE/modules", "../../concurrentqueue", "../../mopo/src", "../../src", "../../src/common", "../../src/editor_components", "../../src/editor_sections", "../../src/look_and_feel", "../../src/standalone", "../../src/synthesis", "../../JUCE/modules/juce_audio_plugin_client", "$(inherited)");
INFOPLIST_FILE = Info-AU.plist;
+ INFOPLIST_PREPROCESS = NO;
INSTALL_PATH = "$(HOME)/Library/Audio/Plug-Ins/Components/";
LIBRARY_STYLE = Bundle;
MACOSX_DEPLOYMENT_TARGET = 10.7;
@@ -1116,6 +1126,7 @@
GENERATE_PKGINFO_FILE = YES;
HEADER_SEARCH_PATHS = ("../../VST3_SDK", "../../JuceLibraryCode", "../../JUCE/modules", "../../concurrentqueue", "../../mopo/src", "../../src", "../../src/common", "../../src/editor_components", "../../src/editor_sections", "../../src/look_and_feel", "../../src/standalone", "../../src/synthesis", "../../JUCE/modules/juce_audio_plugin_client", "$(inherited)");
INFOPLIST_FILE = Info-AU.plist;
+ INFOPLIST_PREPROCESS = NO;
INSTALL_PATH = "$(HOME)/Library/Audio/Plug-Ins/Components/";
LIBRARY_STYLE = Bundle;
MACOSX_DEPLOYMENT_TARGET = 10.7;
@@ -1399,6 +1410,7 @@
EDAA0BEF46E9C5979EFD5FFB,
19C33CEF178C776F076B0177,
CFD4A95B90E0F64F91E51400,
+ 279E2E24021B42127D792D92,
37945D07A6BA18A323039663,
3243DFB12372641E59D08AB2,
A2C12BC10CADCAD976638382,
diff --git a/builds/vs15/Helm_SharedCode.vcxproj b/builds/vs15/Helm_SharedCode.vcxproj
index cffd74add1..5e0e3ca1a1 100644
--- a/builds/vs15/Helm_SharedCode.vcxproj
+++ b/builds/vs15/Helm_SharedCode.vcxproj
@@ -340,6 +340,7 @@
+
@@ -2125,6 +2126,7 @@
+
diff --git a/builds/vs15/Helm_SharedCode.vcxproj.filters b/builds/vs15/Helm_SharedCode.vcxproj.filters
index 07b5bc914c..f19e4b3291 100644
--- a/builds/vs15/Helm_SharedCode.vcxproj.filters
+++ b/builds/vs15/Helm_SharedCode.vcxproj.filters
@@ -628,6 +628,9 @@
Helm\src\editor_sections
+
+ Helm\src\editor_sections
+
Helm\src\editor_sections
@@ -2826,6 +2829,9 @@
Helm\src\editor_sections
+
+ Helm\src\editor_sections
+
Helm\src\editor_sections
diff --git a/helm.jucer b/helm.jucer
index 60dbbddb89..b5561d92e8 100644
--- a/helm.jucer
+++ b/helm.jucer
@@ -6,7 +6,7 @@
pluginName="Helm" pluginDesc="" pluginManufacturer="Matt Tytel"
pluginManufacturerCode="Tyte" pluginCode="Helm" pluginChannelConfigs="{0, 1}, {0, 2}"
pluginIsSynth="1" pluginWantsMidiIn="1" pluginProducesMidiOut="0"
- pluginSilenceInIsSilenceOut="0" pluginEditorRequiresKeys="1"
+ pluginSilenceInIsSilenceOut="0" pluginEditorRequiresKeys="0"
pluginAUExportPrefix="helm" pluginRTASCategory="" aaxIdentifier="org.tytel.helm"
pluginAAXCategory="AAX_ePlugInCategory_SWGenerators" jucerVersion="5.0.2"
companyName="Matt Tytel" companyEmail="matthewtytel@gmail.com"
@@ -313,6 +313,10 @@
+
+
diff --git a/images/helm_debian_icon.xpm b/images/helm_debian_icon.xpm
index 517b86684c..9b7633ac07 100644
--- a/images/helm_debian_icon.xpm
+++ b/images/helm_debian_icon.xpm
@@ -1,325 +1,325 @@
-/* XPM */
-static char * helm_logo_32_1x_xpm[] = {
-"32 32 290 2",
-" c None",
-". c #FFCF32",
-"+ c #FFCE30",
-"@ c #58ACF4",
-"# c #4CA8F4",
-"$ c #49A8F4",
-"% c #4BABF4",
-"& c #FFCA26",
-"* c #FFD21E",
-"= c #FFD315",
-"- c #FFD20D",
-"; c #FFD20E",
-"> c #FFD314",
-", c #FFD322",
-"' c #FFCB03",
-") c #DDC187",
-"! c #7FAEE7",
-"~ c #009FFF",
-"{ c #32A3FF",
-"] c #34A3FF",
-"^ c #2FA4FF",
-"/ c #38A5FF",
-"( c #3EA2F4",
-"_ c #48A9F4",
-": c #FFC923",
-"< c #FFD311",
-"[ c #FFC600",
-"} c #FFC300",
-"| c #FEC316",
-"1 c #FDC322",
-"2 c #FEC421",
-"3 c #FDC321",
-"4 c #FDC31E",
-"5 c #FFC626",
-"6 c #FFCA00",
-"7 c #FDC716",
-"8 c #B1ADB1",
-"9 c #008FF7",
-"0 c #0095F6",
-"a c #2595F3",
-"b c #1894F3",
-"c c #1D96F6",
-"d c #2CA3FF",
-"e c #3DA1F4",
-"f c #FFCD30",
-"g c #FFD61C",
-"h c #FFC500",
-"i c #FFC401",
-"j c #FFC40F",
-"k c #FFC700",
-"l c #FFCD00",
-"m c #CDB595",
-"n c #2194F0",
-"o c #1F97F4",
-"p c #2697F3",
-"q c #2196F3",
-"r c #1E95F4",
-"s c #1C96F5",
-"t c #37A8FF",
-"u c #FFD519",
-"v c #FFC404",
-"w c #FFC40E",
-"x c #EDBF62",
-"y c #DABA8D",
-"z c #DDBB89",
-"A c #DCBA8A",
-"B c #DCBB8A",
-"C c #DBBA8B",
-"D c #DCB98B",
-"E c #E4C07B",
-"F c #8CA7D2",
-"G c #0093F8",
-"H c #2C97F2",
-"I c #2096F3",
-"J c #2296F3",
-"K c #1994F3",
-"L c #33A7FF",
-"M c #FFC71A",
-"N c #FEC402",
-"O c #FEC411",
-"P c #F7C135",
-"Q c #6B9FE1",
-"R c #0096FB",
-"S c #0298F5",
-"T c #0098F7",
-"U c #0098F6",
-"V c #319AF3",
-"W c #2097F3",
-"X c #2197F3",
-"Y c #2196F2",
-"Z c #2396F3",
-"` c #349DF4",
-" . c #FFC922",
-".. c #FFD104",
-"+. c #FFC402",
-"@. c #FFC403",
-"#. c #FEC417",
-"$. c #F0BD53",
-"%. c #4997EB",
-"&. c #1695F4",
-"*. c #3196F1",
-"=. c #2C96F2",
-"-. c #2D96F1",
-";. c #2A96F2",
-">. c #2396F2",
-",. c #2B97F2",
-"'. c #2196F4",
-"). c #24A0FF",
-"!. c #3AA1F4",
-"~. c #FFC613",
-"{. c #FEC416",
-"]. c #F0BD4E",
-"^. c #3796EE",
-"/. c #0096FC",
-"(. c #0097F8",
-"_. c #0097F9",
-":. c #0997F6",
-"<. c #2497F3",
-"[. c #1E97F5",
-"}. c #2C9AF3",
-"|. c #FFCE07",
-"1. c #FFC40A",
-"2. c #FBC104",
-"3. c #969CBA",
-"4. c #4B90DC",
-"5. c #6093D6",
-"6. c #5C92D7",
-"7. c #5C92D8",
-"8. c #5F92D5",
-"9. c #4295E7",
-"0. c #1597F5",
-"a. c #2195F3",
-"b. c #269EFF",
-"c. c #FFC614",
-"d. c #FFD003",
-"e. c #FFC409",
-"f. c #FDC200",
-"g. c #F5BC13",
-"h. c #F5BD10",
-"i. c #F5BD0F",
-"j. c #F4BC24",
-"k. c #FCBF00",
-"l. c #BEACA0",
-"m. c #0092F9",
-"n. c #2F97F2",
-"o. c #239FFF",
-"p. c #2D9AF4",
-"q. c #FFC408",
-"r. c #FFC501",
-"s. c #FFC512",
-"t. c #FFC601",
-"u. c #FFC51D",
-"v. c #FFC900",
-"w. c #D5B386",
-"x. c #0091F5",
-"y. c #2B98F3",
-"z. c #2597F3",
-"A. c #FDC303",
-"B. c #FFC40B",
-"C. c #FFC400",
-"D. c #FFC406",
-"E. c #D2B084",
-"F. c #0090F5",
-"G. c #2C98F3",
-"H. c #2094F1",
-"I. c #F8BE04",
-"J. c #F9C339",
-"K. c #F9C337",
-"L. c #F8C23F",
-"M. c #BBAAA3",
-"N. c #0091F9",
-"O. c #3098F2",
-"P. c #2091EB",
-"Q. c #FFCC03",
-"R. c #FFC40C",
-"S. c #FCC314",
-"T. c #A1AAC7",
-"U. c #5FA0E9",
-"V. c #70A2E3",
-"W. c #6CA2E4",
-"X. c #6DA2E4",
-"Y. c #6FA2E3",
-"Z. c #4A9BEC",
-"`. c #0F96F4",
-" + c #2296F4",
-".+ c #229CFD",
-"++ c #F8BF03",
-"@+ c #FFC703",
-"#+ c #FEC403",
-"$+ c #F1BE50",
-"%+ c #3496EE",
-"&+ c #0093FA",
-"*+ c #0094F6",
-"=+ c #0094F7",
-"-+ c #0094F8",
-";+ c #0196F5",
-">+ c #2195F2",
-",+ c #2298F7",
-"'+ c #2191EC",
-")+ c #EBB403",
-"!+ c #FFD103",
-"~+ c #F0BD52",
-"{+ c #4C99EC",
-"]+ c #2198F6",
-"^+ c #3799F3",
-"/+ c #3299F4",
-"(+ c #3399F4",
-"_+ c #3399F3",
-":+ c #2F98F4",
-"<+ c #2A98F4",
-"[+ c #2D97F2",
-"}+ c #23A0FF",
-"|+ c #1F8ADF",
-"1+ c #F1B903",
-"2+ c #FFC803",
-"3+ c #FEC303",
-"4+ c #FEC410",
-"5+ c #F6BF2E",
-"6+ c #6095D9",
-"7+ c #008DF4",
-"8+ c #0090EF",
-"9+ c #008FF0",
-"0+ c #008EF0",
-"a+ c #0090F0",
-"b+ c #2694EE",
-"c+ c #2299F8",
-"d+ c #1F8FE6",
-"e+ c #FFCA03",
-"f+ c #FEC302",
-"g+ c #FFC40D",
-"h+ c #E8B74E",
-"i+ c #D1AD77",
-"j+ c #D5AF73",
-"k+ c #D4AE73",
-"l+ c #D2AD75",
-"m+ c #D8B278",
-"n+ c #CFA75D",
-"o+ c #698FC7",
-"p+ c #2997F2",
-"q+ c #229BFA",
-"r+ c #D6A404",
-"s+ c #FFC503",
-"t+ c #FEC401",
-"u+ c #FEC40D",
-"v+ c #FFC800",
-"w+ c #FFCB00",
-"x+ c #FFC000",
-"y+ c #B19B87",
-"z+ c #1793EE",
-"A+ c #2297F4",
-"B+ c #2197F6",
-"C+ c #2299F7",
-"D+ c #1E7FCB",
-"E+ c #E8B204",
-"F+ c #FFCD03",
-"G+ c #FFC515",
-"H+ c #FFC51F",
-"I+ c #FFC51E",
-"J+ c #FFC61C",
-"K+ c #FFC822",
-"L+ c #E6B100",
-"M+ c #9091A4",
-"N+ c #008FF4",
-"O+ c #1798F8",
-"P+ c #2697F5",
-"Q+ c #2198F7",
-"R+ c #239DFE",
-"S+ c #1F89DD",
-"T+ c #D7A605",
-"U+ c #E6B103",
-"V+ c #FCC204",
-"W+ c #FFC902",
-"X+ c #FDC30A",
-"Y+ c #E7B200",
-"Z+ c #B79559",
-"`+ c #5588C7",
-" @ c #0096FD",
-".@ c #2C9DFD",
-"+@ c #279BFA",
-"@@ c #219AF9",
-"#@ c #2195F0",
-"$@ c #1F88DA",
-"%@ c #1D80CC",
-"&@ c #D2A304",
-"*@ c #D7A505",
-"=@ c #D2A305",
-"-@ c #3280C7",
-";@ c #207FCA",
-">@ c #1C7FCC",
-",@ c #1F7EC9",
-" ",
-" ",
-" ",
-" ",
-" ",
-" . + + . @ # $ % ",
-" + & * = - ; > , ' ) ! ~ { ] ^ / ( _ ",
-" : < [ } | 1 2 3 4 5 6 7 8 9 0 a b c d e ",
-" f g h } i j [ k [ [ [ [ h [ l m n o p q r s t $ ",
-" u } v v w h x y z A A B z C D E F G H I J J K L ",
-" M h v N O h P Q R S T T T T U T T V W W X q Y Z s ` ",
-" ...+.@.i #.[ $.%.&.*.=.=.=.=.=.-.;.>.,.p W X q q '.).!. ",
-" ~.[ v @.i {.[ ].^./.(._._._._._._._._._.:.<.W X q q [.}. ",
-" |.i @.@.@.1.h 2.3.4.5.6.6.6.6.6.6.6.7.8.9.0.Z X q q a.b. ",
-" c.d.@.@.@.@.+.e.h f.g.h.h.h.h.h.h.h.i.j.k.l.m.n.I q q q o.p. ",
-" q.d.@.@.@.@.@.r.q.s.[ t.t.t.t.t.t.t.[ u.v.w.x.y.J X X q o.z. ",
-" A.d.@.@.@.@.@.r.B.v h h C.h h C.h C.C.D.k E.F.G.J q q q o.H. ",
-" I.d.@.@.@.@.i B.h h J.K.K.K.K.K.K.K.K.L.h M.N.O.I q q q o.P. ",
-" Q.@.@.@.+.R.h S.T.U.V.W.X.X.X.X.X.X.W.Y.Z.`.<.X q q +.+ ",
-" ++@+#+@.i #.[ $+%+&+*+=+=+=+=+=+=+=+=+-+;+<.W X X >+,+'+ ",
-" )+!+@.@.i #.[ ~+{+]+^+/+(+(+(+/+_+:+<+[+p W X q q '.}+|+ ",
-" 1+2+3+N 4+[ 5+6+7+8+9+9+9+9+9+0+a+b+I W X q Y a.c+d+ ",
-" e+@+@.f+g+h h+i+j+k+k+k+k+l+m+n+o+(.p+I Y a.,+q+ ",
-" r+2+2+s+t+u+k v+v+v+k k v+w+x+y+z+A+>.>+B+c+C+D+ ",
-" E+F+2+t.G+H+I+I+J+K+h L+M+N+O+P+Q+c+R+S+ ",
-" T+U+V+W+w+w+v.X+Y+Z+`+ @.@+@@@#@$@%@ ",
-" &@*@*@=@ -@;@>@,@ ",
-" ",
-" ",
-" ",
-" ",
-" "};
+/* XPM */
+static char * helm_logo_32_1x_xpm[] = {
+"32 32 290 2",
+" c None",
+". c #FFCF32",
+"+ c #FFCE30",
+"@ c #58ACF4",
+"# c #4CA8F4",
+"$ c #49A8F4",
+"% c #4BABF4",
+"& c #FFCA26",
+"* c #FFD21E",
+"= c #FFD315",
+"- c #FFD20D",
+"; c #FFD20E",
+"> c #FFD314",
+", c #FFD322",
+"' c #FFCB03",
+") c #DDC187",
+"! c #7FAEE7",
+"~ c #009FFF",
+"{ c #32A3FF",
+"] c #34A3FF",
+"^ c #2FA4FF",
+"/ c #38A5FF",
+"( c #3EA2F4",
+"_ c #48A9F4",
+": c #FFC923",
+"< c #FFD311",
+"[ c #FFC600",
+"} c #FFC300",
+"| c #FEC316",
+"1 c #FDC322",
+"2 c #FEC421",
+"3 c #FDC321",
+"4 c #FDC31E",
+"5 c #FFC626",
+"6 c #FFCA00",
+"7 c #FDC716",
+"8 c #B1ADB1",
+"9 c #008FF7",
+"0 c #0095F6",
+"a c #2595F3",
+"b c #1894F3",
+"c c #1D96F6",
+"d c #2CA3FF",
+"e c #3DA1F4",
+"f c #FFCD30",
+"g c #FFD61C",
+"h c #FFC500",
+"i c #FFC401",
+"j c #FFC40F",
+"k c #FFC700",
+"l c #FFCD00",
+"m c #CDB595",
+"n c #2194F0",
+"o c #1F97F4",
+"p c #2697F3",
+"q c #2196F3",
+"r c #1E95F4",
+"s c #1C96F5",
+"t c #37A8FF",
+"u c #FFD519",
+"v c #FFC404",
+"w c #FFC40E",
+"x c #EDBF62",
+"y c #DABA8D",
+"z c #DDBB89",
+"A c #DCBA8A",
+"B c #DCBB8A",
+"C c #DBBA8B",
+"D c #DCB98B",
+"E c #E4C07B",
+"F c #8CA7D2",
+"G c #0093F8",
+"H c #2C97F2",
+"I c #2096F3",
+"J c #2296F3",
+"K c #1994F3",
+"L c #33A7FF",
+"M c #FFC71A",
+"N c #FEC402",
+"O c #FEC411",
+"P c #F7C135",
+"Q c #6B9FE1",
+"R c #0096FB",
+"S c #0298F5",
+"T c #0098F7",
+"U c #0098F6",
+"V c #319AF3",
+"W c #2097F3",
+"X c #2197F3",
+"Y c #2196F2",
+"Z c #2396F3",
+"` c #349DF4",
+" . c #FFC922",
+".. c #FFD104",
+"+. c #FFC402",
+"@. c #FFC403",
+"#. c #FEC417",
+"$. c #F0BD53",
+"%. c #4997EB",
+"&. c #1695F4",
+"*. c #3196F1",
+"=. c #2C96F2",
+"-. c #2D96F1",
+";. c #2A96F2",
+">. c #2396F2",
+",. c #2B97F2",
+"'. c #2196F4",
+"). c #24A0FF",
+"!. c #3AA1F4",
+"~. c #FFC613",
+"{. c #FEC416",
+"]. c #F0BD4E",
+"^. c #3796EE",
+"/. c #0096FC",
+"(. c #0097F8",
+"_. c #0097F9",
+":. c #0997F6",
+"<. c #2497F3",
+"[. c #1E97F5",
+"}. c #2C9AF3",
+"|. c #FFCE07",
+"1. c #FFC40A",
+"2. c #FBC104",
+"3. c #969CBA",
+"4. c #4B90DC",
+"5. c #6093D6",
+"6. c #5C92D7",
+"7. c #5C92D8",
+"8. c #5F92D5",
+"9. c #4295E7",
+"0. c #1597F5",
+"a. c #2195F3",
+"b. c #269EFF",
+"c. c #FFC614",
+"d. c #FFD003",
+"e. c #FFC409",
+"f. c #FDC200",
+"g. c #F5BC13",
+"h. c #F5BD10",
+"i. c #F5BD0F",
+"j. c #F4BC24",
+"k. c #FCBF00",
+"l. c #BEACA0",
+"m. c #0092F9",
+"n. c #2F97F2",
+"o. c #239FFF",
+"p. c #2D9AF4",
+"q. c #FFC408",
+"r. c #FFC501",
+"s. c #FFC512",
+"t. c #FFC601",
+"u. c #FFC51D",
+"v. c #FFC900",
+"w. c #D5B386",
+"x. c #0091F5",
+"y. c #2B98F3",
+"z. c #2597F3",
+"A. c #FDC303",
+"B. c #FFC40B",
+"C. c #FFC400",
+"D. c #FFC406",
+"E. c #D2B084",
+"F. c #0090F5",
+"G. c #2C98F3",
+"H. c #2094F1",
+"I. c #F8BE04",
+"J. c #F9C339",
+"K. c #F9C337",
+"L. c #F8C23F",
+"M. c #BBAAA3",
+"N. c #0091F9",
+"O. c #3098F2",
+"P. c #2091EB",
+"Q. c #FFCC03",
+"R. c #FFC40C",
+"S. c #FCC314",
+"T. c #A1AAC7",
+"U. c #5FA0E9",
+"V. c #70A2E3",
+"W. c #6CA2E4",
+"X. c #6DA2E4",
+"Y. c #6FA2E3",
+"Z. c #4A9BEC",
+"`. c #0F96F4",
+" + c #2296F4",
+".+ c #229CFD",
+"++ c #F8BF03",
+"@+ c #FFC703",
+"#+ c #FEC403",
+"$+ c #F1BE50",
+"%+ c #3496EE",
+"&+ c #0093FA",
+"*+ c #0094F6",
+"=+ c #0094F7",
+"-+ c #0094F8",
+";+ c #0196F5",
+">+ c #2195F2",
+",+ c #2298F7",
+"'+ c #2191EC",
+")+ c #EBB403",
+"!+ c #FFD103",
+"~+ c #F0BD52",
+"{+ c #4C99EC",
+"]+ c #2198F6",
+"^+ c #3799F3",
+"/+ c #3299F4",
+"(+ c #3399F4",
+"_+ c #3399F3",
+":+ c #2F98F4",
+"<+ c #2A98F4",
+"[+ c #2D97F2",
+"}+ c #23A0FF",
+"|+ c #1F8ADF",
+"1+ c #F1B903",
+"2+ c #FFC803",
+"3+ c #FEC303",
+"4+ c #FEC410",
+"5+ c #F6BF2E",
+"6+ c #6095D9",
+"7+ c #008DF4",
+"8+ c #0090EF",
+"9+ c #008FF0",
+"0+ c #008EF0",
+"a+ c #0090F0",
+"b+ c #2694EE",
+"c+ c #2299F8",
+"d+ c #1F8FE6",
+"e+ c #FFCA03",
+"f+ c #FEC302",
+"g+ c #FFC40D",
+"h+ c #E8B74E",
+"i+ c #D1AD77",
+"j+ c #D5AF73",
+"k+ c #D4AE73",
+"l+ c #D2AD75",
+"m+ c #D8B278",
+"n+ c #CFA75D",
+"o+ c #698FC7",
+"p+ c #2997F2",
+"q+ c #229BFA",
+"r+ c #D6A404",
+"s+ c #FFC503",
+"t+ c #FEC401",
+"u+ c #FEC40D",
+"v+ c #FFC800",
+"w+ c #FFCB00",
+"x+ c #FFC000",
+"y+ c #B19B87",
+"z+ c #1793EE",
+"A+ c #2297F4",
+"B+ c #2197F6",
+"C+ c #2299F7",
+"D+ c #1E7FCB",
+"E+ c #E8B204",
+"F+ c #FFCD03",
+"G+ c #FFC515",
+"H+ c #FFC51F",
+"I+ c #FFC51E",
+"J+ c #FFC61C",
+"K+ c #FFC822",
+"L+ c #E6B100",
+"M+ c #9091A4",
+"N+ c #008FF4",
+"O+ c #1798F8",
+"P+ c #2697F5",
+"Q+ c #2198F7",
+"R+ c #239DFE",
+"S+ c #1F89DD",
+"T+ c #D7A605",
+"U+ c #E6B103",
+"V+ c #FCC204",
+"W+ c #FFC902",
+"X+ c #FDC30A",
+"Y+ c #E7B200",
+"Z+ c #B79559",
+"`+ c #5588C7",
+" @ c #0096FD",
+".@ c #2C9DFD",
+"+@ c #279BFA",
+"@@ c #219AF9",
+"#@ c #2195F0",
+"$@ c #1F88DA",
+"%@ c #1D80CC",
+"&@ c #D2A304",
+"*@ c #D7A505",
+"=@ c #D2A305",
+"-@ c #3280C7",
+";@ c #207FCA",
+">@ c #1C7FCC",
+",@ c #1F7EC9",
+" ",
+" ",
+" ",
+" ",
+" ",
+" . + + . @ # $ % ",
+" + & * = - ; > , ' ) ! ~ { ] ^ / ( _ ",
+" : < [ } | 1 2 3 4 5 6 7 8 9 0 a b c d e ",
+" f g h } i j [ k [ [ [ [ h [ l m n o p q r s t $ ",
+" u } v v w h x y z A A B z C D E F G H I J J K L ",
+" M h v N O h P Q R S T T T T U T T V W W X q Y Z s ` ",
+" ...+.@.i #.[ $.%.&.*.=.=.=.=.=.-.;.>.,.p W X q q '.).!. ",
+" ~.[ v @.i {.[ ].^./.(._._._._._._._._._.:.<.W X q q [.}. ",
+" |.i @.@.@.1.h 2.3.4.5.6.6.6.6.6.6.6.7.8.9.0.Z X q q a.b. ",
+" c.d.@.@.@.@.+.e.h f.g.h.h.h.h.h.h.h.i.j.k.l.m.n.I q q q o.p. ",
+" q.d.@.@.@.@.@.r.q.s.[ t.t.t.t.t.t.t.[ u.v.w.x.y.J X X q o.z. ",
+" A.d.@.@.@.@.@.r.B.v h h C.h h C.h C.C.D.k E.F.G.J q q q o.H. ",
+" I.d.@.@.@.@.i B.h h J.K.K.K.K.K.K.K.K.L.h M.N.O.I q q q o.P. ",
+" Q.@.@.@.+.R.h S.T.U.V.W.X.X.X.X.X.X.W.Y.Z.`.<.X q q +.+ ",
+" ++@+#+@.i #.[ $+%+&+*+=+=+=+=+=+=+=+=+-+;+<.W X X >+,+'+ ",
+" )+!+@.@.i #.[ ~+{+]+^+/+(+(+(+/+_+:+<+[+p W X q q '.}+|+ ",
+" 1+2+3+N 4+[ 5+6+7+8+9+9+9+9+9+0+a+b+I W X q Y a.c+d+ ",
+" e+@+@.f+g+h h+i+j+k+k+k+k+l+m+n+o+(.p+I Y a.,+q+ ",
+" r+2+2+s+t+u+k v+v+v+k k v+w+x+y+z+A+>.>+B+c+C+D+ ",
+" E+F+2+t.G+H+I+I+J+K+h L+M+N+O+P+Q+c+R+S+ ",
+" T+U+V+W+w+w+v.X+Y+Z+`+ @.@+@@@#@$@%@ ",
+" &@*@*@=@ -@;@>@,@ ",
+" ",
+" ",
+" ",
+" ",
+" "};
diff --git a/src/editor_sections/contribute_section.cpp b/src/editor_sections/contribute_section.cpp
new file mode 100644
index 0000000000..50a5f91f31
--- /dev/null
+++ b/src/editor_sections/contribute_section.cpp
@@ -0,0 +1,168 @@
+/* Copyright 2013-2017 Matt Tytel
+ *
+ * helm is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * helm is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with helm. If not, see .
+ */
+
+#include "contribute_section.h"
+#include "colors.h"
+#include "fonts.h"
+#include "browser_look_and_feel.h"
+
+#define INFO_HEIGHT 300
+#define INFO_WIDTH 600
+
+#define PADDING_X 25
+#define PADDING_Y 25
+#define AMOUNT_PADDING 5
+
+ContributeSection::ContributeSection(String name) : Overlay(name) {
+ give_100_button_ = new ToggleButton("$100");
+ addAndMakeVisible(give_100_button_);
+ give_100_button_->addListener(this);
+ give_100_button_->setLookAndFeel(BrowserLookAndFeel::instance());
+
+ give_50_button_ = new ToggleButton("$50");
+ addAndMakeVisible(give_50_button_);
+ give_50_button_->addListener(this);
+ give_50_button_->setLookAndFeel(BrowserLookAndFeel::instance());
+
+ give_25_button_ = new ToggleButton("$25");
+ addAndMakeVisible(give_25_button_);
+ give_25_button_->addListener(this);
+ give_25_button_->setLookAndFeel(BrowserLookAndFeel::instance());
+
+ give_10_button_ = new ToggleButton("$10");
+ addAndMakeVisible(give_10_button_);
+ give_10_button_->addListener(this);
+ give_10_button_->setLookAndFeel(BrowserLookAndFeel::instance());
+ give_10_button_->setToggleState(true, NotificationType::dontSendNotification);
+
+ give_buttons_.insert(give_100_button_);
+ give_buttons_.insert(give_50_button_);
+ give_buttons_.insert(give_25_button_);
+ give_buttons_.insert(give_10_button_);
+
+ custom_amount_ = new CustomAmountEditor("custom amount");
+ addAndMakeVisible(custom_amount_);
+ custom_amount_->addFocusListener(this);
+
+ custom_amount_->setTextToShowWhenEmpty(TRANS("$5"), Colour(0xff777777));
+ custom_amount_->setInputRestrictions(6, "$0123456789.");
+ custom_amount_->setFont(Fonts::instance()->proportional_light().withPointHeight(16.0f));
+ custom_amount_->setIndents(4, 12);
+ custom_amount_->setColour(CaretComponent::caretColourId, Colour(0xff888888));
+ custom_amount_->setColour(TextEditor::textColourId, Colour(0xffcccccc));
+ custom_amount_->setColour(TextEditor::highlightedTextColourId, Colour(0xffcccccc));
+ custom_amount_->setColour(TextEditor::highlightColourId, Colour(0xff888888));
+ custom_amount_->setColour(TextEditor::backgroundColourId, Colour(0xff323232));
+ custom_amount_->setColour(TextEditor::outlineColourId, Colour(0xff888888));
+ custom_amount_->setColour(TextEditor::focusedOutlineColourId, Colour(0xffffab00));
+
+ pay_button_ = new TextButton(TRANS("Pay"));
+ addAndMakeVisible(pay_button_);
+ pay_button_->addListener(this);
+
+ remind_button_ = new TextButton(TRANS("Remind Me Later"));
+ addAndMakeVisible(remind_button_);
+ remind_button_->addListener(this);
+
+ never_again_button_ = new TextButton(TRANS("Don't Ask Again"));
+ addAndMakeVisible(never_again_button_);
+ never_again_button_->addListener(this);
+}
+
+void ContributeSection::paint(Graphics& g) {
+ static const DropShadow shadow(Colour(0xff000000), 5, Point(0, 0));
+
+ g.setColour(Colors::overlay_screen);
+ g.fillAll();
+
+ Rectangle info_rect = getInfoRect();
+ shadow.drawForRectangle(g, info_rect);
+ g.setColour(Colour(0xff303030));
+ g.fillRect(info_rect);
+
+ g.saveState();
+ g.setOrigin(info_rect.getX() + PADDING_X, info_rect.getY() + PADDING_Y);
+
+
+
+ g.restoreState();
+}
+
+void ContributeSection::resized() {
+ static const int amount_height = 45;
+ static const int pay_height = 60;
+ static const int pay_width = 200;
+ static const int remind_height = 45;
+ Rectangle info_rect = getInfoRect();
+ int amount_width = (INFO_WIDTH - 2 * PADDING_X - 4 * AMOUNT_PADDING) / 5;
+ int amount_y = info_rect.getY() + 160;
+
+ give_100_button_->setBounds(info_rect.getX() + PADDING_X, amount_y, amount_width, amount_height);
+ give_50_button_->setBounds(give_100_button_->getRight() + AMOUNT_PADDING, amount_y,
+ amount_width, amount_height);
+ give_25_button_->setBounds(give_50_button_->getRight() + AMOUNT_PADDING, amount_y,
+ amount_width, amount_height);
+ give_10_button_->setBounds(give_25_button_->getRight() + AMOUNT_PADDING, amount_y,
+ amount_width, amount_height);
+ custom_amount_->setBounds(give_10_button_->getRight() + AMOUNT_PADDING, amount_y,
+ amount_width, amount_height);
+
+ pay_button_->setBounds(info_rect.getX() + PADDING_X,
+ info_rect.getBottom() - PADDING_Y - pay_height,
+ pay_width, pay_height);
+}
+
+void ContributeSection::mouseUp(const MouseEvent &e) {
+ if (!getInfoRect().contains(e.getPosition()))
+ setVisible(false);
+}
+
+void ContributeSection::buttonClicked(Button* clicked_button) {
+ if (give_buttons_.count(clicked_button)) {
+ for (Button* give_button : give_buttons_) {
+ if (give_button != clicked_button)
+ give_button->setToggleState(false, NotificationType::dontSendNotification);
+ }
+ }
+ else if (clicked_button == pay_button_) {
+ URL url = getUrl();
+ url.launchInDefaultBrowser();
+ }
+}
+
+void ContributeSection::textEditorFocusGained(FocusChangeType cause) {
+ for (Button* give_button : give_buttons_)
+ give_button->setToggleState(false, NotificationType::dontSendNotification);
+}
+
+Rectangle ContributeSection::getInfoRect() {
+ int x = (getWidth() - INFO_WIDTH) / 2;
+ int y = (getHeight() - INFO_HEIGHT) / 2;
+ return Rectangle(x, y, INFO_WIDTH, INFO_HEIGHT);
+}
+
+URL ContributeSection::getUrl() {
+ String amount;
+ for (Button* give_button : give_buttons_) {
+ if (give_button->getToggleState())
+ amount = give_button->getName();
+ }
+ if (amount == "")
+ amount = custom_amount_->getText();
+
+ amount = URL::addEscapeChars(amount.replace("$", ""), true);
+ return URL(String("http://tytel.org/helm/paylater/?amount=") + amount);
+}
diff --git a/src/editor_sections/contribute_section.h b/src/editor_sections/contribute_section.h
new file mode 100644
index 0000000000..ff0df508ae
--- /dev/null
+++ b/src/editor_sections/contribute_section.h
@@ -0,0 +1,80 @@
+/* Copyright 2013-2017 Matt Tytel
+ *
+ * helm is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * helm is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with helm. If not, see .
+ */
+
+#pragma once
+#ifndef CONTRIBUTE_SECTION_H
+#define CONTRIBUTE_SECTION_H
+
+#include "JuceHeader.h"
+#include "overlay.h"
+
+class CustomAmountEditor : public TextEditor {
+ public:
+ class Listener {
+ public:
+ virtual ~Listener() { }
+ virtual void textEditorFocusGained(FocusChangeType cause) { }
+ };
+
+ CustomAmountEditor(String name) : TextEditor(name) { }
+
+ void focusGained(FocusChangeType cause) override {
+ for (Listener* listener: listeners_)
+ listener->textEditorFocusGained(cause);
+ TextEditor::focusGained(cause);
+ }
+
+ void addFocusListener(Listener* listener) {
+ listeners_.push_back(listener);
+ }
+
+ private:
+ std::vector listeners_;
+};
+
+class ContributeSection : public Overlay, public ButtonListener, CustomAmountEditor::Listener {
+ public:
+ ContributeSection(String name);
+ ~ContributeSection() { }
+ void paint(Graphics& g) override;
+ void resized() override;
+
+ Rectangle getInfoRect();
+
+ void mouseUp(const MouseEvent& e) override;
+ void buttonClicked(Button* clicked_button) override;
+
+ void textEditorFocusGained(FocusChangeType cause) override;
+
+ private:
+ URL getUrl();
+
+ ScopedPointer