diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index cdd2aae..e2af096 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -304,6 +304,7 @@ jobs: run: | sudo apt-get update -qq sudo apt-get install -yqq acl bc curl cvs git mercurial rsync subversion wget bison bzip2 flex gawk gperf gzip help2man nano perl patch tar texinfo unzip automake binutils build-essential cpio libtool libncurses-dev pkg-config python libtool-bin liblo-dev qemu-user-static + sudo apt-get install -yqq pandoc texlive-latex-base - name: Bootstrap toolchain if: steps.mpb-cache.outputs.cache-hit != 'true' run: | @@ -342,6 +343,7 @@ jobs: run: | sudo apt-get update -qq sudo apt-get install -yqq acl bc curl cvs git mercurial rsync subversion wget bison bzip2 flex gawk gperf gzip help2man nano perl patch tar texinfo unzip automake binutils build-essential cpio libtool libncurses-dev pkg-config python libtool-bin liblo-dev qemu-user-static + sudo apt-get install -yqq pandoc texlive-latex-base - name: Bootstrap toolchain if: steps.mpb-cache.outputs.cache-hit != 'true' run: | @@ -380,6 +382,7 @@ jobs: run: | sudo apt-get update -qq sudo apt-get install -yqq acl bc curl cvs git mercurial rsync subversion wget bison bzip2 flex gawk gperf gzip help2man nano perl patch tar texinfo unzip automake binutils build-essential cpio libtool libncurses-dev pkg-config python libtool-bin liblo-dev qemu-user-static + sudo apt-get install -yqq pandoc texlive-latex-base - name: Bootstrap toolchain if: steps.mpb-cache.outputs.cache-hit != 'true' run: | diff --git a/.gitignore b/.gitignore index e078da1..135e906 100644 --- a/.gitignore +++ b/.gitignore @@ -14,3 +14,4 @@ bin/ build/ +documentation.pdf diff --git a/README.md b/README.md index d509e01..76e0921 100644 --- a/README.md +++ b/README.md @@ -2,12 +2,14 @@ *Cardinal, the Rack!* -A virtual Eurorack modular synthesizer platform, -available as JACK standalone and LV2, VST2 and VST3 audio plugin for FreeBSD, Linux, macOS and Windows. - -This is a [DPF-based](https://github.com/DISTRHO/DPF/) plugin wrapper around [VCV Rack](https://github.com/VCVRack/Rack/), -using its code directly instead of forking the project. -The target is to have a **proper, self-contained, fully free and open-source plugin version of Rack**. +A free and open-source virtual modular synthesizer plugin, +available as JACK standalone and LV2, VST2 and VST3 audio plugin for FreeBSD, Linux, macOS and Windows. +It is based on the popular [VCV Rack](https://vcvrack.com/) but with a focus on being a fully self-contained plugin version. + +More specifically, this is a [DPF-based](https://github.com/DISTRHO/DPF/) +plugin wrapper around [VCV Rack](https://github.com/VCVRack/Rack/), +using its code directly instead of forking the project, +with the target of having a **proper, self-contained, fully free and open-source plugin version of Rack**. See the [why section](#Why) below for the reasons Cardinal exists, also perhaps the [project overview document](doc/OVERVIEW.md) for an overview on how the project source code is structured. diff --git a/doc/MODDEVICES.md b/doc/MODDEVICES.md new file mode 100644 index 0000000..d50b6cb --- /dev/null +++ b/doc/MODDEVICES.md @@ -0,0 +1,44 @@ +--- +mainfont: sans-serif +--- + +# Cardinal manual for MOD Devices + +This document briefly describes how to use Cardinal with a [MOD device](https://www.moddevices.com/). +It is intended for this documentation to be part of the plugin bundle when installed from the +[MOD Plugin store](https://pedalboards.moddevices.com/plugins). + +## Plugin overview + +Cardinal is a free and open-source virtual modular synthesizer plugin,. +It is based on the popular [VCV Rack](https://vcvrack.com/) but with a focus on being a fully self-contained plugin version. + +If you already know Rack, Cardinal will be very familiar to you. + +## Plugin usage + +Currently Cardinal does not allow patch editing directly on the MOD units, +instead users need to run the "desktop" version of the plugin and connect it to the device. +This is easily done by the use of "File" -> "Connect to MOD" action. + +After a successful connection, the same "File" menu will now show a "Deploy to MOD" option. +Clicking on it will push the current patch to the MOD unit, along with a screenshot of the current view. +You can also use the F7 shortcut key to do the same. + +Additionally, enabling "Auto-deploy to MOD" will make Cardinal (the "desktop" plugin side) +automatically send the current patch to the MOD unit after 5 seconds of inactivity. + +### Notes and caveats + +This push-to-device workflow is very limited, it will improve in a future release. +For now it can already work to push existing or new patches to the unit. +After you push a patch, you can use MOD preset system to save a patch as plugin preset, +which will allow you to load it at a different time without the need for the "desktop" connection. + +There are a few critical things to take into consideration for this release: + +- Only one Cardinal instance is reachable in terms of desktop -> MOD connection, +you can and should use multiple instances when there is no desktop connection though +- The MOD unit must be connected over USB, so that the 192.168.51.1 IP is reachable +- The Audio File, Carla and Ildaeil modules are not available in MOD builds +- Compared to desktop, MOD builds are not as fast, so do not expect to load big patches diff --git a/src/MOD/CardinalFX.lv2/modgui.ttl b/src/MOD/CardinalFX.lv2/modgui.ttl index e92e345..358ff3b 100644 --- a/src/MOD/CardinalFX.lv2/modgui.ttl +++ b/src/MOD/CardinalFX.lv2/modgui.ttl @@ -7,6 +7,7 @@ mod:label "CardinalFX" ; modgui:gui [ modgui:resourcesDirectory ; + modgui:documentation ; modgui:iconTemplate ; modgui:javascript ; modgui:stylesheet ; diff --git a/src/MOD/CardinalFX.lv2/modgui/documentation.pdf b/src/MOD/CardinalFX.lv2/modgui/documentation.pdf new file mode 100644 index 0000000..035248d Binary files /dev/null and b/src/MOD/CardinalFX.lv2/modgui/documentation.pdf differ diff --git a/src/Makefile.cardinal.mk b/src/Makefile.cardinal.mk index afb60e3..7f9ba23 100644 --- a/src/Makefile.cardinal.mk +++ b/src/Makefile.cardinal.mk @@ -265,6 +265,7 @@ VST3_RESOURCES = $(CORE_RESOURCES:%=$(TARGET_DIR)/$(NAME).vst3/Contents/Resourc # Install modgui resources if MOD build ifeq ($(MOD_BUILD),true) LV2_RESOURCES += $(TARGET_DIR)/$(NAME).lv2/modgui.ttl +LV2_RESOURCES += $(TARGET_DIR)/$(NAME).lv2/modgui/documentation.pdf LV2_RESOURCES += $(TARGET_DIR)/$(NAME).lv2/modgui endif @@ -304,6 +305,9 @@ $(TARGET_DIR)/$(NAME).lv2/resources/%.svg: ../Rack/res/%.svg ../../deps/svg2stub $(TARGET_DIR)/$(NAME).lv2/mod%: ../MOD/$(NAME).lv2/mod% -@mkdir -p "$(shell dirname $@)" $(SILENT)ln -sf $(abspath $<) $@ + +$(TARGET_DIR)/$(NAME).lv2/modgui/documentation.pdf: ../../doc/MODDEVICES.md $(TARGET_DIR)/$(NAME).lv2/modgui + pandoc $< -o $@ endif $(TARGET_DIR)/$(NAME).vst/resources/%: ../Rack/res/%