Operator Switch

pull/1/head
asb2m10 8 years ago
parent 6754eb3903
commit 95a2b4458f
  1. 16
      Builds/Linux/Makefile
  2. 16
      Builds/MacOSX/Dexed.xcodeproj/project.pbxproj
  3. 12
      Builds/VisualStudio2012/Dexed.sln
  4. 49
      Builds/VisualStudio2012/Dexed.vcxproj
  5. 18
      Builds/VisualStudio2012/Dexed.vcxproj.filters
  6. 2
      Dexed.jucer
  7. 75
      JuceLibraryCode/BinaryData.cpp
  8. 5
      JuceLibraryCode/BinaryData.h
  9. BIN
      Resources/ui/Switch_32x32.png
  10. 7
      Source/DXLookNFeel.cpp
  11. 3
      Source/DXLookNFeel.h
  12. 34
      Source/OperatorEditor.cpp
  13. 7
      Source/OperatorEditor.h
  14. 17
      Source/PluginData.cpp
  15. 2
      Source/PluginData.h
  16. 4
      Source/PluginEditor.cpp
  17. 8
      Source/PluginEditor.h
  18. 45
      Source/PluginParam.cpp
  19. 1
      Source/PluginParam.h
  20. 5
      Source/PluginProcessor.cpp
  21. 4
      Source/msfa/controllers.h
  22. 27
      Source/msfa/dx7note.cc

@ -20,10 +20,9 @@ ifeq ($(CONFIG),Debug)
CPPFLAGS := $(DEPFLAGS) -D "LINUX=1" -D "DEBUG=1" -D "_DEBUG=1" -D "JUCER_LINUX_MAKE_7346DA2A=1" -D "JUCE_APP_VERSION=1.0.0" -D "JUCE_APP_VERSION_HEX=0x10000" -I /usr/include -I /usr/include/freetype2 -I ~/src/vstsdk2.4 -I ../../JuceLibraryCode -I ../../JuceLibraryCode/modules
CFLAGS += $(CPPFLAGS) $(TARGET_ARCH) -g -ggdb -fPIC -O0
CXXFLAGS += $(CFLAGS)
LDFLAGS += $(TARGET_ARCH) -L$(BINDIR) -L$(LIBDIR) -shared -L/usr/X11R6/lib/ -lX11 -lXext -lXinerama -lasound -ldl -lfreetype -lpthread -lrt
LDDEPS :=
RESFLAGS := -D "LINUX=1" -D "DEBUG=1" -D "_DEBUG=1" -D "JUCER_LINUX_MAKE_7346DA2A=1" -D "JUCE_APP_VERSION=1.0.0" -D "JUCE_APP_VERSION_HEX=0x10000" -I /usr/include -I /usr/include/freetype2 -I ~/src/vstsdk2.4 -I ../../JuceLibraryCode -I ../../JuceLibraryCode/modules
CXXFLAGS += $(CFLAGS) -std=c++11
LDFLAGS += $(TARGET_ARCH) -L$(BINDIR) -L$(LIBDIR) -Wl,--no-undefined -shared -L/usr/X11R6/lib/ -lX11 -lXext -lXinerama -lasound -ldl -lfreetype -lpthread -lrt
TARGET := Dexed.so
BLDCMD = $(CXX) -o $(OUTDIR)/$(TARGET) $(OBJECTS) $(LDFLAGS) $(RESOURCES) $(TARGET_ARCH)
CLEANCMD = rm -rf $(OUTDIR)/$(TARGET) $(OBJDIR)
@ -41,10 +40,9 @@ ifeq ($(CONFIG),Release)
CPPFLAGS := $(DEPFLAGS) -D "LINUX=1" -D "NDEBUG=1" -D "JUCER_LINUX_MAKE_7346DA2A=1" -D "JUCE_APP_VERSION=1.0.0" -D "JUCE_APP_VERSION_HEX=0x10000" -I /usr/include -I /usr/include/freetype2 -I ~/src/vstsdk2.4 -I ../../JuceLibraryCode -I ../../JuceLibraryCode/modules
CFLAGS += $(CPPFLAGS) $(TARGET_ARCH) -fPIC -Os
CXXFLAGS += $(CFLAGS)
LDFLAGS += $(TARGET_ARCH) -L$(BINDIR) -L$(LIBDIR) -shared -fvisibility=hidden -L/usr/X11R6/lib/ -lX11 -lXext -lXinerama -lasound -ldl -lfreetype -lpthread -lrt
LDDEPS :=
RESFLAGS := -D "LINUX=1" -D "NDEBUG=1" -D "JUCER_LINUX_MAKE_7346DA2A=1" -D "JUCE_APP_VERSION=1.0.0" -D "JUCE_APP_VERSION_HEX=0x10000" -I /usr/include -I /usr/include/freetype2 -I ~/src/vstsdk2.4 -I ../../JuceLibraryCode -I ../../JuceLibraryCode/modules
CXXFLAGS += $(CFLAGS) -std=c++11
LDFLAGS += $(TARGET_ARCH) -L$(BINDIR) -L$(LIBDIR) -Wl,--no-undefined -shared -fvisibility=hidden -L/usr/X11R6/lib/ -lX11 -lXext -lXinerama -lasound -ldl -lfreetype -lpthread -lrt
TARGET := Dexed.so
BLDCMD = $(CXX) -o $(OUTDIR)/$(TARGET) $(OBJECTS) $(LDFLAGS) $(RESOURCES) $(TARGET_ARCH)
CLEANCMD = rm -rf $(OUTDIR)/$(TARGET) $(OBJDIR)
@ -94,7 +92,7 @@ OBJECTS := \
.PHONY: clean
$(OUTDIR)/$(TARGET): $(OBJECTS) $(LDDEPS) $(RESOURCES)
$(OUTDIR)/$(TARGET): $(OBJECTS) $(RESOURCES)
@echo Linking Dexed
-@mkdir -p $(BINDIR)
-@mkdir -p $(LIBDIR)

