From 0dc4d904958be28e226aede0b105e20757b2bee5 Mon Sep 17 00:00:00 2001 From: Pascal Gauthier Date: Mon, 14 Jul 2014 19:02:46 -0400 Subject: [PATCH] Automation UI Fix --- .gitignore | 5 ++++- Builds/VisualStudio2012/Dexed.v11.suo | Bin 82944 -> 75264 bytes Builds/VisualStudio2012/Dexed.vcxproj | 2 +- Builds/VisualStudio2012/Dexed.vcxproj.filters | 9 +++++++++ README.md | 16 ++++++++-------- Source/GlobalEditor.cpp | 1 - Source/PluginData.cpp | 6 +----- Source/PluginParam.cpp | 17 +++++++++++++---- 8 files changed, 36 insertions(+), 20 deletions(-) diff --git a/.gitignore b/.gitignore index ec1bcf0..5477358 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,5 @@ Builds/VisualStudio2012/Dexed.vcxproj.user -Builds/VisualStudio2012/Dexed.sdf \ No newline at end of file +Builds/VisualStudio2012/Dexed.sdf +Builds/VisualStudio2012/Debug +Builds/VisualStudio2012/Release +Builds/VisualStudio2012/x64 \ No newline at end of file diff --git a/Builds/VisualStudio2012/Dexed.v11.suo b/Builds/VisualStudio2012/Dexed.v11.suo index 45bd08d6ec3b8fda48b43c451a1fcb99076be6b7..5c0b5e195ec2f47cd066ba7c8ac829cdac38743f 100644 GIT binary patch delta 3502 zcmc(h4Nz3q6@d3V-ogSaF1Wyg{H)80KpfdsLkJ=~U}M36`~-i-3IYELX+eq$1tjeH zTSAC|ccMF!T2r?*HH{N>-vp-9)LF%vOvhFeYuj|3Szc)* ziEUgP%#`kM3DDcX+svd4Bh36uCh~}2B9h1=nDa#>pCoidG7(E; z5_5?V!bq@(8AvW9(!Fh_o9C_1_R&pE^;QN2Hj(C8Vnc7~^Qw(h*+k%L^Nhk4sx%Pa zCmM;Zgq2`(`2k7hw}oVzx4w;JJMki6C-84z4NjCw(} zVUOPX{Qq|E<$1b-1PGNI&w)ZwPE7VzA9JZ&0JdW5jBWnQX`apVa3XdEURj~VFSMa( z;sVebSE6E9k==2uj*cf~AdZoexueVbwbB~j?OG*(N{#}|U!5Pr8iQnYo%oEnK@1U0 zk4IM<)v~om@yTkV7-8|aE+V4`&$C8cP!*D*Y??B%+ojcWsMj6gbA39bF`XLzZDG4wwqD__myj$a*tDJ_ z$_d#9*C^-Xu6dbS7AuVeiyPL-Vg>);C`A2Qqv~7KV4mfbO4hZ-fCHRaX(R1!X*@oF z2L*<9W;+B9S~Zv7dn;>8`=(^o_3soOI=DRtOQW^@mpMoPFp?gTI|$e0G1J(0;P`sIGSF@qSN?ecJ$sK`gVV)Z~VJ3&`$aB{r4WpcwCz zO$D-~#gc$R`YJH*;Td;&91VaoiSq=+Q78KipN3aZo)JYN{58NIwSS9N)J$ALGmRy9oY z%*9)U=QIVuXFfUgia5UmUi{RhKDoye#8->r#Y!s_VpHW#xFn5N27s8@uF=!P{=bR1 z;qmdp5{|s3KJjAECGykqP#J~AK5R`-Mnn3W{PRAeq_K20IQMX3mR{0tyaLWHzTlfi z#mnSpDeIAGmqsEdWyrk*;5>WqEhLrKa z(I9A{vEOBZ63E786CdH#L;J9#KUX?=@pK55-it*Xt`pDxiAx6j`0NqrKq!2Hy*Hpn znz{xYPF~B!-@mWLRf8$?ZreVXEeV5yA3AH(@SW>nIP~Knto)5$YW!?3p#6qBIFdfU z*t+}_PP{eLfConx(IXDQLDo{1R5w=FVa~0TnREg`cuKACz?Sz@SmZ`Q#M@p2CVowX z6P7nTe(UZoi(qdHxh(TKvrK=GU@*uQifA`W#q7J1oB{^c<24+cA$F0K=Qk>)7V!A<9F4)hLl6y!N}MM0)ypRfa(N9+3Q)PR1j z`)+W!qd;&@@Q$)r5Kvg)-XFtcs@wPb;^7$~5k3WnJqFzU_GAz^hY$-jXg{TMH0nU- sSfhjFeux7b^hHzd>bJ*3DL6u7A+>J~G(qr|`lV*`0u%f72_V2f06!$9S^xk5 delta 3941 zcmdUx4^R}>9mn^#cfcMw&O3xd`FAIWMk!HLq>4nBzr|Sbj!^$qTQSOn#)yRli4r;5 z)LOixurIPo+n8L8X{XvIx2f06q@9b})J}=9CX<jvt_&13X|-Oqb4wd=ZVuVhR?k`3s4VzZ`2<_4?8*v(VtHE$Q`5?#vlC zax&!9Si2%te+hLNs0In362yaLfKM_F^(L?qc!3Ypg1bQ-_zGABR)aNQEm#M>3f2n( zYsyNEEm70DUW;YX6EN6=H_<+ZhpRg z!~FbvD%ytmKSKLP=6@VxZeaerQP}?$ncs$)_;PM!{y6k;^P6L1{&(gNCCX&spBtmM ze#f+Lk{~pL7NCGu&<1vZb}-Ug?+RJliFU9Dl6F~Zuw*~?Vw77tnL49_oe~RlWk!HP zDQ=OulXE5Rhdk_9eY%Skh!&*n5Syrf6ltfbni%{*!iB~xr(z6chzd8I;h@JPJgIVliyo7E*1QW4aP#&zk+k^rfh z9d^UAJQjIavp{B{l`H3=F`p|2GQI101ahyv3-HbGnC83WYy7n64ejZp+pHD|@|)bsV$mwex;P)3M^wZ({_n zzZ0wXpxzskzlYk{>+>v{4q++S5Bh)x4uFH8AGkpl;1lt32r@sf+n@DyQm{c(XTT#K z`muQm5lq-croq;%yL}+VDasu?!Id# znfWmoolIFCPz(L`Uo0NExS{yOp6;jhhT(tOhBdE?p3x%HC=x6X)rAwjD*8xoTi8vZ zD$%TqJtL%c?6OCu+;Qx=mW>ClE`M#{!GXqP=1ZS5X4V%w-1fm;_r9~QbmN8}eR#=L z`n#%b_D;uuz0kbo{LA~hUX_(%x$oh;Uol#c$}Z++2Wv#lpG)%Cv1zZ^$)z3hP)cga zipG1In_8M0tXMySeynH#7ZpmE%PrShr(Lv=$qOQyKZoR?Dzb|g%Jj0jUsK2~lk^7+ zItN&_qdM~q2!92JbG`-n68Jk{M;*D=D-f=N_qgJ`BRABXBeI-HIZ_oAJkc07)RpX& zWFdZ#JW33;m8TQ#CcFgKi|TGgR|1H^;tGk6&4t<+D|(5w74H@&5xZJkBk>*PkMG`& z?#12e61asoSNb}-cosC?W{UUP@khON=CpAgam!$*cUf0aIgUbNr;18&*XZuOL;nvK zLFmyaO>GtK7q$r71O@lRXAN&A9&|GMg*;u}8X*>`oy)#kbSE1!C6iTi#8VpUDVk}5 z%fK#oe!}s`jMYnanOf zW!5hb?4{ry@yYfxVzAq+R+L*P6Z7)F5yM|7%33Qr=}mS8&%d$O%1&!Lx@X4WffDR7 z--2-Y+^3qZ?f-Qk^$*>_YR}AOH9xWHp|eL5=^VT8#D3-tm+8-)KVf6)!7BZQH;O6v z63*zdtjog@(*5uHiTQuyXa1|uj6_VqVNt6mN@YKP-xl_mX^^xbqJ(gQL?2Kvigft? z{p`>06|h4eIyK!&gK=NLDLKOXljuHClST4}{mJAv1xL(k`}6i?um1AoH`R|CF6KR0 zdB9nC1~+kvKA7vFk9}kocSD}e_zx(*r+EA0>8u-iwb$qR%qi{h*hCXt_=rSeUphrt z=%`bB-9&kP@#LpJu~K*E_|1i}xfQ14nS`*lKQA9iCUc*OY;4ovc{j=A;Yd8mq}dax zkU#8NMIx1G5eLb~-Izr?mqn{IXBy>^z?^r1g5JAYAGph4j{q`zW*x z%WcY#q|sPXVrR<>Zgvpi!720?nqY^pKZ9g3?B^!=eC&itcULfLq4J5#@%mrEEy>U- z`&Q8$HPalf^w4&?4W46^a0EX9q#c@$s7S5-DNpC>>^vmBR%8N2XhKG)6Ydr2A+N@> aMJN}x3XQ@&!hOgVn}u1JCoFp~#lHZSk?52F diff --git a/Builds/VisualStudio2012/Dexed.vcxproj b/Builds/VisualStudio2012/Dexed.vcxproj index 4568980..d0afcd3 100644 --- a/Builds/VisualStudio2012/Dexed.vcxproj +++ b/Builds/VisualStudio2012/Dexed.vcxproj @@ -80,7 +80,7 @@ EditAndContinue ..\..\JuceLibraryCode;..\..\JuceLibraryCode\modules;C:\work\vstsdk2.4;%(AdditionalIncludeDirectories) WIN32;_WINDOWS;DEBUG;_DEBUG;JUCER_VS2012_78A501F=1;JUCE_APP_VERSION=1.0.0;JUCE_APP_VERSION_HEX=0x10000;%(PreprocessorDefinitions) - MultiThreaded + MultiThreadedDebug true $(IntDir)\ diff --git a/Builds/VisualStudio2012/Dexed.vcxproj.filters b/Builds/VisualStudio2012/Dexed.vcxproj.filters index 5e9db7f..34c6f7c 100644 --- a/Builds/VisualStudio2012/Dexed.vcxproj.filters +++ b/Builds/VisualStudio2012/Dexed.vcxproj.filters @@ -1365,6 +1365,15 @@ + + + + + + + + + diff --git a/README.md b/README.md index 418aac7..e38fd67 100644 --- a/README.md +++ b/README.md @@ -42,7 +42,7 @@ Changelog * Middle C (transpose) now works * Identify the parameter knob/switch by simply moving the mouse over it * Knobs now works with vertical mouse drags -* User zipped DX7 cartridges +* User DX7 zip cartridges #### Version 0.5.1 * Fix distortion issue with FL (DAW blocksize not multiple of 64) @@ -69,7 +69,7 @@ you edit. ### Prerequisite * Before you use this interface, your DX7 must be configured to send or receive sysex messages. Do this by hitting [FUNCTION] and [8] button * Check the midi channel. By reading some of DX7 literature, most DX7 are supposed to support only 1 channel. Unless you are running a cluster of DX7, you should keep this to 1. -* Press [8] again and you should see: "SYS INFO AVAIL" or "SYS INFO UNAVAIL". Keep it to "SYS INFO AVAIL" to be able to receive sysex messages. +* Press [8] again and you should see: "SYS INFO AVAIL" or "SYS INFO UNAVAIL". Keep it to "SYS INFO AVAIL" to be able to receive sysex messages. This step is not required on a TX7. * You need to remove MEMORY PROTECT on the internal or cartridge memory to be able to receive a Dexed 32 voice bulk dump. This is done by using the [MEMORY PROTECT] button and then by pushing [NO]. ### To send to your DX7 @@ -91,9 +91,9 @@ you edit. User DX7 zip cartridges ----------------------- It is possible to enjoy your DX7 sysex collection from one single zip file. Simply move your zipped -sysex content to where you have installed Dexed (VST plugins dir). The rename the zip file to -`Dexed_cart.zip`. You can modify this file anytime you want, Dexed will simply reparsed it when the -file is changed. Directories in the zip file is be a transformed into submenu when you hit the +sysex content to where you have installed Dexed (VST plugins dir). Then rename the zip file to +`Dexed_cart.zip`. You can modify this file anytime you want, Dexed will simply reparse it when the +file is changed. Directories in the zip file will be transformed into submenu when you hit the [CART] button. Randomized programs @@ -124,9 +124,9 @@ Credits & thanks Planned milestones ------------------ -0.6 DX7 Editor + User cartridges -0.7 msfa engine tuning -0.8 Complete new UI +* 0.6 DX7 editor + user cartridges +* 0.7 msfa engine tuning +* 0.8 UI redesign TODO - Dexed ------------ diff --git a/Source/GlobalEditor.cpp b/Source/GlobalEditor.cpp index 074004c..1de4b9b 100644 --- a/Source/GlobalEditor.cpp +++ b/Source/GlobalEditor.cpp @@ -452,7 +452,6 @@ void GlobalEditor::setSystemMessage(String msg) { void GlobalEditor::setParamMessage(String msg) { lcdDisplay->paramMsg = msg; - repaint(); } void GlobalEditor::updateDisplay() { diff --git a/Source/PluginData.cpp b/Source/PluginData.cpp index 288acc5..3325060 100644 --- a/Source/PluginData.cpp +++ b/Source/PluginData.cpp @@ -325,12 +325,7 @@ CartridgeManager::CartridgeManager() { cartNames.add(e->filename.dropLastCharacters(4)); } -#if JUCE_MAC userCartFile = File(File::getSpecialLocation(File::currentApplicationFile).getParentDirectory().getFullPathName() + File::separator + "Dexed_cart.zip"); -#else - userCartFile = File(File::getSpecialLocation(File::currentApplicationFile).getFullPathName() + File::separator + "Dexed_cart.zip"); -#endif - TRACE("Usercart file %s", userCartFile.getFullPathName().toRawUTF8()); } CartridgeManager::~CartridgeManager() { @@ -395,6 +390,7 @@ void CartridgeManager::rebuildMenu() { PopupMenu *CartridgeManager::getCarts() { Time t = userCartFile.getLastModificationTime(); + TRACE("Usercart file %s exists: %d", userCartFile.getFullPathName().toRawUTF8(), userCartFile.exists()); TRACE("DIFF TM: %s %s", t.toString(true, true).toRawUTF8(), lastModifiedUserCartFile.toString(true, true).toRawUTF8()); if ( t != lastModifiedUserCartFile || completeCarts.getNumItems() == 0 ) { diff --git a/Source/PluginParam.cpp b/Source/PluginParam.cpp index 716dbe4..e8d2a19 100644 --- a/Source/PluginParam.cpp +++ b/Source/PluginParam.cpp @@ -142,13 +142,14 @@ float CtrlDX::getValueHost() { void CtrlDX::setValueHost(float f) { setValue((f * steps)); + /* DexedAudioProcessorEditor *editor = (DexedAudioProcessorEditor *) parent->getActiveEditor(); if ( editor == NULL ) { return; } String msg; msg << label << " = " << getValueDisplay(); - editor->global.setParamMessage(msg); + editor->global.setParamMessage(msg);*/ } void CtrlDX::setValue(int v) { @@ -389,10 +390,18 @@ void DexedAudioProcessor::initCtrl() { } void DexedAudioProcessor::setDxValue(int offset, int v) { - TRACE("setting dx %d %d", offset, v); - refreshVoice = true; - if (offset >= 0) + if (offset < 0) + return; + + if ( data[offset] != v ) { + TRACE("setting dx %d %d", offset, v); data[offset] = v; + } else { + TRACE("ignoring dx7 same values %d %d", offset, v); + return; + } + + refreshVoice = true; // MIDDLE C (transpose) if (offset == 144)