Add delay tempo sync, rack faceplate, README, docs

- Add host-tempo-synced delay: FX screen gains a 4th SYNC row for
  rhythmic divisions (1/16 .. 1/1) that lock delay time to DAW tempo
- Embed rack faceplate background (b2.png) via juce binary data
- Add offline dev probe (rmx_probe) for GUI-less MIDI testing
- Allow overriding JUCE_ROOT when configuring the build
- Write comprehensive README describing the instrument, UI, MIDI, DSP,
  and build/install steps
This commit is contained in:
Armin 2026-09-08 15:10:12 +02:00
commit 2e870380d4
17 changed files with 1413 additions and 324 deletions

View file

@ -54,10 +54,12 @@ message(STATUS "RMX-19 build: ${BUILD_GIT_BRANCH} ${BUILD_GIT_COMMIT}${BUILD_GIT
# ---------------------------------------------------------------------------
# JUCE
# ---------------------------------------------------------------------------
if(EXISTS "$ENV{HOME}/JUCE/CMakeLists.txt")
set(JUCE_ROOT "$ENV{HOME}/JUCE")
elseif(EXISTS "/opt/JUCE/CMakeLists.txt")
set(JUCE_ROOT "/opt/JUCE")
if(NOT DEFINED JUCE_ROOT)
if(EXISTS "$ENV{HOME}/JUCE/CMakeLists.txt")
set(JUCE_ROOT "$ENV{HOME}/JUCE")
elseif(EXISTS "/opt/JUCE/CMakeLists.txt")
set(JUCE_ROOT "/opt/JUCE")
endif()
endif()
if(NOT DEFINED JUCE_ROOT OR NOT EXISTS "${JUCE_ROOT}/CMakeLists.txt")
@ -92,15 +94,42 @@ set(RMX19_SOURCES
Source/Params.cpp
)
juce_add_binary_data(RMX19_Assets
NAMESPACE BinaryData
SOURCES
b2.png
)
target_sources(RMX19 PRIVATE ${RMX19_SOURCES})
target_include_directories(RMX19 PRIVATE
"${CMAKE_CURRENT_SOURCE_DIR}/Source"
"${CMAKE_CURRENT_BINARY_DIR}/Source")
target_link_libraries(RMX19 PRIVATE
RMX19_Assets
juce::juce_audio_utils
juce::juce_gui_basics
juce::juce_dsp)
target_compile_definitions(RMX19 PRIVATE JUCE_MODAL_LOOPS_PERMITTED=1
JUCE_VST3_CAN_REPLACE_VST2=0)
JUCE_VST3_CAN_REPLACE_VST2=0)
# ---------------------------------------------------------------------------
# Offline probe (dev only): runs the processor with scripted MIDI, no GUI.
# ---------------------------------------------------------------------------
add_executable(rmx_probe Source/Probe.cpp
Source/PluginProcessor.cpp
Source/PluginEditor.cpp
Source/LcdPanel.cpp
Source/PresetBank.cpp
Source/SynthEngine.cpp
Source/Params.cpp)
target_include_directories(rmx_probe PRIVATE
"${CMAKE_CURRENT_SOURCE_DIR}/Source"
"${CMAKE_CURRENT_BINARY_DIR}/Source"
"${CMAKE_CURRENT_BINARY_DIR}/juce_binarydata_RMX19_Assets/JuceLibraryCode")
target_link_libraries(rmx_probe PRIVATE
RMX19_Assets
juce::juce_audio_utils
juce::juce_gui_basics
juce::juce_dsp)