@ -77,7 +77,6 @@
DAC2F8A317486D36C0E0F81F /* CAMutex.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A31C49ABA24290126250F574 /* CAMutex.cpp */; settings = {COMPILER_FLAGS = "-w"; }; };
DDD1E74DE1AC7E6493AF04CA /* juce_RTAS_DigiCode3.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4574217C2F5219DEDDDC9656 /* juce_RTAS_DigiCode3.cpp */; settings = {COMPILER_FLAGS = "-w"; }; };
DFA8CE3B7D7FE269254C9BDD /* CAAUParameter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0DB84FE1DF027D2AB0952F18 /* CAAUParameter.cpp */; settings = {COMPILER_FLAGS = "-w"; }; };
E293B9570C97E4BAD129D4A2 /* juce_RTAS_MacResources.r in Rez */ = {isa = PBXBuildFile; fileRef = FE39DD2B654DF778D919D554 /* juce_RTAS_MacResources.r */; };
E3FA856CA4DB2009BB0F13E7 /* juce_AAX_Wrapper.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 505852570B48EB3F18076B03 /* juce_AAX_Wrapper.cpp */; };
E52CB89B4C49057C5A54CFFE /* juce_graphics.mm in Sources */ = {isa = PBXBuildFile; fileRef = 9E3820CD63B47B5385AF2DB6 /* juce_graphics.mm */; };
E8BEA8ABF5E288C5D5FCD620 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 817CC81F50861DAEEFB2043A /* Carbon.framework */; };
@ -263,6 +262,7 @@
2CA19470CA427333F8CAC0A5 /* juce_ImagePreviewComponent.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_ImagePreviewComponent.cpp; path = ../../JuceLibraryCode/modules/juce_gui_basics/filebrowser/juce_ImagePreviewComponent.cpp; sourceTree = SOURCE_ROOT; };
2CA60524355CF872ADB42EA4 /* CAVectorUnit.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = CAVectorUnit.cpp; path = Extras/CoreAudio/PublicUtility/CAVectorUnit.cpp; sourceTree = DEVELOPER_DIR; };
2CB4C73C121FCDEF65CBAC79 /* juce_mac_MainMenu.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = juce_mac_MainMenu.mm; path = ../../JuceLibraryCode/modules/juce_gui_basics/native/juce_mac_MainMenu.mm; sourceTree = SOURCE_ROOT; };
2CBFFF86BDEB0B89734D6956 /* Switch_32x32.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Switch_32x32.png; path = ../../Resources/ui/Switch_32x32.png; sourceTree = SOURCE_ROOT; };
2D26E2304C0F6FC633936014 /* lfo.cc */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = lfo.cc; path = ../../Source/msfa/lfo.cc; sourceTree = SOURCE_ROOT; };
2D8A5B5929909ADD898D7E00 /* juce_HashMap.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_HashMap.h; path = ../../JuceLibraryCode/modules/juce_core/containers/juce_HashMap.h; sourceTree = SOURCE_ROOT; };
2D9932D322EDA14CC872D08B /* juce_MemoryOutputStream.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_MemoryOutputStream.h; path = ../../JuceLibraryCode/modules/juce_core/streams/juce_MemoryOutputStream.h; sourceTree = SOURCE_ROOT; };
@ -417,6 +417,7 @@
52E90BF34CEB39BB7DFA91DE /* juce_RelativeRectangle.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_RelativeRectangle.h; path = ../../JuceLibraryCode/modules/juce_gui_basics/positioning/juce_RelativeRectangle.h; sourceTree = SOURCE_ROOT; };
53CD8A358FB75E4D10571218 /* juce_PluginListComponent.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_PluginListComponent.h; path = ../../JuceLibraryCode/modules/juce_audio_processors/scanning/juce_PluginListComponent.h; sourceTree = SOURCE_ROOT; };
53EA5EAEF8A9688559300B1C /* juce_MenuBarModel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_MenuBarModel.h; path = ../../JuceLibraryCode/modules/juce_gui_basics/menus/juce_MenuBarModel.h; sourceTree = SOURCE_ROOT; };
540CB571BDB23FFECCE0CD1B /* juce_ValueTreeSynchroniser.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_ValueTreeSynchroniser.cpp; path = ../../JuceLibraryCode/modules/juce_data_structures/values/juce_ValueTreeSynchroniser.cpp; sourceTree = SOURCE_ROOT; };
543415735FAC3778D98C649B /* juce_Value.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_Value.h; path = ../../JuceLibraryCode/modules/juce_data_structures/values/juce_Value.h; sourceTree = SOURCE_ROOT; };
54363D0B39B88D43447C0123 /* BinaryData.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = BinaryData.cpp; path = ../../JuceLibraryCode/BinaryData.cpp; sourceTree = SOURCE_ROOT; };
5439A08FE11BD3D1EF760CF8 /* juce_DrawablePath.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_DrawablePath.cpp; path = ../../JuceLibraryCode/modules/juce_gui_basics/drawables/juce_DrawablePath.cpp; sourceTree = SOURCE_ROOT; };
@ -473,6 +474,7 @@
68EBBB35B7A5A57E4BA2F8E2 /* module.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = module.h; path = ../../Source/msfa/module.h; sourceTree = SOURCE_ROOT; };
69327BB424333BE9051A2C1D /* juce_win32_DragAndDrop.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_win32_DragAndDrop.cpp; path = ../../JuceLibraryCode/modules/juce_gui_basics/native/juce_win32_DragAndDrop.cpp; sourceTree = SOURCE_ROOT; };
69B3908CF6E97D2326117534 /* juce_PathIterator.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_PathIterator.cpp; path = ../../JuceLibraryCode/modules/juce_graphics/geometry/juce_PathIterator.cpp; sourceTree = SOURCE_ROOT; };
6A33E3588893DFC8E8370460 /* juce_FFT.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_FFT.h; path = ../../JuceLibraryCode/modules/juce_audio_basics/effects/juce_FFT.h; sourceTree = SOURCE_ROOT; };
6A462A15DB909F68F4A9BECC /* AUInputElement.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = AUInputElement.cpp; path = Extras/CoreAudio/AudioUnits/AUPublic/AUBase/AUInputElement.cpp; sourceTree = DEVELOPER_DIR; };
6AFA3298C0E6EBF44DF90481 /* juce_PixelFormats.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_PixelFormats.h; path = ../../JuceLibraryCode/modules/juce_graphics/colour/juce_PixelFormats.h; sourceTree = SOURCE_ROOT; };
6B3889626BDBB814F2387085 /* CartManager.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = CartManager.cpp; path = ../../Source/CartManager.cpp; sourceTree = SOURCE_ROOT; };
@ -783,6 +785,7 @@
BF536BFBEDDD9802B9516022 /* juce_AudioThumbnailBase.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_AudioThumbnailBase.h; path = ../../JuceLibraryCode/modules/juce_audio_utils/gui/juce_AudioThumbnailBase.h; sourceTree = SOURCE_ROOT; };
BF7A1720DADC7983F61E895C /* ProgramListBox.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = ProgramListBox.cpp; path = ../../Source/ProgramListBox.cpp; sourceTree = SOURCE_ROOT; };
BF9449063F547456209F21FE /* juce_win32_Network.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_win32_Network.cpp; path = ../../JuceLibraryCode/modules/juce_core/native/juce_win32_Network.cpp; sourceTree = SOURCE_ROOT; };
BFD53B08DAEB98B6DD5D77B7 /* juce_FFT.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_FFT.cpp; path = ../../JuceLibraryCode/modules/juce_audio_basics/effects/juce_FFT.cpp; sourceTree = SOURCE_ROOT; };
BFE7C6795569A2BC4EEF91FB /* juce_BufferingAudioSource.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_BufferingAudioSource.cpp; path = ../../JuceLibraryCode/modules/juce_audio_basics/sources/juce_BufferingAudioSource.cpp; sourceTree = SOURCE_ROOT; };
BFF8708E6D65F4E2B84983F9 /* juce_ComponentBuilder.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_ComponentBuilder.cpp; path = ../../JuceLibraryCode/modules/juce_gui_basics/layout/juce_ComponentBuilder.cpp; sourceTree = SOURCE_ROOT; };
C01EE75D859C1F942DA3AE61 /* fm_core.cc */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = fm_core.cc; path = ../../Source/msfa/fm_core.cc; sourceTree = SOURCE_ROOT; };
@ -814,6 +817,7 @@
C89190A10B698C7B1E42C76D /* AUMIDIEffectBase.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = AUMIDIEffectBase.h; path = Extras/CoreAudio/AudioUnits/AUPublic/OtherBases/AUMIDIEffectBase.h; sourceTree = DEVELOPER_DIR; };
C8DE1F3E1A1871ABB88A5B2D /* juce_SelectedItemSet.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_SelectedItemSet.h; path = ../../JuceLibraryCode/modules/juce_gui_basics/mouse/juce_SelectedItemSet.h; sourceTree = SOURCE_ROOT; };
C92DFD53D297FAD265D1DB8D /* juce_InputSource.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_InputSource.h; path = ../../JuceLibraryCode/modules/juce_core/streams/juce_InputSource.h; sourceTree = SOURCE_ROOT; };
C9BA4E2199E2302799EFB744 /* juce_ValueTreeSynchroniser.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_ValueTreeSynchroniser.h; path = ../../JuceLibraryCode/modules/juce_data_structures/values/juce_ValueTreeSynchroniser.h; sourceTree = SOURCE_ROOT; };
CA8B960E006E1C65A6A2E8AA /* juce_InputStream.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_InputStream.h; path = ../../JuceLibraryCode/modules/juce_core/streams/juce_InputStream.h; sourceTree = SOURCE_ROOT; };
CAF913DD133AC8882640F266 /* juce_AlertWindow.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_AlertWindow.h; path = ../../JuceLibraryCode/modules/juce_gui_basics/windows/juce_AlertWindow.h; sourceTree = SOURCE_ROOT; };
CB38F1D4BB78766DBD50FEB9 /* juce_URL.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_URL.cpp; path = ../../JuceLibraryCode/modules/juce_core/network/juce_URL.cpp; sourceTree = SOURCE_ROOT; };
@ -869,6 +873,7 @@
DAEFEE4711393EBF6BC1EB3A /* juce_DropShadowEffect.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_DropShadowEffect.h; path = ../../JuceLibraryCode/modules/juce_graphics/effects/juce_DropShadowEffect.h; sourceTree = SOURCE_ROOT; };
DB3B5F6FE49267EE53089A05 /* juce_linux_WebBrowserComponent.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_linux_WebBrowserComponent.cpp; path = ../../JuceLibraryCode/modules/juce_gui_extra/native/juce_linux_WebBrowserComponent.cpp; sourceTree = SOURCE_ROOT; };
DB9F89D1872247982F4D0913 /* juce_TableHeaderComponent.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_TableHeaderComponent.h; path = ../../JuceLibraryCode/modules/juce_gui_basics/widgets/juce_TableHeaderComponent.h; sourceTree = SOURCE_ROOT; };
DBCAF79038544A7B358D6549 /* juce_curl_Network.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_curl_Network.cpp; path = ../../JuceLibraryCode/modules/juce_core/native/juce_curl_Network.cpp; sourceTree = SOURCE_ROOT; };
DBEA78ADC148399D593D22A9 /* juce_AudioProcessorEditor.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_AudioProcessorEditor.h; path = ../../JuceLibraryCode/modules/juce_audio_processors/processors/juce_AudioProcessorEditor.h; sourceTree = SOURCE_ROOT; };
DC75DFCDFCDB425927B11EC0 /* PluginFx.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = PluginFx.h; path = ../../Source/PluginFx.h; sourceTree = SOURCE_ROOT; };
DD1BF932ABF0CEC81A8B8A3A /* juce_DynamicObject.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_DynamicObject.h; path = ../../JuceLibraryCode/modules/juce_core/containers/juce_DynamicObject.h; sourceTree = SOURCE_ROOT; };
@ -987,7 +992,6 @@
FD799268DEA0EC4CDFD4DA10 /* juce_NewLine.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_NewLine.h; path = ../../JuceLibraryCode/modules/juce_core/text/juce_NewLine.h; sourceTree = SOURCE_ROOT; };
FDA8E9094D7495F5116F7742 /* juce_PluginHostType.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_PluginHostType.h; path = ../../JuceLibraryCode/modules/juce_audio_plugin_client/utility/juce_PluginHostType.h; sourceTree = SOURCE_ROOT; };
FDDB0277D2D036AEFA3EBD2D /* juce_Font.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_Font.cpp; path = ../../JuceLibraryCode/modules/juce_graphics/fonts/juce_Font.cpp; sourceTree = SOURCE_ROOT; };
FE39DD2B654DF778D919D554 /* juce_RTAS_MacResources.r */ = {isa = PBXFileReference; lastKnownFileType = file.r; name = juce_RTAS_MacResources.r; path = ../../JuceLibraryCode/modules/juce_audio_plugin_client/RTAS/juce_RTAS_MacResources.r; sourceTree = SOURCE_ROOT; };
FE42B80DEA2E49C07E9E1C0A /* juce_RelativeRectangle.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_RelativeRectangle.cpp; path = ../../JuceLibraryCode/modules/juce_gui_basics/positioning/juce_RelativeRectangle.cpp; sourceTree = SOURCE_ROOT; };
FF01650D69FB076FD8FCCE32 /* juce_PropertyComponent.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_PropertyComponent.cpp; path = ../../JuceLibraryCode/modules/juce_gui_basics/properties/juce_PropertyComponent.cpp; sourceTree = SOURCE_ROOT; };
FF46344F53B1AE5119D163D5 /* juce_CarbonVisibility.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_CarbonVisibility.h; path = ../../JuceLibraryCode/modules/juce_audio_plugin_client/utility/juce_CarbonVisibility.h; sourceTree = SOURCE_ROOT; };
@ -1145,6 +1149,8 @@
isa = PBXGroup;
children = (
7A0FB6545BA2E344A1F45EA5 /* juce_Decibels.h */,
BFD53B08DAEB98B6DD5D77B7 /* juce_FFT.cpp */,
6A33E3588893DFC8E8370460 /* juce_FFT.h */,
E7F00CEE06961C2D9EDDA697 /* juce_IIRFilter.cpp */,
518104B0010D2466EB51D01A /* juce_IIRFilter.h */,
46908987EEFC3623A53A95C2 /* juce_LagrangeInterpolator.cpp */,
@ -1410,7 +1416,6 @@
55E39FAA63BA8B9D40F40712 /* juce_RTAS_DigiCode1.cpp */,
D8038990994C30BDD631733E /* juce_RTAS_DigiCode2.cpp */,
4574217C2F5219DEDDDC9656 /* juce_RTAS_DigiCode3.cpp */,
FE39DD2B654DF778D919D554 /* juce_RTAS_MacResources.r */,
C7C6039A52C3EE370CA9E73A /* juce_RTAS_MacUtilities.mm */,
EAA5D8078BCC042BDF94C77A /* juce_RTAS_Wrapper.cpp */,
D6C6FCBA5ECA257959BFE674 /* juce_VST_Wrapper.cpp */,
@ -1429,6 +1434,8 @@
543415735FAC3778D98C649B /* juce_Value.h */,
A348DAE6ECDEF51CAD6B5FE4 /* juce_ValueTree.cpp */,
B779A3FF92AF0ED28B97C03A /* juce_ValueTree.h */,
540CB571BDB23FFECCE0CD1B /* juce_ValueTreeSynchroniser.cpp */,
C9BA4E2199E2302799EFB744 /* juce_ValueTreeSynchroniser.h */,
);
name = values;
sourceTree = "<group>";
@ -2091,6 +2098,7 @@
C4282ED857CAA664F85D5C4D /* juce_android_SystemStats.cpp */,
CFFA7532FAFF5655253878FE /* juce_android_Threads.cpp */,
EB7592B101CFEDF629993E39 /* juce_BasicNativeHeaders.h */,
DBCAF79038544A7B358D6549 /* juce_curl_Network.cpp */,
F8A589597222065EA52C4F9C /* juce_linux_CommonFile.cpp */,
EEC5BFDA3C3B23D08E4528B7 /* juce_linux_Files.cpp */,
6CAAD366E2D6A650900C75F0 /* juce_linux_Network.cpp */,
@ -2574,6 +2582,7 @@
F472964B0FFEE5615B72CE3D /* Resources */ = {
isa = PBXGroup;
children = (
2CBFFF86BDEB0B89734D6956 /* Switch_32x32.png */,
0D5761BE1D2DEA319B57D740 /* Switch_48x26.png */,
E6F65C031FCBB192F3927D4C /* ButtonUnlabeled_50x30.png */,
8B19E0BEAD29F2C0D46FA89C /* Knob_34x34.png */,
@ -2748,7 +2757,6 @@
buildActionMask = 2147483647;
files = (
9D042F9D005532F763A72C26 /* juce_AU_Resources.r in Rez */,
E293B9570C97E4BAD129D4A2 /* juce_RTAS_MacResources.r in Rez */,
);
runOnlyForDeploymentPostprocessing = 0;
};

@ -4,14 +4,14 @@ Project("{BD26B4C3-163D-4785-A63F-D3E66858BFF3}") = "Dexed", "Dexed.vcxproj", "{
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|x64 = Debug|x64
Release|x64 = Release|x64
Debug|Win32 = Debug|Win32
Release|Win32 = Release|Win32
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{1A9EF105-5BF5-9FB6-9634-A91A6D840866}.Debug|x64.ActiveCfg = Debug|x64
{1A9EF105-5BF5-9FB6-9634-A91A6D840866}.Debug|x64.Build.0 = Debug|x64
{1A9EF105-5BF5-9FB6-9634-A91A6D840866}.Release|x64.ActiveCfg = Release|x64
{1A9EF105-5BF5-9FB6-9634-A91A6D840866}.Release|x64.Build.0 = Release|x64
{1A9EF105-5BF5-9FB6-9634-A91A6D840866}.Debug|Win32.ActiveCfg = Debug|Win32
{1A9EF105-5BF5-9FB6-9634-A91A6D840866}.Debug|Win32.Build.0 = Debug|Win32
{1A9EF105-5BF5-9FB6-9634-A91A6D840866}.Release|Win32.ActiveCfg = Release|Win32
{1A9EF105-5BF5-9FB6-9634-A91A6D840866}.Release|Win32.Build.0 = Release|Win32
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE

@ -2,13 +2,13 @@
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|x64">
<ProjectConfiguration Include="Debug|Win32">
<Configuration>Debug</Configuration>
<Platform>x64</Platform>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|x64">
<ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration>
<Platform>x64</Platform>
<Platform>Win32</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
@ -16,18 +16,16 @@
<PlatformToolset>v110</PlatformToolset>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props"/>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<UseOfMfc>false</UseOfMfc>
<PlatformToolset>v110</PlatformToolset>
<PlatformToolset>v110</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<UseOfMfc>false</UseOfMfc>
<WholeProgramOptimization>true</WholeProgramOptimization>
<PlatformToolset>v110</PlatformToolset>
<PlatformToolset>v110</PlatformToolset>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props"/>
<ImportGroup Label="ExtensionSettings"/>
@ -40,15 +38,13 @@
</PropertyGroup>
<PropertyGroup>
<_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">.\Debug\</OutDir>
<TargetName Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Dexed</TargetName>
<GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</GenerateManifest>
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">.\Release\</OutDir>
<TargetName Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Dexed</TargetName>
<GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</GenerateManifest>
<TargetName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Dexed</TargetName>
<GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</GenerateManifest>
<TargetName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Dexed</TargetName>
<GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</GenerateManifest>
<PlatformToolset>v110</PlatformToolset>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<Midl>
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MkTypLibCompatible>true</MkTypLibCompatible>
@ -58,9 +54,9 @@
</Midl>
<ClCompile>
<Optimization>Disabled</Optimization>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
<AdditionalIncludeDirectories>..\..\JuceLibraryCode;..\..\JuceLibraryCode\modules;C:\work\vstsdk2.4;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_WINDOWS;DEBUG;_DEBUG;JUCER_VS2012_78A501F=1;JUCE_APP_VERSION=1.0.0;JUCE_APP_VERSION_HEX=0x10000;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;WIN32;_WINDOWS;DEBUG;_DEBUG;JUCER_VS2012_78A501F=1;JUCE_APP_VERSION=1.0.0;JUCE_APP_VERSION_HEX=0x10000;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
<RuntimeTypeInfo>true</RuntimeTypeInfo>
<PrecompiledHeader/>
@ -81,6 +77,8 @@
<GenerateDebugInformation>true</GenerateDebugInformation>
<ProgramDatabaseFile>$(IntDir)\Dexed.pdb</ProgramDatabaseFile>
<SubSystem>Windows</SubSystem>
<TargetMachine>MachineX86</TargetMachine>
<ImageHasSafeExceptionHandlers>false</ImageHasSafeExceptionHandlers>
<LargeAddressAware>true</LargeAddressAware>
<AdditionalOptions>/FORCE:multiple %(AdditionalOptions)</AdditionalOptions>
</Link>
@ -89,7 +87,7 @@
<OutputFile>$(IntDir)\Dexed.bsc</OutputFile>
</Bscmake>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<Midl>
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MkTypLibCompatible>true</MkTypLibCompatible>
@ -100,7 +98,7 @@
<ClCompile>
<Optimization>MinSpace</Optimization>
<AdditionalIncludeDirectories>..\..\JuceLibraryCode;..\..\JuceLibraryCode\modules;C:\work\vstsdk2.4;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_WINDOWS;NDEBUG;JUCER_VS2012_78A501F=1;JUCE_APP_VERSION=1.0.0;JUCE_APP_VERSION_HEX=0x10000;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;WIN32;_WINDOWS;NDEBUG;JUCER_VS2012_78A501F=1;JUCE_APP_VERSION=1.0.0;JUCE_APP_VERSION_HEX=0x10000;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<RuntimeTypeInfo>true</RuntimeTypeInfo>
<PrecompiledHeader/>
@ -121,6 +119,7 @@
<GenerateDebugInformation>false</GenerateDebugInformation>
<ProgramDatabaseFile>$(IntDir)\Dexed.pdb</ProgramDatabaseFile>
<SubSystem>Windows</SubSystem>
<TargetMachine>MachineX86</TargetMachine>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<LargeAddressAware>true</LargeAddressAware>
@ -181,6 +180,9 @@
<ClCompile Include="..\..\JuceLibraryCode\modules\juce_audio_basics\midi\juce_MidiMessageSequence.cpp">
<ExcludedFromBuild>true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="..\..\JuceLibraryCode\modules\juce_audio_basics\effects\juce_FFT.cpp">
<ExcludedFromBuild>true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="..\..\JuceLibraryCode\modules\juce_audio_basics\effects\juce_IIRFilter.cpp">
<ExcludedFromBuild>true</ExcludedFromBuild>
</ClCompile>
@ -460,6 +462,9 @@
<ClCompile Include="..\..\JuceLibraryCode\modules\juce_core\native\juce_android_Threads.cpp">
<ExcludedFromBuild>true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="..\..\JuceLibraryCode\modules\juce_core\native\juce_curl_Network.cpp">
<ExcludedFromBuild>true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="..\..\JuceLibraryCode\modules\juce_core\native\juce_linux_CommonFile.cpp">
<ExcludedFromBuild>true</ExcludedFromBuild>
</ClCompile>
@ -499,6 +504,9 @@
<ClCompile Include="..\..\JuceLibraryCode\modules\juce_data_structures\values\juce_ValueTree.cpp">
<ExcludedFromBuild>true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="..\..\JuceLibraryCode\modules\juce_data_structures\values\juce_ValueTreeSynchroniser.cpp">
<ExcludedFromBuild>true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="..\..\JuceLibraryCode\modules\juce_data_structures\undomanager\juce_UndoManager.cpp">
<ExcludedFromBuild>true</ExcludedFromBuild>
</ClCompile>
@ -1153,6 +1161,7 @@
<ClInclude Include="..\..\JuceLibraryCode\modules\juce_audio_basics\midi\juce_MidiMessage.h"/>
<ClInclude Include="..\..\JuceLibraryCode\modules\juce_audio_basics\midi\juce_MidiMessageSequence.h"/>
<ClInclude Include="..\..\JuceLibraryCode\modules\juce_audio_basics\effects\juce_Decibels.h"/>
<ClInclude Include="..\..\JuceLibraryCode\modules\juce_audio_basics\effects\juce_FFT.h"/>
<ClInclude Include="..\..\JuceLibraryCode\modules\juce_audio_basics\effects\juce_IIRFilter.h"/>
<ClInclude Include="..\..\JuceLibraryCode\modules\juce_audio_basics\effects\juce_LagrangeInterpolator.h"/>
<ClInclude Include="..\..\JuceLibraryCode\modules\juce_audio_basics\effects\juce_Reverb.h"/>
@ -1321,6 +1330,7 @@
<ClInclude Include="..\..\JuceLibraryCode\modules\juce_core\juce_core.h"/>
<ClInclude Include="..\..\JuceLibraryCode\modules\juce_data_structures\values\juce_Value.h"/>
<ClInclude Include="..\..\JuceLibraryCode\modules\juce_data_structures\values\juce_ValueTree.h"/>
<ClInclude Include="..\..\JuceLibraryCode\modules\juce_data_structures\values\juce_ValueTreeSynchroniser.h"/>
<ClInclude Include="..\..\JuceLibraryCode\modules\juce_data_structures\undomanager\juce_UndoableAction.h"/>
<ClInclude Include="..\..\JuceLibraryCode\modules\juce_data_structures\undomanager\juce_UndoManager.h"/>
<ClInclude Include="..\..\JuceLibraryCode\modules\juce_data_structures\app_properties\juce_ApplicationProperties.h"/>
@ -1545,6 +1555,7 @@
<ClInclude Include="..\..\JuceLibraryCode\JuceHeader.h"/>
</ItemGroup>
<ItemGroup>
<None Include="..\..\Resources\ui\Switch_32x32.png"/>
<None Include="..\..\Resources\ui\Switch_48x26.png"/>
<None Include="..\..\Resources\ui\ButtonUnlabeled_50x30.png"/>
<None Include="..\..\Resources\ui\Knob_34x34.png"/>

@ -376,6 +376,9 @@
<ClCompile Include="..\..\JuceLibraryCode\modules\juce_audio_basics\midi\juce_MidiMessageSequence.cpp">
<Filter>Juce Modules\juce_audio_basics\midi</Filter>
</ClCompile>
<ClCompile Include="..\..\JuceLibraryCode\modules\juce_audio_basics\effects\juce_FFT.cpp">
<Filter>Juce Modules\juce_audio_basics\effects</Filter>
</ClCompile>
<ClCompile Include="..\..\JuceLibraryCode\modules\juce_audio_basics\effects\juce_IIRFilter.cpp">
<Filter>Juce Modules\juce_audio_basics\effects</Filter>
</ClCompile>
@ -673,6 +676,9 @@
<ClCompile Include="..\..\JuceLibraryCode\modules\juce_core\native\juce_android_Threads.cpp">
<Filter>Juce Modules\juce_core\native</Filter>
</ClCompile>
<ClCompile Include="..\..\JuceLibraryCode\modules\juce_core\native\juce_curl_Network.cpp">
<Filter>Juce Modules\juce_core\native</Filter>
</ClCompile>
<ClCompile Include="..\..\JuceLibraryCode\modules\juce_core\native\juce_linux_CommonFile.cpp">
<Filter>Juce Modules\juce_core\native</Filter>
</ClCompile>
@ -727,6 +733,9 @@
<ClCompile Include="..\..\JuceLibraryCode\modules\juce_data_structures\values\juce_ValueTree.cpp">
<Filter>Juce Modules\juce_data_structures\values</Filter>
</ClCompile>
<ClCompile Include="..\..\JuceLibraryCode\modules\juce_data_structures\values\juce_ValueTreeSynchroniser.cpp">
<Filter>Juce Modules\juce_data_structures\values</Filter>
</ClCompile>
<ClCompile Include="..\..\JuceLibraryCode\modules\juce_data_structures\undomanager\juce_UndoManager.cpp">
<Filter>Juce Modules\juce_data_structures\undomanager</Filter>
</ClCompile>
@ -1536,6 +1545,9 @@
<ClInclude Include="..\..\JuceLibraryCode\modules\juce_audio_basics\effects\juce_Decibels.h">
<Filter>Juce Modules\juce_audio_basics\effects</Filter>
</ClInclude>
<ClInclude Include="..\..\JuceLibraryCode\modules\juce_audio_basics\effects\juce_FFT.h">
<Filter>Juce Modules\juce_audio_basics\effects</Filter>
</ClInclude>
<ClInclude Include="..\..\JuceLibraryCode\modules\juce_audio_basics\effects\juce_IIRFilter.h">
<Filter>Juce Modules\juce_audio_basics\effects</Filter>
</ClInclude>
@ -2040,6 +2052,9 @@
<ClInclude Include="..\..\JuceLibraryCode\modules\juce_data_structures\values\juce_ValueTree.h">
<Filter>Juce Modules\juce_data_structures\values</Filter>
</ClInclude>
<ClInclude Include="..\..\JuceLibraryCode\modules\juce_data_structures\values\juce_ValueTreeSynchroniser.h">
<Filter>Juce Modules\juce_data_structures\values</Filter>
</ClInclude>
<ClInclude Include="..\..\JuceLibraryCode\modules\juce_data_structures\undomanager\juce_UndoableAction.h">
<Filter>Juce Modules\juce_data_structures\undomanager</Filter>
</ClInclude>
@ -2708,6 +2723,9 @@
</ClInclude>
</ItemGroup>
<ItemGroup>
<None Include="..\..\Resources\ui\Switch_32x32.png">
<Filter>Dexed\Resources</Filter>
</None>
<None Include="..\..\Resources\ui\Switch_48x26.png">
<Filter>Dexed\Resources</Filter>
</None>

@ -12,6 +12,8 @@
buildRTAS="0" buildAAX="0" pluginManufacturerEmail="support@yourcompany.com">
<MAINGROUP id="kHXTgw" name="Dexed">
<GROUP id="{F12593AE-639A-6F59-5819-ACE25AF86F95}" name="Resources">
<FILE id="CD5ehh" name="Switch_32x32.png" compile="0" resource="1"
file="Resources/ui/Switch_32x32.png"/>
<FILE id="SXelfa" name="Switch_48x26.png" compile="0" resource="1"
file="Resources/ui/Switch_48x26.png"/>
<FILE id="AjTNZm" name="ButtonUnlabeled_50x30.png" compile="0" resource="1"

@ -7,8 +7,25 @@
namespace BinaryData
{
//================== Switch_48x26.png ==================
//================== Switch_32x32.png ==================
static const unsigned char temp_binary_data_0[] =
{ 137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,32,0,0,0,64,8,6,0,0,0,123,142,117,174,0,0,0,1,115,82,71,66,0,174,206,28,233,0,0,0,4,103,65,77,65,0,0,177,143,11,252,97,5,0,0,0,9,112,72,89,115,0,0,14,195,0,0,14,195,1,199,111,168,100,0,0,2,222,73,68,
65,84,104,67,237,153,77,79,19,81,20,134,177,206,208,66,233,116,166,45,29,98,218,41,165,223,45,138,9,229,163,124,136,11,91,18,117,33,223,110,132,4,113,225,194,53,174,136,63,130,21,236,216,251,31,52,254,13,227,214,144,184,237,250,120,222,59,67,236,144,
178,243,140,49,153,55,121,194,237,123,223,48,151,211,222,233,153,203,72,168,80,161,254,55,117,25,186,139,104,108,140,242,78,1,25,49,189,97,40,26,141,13,101,246,225,35,234,246,54,145,17,147,90,128,145,52,135,178,186,182,78,187,123,251,225,2,194,5,136,
46,224,208,182,109,42,149,43,84,156,41,249,128,247,252,197,75,218,218,222,57,244,178,34,58,58,61,253,72,199,199,111,21,39,39,239,20,55,175,207,206,62,209,171,173,237,35,47,43,162,233,100,210,162,106,181,70,149,74,213,7,60,219,158,162,76,38,51,237,101,
69,84,54,77,139,74,165,50,21,139,92,250,226,140,7,191,5,236,101,179,83,148,76,38,203,94,86,68,77,84,160,211,89,97,58,222,207,63,227,201,73,155,18,137,68,211,203,138,168,133,5,160,10,134,193,159,252,1,224,121,11,104,121,89,17,181,112,161,245,245,39,180,
198,91,110,16,120,120,11,196,23,128,10,128,68,194,240,1,47,176,10,44,47,119,20,75,75,46,55,175,3,171,64,173,214,80,219,110,16,120,217,172,124,5,28,211,76,245,177,239,75,165,138,218,122,46,21,117,47,72,167,39,251,186,174,59,94,86,68,182,101,165,126,205,
205,61,166,86,107,150,26,141,134,2,99,120,152,67,198,141,202,8,191,252,27,243,157,249,113,11,120,152,19,93,64,150,233,49,239,153,15,183,128,135,57,100,196,100,50,115,12,26,79,92,108,16,120,152,67,70,76,163,140,197,60,184,3,204,33,19,42,84,40,49,69,206,
207,207,63,95,93,93,125,185,188,188,252,122,113,225,130,49,60,204,33,227,70,101,164,165,82,153,159,171,171,107,170,1,217,216,120,170,192,24,30,230,144,113,163,50,154,176,172,244,117,161,80,36,199,153,166,66,193,197,29,23,249,203,40,125,141,140,27,149,
81,142,47,210,175,213,234,67,250,129,58,87,32,221,191,23,137,228,188,172,136,84,67,210,110,47,208,252,124,219,7,188,76,38,75,227,241,184,124,71,196,77,9,247,128,166,15,120,129,180,100,184,208,226,226,18,45,44,44,250,128,23,104,87,108,24,73,31,240,2,234,
138,83,220,9,47,171,191,120,16,120,129,85,32,159,119,40,151,203,251,128,23,68,5,154,168,192,93,219,208,171,128,236,179,161,166,233,212,108,182,168,94,199,179,1,30,203,171,106,12,111,124,60,46,95,1,134,116,125,148,52,93,247,1,15,39,37,210,21,168,51,234,
68,52,26,139,221,98,76,29,84,26,134,129,140,152,112,250,65,241,248,196,80,218,124,63,176,44,75,244,132,4,239,47,37,120,223,15,99,133,191,17,203,229,138,232,103,32,60,39,252,247,11,208,52,141,28,52,33,67,120,214,237,209,254,193,107,185,5,68,34,247,187,
57,190,229,118,123,155,67,217,219,63,160,157,221,61,209,127,88,132,10,21,234,47,107,100,228,55,171,12,230,253,182,31,107,115,0,0,0,0,73,69,78,68,174,66,96,130,0,0 };
const char* Switch_32x32_png = (const char*) temp_binary_data_0;
//================== Switch_48x26.png ==================
static const unsigned char temp_binary_data_1[] =
{ 137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,48,0,0,0,52,8,6,0,0,0,204,147,187,145,0,0,0,6,98,75,71,68,0,0,0,230,0,0,84,44,23,109,0,0,8,138,73,68,65,84,104,222,237,153,203,146,92,71,17,134,191,204,170,115,122,46,109,100,89,8,73,182,9,155,192,198,
17,108,88,176,100,207,130,61,15,192,139,16,65,240,28,108,216,178,231,21,88,177,99,225,0,54,88,72,8,203,88,30,205,69,211,167,170,50,89,84,157,75,247,140,100,141,199,14,135,35,166,38,58,230,116,247,233,83,121,253,51,243,47,184,89,223,238,146,245,122,253,
35,224,215,223,81,249,255,20,129,119,223,190,127,255,23,63,255,217,79,126,21,52,68,4,220,253,162,166,8,142,79,215,230,142,224,32,2,108,255,102,186,22,104,63,169,159,45,174,139,27,102,142,153,227,14,230,142,91,221,97,126,214,184,15,184,8,120,253,190,148,
@ -42,10 +59,10 @@ static const unsigned char temp_binary_data_0[] =
170,245,214,237,55,249,225,59,239,112,112,112,192,217,233,233,52,29,93,135,153,123,217,82,160,3,86,237,117,11,184,211,94,183,129,239,181,215,173,198,238,189,206,122,12,252,161,177,119,95,47,51,119,69,2,44,2,107,224,141,166,192,123,192,7,141,16,123,31,
184,15,220,5,30,52,229,199,245,219,147,147,147,223,127,99,204,220,215,172,220,26,120,19,120,183,41,247,33,240,199,147,147,147,191,222,112,46,223,133,245,127,146,199,98,107,0,177,99,238,0,0,0,0,73,69,78,68,174,66,96,130,0,0 };
const char* Switch_48x26_png = (const char*) temp_binary_data_0;
const char* Switch_48x26_png = (const char*) temp_binary_data_1;
//================== ButtonUnlabeled_50x30.png ==================
static const unsigned char temp_binary_data_1[] =
static const unsigned char temp_binary_data_2[] =
{ 137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,50,0,0,0,60,8,6,0,0,0,36,53,233,193,0,0,7,1,73,68,65,84,120,218,237,152,89,115,84,85,16,199,17,2,162,200,50,36,72,162,147,9,165,24,182,84,48,40,22,123,50,89,36,179,79,112,65,4,67,74,32,9,168,133,143,
190,248,96,41,1,13,202,146,109,88,50,201,100,82,128,154,68,95,172,242,73,191,134,96,197,42,31,228,107,92,187,207,237,190,211,119,155,185,153,12,84,160,50,85,255,234,62,203,61,221,191,219,231,222,153,57,75,150,44,126,22,238,231,25,208,82,208,178,39,68,
75,41,103,211,7,59,107,64,97,208,177,39,68,97,202,121,169,4,41,3,237,121,117,207,91,3,215,102,166,238,95,154,6,161,157,153,249,43,231,79,235,109,101,167,105,142,244,229,117,22,31,116,17,174,237,3,219,7,253,104,47,76,235,234,147,18,227,60,71,182,251,212,
@ -73,10 +90,10 @@ static const unsigned char temp_binary_data_1[] =
234,97,47,5,140,189,191,119,126,191,197,138,5,241,178,248,163,248,237,229,26,251,81,109,173,82,192,120,134,120,220,32,115,253,255,50,167,255,41,133,64,214,84,84,140,188,25,105,255,187,185,243,248,131,214,147,39,30,180,128,90,79,118,42,191,149,253,174,
78,234,235,52,181,219,186,230,39,199,117,173,125,164,22,200,175,252,229,170,97,39,144,167,230,56,232,169,57,160,91,252,44,148,207,255,202,67,236,221,252,78,22,31,0,0,0,0,73,69,78,68,174,66,96,130,0,0 };
const char* ButtonUnlabeled_50x30_png = (const char*) temp_binary_data_1;
const char* ButtonUnlabeled_50x30_png = (const char*) temp_binary_data_2;
//================== Knob_34x34.png ==================
static const unsigned char temp_binary_data_2[] =
static const unsigned char temp_binary_data_3[] =
{ 137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,34,0,0,6,96,8,6,0,0,0,27,7,149,159,0,0,50,154,73,68,65,84,120,218,237,221,247,87,215,87,186,47,240,156,115,79,38,55,197,134,8,118,64,58,130,40,72,17,68,122,239,189,87,41,138,32,54,84,84,80,84,236,189,
247,154,88,99,65,177,247,26,77,76,98,98,108,201,76,214,202,111,103,221,123,255,128,204,50,115,223,247,121,30,192,51,51,119,206,36,103,38,223,207,39,201,121,246,90,123,209,249,236,239,254,236,189,191,159,231,181,118,121,227,13,77,191,161,244,175,148,223,
162,220,147,178,13,229,1,93,217,166,235,123,111,117,253,142,197,210,191,81,238,71,217,119,128,173,117,149,155,203,176,53,163,70,120,30,25,61,210,171,99,180,183,87,199,8,15,215,35,46,195,236,215,88,91,91,85,241,239,116,253,238,191,253,220,53,208,231,205,
@ -263,10 +280,10 @@ static const unsigned char temp_binary_data_2[] =
77,171,124,207,139,98,100,83,196,40,159,6,192,245,171,91,165,48,203,22,207,198,8,7,187,191,60,43,205,72,49,226,54,178,108,113,147,104,209,194,230,105,84,8,7,243,206,74,27,65,183,132,11,33,133,89,48,3,163,232,205,207,180,157,175,93,135,57,72,33,62,186,
119,22,113,49,97,212,232,221,204,219,199,104,184,155,51,98,162,67,209,215,170,207,255,237,221,171,199,238,55,204,156,99,100,55,100,240,171,46,182,242,84,49,82,49,82,49,250,77,166,255,7,121,17,68,51,15,166,168,239,0,0,0,0,73,69,78,68,174,66,96,130,0,0 };
const char* Knob_34x34_png = (const char*) temp_binary_data_2;
const char* Knob_34x34_png = (const char*) temp_binary_data_3;
//================== LFO_36_26.png ==================
static const unsigned char temp_binary_data_3[] =
static const unsigned char temp_binary_data_4[] =
{ 137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,36,0,0,0,156,8,6,0,0,0,23,153,9,128,0,0,6,109,73,68,65,84,120,218,237,92,123,136,84,85,24,183,44,123,63,169,168,232,101,81,68,4,21,81,66,255,100,6,217,238,206,185,119,52,55,165,39,244,36,130,176,210,
160,168,88,144,94,68,86,235,158,115,238,180,115,207,89,23,45,148,94,246,128,77,49,72,169,68,147,202,48,43,202,178,76,55,50,67,114,181,172,109,250,125,231,158,187,141,53,59,51,123,157,189,119,179,243,131,195,157,157,189,51,247,119,191,243,184,223,239,
251,190,51,163,70,57,56,56,56,84,135,175,197,53,158,230,87,102,207,164,84,218,199,83,226,70,180,223,208,250,88,40,175,202,148,143,37,211,135,182,214,11,197,231,56,238,240,180,188,41,43,50,215,69,150,145,171,189,112,206,137,147,59,219,79,242,84,240,33,
@ -293,10 +310,10 @@ static const unsigned char temp_binary_data_3[] =
56,228,32,36,63,163,27,161,64,195,48,16,250,187,213,71,200,88,168,100,171,214,75,13,35,68,131,149,72,237,222,58,198,213,94,163,130,230,242,207,80,156,146,126,25,204,121,0,14,14,14,35,21,127,1,145,198,91,134,223,250,76,248,0,0,0,0,73,69,78,68,174,66,96,
130,0,0 };
const char* LFO_36_26_png = (const char*) temp_binary_data_3;
const char* LFO_36_26_png = (const char*) temp_binary_data_4;
//================== Light_14x14.png ==================
static const unsigned char temp_binary_data_4[] =
static const unsigned char temp_binary_data_5[] =
{ 137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,14,0,0,0,28,8,6,0,0,0,81,86,142,65,0,0,0,6,98,75,71,68,0,0,0,230,0,0,84,44,23,109,0,0,2,209,73,68,65,84,56,203,213,146,203,111,19,87,20,135,191,59,115,103,236,120,252,8,13,142,19,18,89,136,180,69,168,
60,20,30,18,109,36,216,176,101,211,69,55,149,186,52,255,64,255,0,254,4,182,201,178,93,119,67,54,221,33,36,42,40,175,144,200,60,20,129,148,132,36,216,14,6,143,51,227,204,227,142,47,11,59,144,144,68,8,169,155,206,242,232,124,115,206,253,157,15,254,55,159,
216,175,56,61,93,177,210,233,161,60,64,16,52,219,215,174,205,196,95,4,43,149,171,229,215,75,141,63,83,182,117,9,32,138,212,237,241,163,197,223,102,102,102,87,14,4,167,167,43,150,215,30,191,213,122,183,58,101,73,5,192,219,166,199,234,122,235,110,156,52,
@ -309,10 +326,10 @@ static const unsigned char temp_binary_data_4[] =
183,14,212,13,165,215,59,15,223,45,203,68,127,151,217,112,76,115,20,54,159,117,88,253,187,233,13,198,221,53,3,106,253,222,64,10,208,26,86,66,40,89,144,29,112,163,220,218,157,134,8,230,228,88,2,50,242,85,39,163,244,211,67,240,192,132,87,118,79,4,45,251,
22,184,30,84,77,208,69,240,187,74,215,106,110,124,52,128,84,6,54,198,160,58,12,11,10,170,233,190,61,98,63,229,52,148,146,94,122,66,131,103,65,221,62,72,185,175,149,252,3,249,209,60,170,202,77,183,53,0,0,0,0,73,69,78,68,174,66,96,130,0,0 };
const char* Light_14x14_png = (const char*) temp_binary_data_4;
const char* Light_14x14_png = (const char*) temp_binary_data_5;
//================== Meter_140x8.png ==================
static const unsigned char temp_binary_data_5[] =
static const unsigned char temp_binary_data_6[] =
{ 137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,140,0,0,0,16,8,6,0,0,0,196,100,151,6,0,0,1,89,73,68,65,84,120,218,237,152,205,74,195,64,20,133,211,141,174,74,43,21,236,127,10,182,197,133,184,85,215,1,27,17,74,23,198,133,89,233,3,248,48,250,66,77,
147,186,117,209,62,138,136,187,235,157,144,208,97,96,200,116,145,54,166,103,241,49,39,135,36,220,59,28,152,203,88,39,213,42,157,214,235,0,100,114,214,104,144,117,222,233,208,197,96,0,64,38,87,227,241,38,48,126,179,25,3,13,173,211,8,12,52,2,3,141,192,
64,23,49,48,0,24,13,189,15,142,67,51,215,5,32,147,167,233,148,172,244,30,166,197,244,107,53,178,153,93,175,42,69,169,163,136,53,237,163,142,150,122,15,115,107,219,244,216,235,209,139,1,175,255,124,205,131,178,239,137,200,134,200,72,124,36,93,182,219,
@ -320,10 +337,10 @@ static const unsigned char temp_binary_data_5[] =
104,224,31,194,158,4,154,126,231,172,69,54,190,25,103,56,220,4,134,238,172,24,241,114,170,23,146,142,36,29,228,224,47,115,254,127,164,233,43,52,240,15,97,79,2,77,191,115,73,199,129,193,145,132,35,105,171,35,9,67,47,134,222,173,134,222,244,30,198,99,158,
39,19,242,153,93,175,42,69,169,163,136,53,237,163,14,79,186,135,249,3,16,33,129,174,117,203,43,132,0,0,0,0,73,69,78,68,174,66,96,130,0,0 };
const char* Meter_140x8_png = (const char*) temp_binary_data_5;
const char* Meter_140x8_png = (const char*) temp_binary_data_6;
//================== Scaling_36_26.png ==================
static const unsigned char temp_binary_data_6[] =
static const unsigned char temp_binary_data_7[] =
{ 137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,36,0,0,0,156,8,6,0,0,0,23,153,9,128,0,0,5,201,73,68,65,84,120,218,237,92,91,143,84,69,16,94,197,75,68,209,168,120,125,48,241,138,215,68,125,23,89,140,36,235,206,57,103,119,117,222,20,81,162,70,12,18,
244,145,32,171,139,24,111,171,238,78,119,159,227,204,233,158,93,118,21,135,7,227,79,0,89,80,76,140,15,42,183,40,222,163,49,17,137,10,202,101,198,175,186,207,4,246,129,4,77,118,186,140,93,73,103,118,178,15,243,77,87,157,174,175,190,170,158,174,174,96,
193,254,75,214,106,157,18,233,202,237,44,176,244,143,171,139,99,157,174,143,181,60,28,231,114,158,87,48,125,70,45,0,144,189,37,45,247,39,90,61,230,13,200,163,89,118,122,108,212,26,128,57,130,245,65,100,178,235,189,129,33,183,0,196,54,172,163,177,22,175,
@ -347,10 +364,10 @@ static const unsigned char temp_binary_data_6[] =
27,71,242,197,170,226,98,219,86,10,222,80,6,181,31,101,123,175,204,168,35,136,21,255,133,34,220,179,210,186,201,164,203,185,136,13,244,91,102,57,15,57,198,168,77,36,90,177,144,99,220,47,50,169,38,170,135,126,22,73,17,1,60,66,169,128,133,164,215,22,61,
233,174,51,139,221,41,100,225,191,104,166,158,5,32,118,194,57,187,214,66,176,96,39,105,127,3,136,107,241,8,229,27,0,90,0,0,0,0,73,69,78,68,174,66,96,130,0,0 };
const char* Scaling_36_26_png = (const char*) temp_binary_data_6;
const char* Scaling_36_26_png = (const char*) temp_binary_data_7;
//================== Slider_26x26.png ==================
static const unsigned char temp_binary_data_7[] =
static const unsigned char temp_binary_data_8[] =
{ 137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,26,0,0,0,26,8,6,0,0,0,169,74,76,206,0,0,0,6,98,75,71,68,0,0,0,230,0,0,84,44,23,109,0,0,2,157,73,68,65,84,72,199,229,150,65,111,212,86,16,199,127,243,252,236,221,77,130,68,4,148,74,105,65,81,133,84,42,
33,56,113,172,184,114,234,169,23,14,124,22,62,74,63,70,41,170,90,137,83,175,72,109,69,4,17,80,137,68,172,150,144,44,235,181,159,61,51,61,120,9,40,106,118,183,155,67,15,29,201,146,237,247,252,255,121,222,127,222,216,240,191,138,59,119,190,94,122,238,189,
123,223,205,29,151,69,2,247,239,127,127,187,109,249,220,172,69,21,218,182,197,221,81,109,81,53,154,166,17,240,253,71,143,126,253,109,158,78,92,4,186,116,105,243,65,93,213,119,15,14,142,8,226,228,49,162,170,52,45,4,113,54,207,159,35,198,248,35,112,119,
@ -363,10 +380,10 @@ static const unsigned char temp_binary_data_7[] =
209,232,232,65,149,210,15,101,85,93,41,203,233,13,119,187,172,234,225,131,247,239,39,226,102,94,1,9,208,211,26,223,220,156,47,92,232,51,26,85,31,46,123,192,117,224,234,63,124,115,4,104,128,103,192,14,208,254,235,159,147,19,145,3,197,156,231,210,12,232,
252,87,241,55,44,143,105,246,6,50,28,31,0,0,0,0,73,69,78,68,174,66,96,130,0,0 };
const char* Slider_26x26_png = (const char*) temp_binary_data_7;
const char* Slider_26x26_png = (const char*) temp_binary_data_8;
//================== NotoSans-Regular.ttf ==================
static const unsigned char temp_binary_data_8[] =
static const unsigned char temp_binary_data_9[] =
{ 0,1,0,0,0,17,1,0,0,4,0,16,71,68,69,70,114,119,111,105,0,4,1,248,0,0,1,246,71,80,79,83,237,98,240,38,0,4,3,240,0,0,162,22,71,83,85,66,124,176,53,44,0,4,166,8,0,0,8,92,79,83,47,50,247,201,153,79,0,0,1,152,0,0,0,96,99,109,97,112,88,98,29,225,0,0,39,160,
0,0,14,210,99,118,116,32,25,175,26,197,0,0,64,68,0,0,0,254,102,112,103,109,54,11,22,12,0,0,54,116,0,0,7,180,103,97,115,112,0,22,0,35,0,4,1,232,0,0,0,16,103,108,121,102,170,127,220,169,0,0,102,240,0,3,150,146,104,101,97,100,245,231,74,201,0,0,1,28,0,0,
0,54,104,104,101,97,14,175,12,74,0,0,1,84,0,0,0,36,104,109,116,120,220,134,79,22,0,0,1,248,0,0,37,168,108,111,99,97,16,223,58,96,0,0,65,68,0,0,37,172,109,97,120,112,11,236,5,22,0,0,1,120,0,0,0,32,110,97,109,101,103,90,145,24,0,3,253,132,0,0,4,66,112,
@ -3972,10 +3989,10 @@ static const unsigned char temp_binary_data_8[] =
9,43,0,4,4,229,4,243,2,96,9,44,0,4,4,229,4,243,2,97,9,45,0,4,4,229,4,244,2,96,9,46,0,4,4,229,4,244,2,97,9,47,0,4,4,231,4,243,2,96,9,48,0,4,4,231,4,243,2,97,9,49,0,4,4,231,4,244,2,96,9,50,0,4,4,231,4,244,2,97,9,55,0,4,4,233,4,229,2,96,9,56,0,4,4,233,4,
229,2,97,9,57,0,4,4,233,4,231,2,96,9,58,0,4,4,233,4,231,2,97,0,2,0,3,1,126,1,126,0,0,1,134,1,134,0,1,1,146,1,146,0,2,0,2,0,12,0,3,0,243,2,55,6,3,0,2,0,2,0,76,0,77,0,0,4,87,4,87,0,2,0,0 };
const char* NotoSansRegular_ttf = (const char*) temp_binary_data_8;
const char* NotoSansRegular_ttf = (const char*) temp_binary_data_9;
//================== NotoSans-Bold.ttf ==================
static const unsigned char temp_binary_data_9[] =
static const unsigned char temp_binary_data_10[] =
{ 0,1,0,0,0,17,1,0,0,4,0,16,71,68,69,70,114,119,111,105,0,4,18,180,0,0,1,246,71,80,79,83,163,246,48,16,0,4,20,172,0,0,163,204,71,83,85,66,124,176,53,44,0,4,184,120,0,0,8,92,79,83,47,50,248,245,156,138,0,0,1,152,0,0,0,96,99,109,97,112,88,98,29,225,0,0,39,
160,0,0,14,210,99,118,116,32,39,8,39,208,0,0,64,212,0,0,1,18,102,112,103,109,54,11,22,12,0,0,54,116,0,0,7,180,103,97,115,112,0,17,0,35,0,4,18,164,0,0,0,16,103,108,121,102,161,3,188,9,0,0,103,148,0,3,166,130,104,101,97,100,246,93,74,203,0,0,1,28,0,0,0,
54,104,104,101,97,15,36,13,50,0,0,1,84,0,0,0,36,104,109,116,120,60,227,229,135,0,0,1,248,0,0,37,168,108,111,99,97,17,55,17,102,0,0,65,232,0,0,37,172,109,97,120,112,12,8,5,21,0,0,1,120,0,0,0,32,110,97,109,101,106,81,151,19,0,4,14,24,0,0,4,108,112,111,
@ -7625,10 +7642,10 @@ static const unsigned char temp_binary_data_9[] =
0,4,4,231,4,244,2,96,9,50,0,4,4,231,4,244,2,97,9,55,0,4,4,233,4,229,2,96,9,56,0,4,4,233,4,229,2,97,9,57,0,4,4,233,4,231,2,96,9,58,0,4,4,233,4,231,2,97,0,2,0,3,1,126,1,126,0,0,1,134,1,134,0,1,1,146,1,146,0,2,0,2,0,12,0,3,0,243,2,55,6,3,0,2,0,2,0,76,0,
77,0,0,4,87,4,87,0,2,0,0 };
const char* NotoSansBold_ttf = (const char*) temp_binary_data_9;
const char* NotoSansBold_ttf = (const char*) temp_binary_data_10;
//================== builtin_pgm.zip ==================
static const unsigned char temp_binary_data_10[] =
static const unsigned char temp_binary_data_11[] =
{ 80,75,3,4,20,0,0,0,8,0,235,124,51,68,91,179,46,131,152,9,0,0,8,16,0,0,12,0,28,0,68,101,120,101,100,95,48,49,46,115,121,120,85,84,9,0,3,249,55,220,82,77,94,228,82,117,120,11,0,1,4,245,1,0,0,4,20,0,0,0,93,151,219,87,26,217,18,135,139,238,6,26,108,185,5,
161,81,130,45,87,229,38,23,81,80,146,128,8,104,64,32,92,4,21,21,168,100,77,178,214,76,226,36,153,153,117,230,101,254,229,243,118,94,79,237,110,64,152,78,92,43,249,252,85,213,174,221,181,107,87,255,183,2,38,5,140,165,4,38,16,212,39,15,244,15,115,41,141,
201,23,32,192,230,58,0,176,18,136,175,42,60,4,50,171,138,218,126,26,113,188,4,28,32,61,25,122,118,173,1,66,105,185,55,253,143,82,254,101,250,229,107,242,178,105,86,112,208,129,52,147,138,125,39,52,175,204,94,28,223,65,134,128,44,220,9,144,126,111,86,
@ -8875,10 +8892,10 @@ static const unsigned char temp_binary_data_10[] =
227,193,80,81,117,120,11,0,1,4,245,1,0,0,4,20,0,0,0,80,75,1,2,30,3,20,0,0,0,8,0,198,139,121,66,196,112,97,144,143,10,0,0,8,16,0,0,16,0,24,0,0,0,0,0,0,0,0,0,192,129,57,69,1,0,83,121,110,112,114,101,122,70,77,95,51,50,46,115,121,120,85,84,5,0,3,227,193,
80,81,117,120,11,0,1,4,245,1,0,0,4,20,0,0,0,80,75,5,6,0,0,0,0,33,0,33,0,18,11,0,0,18,80,1,0,0,0,0,0 };
const char* builtin_pgm_zip = (const char*) temp_binary_data_10;
const char* builtin_pgm_zip = (const char*) temp_binary_data_11;
//================== about.png ==================
static const unsigned char temp_binary_data_11[] =
static const unsigned char temp_binary_data_12[] =
{ 137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,1,44,0,0,1,64,8,6,0,0,0,6,75,65,84,0,0,0,6,98,75,71,68,0,255,0,255,0,255,160,189,167,147,0,0,0,9,112,72,89,115,0,0,46,35,0,0,46,35,1,120,165,63,118,0,0,0,7,116,73,77,69,7,223,12,27,4,11,5,249,195,188,
93,0,0,32,0,73,68,65,84,120,218,236,157,119,152,85,197,249,199,63,231,220,190,189,247,94,89,122,7,233,29,65,4,236,177,70,77,136,137,141,88,126,150,244,196,36,166,154,152,98,162,49,106,162,6,43,54,80,16,84,122,239,109,129,93,118,217,93,216,222,203,237,
247,158,223,31,203,94,89,216,122,238,221,101,209,249,60,15,143,114,57,103,206,204,59,51,223,51,243,158,153,119,164,27,150,204,83,16,8,4,130,203,0,89,152,64,32,16,8,193,18,8,4,2,33,88,2,129,64,8,150,64,32,16,8,193,18,8,4,2,33,88,2,129,64,8,150,64,32,16,
@ -9234,10 +9251,10 @@ static const unsigned char temp_binary_data_11[] =
69,16,4,65,130,69,16,4,65,130,69,16,4,9,22,65,16,4,9,22,65,16,4,9,22,65,16,36,88,4,65,16,36,88,4,65,16,36,88,4,65,144,96,17,4,65,144,96,17,4,65,144,96,17,4,65,130,69,16,4,65,130,69,16,4,65,130,69,16,4,9,22,65,16,4,9,22,65,16,4,9,22,65,16,36,88,4,65,16,
36,88,4,65,16,36,88,4,65,144,96,17,4,65,144,96,17,4,65,130,69,16,4,81,69,248,63,125,98,180,101,153,101,182,227,0,0,0,0,73,69,78,68,174,66,96,130,0,0 };
const char* about_png = (const char*) temp_binary_data_11;
const char* about_png = (const char*) temp_binary_data_12;
//================== GlobalEditor_864x144.png ==================
static const unsigned char temp_binary_data_12[] =
static const unsigned char temp_binary_data_13[] =
{ 137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,3,96,0,0,0,144,8,6,0,0,0,110,232,8,32,0,0,0,1,115,82,71,66,0,174,206,28,233,0,0,0,4,103,65,77,65,0,0,177,143,11,252,97,5,0,0,0,9,112,72,89,115,0,0,14,195,0,0,14,195,1,199,111,168,100,0,0,67,75,73,68,65,
84,120,94,237,157,9,152,36,85,149,239,25,71,7,26,92,112,235,215,44,190,65,6,121,46,131,11,208,128,52,34,52,116,45,93,221,244,66,131,208,208,236,32,139,200,38,251,14,54,139,130,32,32,139,195,174,192,115,97,20,7,25,70,6,29,65,118,81,92,16,70,133,39,155,
172,202,34,155,58,51,247,197,47,168,211,117,234,214,201,234,140,170,172,172,204,172,127,124,223,239,203,200,27,247,156,184,247,198,137,136,251,207,123,35,114,153,254,229,111,10,254,182,96,217,130,55,21,188,179,224,93,5,107,22,172,85,176,118,193,212,130,
@ -9484,10 +9501,10 @@ static const unsigned char temp_binary_data_12[] =
167,158,120,40,23,19,97,60,15,182,98,193,74,5,171,23,188,191,224,35,5,204,93,229,205,45,176,129,16,66,180,33,92,191,184,150,113,77,251,64,1,23,194,149,11,120,19,44,215,62,174,129,175,43,208,245,80,136,177,71,231,163,232,36,20,207,194,179,148,120,88,230,
245,255,31,190,10,252,25,242,221,162,193,0,0,0,0,73,69,78,68,174,66,96,130,0,0 };
const char* GlobalEditor_864x144_png = (const char*) temp_binary_data_12;
const char* GlobalEditor_864x144_png = (const char*) temp_binary_data_13;
//================== OperatorEditor_287x218.png ==================
static const unsigned char temp_binary_data_13[] =
static const unsigned char temp_binary_data_14[] =
{ 137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,1,31,0,0,0,218,8,6,0,0,0,159,5,70,254,0,0,0,1,115,82,71,66,0,174,206,28,233,0,0,0,4,103,65,77,65,0,0,177,143,11,252,97,5,0,0,0,9,112,72,89,115,0,0,14,195,0,0,14,195,1,199,111,168,100,0,0,42,68,73,68,65,
84,120,94,237,157,107,136,101,89,149,231,179,180,91,243,209,86,101,101,102,101,101,70,190,51,35,34,51,50,51,30,25,239,136,27,239,136,140,200,168,200,180,179,170,108,203,71,217,85,150,218,182,35,232,96,151,96,183,14,66,53,66,13,136,130,80,32,20,72,33,
130,130,136,35,50,162,51,142,72,139,126,80,63,40,50,168,31,212,153,193,154,129,41,161,177,190,116,194,124,216,179,127,251,198,138,92,113,98,159,251,136,251,136,115,206,93,1,63,206,57,123,175,189,247,185,103,173,253,63,235,156,115,227,158,125,254,111,
@ -9646,7 +9663,7 @@ static const unsigned char temp_binary_data_13[] =
167,228,121,91,207,133,83,255,169,251,236,241,255,117,238,228,97,215,117,236,144,97,24,198,174,57,253,232,67,255,251,252,233,71,254,139,207,120,158,246,250,50,231,185,236,121,196,115,192,179,239,160,231,152,231,130,103,216,179,228,225,134,208,187,60,
207,122,222,231,225,75,65,134,97,24,181,128,102,160,29,104,200,227,158,21,15,143,214,201,120,16,158,67,251,246,237,251,139,255,15,171,227,103,50,233,85,150,225,0,0,0,0,73,69,78,68,174,66,96,130,0,0 };
const char* OperatorEditor_287x218_png = (const char*) temp_binary_data_13;
const char* OperatorEditor_287x218_png = (const char*) temp_binary_data_14;
const char* getNamedResource (const char*, int&) throw();
@ -9659,6 +9676,7 @@ const char* getNamedResource (const char* resourceNameUTF8, int& numBytes) throw
switch (hash)
{
case 0xb5f9cc57: numBytes = 841; return Switch_32x32_png;
case 0xb808cdf7: numBytes = 2261; return Switch_48x26_png;
case 0x5fe3afed: numBytes = 1850; return ButtonUnlabeled_50x30_png;
case 0x6e76c9d9: numBytes = 13011; return Knob_34x34_png;
@ -9682,6 +9700,7 @@ const char* getNamedResource (const char* resourceNameUTF8, int& numBytes) throw
const char* namedResourceList[] =
{
"Switch_32x32_png",
"Switch_48x26_png",
"ButtonUnlabeled_50x30_png",
"Knob_34x34_png",

@ -9,6 +9,9 @@
namespace BinaryData
{
extern const char* Switch_32x32_png;
const int Switch_32x32_pngSize = 841;
extern const char* Switch_48x26_png;
const int Switch_48x26_pngSize = 2261;
@ -55,7 +58,7 @@ namespace BinaryData
extern const char* namedResourceList[];
// Number of elements in the namedResourceList array.
const int namedResourceListSize = 14;
const int namedResourceListSize = 15;
// If you provide the name of one of the binary resource variables above, this function will
// return the corresponding data and its size (or a null pointer if the name isn't found).

Binary file not shown.

After

Width:  |  Height:  |  Size: 841 B

@ -1,6 +1,6 @@
/**
*
* Copyright (c) 2013-2014 Pascal Gauthier.
* Copyright (c) 2013-2016 Pascal Gauthier.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@ -64,6 +64,7 @@ DXLookNFeel::DXLookNFeel() {
imageKnob = ImageCache::getFromMemory(BinaryData::Knob_34x34_png, BinaryData::Knob_34x34_pngSize);
imageSwitch = ImageCache::getFromMemory(BinaryData::Switch_48x26_png, BinaryData::Switch_48x26_pngSize);
imageSwitchOperator = ImageCache::getFromMemory(BinaryData::Switch_32x32_png, BinaryData::Switch_32x32_pngSize);
imageButton = ImageCache::getFromMemory(BinaryData::ButtonUnlabeled_50x30_png, BinaryData::ButtonUnlabeled_50x30_pngSize);
imageSlider = ImageCache::getFromMemory(BinaryData::Slider_26x26_png, BinaryData::Slider_26x26_pngSize);
imageScaling = ImageCache::getFromMemory(BinaryData::Scaling_36_26_png, BinaryData::Scaling_36_26_pngSize);;
@ -119,6 +120,10 @@ DXLookNFeel::DXLookNFeel() {
imageSwitch = findImage(path);
continue;
}
if ( name == "Switch_32x64.png" ) {
imageSwitchOperator = findImage(path);
continue;
}
if ( name == "ButtonUnlabeled_50x30.png" ) {
imageButton = findImage(path);
continue;

@ -1,6 +1,6 @@
/**
*
* Copyright (c) 2013-2014 Pascal Gauthier.
* Copyright (c) 2013-2016 Pascal Gauthier.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@ -35,6 +35,7 @@ public:
Typeface::Ptr defaultFontBold;
Image imageKnob, imageSwitch, imageButton, imageSlider, imageScaling, imageLight, imageLFO;
Image imageSwitchOperator;
Image imageOperator, imageGlobal;
/* overriden methods */

@ -7,12 +7,12 @@
the "//[xyz]" and "//[/xyz]" sections will be retained when the file is loaded
and re-saved.
Created with Introjucer version: 3.1.0
Created with Introjucer version: 3.2.0
------------------------------------------------------------------------------
The Introjucer is part of the JUCE library - "Jules' Utility Class Extensions"
Copyright 2004-13 by Raw Material Software Ltd.
Copyright (c) 2015 - ROLI Ltd.
==============================================================================
*/
@ -25,13 +25,30 @@
//[MiscUserDefs] You can add your own user definitions and misc code here...
#ifndef M_LN10
#define M_LN10 2.30258509299404568402
#define M_LN10 2.30258509299404568402
#endif
class OperatorSwitch : public ToggleButton {
Image image;
public :
OperatorSwitch() : ToggleButton("opSwitch") {
image = DXLookNFeel::getLookAndFeel()->imageSwitchOperator;
setSize(32, 32);
}
void paintButton (Graphics& g, bool isMouseOverButton, bool isButtonDown) {
g.drawImage(image, 0, 0, 32, 32, 0, getToggleState() ? 0 : 32, 32, 32);
}
};
//[/MiscUserDefs]
//==============================================================================
OperatorEditor::OperatorEditor ()
{
//[Constructor_pre] You can add your own custom stuff here..
//[/Constructor_pre]
addAndMakeVisible (s_egl1 = new Slider ("egl1"));
s_egl1->setRange (0, 99, 1);
s_egl1->setSliderStyle (Slider::RotaryVerticalDrag);
@ -173,6 +190,7 @@ OperatorEditor::OperatorEditor ()
//[UserPreSize]
addAndMakeVisible(opSwitch = new OperatorSwitch());
//[/UserPreSize]
setSize (287, 218);
@ -233,6 +251,7 @@ OperatorEditor::~OperatorEditor()
//[Destructor]. You can add your own custom destruction code here..
opSwitch = nullptr;
//[/Destructor]
}
@ -246,7 +265,7 @@ void OperatorEditor::paint (Graphics& g)
//[UserPaint] Add your own custom painting code here..
g.setColour (Colours::white);
g.setFont(Font (30.00f, Font::plain));
g.drawText(opNum, 242, 8, 30, 30, Justification::centred, true);
g.drawText(opNum, 250, 14, 30, 30, Justification::centred, true);
bool state = opMode->getToggleState();
@ -259,6 +278,9 @@ void OperatorEditor::paint (Graphics& g)
void OperatorEditor::resized()
{
//[UserPreResize] Add your own custom resize code here..
//[/UserPreResize]
s_egl1->setBounds (5, 128, 34, 34);
s_egl2->setBounds (33, 129, 34, 34);
s_egl3->setBounds (61, 128, 34, 34);
@ -284,6 +306,7 @@ void OperatorEditor::resized()
kbdLeftCurve->setBounds (128, 170, 36, 26);
kbdRightCurve->setBounds (240, 170, 36, 26);
//[UserResized] Add your own custom resize handling here..
opSwitch->setBounds(226, 13, 64, 32);
//[/UserResized]
}
@ -439,6 +462,7 @@ void OperatorEditor::bind(DexedAudioProcessor *parent, int op) {
parent->opCtrl[op].sclRate->bind(sclRateScaling);
parent->opCtrl[op].ampModSens->bind(ampModSens);
parent->opCtrl[op].velModSens->bind(keyVelSens);
parent->opCtrl[op].opSwitch->bind(opSwitch);
int offset = parent->opCtrl[op].egRate[0]->getOffset();
envDisplay->pvalues = &(parent->data[offset]);
@ -507,7 +531,7 @@ void OperatorEditor::mouseDown(const MouseEvent &event) {
case 3:
processor->pasteOpFromClipboard(internalOp);
break;
case 4:
processor->sendCurrentSysexProgram();
break;

@ -7,12 +7,12 @@
the "//[xyz]" and "//[/xyz]" sections will be retained when the file is loaded
and re-saved.
Created with Introjucer version: 3.1.0
Created with Introjucer version: 3.2.0
------------------------------------------------------------------------------
The Introjucer is part of the JUCE library - "Jules' Utility Class Extensions"
Copyright 2004-13 by Raw Material Software Ltd.
Copyright (c) 2015 - ROLI Ltd.
==============================================================================
*/
@ -68,10 +68,9 @@ private:
String opNum;
int internalOp;
Image light;
DexedAudioProcessor *processor;
Image background;
ScopedPointer<ToggleButton> opSwitch;
//[/UserVariables]
//==============================================================================

@ -55,7 +55,7 @@ void exportSysexPgm(uint8_t *dest, uint8_t *src) {
/**
* Pack a program into a 32 packed sysex
*/
void Cartridge::packProgram(uint8_t *src, int idx, String name) {
void Cartridge::packProgram(uint8_t *src, int idx, String name, char *opSwitch) {
uint8_t *bulk = voiceData + 6 + (idx * 128);
for(int op = 0; op < 6; op++) {
@ -70,7 +70,10 @@ void Cartridge::packProgram(uint8_t *src, int idx, String name) {
// kvs_ams
bulk[pp+13] = (src[up+14]&0x03) | ((src[up+15]&0x07) << 2);
// output lvl
bulk[pp+14] = src[up+16];
if ( opSwitch[op] == '0' )
bulk[pp+14] = 0;
else
bulk[pp+14] = src[up+16];
// fcoarse_mode
bulk[pp+15] = (src[up+17]&0x01) | ((src[up+18]&0x1f) << 1);
// fine freq
@ -158,7 +161,7 @@ void Cartridge::unpackProgram(uint8_t *unpackPgm, int idx) {
unpackPgm[142] = (lpms_lfw_lks >> 1) & 7;
unpackPgm[143] = lpms_lfw_lks >> 4;
memcpy(unpackPgm + 144, bulk + 117, 11); // transpose, name
unpackPgm[155] = 1; // operator on/off
unpackPgm[155] = 1; // operator on/off (DEPRECATED)
unpackPgm[156] = 1;
unpackPgm[157] = 1;
unpackPgm[158] = 1;
@ -296,6 +299,7 @@ void DexedAudioProcessor::getStateInformation(MemoryBlock& destData) {
dexedState.setAttribute("monoMode", monoMode);
dexedState.setAttribute("engineType", (int) engineType);
dexedState.setAttribute("masterTune", controllers.masterTune);
dexedState.setAttribute("opSwitch", controllers.opSwitch);
char mod_cfg[15];
controllers.wheel.setConfig(mod_cfg);
@ -335,6 +339,13 @@ void DexedAudioProcessor::setStateInformation(const void* source, int sizeInByte
fx.uiGain = root->getDoubleAttribute("gain");
currentProgram = root->getIntAttribute("currentProgram");
String opSwitchValue = root->getStringAttribute("opSwitch");
if ( opSwitchValue.length() != 6 ) {
strcpy(controllers.opSwitch, "111111");
} else {
strncpy(controllers.opSwitch, opSwitchValue.toRawUTF8(), 6);
}
controllers.wheel.parseConfig(root->getStringAttribute("wheelMod").toRawUTF8());
controllers.foot.parseConfig(root->getStringAttribute("footMod").toRawUTF8());
controllers.breath.parseConfig(root->getStringAttribute("breathMod").toRawUTF8());

@ -220,7 +220,7 @@ public:
}
void unpackProgram(uint8_t *unpackPgm, int idx);
void packProgram(uint8_t *src, int idx, String name);
void packProgram(uint8_t *src, int idx, String name, char *opSwitch);
};
#endif // PLUGINDATA_H_INCLUDED

@ -297,7 +297,7 @@ void DexedAudioProcessorEditor::storeProgram() {
}
if ( externalFile == NULL ) {
processor->currentCart.packProgram((uint8_t *) processor->data, programNum, programName);
processor->currentCart.packProgram((uint8_t *) processor->data, programNum, programName, processor->controllers.opSwitch);
rebuildProgramCombobox();
processor->setCurrentProgram(programNum);
processor->updateHostDisplay();
@ -316,7 +316,7 @@ void DexedAudioProcessorEditor::storeProgram() {
processor->activeFileCartridge = destination;
}
} else {
destSysex.packProgram((uint8_t *) processor->data, programNum, programName);
destSysex.packProgram((uint8_t *) processor->data, programNum, programName, processor->controllers.opSwitch);
if ( ! destSysex.saveVoice(*externalFile)) {
AlertWindow::showMessageBoxAsync(AlertWindow::WarningIcon, "Write error", "Unable to write file");
}

@ -1,6 +1,6 @@
/**
*
* Copyright (c) 2013-2015 Pascal Gauthier.
* Copyright (c) 2013-2016 Pascal Gauthier.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@ -31,11 +31,7 @@
//==============================================================================
/**
*/
class DexedAudioProcessorEditor : public AudioProcessorEditor,
public ComboBoxListener,
public Timer {
PopupMenu cartPopup;
class DexedAudioProcessorEditor : public AudioProcessorEditor, public ComboBoxListener, public Timer {
MidiKeyboardComponent midiKeyboard;
OperatorEditor operators[6];
Colour background;

@ -1,6 +1,6 @@
/**
*
* Copyright (c) 2013-2015 Pascal Gauthier.
* Copyright (c) 2013-2016 Pascal Gauthier.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@ -103,6 +103,43 @@ public:
}
};
class CtrlOpSwitch : public Ctrl {
char *value;
public :
CtrlOpSwitch(String name, char *switchValue) : Ctrl(name) {
value = switchValue;
}
void setValueHost(float f) {
if ( f == 0 )
*value = '0';
else
*value = '1';
}
float getValueHost() {
if ( *value == '0' )
return 0;
else
return 1;
}
String getValueDisplay() {
String ret;
ret << label << " " << (*value == '0' ? "OFF" : "ON");
return ret;
}
void updateComponent() {
if (button != NULL) {
if (*value == '0') {
button->setToggleState(false, dontSendNotification);
} else {
button->setToggleState(true, dontSendNotification);
}
}
}
};
// ************************************************************************
//
@ -471,6 +508,11 @@ void DexedAudioProcessor::initCtrl() {
velModSens << opName << " KEY VELOCITY";
opCtrl[opVal].velModSens = new CtrlDX(velModSens, 8, opTarget + 15);
ctrl.add(opCtrl[opVal].velModSens);
String opSwitchLabel;
opSwitchLabel << opName << " SWITCH";
opCtrl[opVal].opSwitch = new CtrlOpSwitch(opSwitchLabel, (char *)&(controllers.opSwitch)+(5-i));
ctrl.add(opCtrl[opVal].opSwitch);
}
for (int i=0; i < ctrl.size(); i++) {
@ -549,6 +591,7 @@ void DexedAudioProcessor::setCurrentProgram(int index) {
index = index > 31 ? 31 : index;
currentCart.unpackProgram(data, index);
strcpy(controllers.opSwitch, "111111");
lfo.reset(data + 137);
currentProgram = index;
triggerAsyncUpdate();

@ -121,6 +121,7 @@ struct OperatorCtrl {
ScopedPointer<CtrlDX> sclRate;
ScopedPointer<CtrlDX> ampModSens;
ScopedPointer<CtrlDX> velModSens;
ScopedPointer<Ctrl> opSwitch;
};
#endif // PLUGINPARAM_H_INCLUDED

@ -54,6 +54,8 @@ DexedAudioProcessor::DexedAudioProcessor() {
resolvAppDir();
TRACE("controler %s", controllers.opSwitch);
initCtrl();
sendSysexChange = true;
normalizeDxVelocity = false;
@ -66,6 +68,7 @@ DexedAudioProcessor::DexedAudioProcessor() {
controllers.values_[kControllerPitchRange] = 3;
controllers.values_[kControllerPitchStep] = 0;
controllers.masterTune = 0;
loadPreference();
for (int note = 0; note < MAX_ACTIVE_NOTES; ++note) {
@ -200,7 +203,7 @@ void DexedAudioProcessor::processBlock(AudioSampleBuffer& buffer, MidiBuffer& mi
val = val >> 4;
int clip_val = val < -(1 << 24) ? 0x8000 : val >= (1 << 24) ? 0x7fff : val >> 9;
float f = ((float) clip_val) / (float) 32768;
float f = ((float) clip_val) / (float) 0x8000;
if( f > 1 ) f = 1;
if( f < -1 ) f = -1;
sumbuf[j] += f;

@ -20,6 +20,7 @@
#include "synth.h"
#include "../Dexed.h"
#include <stdio.h>
#include <string.h>
#ifdef _WIN32
#define snprintf _snprintf
@ -77,6 +78,8 @@ class Controllers {
public:
int values_[131];
char opSwitch[7];
int amp_mod;
int pitch_mod;
int eg_mod;
@ -97,6 +100,7 @@ public:
amp_mod = 0;
pitch_mod = 0;
eg_mod = 0;
strcpy(opSwitch, "111111");
}
void refresh() {

@ -216,19 +216,24 @@ void Dx7Note::compute(int32_t *buf, int32_t lfo_val, int32_t lfo_delay, const Co
// ==== OP RENDER ====
for (int op = 0; op < 6; op++) {
//int32_t gain = pow(2, 10 + level * (1.0 / (1 << 24)));
params_[op].freq = Freqlut::lookup(basepitch_[op] + pitch_mod);
int32_t level = env_[op].getsample();
if (ampmodsens_[op] != 0) {
uint32_t sensamp = ((uint64_t) amd_mod) * ((uint64_t) ampmodsens_[op]) >> 24;
if ( ctrls->opSwitch[op] == '0' ) {
env_[op].getsample(); // advance the envelop even if it is not playing
params_[op].level_in = 0;
} else {
//int32_t gain = pow(2, 10 + level * (1.0 / (1 << 24)));
params_[op].freq = Freqlut::lookup(basepitch_[op] + pitch_mod);
// TODO: mehhh.. this needs some real tuning.
uint32_t pt = exp(((float)sensamp)/262144 * 0.07 + 12.2);
uint32_t ldiff = ((uint64_t)level) * (((uint64_t)pt<<4)) >> 28;
level -= ldiff;
int32_t level = env_[op].getsample();
if (ampmodsens_[op] != 0) {
uint32_t sensamp = ((uint64_t) amd_mod) * ((uint64_t) ampmodsens_[op]) >> 24;
// TODO: mehhh.. this needs some real tuning.
uint32_t pt = exp(((float)sensamp)/262144 * 0.07 + 12.2);
uint32_t ldiff = ((uint64_t)level) * (((uint64_t)pt<<4)) >> 28;
level -= ldiff;
}
params_[op].level_in = level;
}
params_[op].level_in = level;
}
ctrls->core->render(buf, params_, algorithm_, fb_buf_, fb_shift_);
}

Loading…
Cancel
Save