diff --git a/.vscode/settings.json b/.vscode/settings.json index 429b7a3..a0747af 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -134,6 +134,7 @@ "midiclip", "midisong", "mlmodel", + "modui", "MOTU", "Netplan", "Pedalboard", @@ -161,7 +162,7 @@ "cSpell.ignoreWords": [ "nammodel" ], - "cSpell.enabled": false, + "cSpell.enabled": true, // Disable all automatic completion suggestions - only show when Ctrl+Space is pressed "editor.quickSuggestions": { diff --git a/README.md b/README.md index e1dfbb7..63b793b 100644 --- a/README.md +++ b/README.md @@ -56,8 +56,12 @@ https://github.com/user-attachments/assets/9a9fd0c6-78fc-4284-8b44-6a1929c00cc6 ### [Optimizing Audio Latency](https://rerdavies.github.io/pipedal/AudioLatency.html) ### [Command-Line Configuration of PiPedal](https://rerdavies.github.io/pipedal/CommandLine.html) ### [Changing the Web Server Port](https://rerdavies.github.io/pipedal/ChangingTheWebServerPort.html) + +%nbsp; + ### [Using LV2 Audio Plugins](https://rerdavies.github.io/pipedal/UsingLv2Plugins.md) ### [Which LV2 Plugins does PiPedal support?](https://rerdavies.github.io/pipedal/WhichLv2PluginsAreSupported.html) +### [Support for LV2 Plugins with MOD User Interfaces](https://rerdavies.github.io/pipedal/ModUiSupport.html)    diff --git a/debugDocs.sh b/debugDocs.sh new file mode 100755 index 0000000..2261a47 --- /dev/null +++ b/debugDocs.sh @@ -0,0 +1,9 @@ +#!/bin/bash +# Run local jeckyl-hosted sevever for GitHub documentation page. +# See https://jekyllrb.com/docs/installation/ for instructions on how to isntall jeckyll locally. +# Then +# cd docs +# bundle install +# +cd docs +bundle exec jekyll serve --host \ No newline at end of file diff --git a/docs/Documentation.md b/docs/Documentation.md index 7cbb9fd..7703e50 100644 --- a/docs/Documentation.md +++ b/docs/Documentation.md @@ -16,8 +16,11 @@ #### [Optimizing Audio Latency](AudioLatency.md) #### [Command-Line Configuration of PiPedal](CommandLine.md) #### [Changing the Web Server Port](ChangingTheWebServerPort.md) + +  #### [Using LV2 Audio Plugins](UsingLv2Plugins.md) #### [Which LV2 Plugins does PiPedal support?](WhichLv2PluginsAreSupported.md) +#### [LV2 Plugins with MOD User Interfaces](ModUiSupport.md)   diff --git a/docs/Gemfile b/docs/Gemfile index 8c717b7..2fc6a89 100644 --- a/docs/Gemfile +++ b/docs/Gemfile @@ -31,3 +31,5 @@ gem "wdm", "~> 0.1.1", :platforms => [:mingw, :x64_mingw, :mswin] # Lock `http_parser.rb` gem to `v0.6.x` on JRuby builds since newer versions of the gem # do not have a Java counterpart. gem "http_parser.rb", "~> 0.6.0", :platforms => [:jruby] + +gem "webrick", "~> 1.9" diff --git a/docs/Gemfile.lock b/docs/Gemfile.lock index 4b10e71..7b3f5fa 100644 --- a/docs/Gemfile.lock +++ b/docs/Gemfile.lock @@ -205,14 +205,14 @@ GEM rb-fsevent (~> 0.10, >= 0.10.3) rb-inotify (~> 0.9, >= 0.9.10) mercenary (0.3.6) + mini_portile2 (2.8.9) minima (2.5.1) jekyll (>= 3.5, < 5.0) jekyll-feed (~> 0.9) jekyll-seo-tag (~> 2.1) minitest (5.19.0) - nokogiri (1.18.8-aarch64-linux-gnu) - racc (~> 1.4) - nokogiri (1.18.8-x86_64-linux-gnu) + nokogiri (1.18.8) + mini_portile2 (~> 2.8.2) racc (~> 1.4) octokit (4.25.1) faraday (>= 1, < 3) @@ -249,6 +249,7 @@ GEM unf_ext unf_ext (0.0.8.2) unicode-display_width (1.8.0) + webrick (1.9.1) PLATFORMS aarch64-linux @@ -262,6 +263,7 @@ DEPENDENCIES tzinfo (~> 1.2) tzinfo-data wdm (~> 0.1.1) + webrick (~> 1.9) BUNDLED WITH 2.4.19 diff --git a/docs/ModUiSupport.md b/docs/ModUiSupport.md new file mode 100644 index 0000000..993b4f9 --- /dev/null +++ b/docs/ModUiSupport.md @@ -0,0 +1,35 @@ +--- +page_icon: img/moduiThumb.jpg +icon_width: 120px +--- +## Support for LV2 Plugins with MOD User Interfaces + +{% include pageIconL.html %} + +Some LV2 plugins (currently a minority of plugins) provide custom plugin user interfaces based on [MOD Audio's](https://mod.audio/desktop/) +[ModUi framework](https://wiki.mod.audio/wiki/MOD_Web_GUI_Framework). When using such a plugin, you can choose whether to use the MOD Web GUI Framework user interface (the MOD UI) or the default PiPedal user interface. For the most part, the same functionality is available in both interfaces. + +Plugins that are distributed via Linux distributions usually do not implement MOD user interfaces; but all (or almost all) of the plugins that are available from the [PatchStorage website](https://patchstorage.com/platform/lv2-plugins/) do implement MOD user interfaces. Many plugins that are available from GitHub or other sources also implement MOD user interfaces. Often you can find updated versions of a plugin that is published by a distro on PatchStorage which does provide a MOD UI. + +Here's an example of a MOD UI for the ZAM Eq2 plugin: + +ZAM Eq2 MOD UI + + +And the PiPedal UI for the same plugin: + +ZAM Eq2 PiPedal UI + +Which UI you use is entirely up to you. MOD UIs tend to be a bit unfriendly for small-format devices like phones, but they do look great in a desktop browser. Sometimes the MOD UI will make better use of available screen space; sometimes the Pipedal UI will look better. It really depends on the plugin and your personal preferences. In this particular case, the MOD UI is more space efficient, but that is not always true. + +To select which user interface to use, tap on the UI selection button in the toolbar for the plugin. If the plugin does not provide a MOD UI, the button will be disabled. + +MOD UI selection button + +Support for MOD UIs in PiPedal is still experimental, so you may encounter some issues. PiPedal does not yet support all of the features of the MOD UI framework, not because it can't, but because we haven't been able to locate examples of plugins that use those features, which makes it difficult to test. If you encounter any issues, please report them on PiPedal's [GitHub Issues page](https://github.com/rerdavies/pipedal/issues), and we will do our best to provide quick fixes. + +  + + +-------- +[<< Which Plugins are Supported?](WhichLv2PluginsAreSupported.md) | [Up](Documentation.md) | [BuildingPiPedal from Source >>](BuildingPiPedalFromSource.md) diff --git a/docs/WhichLv2PluginsAreSupported.md b/docs/WhichLv2PluginsAreSupported.md index 6e3cf9a..4a5adad 100644 --- a/docs/WhichLv2PluginsAreSupported.md +++ b/docs/WhichLv2PluginsAreSupported.md @@ -14,4 +14,4 @@ If you install a new LV2 plugin, PiPedal will detect the change and make it avai PiPedal does not currently allow plugins to provide custom user interfaces; it displays controls that are declared by the LV2 plugin without customization. In practice, this means that LV2 plugins with simple sets of controls work well, but those with complex sets of controls can be difficult to use. However, we would be pleased to collaborate with developers who need more than the basic set of controls. This is a feature set that Pipedal needs to address, so we would be happy to collaborate with other developers on this. Please contact rerdavies at gmail.com for further details. -------- -[<< Using LV2 Audio Plugins](UsingLv2Plugins.md) | [Up](Documentation.md) | [BuildingPiPedal from Source >>](BuildingPiPedalFromSource.md) +[<< Using LV2 Audio Plugins](UsingLv2Plugins.md) | [Up](Documentation.md) | [MOD UI Support >>](ModUiSupport.md) diff --git a/docs/_includes/pageIconL.html b/docs/_includes/pageIconL.html index a15ccce..5a3a026 100644 --- a/docs/_includes/pageIconL.html +++ b/docs/_includes/pageIconL.html @@ -1,7 +1,4 @@
-
-

Generated by DALL-E 2

-
diff --git a/docs/favicon.ico b/docs/favicon.ico new file mode 100644 index 0000000..cc7e70b Binary files /dev/null and b/docs/favicon.ico differ diff --git a/docs/favicon.svg b/docs/favicon.svg new file mode 100644 index 0000000..4ab2da1 --- /dev/null +++ b/docs/favicon.svg @@ -0,0 +1,264 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/img/moduiThumb.jpg b/docs/img/moduiThumb.jpg new file mode 100644 index 0000000..a6ad8c4 Binary files /dev/null and b/docs/img/moduiThumb.jpg differ diff --git a/docs/img/selectUi.png b/docs/img/selectUi.png new file mode 100644 index 0000000..07d0592 Binary files /dev/null and b/docs/img/selectUi.png differ diff --git a/docs/img/zam-modui.jpg b/docs/img/zam-modui.jpg new file mode 100644 index 0000000..334d0fa Binary files /dev/null and b/docs/img/zam-modui.jpg differ diff --git a/docs/img/zam-pp-ui.png b/docs/img/zam-pp-ui.png new file mode 100644 index 0000000..7d7fe3f Binary files /dev/null and b/docs/img/zam-pp-ui.png differ