From f044e2aef308d0173c4592a9aac0ea210480a664 Mon Sep 17 00:00:00 2001 From: The XOR <1h3x0r@gmail.com> Date: Fri, 2 Aug 2019 13:34:59 +0200 Subject: [PATCH 1/8] The color of the cables can be changed with CTRL+right click --- src/app/PortWidget.cpp | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/src/app/PortWidget.cpp b/src/app/PortWidget.cpp index 2f3463cb..332f4c1b 100644 --- a/src/app/PortWidget.cpp +++ b/src/app/PortWidget.cpp @@ -4,6 +4,7 @@ #include #include #include +#include namespace rack { @@ -65,13 +66,20 @@ void PortWidget::onButton(const event::Button &e) { if (e.action == GLFW_PRESS && e.button == GLFW_MOUSE_BUTTON_RIGHT) { CableWidget *cw = APP->scene->rack->getTopCable(this); if (cw) { - // history::CableRemove - history::CableRemove *h = new history::CableRemove; - h->setCable(cw); - APP->history->push(h); - - APP->scene->rack->removeCable(cw); - delete cw; + if ((APP->window->getMods() & RACK_MOD_MASK) == RACK_MOD_CTRL) { + int id = APP->scene->rack->nextCableColorId++; + APP->scene->rack->nextCableColorId %= settings::cableColors.size(); + cw->color = settings::cableColors[id]; + } else + { + // history::CableRemove + history::CableRemove *h = new history::CableRemove; + h->setCable(cw); + APP->history->push(h); + + APP->scene->rack->removeCable(cw); + delete cw; + } } e.consume(this); From 4fe8206056fa27069937ac2ea34af5b0f0ea528b Mon Sep 17 00:00:00 2001 From: The XOR <1h3x0r@gmail.com> Date: Fri, 9 Aug 2019 10:12:03 +0200 Subject: [PATCH 2/8] very good improvement from cyanox --- include/settings.hpp | 1 + src/app/ModuleBrowser.cpp | 2 +- src/settings.cpp | 7 +++++++ 3 files changed, 9 insertions(+), 1 deletion(-) diff --git a/include/settings.hpp b/include/settings.hpp index 36059752..1f5c89ab 100644 --- a/include/settings.hpp +++ b/include/settings.hpp @@ -29,6 +29,7 @@ extern float cableOpacity; extern float cableTension; extern bool allowCursorLock; extern bool realTime; +extern bool keepPreviews; extern float sampleRate; extern int threadCount; extern bool paramTooltip; diff --git a/src/app/ModuleBrowser.cpp b/src/app/ModuleBrowser.cpp index 55b872ee..de58ddc5 100644 --- a/src/app/ModuleBrowser.cpp +++ b/src/app/ModuleBrowser.cpp @@ -192,7 +192,7 @@ struct ModelBox : widget::OpaqueWidget { } void step() override { - if (previewFb && ++visibleFrames >= 60) { + if (!settings::keepPreviews && previewFb && ++visibleFrames >= 60) { deletePreview(); } OpaqueWidget::step(); diff --git a/src/settings.cpp b/src/settings.cpp index 409368ae..3caea2da 100644 --- a/src/settings.cpp +++ b/src/settings.cpp @@ -24,6 +24,7 @@ float cableOpacity = 0.5; float cableTension = 0.5; bool allowCursorLock = true; bool realTime = false; +bool keepPreviews = true; float sampleRate = 44100.0; int threadCount = 1; bool paramTooltip = false; @@ -64,6 +65,8 @@ json_t *toJson() { json_object_set_new(rootJ, "allowCursorLock", json_boolean(allowCursorLock)); json_object_set_new(rootJ, "realTime", json_boolean(realTime)); + + json_object_set_new(rootJ, "keepPreviews", json_boolean(keepPreviews)); json_object_set_new(rootJ, "sampleRate", json_real(sampleRate)); @@ -140,6 +143,10 @@ void fromJson(json_t *rootJ) { if (realTimeJ) realTime = json_boolean_value(realTimeJ); + json_t *keepPreviewsJ = json_object_get(rootJ, "keepPreviews"); + if (keepPreviewsJ) + keepPreviews = json_boolean_value(keepPreviewsJ); + json_t *sampleRateJ = json_object_get(rootJ, "sampleRate"); if (sampleRateJ) sampleRate = json_number_value(sampleRateJ); From 411b022c2ba8597815e6e2206471a0c399450f7e Mon Sep 17 00:00:00 2001 From: The XOR <1h3x0r@gmail.com> Date: Sun, 11 Aug 2019 00:28:10 +0200 Subject: [PATCH 3/8] Revert "very good improvement from cyanox" This reverts commit 4fe8206056fa27069937ac2ea34af5b0f0ea528b. --- include/settings.hpp | 1 - src/app/ModuleBrowser.cpp | 2 +- src/settings.cpp | 7 ------- 3 files changed, 1 insertion(+), 9 deletions(-) diff --git a/include/settings.hpp b/include/settings.hpp index 1f5c89ab..36059752 100644 --- a/include/settings.hpp +++ b/include/settings.hpp @@ -29,7 +29,6 @@ extern float cableOpacity; extern float cableTension; extern bool allowCursorLock; extern bool realTime; -extern bool keepPreviews; extern float sampleRate; extern int threadCount; extern bool paramTooltip; diff --git a/src/app/ModuleBrowser.cpp b/src/app/ModuleBrowser.cpp index de58ddc5..55b872ee 100644 --- a/src/app/ModuleBrowser.cpp +++ b/src/app/ModuleBrowser.cpp @@ -192,7 +192,7 @@ struct ModelBox : widget::OpaqueWidget { } void step() override { - if (!settings::keepPreviews && previewFb && ++visibleFrames >= 60) { + if (previewFb && ++visibleFrames >= 60) { deletePreview(); } OpaqueWidget::step(); diff --git a/src/settings.cpp b/src/settings.cpp index 3caea2da..409368ae 100644 --- a/src/settings.cpp +++ b/src/settings.cpp @@ -24,7 +24,6 @@ float cableOpacity = 0.5; float cableTension = 0.5; bool allowCursorLock = true; bool realTime = false; -bool keepPreviews = true; float sampleRate = 44100.0; int threadCount = 1; bool paramTooltip = false; @@ -65,8 +64,6 @@ json_t *toJson() { json_object_set_new(rootJ, "allowCursorLock", json_boolean(allowCursorLock)); json_object_set_new(rootJ, "realTime", json_boolean(realTime)); - - json_object_set_new(rootJ, "keepPreviews", json_boolean(keepPreviews)); json_object_set_new(rootJ, "sampleRate", json_real(sampleRate)); @@ -143,10 +140,6 @@ void fromJson(json_t *rootJ) { if (realTimeJ) realTime = json_boolean_value(realTimeJ); - json_t *keepPreviewsJ = json_object_get(rootJ, "keepPreviews"); - if (keepPreviewsJ) - keepPreviews = json_boolean_value(keepPreviewsJ); - json_t *sampleRateJ = json_object_get(rootJ, "sampleRate"); if (sampleRateJ) sampleRate = json_number_value(sampleRateJ); From d19d2aa4b63793211982eb3347cf13297b3f4f17 Mon Sep 17 00:00:00 2001 From: The XOR <1h3x0r@gmail.com> Date: Sat, 24 Aug 2019 18:31:24 +0200 Subject: [PATCH 4/8] 1.1.4 update --- .gitignore | 2 ++ build.txt | 36 ++++++++++++++++++++++++++++++++++++ 2 files changed, 38 insertions(+) create mode 100644 build.txt diff --git a/.gitignore b/.gitignore index 0ca91393..f1461d0c 100644 --- a/.gitignore +++ b/.gitignore @@ -12,3 +12,5 @@ /autosave.vcv /settings.json /screenshots +/.vs/Rack/v16/ipch/AutoPCH +/.vs diff --git a/build.txt b/build.txt new file mode 100644 index 00000000..acdc3583 --- /dev/null +++ b/build.txt @@ -0,0 +1,36 @@ +Clone this repository with git clone https://github.com/VCVRack/Rack.git and cd Rack. Make sure there are no spaces in your absolute path, since this breaks the Makefile-based build system. + +Clone submodules. + +git submodule update --init --recursive +Build dependencies locally. You may add -j4 (or your number of logical cores) to your make commands to parallelize builds. This may take 15-60 minutes. + +make dep +Build Rack. This may take 1-5 minutes. + +make +Run Rack. + +make run +Building Rack plugins +Complete the Setting up your development environment section. + +Plugins can be built in two ways: + +Build Rack from source and build plugins in the plugins/ folder. (Recommended for advanced developers.) +Download an official Rack build and Rack-SDK-1.1.2.zip, and build plugins anywhere you like. (Easiest/fastest.) +Download or clone the plugin source code, e.g. + +git clone https://github.com/VCVRack/Fundamental.git +Clone the git repo’s submodules. + +cd Fundamental +git submodule update --init --recursive +If using the Rack SDK, set the RACK_DIR environment variable by prefixing each of the following commands with RACK_DIR=. + +Build plugin dependencies. (Most plugins don’t require this step.) + +make dep +Build the plugin. + +make \ No newline at end of file From fcd3d69f05767faa4c8edda2967d2b4863e4236a Mon Sep 17 00:00:00 2001 From: The XOR <1h3x0r@gmail.com> Date: Thu, 29 Aug 2019 11:44:26 +0200 Subject: [PATCH 5/8] sysex out --- .gitignore | 2 +- dep/osdialog | 2 +- include/midi.hpp | 7 +++++++ src/rtmidi.cpp | 5 ++++- 4 files changed, 13 insertions(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index f1461d0c..8dd27f2b 100644 --- a/.gitignore +++ b/.gitignore @@ -12,5 +12,5 @@ /autosave.vcv /settings.json /screenshots -/.vs/Rack/v16/ipch/AutoPCH /.vs +/_ReSharper.Caches diff --git a/dep/osdialog b/dep/osdialog index e5db5de6..7be48961 160000 --- a/dep/osdialog +++ b/dep/osdialog @@ -1 +1 @@ -Subproject commit e5db5de6444f4b2c4e1390c67b3efd718080c3da +Subproject commit 7be4896180c9f78363d71e1d4510748b0ab01670 diff --git a/include/midi.hpp b/include/midi.hpp index f1bd35d4..f4296994 100644 --- a/include/midi.hpp +++ b/include/midi.hpp @@ -17,6 +17,13 @@ namespace midi { struct Message { uint8_t size = 3; uint8_t bytes[3] = {}; + uint8_t *longMessage = NULL; + + void setSysex(uint8_t *msg, uint8_t len) + { + size=len; + longMessage = msg; + } void setSize(uint8_t size) { assert(size <= 3); diff --git a/src/rtmidi.cpp b/src/rtmidi.cpp index df24af92..d6a26b1f 100644 --- a/src/rtmidi.cpp +++ b/src/rtmidi.cpp @@ -68,7 +68,10 @@ struct RtMidiOutputDevice : midi::OutputDevice { } void sendMessage(midi::Message message) override { - rtMidiOut->sendMessage(message.bytes, message.size); + if(message.size > 3) + rtMidiOut->sendMessage(message.longMessage, message.size); + else + rtMidiOut->sendMessage(message.bytes, message.size); } }; From f74a36c11509e49f9c321760638b4799bb022743 Mon Sep 17 00:00:00 2001 From: The XOR <1h3x0r@gmail.com> Date: Thu, 19 Sep 2019 08:40:53 +0200 Subject: [PATCH 6/8] git ignore --- .gitignore | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.gitignore b/.gitignore index 0ca91393..32290977 100644 --- a/.gitignore +++ b/.gitignore @@ -12,3 +12,5 @@ /autosave.vcv /settings.json /screenshots +.vs/ +_ReSharper.Caches/ From 9e1d0d9361052d1a19267058adedc33258616ede Mon Sep 17 00:00:00 2001 From: The XOR <1h3x0r@gmail.com> Date: Thu, 19 Sep 2019 15:40:51 +0200 Subject: [PATCH 7/8] make --- .gitignore | 1 + Makefile | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index 32290977..10df7d81 100644 --- a/.gitignore +++ b/.gitignore @@ -14,3 +14,4 @@ /screenshots .vs/ _ReSharper.Caches/ +*.zip diff --git a/Makefile b/Makefile index bef63c93..6577d50a 100644 --- a/Makefile +++ b/Makefile @@ -147,8 +147,8 @@ ifdef ARCH_WIN cd dist && zip -q -9 -r $(DIST_NAME).zip Rack # Make NSIS installer # pacman -S mingw-w64-x86_64-nsis - makensis -DVERSION=$(VERSION) installer.nsi - mv installer.exe dist/$(DIST_NAME).exe + #makensis -DVERSION=$(VERSION) installer.nsi + #mv installer.exe dist/$(DIST_NAME).exe endif # Rack SDK From f563bfa249746df3a3405ee9beac4db160367e26 Mon Sep 17 00:00:00 2001 From: The-XOR <1h3x0r@gmail.com> Date: Sat, 26 Oct 2019 18:41:26 +0200 Subject: [PATCH 8/8] new synch with upstream --- dep/glfw | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dep/glfw b/dep/glfw index 0fb001cf..d9ab59ef 160000 --- a/dep/glfw +++ b/dep/glfw @@ -1 +1 @@ -Subproject commit 0fb001cf43da351bf6f7eea1cf8db5ae86cefc78 +Subproject commit d9ab59efc781c392128a449361a381fcc93cf6f3