Merge pull request #308 from rerdavies/dev

Dev v1.4.75 merge
This commit is contained in:
Robin Davies
2025-05-21 19:20:06 -04:00
committed by GitHub
45 changed files with 830 additions and 106 deletions
+2 -2
View File
@@ -1,13 +1,13 @@
cmake_minimum_required(VERSION 3.16.0)
project(pipedal
VERSION 1.4.75
VERSION 1.4.76
DESCRIPTION "PiPedal Guitar Effect Pedal For Raspberry Pi"
HOMEPAGE_URL "https://rerdavies.github.io/pipedal"
)
EXECUTE_PROCESS( COMMAND dpkg --print-architecture COMMAND tr -d '\n' OUTPUT_VARIABLE DEBIAN_ARCHITECTURE )
set (DISPLAY_VERSION "PiPedal v1.4.75-Release")
set (DISPLAY_VERSION "PiPedal v1.4.76-Release")
set (PACKAGE_ARCHITECTURE ${DEBIAN_ARCHITECTURE})
set (CMAKE_INSTALL_PREFIX "/usr/")
+2 -2
View File
@@ -6,14 +6,14 @@
<a href="https://rerdavies.github.io/pipedal/LicensePiPedal.html"><img src="https://img.shields.io/badge/MIT-MIT?label=license&color=%23808080"/></a>
<a href="https://github.com/rerdavies/pipedal/actions"><img src="https://img.shields.io/github/actions/workflow/status/rerdavies/pipedal/cmake.yml?branch=main"/></a>
Download:&nbsp;<a href='https://rerdavies.github.io/pipedal/download.html'>v1.4.75</a>
Download:&nbsp;<a href='https://rerdavies.github.io/pipedal/download.html'>v1.4.76</a>
Website:&nbsp;[https://rerdavies.github.io/pipedal](https://rerdavies.github.io/pipedal).
Documentation:&nbsp;[https://rerdavies.github.io/pipedal/Documentation.html](https://rerdavies.github.io/pipedal/Documentation.html).
_Important notice_: [PatchStorage.com](https:///patchstorage.com) has added support for [PiPedal](https://patchstorage.com/platform/pipedal/). We urgently need your support! If you could please upload patches [here](https://patchstorage.com/platform/pipedal/) I would be enormously grateful. Note that media and model files are included in patch files, so you can share patches that
include model files or audio samples. If you make use of plugins that are not included in the PiPedal distribution, please include a link to the plugin in the patch description.
#### NEW version 1.4.75 Release. See the [release notes](https://rerdavies.github.io/pipedal/ReleaseNotes) for details.
#### NEW version 1.4.76 Release. See the [release notes](https://rerdavies.github.io/pipedal/ReleaseNotes) for details. New Phaser and Graphic Equalizer plugins.
&nbsp;
+5 -5
View File
@@ -13,17 +13,17 @@ page_icon: img/Install4.jpg
Download the most recent Debian (.deb) package for your platform:
- [Raspberry Pi OS bookworm (aarch64) v1.4.75 Beta](https://github.com/rerdavies/pipedal/releases/download/v1.4.75/pipedal_1.4.75_arm64.deb)
- [Ubuntu 24.x (aarch64) v1.4.75 Alpha](https://github.com/rerdavies/pipedal/releases/download/v1.4.75/pipedal_1.4.75_arm64.deb)
- [Ubuntu 24.x (amd64) v1.4.75 Alpha](https://github.com/rerdavies/pipedal/releases/download/v1.4.75/pipedal_1.4.75_amd64.deb)
- [Raspberry Pi OS bookworm (aarch64) v1.4.76 Beta](https://github.com/rerdavies/pipedal/releases/download/v1.4.76/pipedal_1.4.76_arm64.deb)
- [Ubuntu 24.x (aarch64) v1.4.76 Alpha](https://github.com/rerdavies/pipedal/releases/download/v1.4.76/pipedal_1.4.76_arm64.deb)
- [Ubuntu 24.x (amd64) v1.4.76 Alpha](https://github.com/rerdavies/pipedal/releases/download/v1.4.76/pipedal_1.4.76_amd64.deb)
Version 1.4.75 has been tested on Raspberry Pi OS bookworm, Ubuntu 24.04 (amd64), and Ubuntu 24.10 (aarch64). Download the appropriate package for your platform, and install using the following procedure:
Version 1.4.76 has been tested on Raspberry Pi OS bookworm, Ubuntu 24.04 (amd64), and Ubuntu 24.10 (aarch64). Download the appropriate package for your platform, and install using the following procedure:
```
sudo apt update
cd ~/Downloads
sudo apt-get install pipedal_1.4.75_arm64.deb
sudo apt-get install pipedal_1.4.76_arm64.deb
```
You MUST use `apt-get`. `apt` will not install downloaded packages; and `dpkg-i` will not install dependencies.
+6 -1
View File
@@ -1,8 +1,13 @@
# Release Notes
## PiPedal 1.4.76 Release
- **TooB Phaser**. A loose emulation of the MXR Phase 90 phaser.
- **TooB GE-7 Graphic Equalizer**. A 7-band graphic equalizer optimized for use as a guitar effect.
## PiPedal 1.4.75 Release
New pugins:
New plugins:
- **TooB Noise Gate**. A standalone Noise Gate plugin.
- **TooB Volume**. A standalong plugin to adjust signal volume.
- **TooB Mix**. A standalone plugin to remix stereo signals.
+4 -4
View File
@@ -4,9 +4,9 @@
Download the most recent Debian (.deb) package for your platform:
- [Raspberry Pi OS bookworm (aarch64) v1.4.75 Beta](https://github.com/rerdavies/pipedal/releases/download/v1.4.75/pipedal_1.4.75_arm64.deb)
- [Ubuntu 24.x (aarch64) v1.4.75 Alpha](https://github.com/rerdavies/pipedal/releases/download/v1.4.75/pipedal_1.4.75_arm64.deb)
- [Ubuntu 24.x (amd64) v1.4.75 Alpha](https://github.com/rerdavies/pipedal/releases/download/v1.4.75/pipedal_1.4.75_amd64.deb)
- [Raspberry Pi OS bookworm (aarch64) v1.4.76 Beta](https://github.com/rerdavies/pipedal/releases/download/v1.4.76/pipedal_1.4.76_arm64.deb)
- [Ubuntu 24.x (aarch64) v1.4.76 Alpha](https://github.com/rerdavies/pipedal/releases/download/v1.4.76/pipedal_1.4.76_arm64.deb)
- [Ubuntu 24.x (amd64) v1.4.76 Alpha](https://github.com/rerdavies/pipedal/releases/download/v1.4.76/pipedal_1.4.76_amd64.deb)
Install the package by running
@@ -14,7 +14,7 @@ Install the package by running
```
sudo apt update
cd ~/Downloads
sudo apt-get install ./pipedal_1.4.75_arm64.deb
sudo apt-get install ./pipedal_1.4.76_arm64.deb
```
You MUST use `apt-get` to install the package. `apt install` will NOT install the package correctly. The message about missing permissions given by `apt-get` is
expected, and can be safely ignored.
+2 -2
View File
@@ -1,4 +1,4 @@
<a href="Installing.html"><i>v1.4.75</i></a>
<a href="Installing.html"><i>v1.4.76</i></a>
_To download PiPedal, click [*here*](download.md).
To view PiPedal documentation, click [*here*](Documentation.md)._
@@ -6,7 +6,7 @@ To view PiPedal documentation, click [*here*](Documentation.md)._
_Important notice_: [PatchStorage.com](https:///patchstorage.com) has added support for [PiPedal](https://patchstorage.com/platform/pipedal/). We urgently need your support! If you could please upload patches [here](https://patchstorage.com/platform/pipedal/) I would be enormously grateful. Note that media and model files are included in patch files, so you can share patches that
include model files or audio samples. If you make use of plugins that are not included in the PiPedal distribution, please include a link to the plugin in the patch description.
#### NEW version 1.4.75 Release. See the [release notes](https://rerdavies.github.io/pipedal/ReleaseNotes) for details.
#### NEW version 1.4.76 Release. See the [release notes](https://rerdavies.github.io/pipedal/ReleaseNotes) for details. New Phaser and Graphic Equalizer plugins.
&nbsp;
+1 -1
View File
@@ -93,7 +93,7 @@ cabir:impulseFile3
doap:license <https://rerdavies.github.io/pipedal/LicenseToobAmp> ;
doap:maintainer <http://two-play.com/rerdavies#me> ;
lv2:minorVersion 0 ;
lv2:microVersion 61 ;
lv2:microVersion 62 ;
rdfs:comment """
TooB Cab IR is a convolution-based guitar cabinet impulse response simulator.
+1 -1
View File
@@ -50,7 +50,7 @@ toob:frequencyResponseVector
doap:license <https://rerdavies.github.io/pipedal/LicenseToobAmp> ;
doap:maintainer <http://two-play.com/rerdavies#me> ;
lv2:minorVersion 0 ;
lv2:microVersion 61 ;
lv2:microVersion 62 ;
mod:brand "TooB";
mod:label "TooB CabSim";
@@ -53,7 +53,7 @@ toobimpulse:impulseFile
doap:license <https://rerdavies.github.io/pipedal/LicenseToobAmp> ;
doap:maintainer <http://two-play.com/rerdavies#me> ;
lv2:minorVersion 0 ;
lv2:microVersion 61 ;
lv2:microVersion 62 ;
rdfs:comment """
Convolution reverb is a notoriously compute-intensive effect. If you are having performance issues, use the Max T control to constrain the length of the impulse file to
@@ -51,7 +51,7 @@ toobimpulse:impulseFile
doap:license <https://rerdavies.github.io/pipedal/LicenseToobAmp> ;
doap:maintainer <http://two-play.com/rerdavies#me> ;
lv2:minorVersion 0 ;
lv2:microVersion 61 ;
lv2:microVersion 62 ;
rdfs:comment """
+1 -1
View File
@@ -66,7 +66,7 @@ inputStage:filterGroup
doap:license <https://two-play.com/TooB/licenses/isc> ;
doap:maintainer <http://two-play.com/rerdavies#me> ;
lv2:minorVersion 0 ;
lv2:microVersion 61 ;
lv2:microVersion 62 ;
mod:brand "TooB";
mod:label "TooB Input";
+1 -1
View File
@@ -68,7 +68,7 @@ pstage:stage3
doap:license <https://rerdavies.github.io/pipedal/LicenseToobAmp> ;
doap:maintainer <http://two-play.com/rerdavies#me> ;
lv2:minorVersion 0 ;
lv2:microVersion 61 ;
lv2:microVersion 62 ;
mod:brand "TooB";
mod:label "Power Stage";
+1 -1
View File
@@ -57,7 +57,7 @@
doap:license <https://rerdavies.github.io/pipedal/LicenseToobAmp> ;
doap:maintainer <http://two-play.com/rerdavies#me> ;
lv2:minorVersion 0 ;
lv2:microVersion 61 ;
lv2:microVersion 62 ;
rdfs:comment "TooB spectrum analyzer" ;
mod:brand "TooB";
+1 -1
View File
@@ -57,7 +57,7 @@ tonestack:eqGroup
doap:license <https://rerdavies.github.io/pipedal/LicenseToobAmp> ;
doap:maintainer <http://two-play.com/rerdavies#me> ;
lv2:minorVersion 0 ;
lv2:microVersion 61 ;
lv2:microVersion 62 ;
uiext:ui <http://two-play.com/plugins/toob-tone-stack-ui>;
Binary file not shown.
Binary file not shown.
+1 -1
View File
@@ -40,7 +40,7 @@
doap:license <https://rerdavies.github.io/pipedal/LicenseToobAmp> ;
doap:maintainer <http://two-play.com/rerdavies#me> ;
lv2:minorVersion 0 ;
lv2:microVersion 61 ;
lv2:microVersion 62 ;
rdfs:comment """
Emulation of a Boss CE-2 Chorus.
+1 -1
View File
@@ -41,7 +41,7 @@
doap:license <https://rerdavies.github.io/pipedal/LicenseToobAmp> ;
doap:maintainer <http://two-play.com/rerdavies#me> ;
lv2:minorVersion 0 ;
lv2:microVersion 61 ;
lv2:microVersion 62 ;
rdfs:comment """
A straightforward no-frills digital delay.
+1 -1
View File
@@ -41,7 +41,7 @@
doap:license <https://rerdavies.github.io/pipedal/LicenseToobAmp> ;
doap:maintainer <http://two-play.com/rerdavies#me> ;
lv2:minorVersion 0 ;
lv2:microVersion 61 ;
lv2:microVersion 62 ;
rdfs:comment """
Emulation of a Boss BF-2 Flanger, based on circuit analysis and simulation of the original.
@@ -41,7 +41,7 @@
doap:license <https://rerdavies.github.io/pipedal/LicenseToobAmp> ;
doap:maintainer <http://two-play.com/rerdavies#me> ;
lv2:minorVersion 0 ;
lv2:microVersion 61 ;
lv2:microVersion 62 ;
rdfs:comment """
Digital emulation of a Boss BF-2 Flanger.
+1 -1
View File
@@ -41,7 +41,7 @@
doap:license <https://rerdavies.github.io/pipedal/LicenseToobAmp> ;
doap:maintainer <http://two-play.com/rerdavies#me> ;
lv2:minorVersion 0 ;
lv2:microVersion 61 ;
lv2:microVersion 62 ;
rdfs:comment """
Toob Freeverb is an Lv2 implementation of the famous Freeverb reverb effect. FreeVerb delivers a well-balanced reverb with very little tonal coloration.
+165
View File
@@ -0,0 +1,165 @@
@prefix doap: <http://usefulinc.com/ns/doap#> .
@prefix lv2: <http://lv2plug.in/ns/lv2core#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix units: <http://lv2plug.in/ns/extensions/units#> .
@prefix urid: <http://lv2plug.in/ns/ext/urid#> .
@prefix atom: <http://lv2plug.in/ns/ext/atom#> .
@prefix midi: <http://lv2plug.in/ns/ext/midi#> .
@prefix epp: <http://lv2plug.in/ns/ext/port-props#> .
@prefix uiext: <http://lv2plug.in/ns/extensions/ui#> .
@prefix idpy: <http://harrisonconsoles.com/lv2/inlinedisplay#> .
@prefix foaf: <http://xmlns.com/foaf/0.1/> .
@prefix mod: <http://moddevices.com/ns/mod#> .
@prefix param: <http://lv2plug.in/ns/ext/parameters#> .
@prefix work: <http://lv2plug.in/ns/ext/worker#> .
@prefix pg: <http://lv2plug.in/ns/ext/port-groups#> .
@prefix atom: <http://lv2plug.in/ns/ext/atom#> .
@prefix patch: <http://lv2plug.in/ns/ext/patch#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix state: <http://lv2plug.in/ns/ext/state#> .
@prefix urid: <http://lv2plug.in/ns/ext/urid#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
@prefix toobGraphicEq: <http://two-play.com/plugins/toob-graphiceq#> .
@prefix pipedal_ui: <http://github.com/rerdavies/pipedal/ui#> .
<http://two-play.com/rerdavies#me>
a foaf:Person ;
foaf:name "Robin Davies" ;
foaf:mbox <mailto:rerdavies@gmail.com> ;
foaf:homepage <https://github.com/sponsors/rerdavies> .
<http://two-play.com/plugins/toob-graphiceq>
a lv2:Plugin ,
lv2:EQPlugin ;
doap:name "TooB GE-7 Graphic Eq" ,
"TooB GE-7 Graphic Eq"@en-gb-gb
;
uiext:ui <http://two-play.com/plugins/toob-graphiceq-ui> ;
doap:license <https://rerdavies.github.io/pipedal/LicenseToobAmp> ;
doap:maintainer <http://two-play.com/rerdavies#me> ;
lv2:minorVersion 0 ;
lv2:microVersion 62 ;
rdfs:comment """
A 7 octave graphic equalizer, with frequencies chosen to be useful for EQ-ing guitar signals.
""" ;
mod:brand "TooB";
mod:label "GE-7 Graphic Eq";
lv2:optionalFeature lv2:hardRTCapable;
lv2:port [
a lv2:AudioPort ,
lv2:InputPort ;
lv2:index 0 ;
lv2:symbol "in_left" ;
lv2:name "In L"
] , [
a lv2:AudioPort ,
lv2:OutputPort ;
lv2:index 1 ;
lv2:symbol "out_left" ;
lv2:name "Out L"
] , [
a lv2:ControlPort ,
lv2:InputPort ;
lv2:index 2 ;
lv2:symbol "gain_100hz" ;
lv2:name "100" ;
lv2:default 0.0 ;
lv2:minimum -15.0 ;
lv2:maximum 15.0 ;
units:unit units:db ;
lv2:portProperty pipedal_ui:graphicEq;
] , [
a lv2:ControlPort ,
lv2:InputPort ;
lv2:index 3 ;
lv2:symbol "gain_200hz" ;
lv2:name "200" ;
lv2:default 0.0 ;
lv2:minimum -15.0 ;
lv2:maximum 15.0 ;
units:unit units:db ;
lv2:portProperty pipedal_ui:graphicEq;
] , [
a lv2:ControlPort ,
lv2:InputPort ;
lv2:index 4 ;
lv2:symbol "gain_400hz" ;
lv2:name "400" ;
lv2:default 0.0 ;
lv2:minimum -15.0 ;
lv2:maximum 15.0 ;
units:unit units:db ;
lv2:portProperty pipedal_ui:graphicEq;
] , [
a lv2:ControlPort ,
lv2:InputPort ;
lv2:index 5 ;
lv2:symbol "gain_800hz" ;
lv2:name "800" ;
lv2:default 0.0 ;
lv2:minimum -15.0 ;
lv2:maximum 15.0 ;
units:unit units:db ;
lv2:portProperty pipedal_ui:graphicEq;
] , [
a lv2:ControlPort ,
lv2:InputPort ;
lv2:index 6 ;
lv2:symbol "gain_1600hz" ;
lv2:name "1.6k" ;
lv2:default 0.0 ;
lv2:minimum -15.0 ;
lv2:maximum 15.0 ;
units:unit units:db ;
lv2:portProperty pipedal_ui:graphicEq;
] , [
a lv2:ControlPort ,
lv2:InputPort ;
lv2:index 7 ;
lv2:symbol "gain_3200hz" ;
lv2:name "3.2k" ;
lv2:default 0.0 ;
lv2:minimum -15.0 ;
lv2:maximum 15.0 ;
units:unit units:db ;
lv2:portProperty pipedal_ui:graphicEq;
] , [
a lv2:ControlPort ,
lv2:InputPort ;
lv2:index 8 ;
lv2:symbol "gain_6400hz" ;
lv2:name "6.4k" ;
lv2:default 0.0 ;
lv2:minimum -15.0 ;
lv2:maximum 15.0 ;
lv2:portProperty pipedal_ui:graphicEq;
units:unit units:db ;
], [
a lv2:ControlPort ,
lv2:InputPort ;
lv2:index 9 ;
lv2:symbol "level" ;
lv2:name "Level" ;
lv2:default 0.0 ;
lv2:minimum -30.0 ;
lv2:maximum 30.0 ;
units:unit units:db ;
] .
<http://two-play.com/plugins/toob-graphiceq-ui>
a uiext:X11UI ;
lv2:binary <ToobAmpUI.so>;
lv2:extensionData uiext::idle ;
lv2:extensionData uiext:resize ;
lv2:extensionData uiext:idleInterface;
lv2:requiredFeature uiext:idleInterface ;
.
+1 -1
View File
@@ -92,7 +92,7 @@ myprefix:output_group
doap:license <https://opensource.org/license/mit/> ;
doap:maintainer <http://two-play.com/rerdavies#me> ;
lv2:minorVersion 1 ;
lv2:microVersion 61 ;
lv2:microVersion 62 ;
ui:ui <http://two-play.com/plugins/toob-looper-four-ui>;
+1 -1
View File
@@ -78,7 +78,7 @@ myprefix:output_group
doap:license <https://opensource.org/license/mit/> ;
doap:maintainer <http://two-play.com/rerdavies#me> ;
lv2:minorVersion 1 ;
lv2:microVersion 61 ;
lv2:microVersion 62 ;
ui:ui <http://two-play.com/plugins/toob-looper-one-ui>;
+1 -1
View File
@@ -67,7 +67,7 @@ toobml:sagGroup
doap:license <https://rerdavies.github.io/pipedal/LicenseToobAmp> ;
doap:maintainer <http://two-play.com/rerdavies#me> ;
lv2:minorVersion 0 ;
lv2:microVersion 61 ;
lv2:microVersion 62 ;
rdfs:comment """
The TooB ML Amplifier plugin provides emulation of a variety of amplifiers and overdrive pedals that are implemented
using neural-network-based machine learning models of real amplifiers.
+2 -2
View File
@@ -40,14 +40,14 @@
doap:license <https://rerdavies.github.io/pipedal/LicenseToobAmp> ;
doap:maintainer <http://two-play.com/rerdavies#me> ;
lv2:minorVersion 0 ;
lv2:microVersion 61 ;
lv2:microVersion 62 ;
rdfs:comment """
Remix a stereo input signal.
""" ;
mod:brand "TooB";
mod:label "TooB Mix";
mod:label "Mix";
lv2:optionalFeature lv2:hardRTCapable;
lv2:port
@@ -61,7 +61,7 @@ toobNam:eqGroup
doap:license <https://rerdavies.github.io/pipedal/LicenseToobAmp> ;
doap:maintainer <http://two-play.com/rerdavies#me> ;
lv2:minorVersion 0 ;
lv2:microVersion 61 ;
lv2:microVersion 62 ;
rdfs:comment """
A port of Steven Atkinson's Neural Amp Modeler to LV2.
+1 -1
View File
@@ -54,7 +54,7 @@ noisegate:envelope_group
doap:license <https://rerdavies.github.io/pipedal/LicenseToobAmp> ;
doap:maintainer <http://two-play.com/rerdavies#me> ;
lv2:minorVersion 0 ;
lv2:microVersion 61 ;
lv2:microVersion 62 ;
rdfs:comment """
A noise gate is an audio processing tool that controls the volume of an audio signal
by allowing it to pass through only when it exceeds a set threshold.
+95
View File
@@ -0,0 +1,95 @@
@prefix doap: <http://usefulinc.com/ns/doap#> .
@prefix lv2: <http://lv2plug.in/ns/lv2core#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix units: <http://lv2plug.in/ns/extensions/units#> .
@prefix urid: <http://lv2plug.in/ns/ext/urid#> .
@prefix atom: <http://lv2plug.in/ns/ext/atom#> .
@prefix midi: <http://lv2plug.in/ns/ext/midi#> .
@prefix epp: <http://lv2plug.in/ns/ext/port-props#> .
@prefix uiext: <http://lv2plug.in/ns/extensions/ui#> .
@prefix idpy: <http://harrisonconsoles.com/lv2/inlinedisplay#> .
@prefix foaf: <http://xmlns.com/foaf/0.1/> .
@prefix mod: <http://moddevices.com/ns/mod#> .
@prefix param: <http://lv2plug.in/ns/ext/parameters#> .
@prefix work: <http://lv2plug.in/ns/ext/worker#> .
@prefix pg: <http://lv2plug.in/ns/ext/port-groups#> .
@prefix atom: <http://lv2plug.in/ns/ext/atom#> .
@prefix patch: <http://lv2plug.in/ns/ext/patch#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix state: <http://lv2plug.in/ns/ext/state#> .
@prefix urid: <http://lv2plug.in/ns/ext/urid#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
@prefix toobPhaser: <http://two-play.com/plugins/toob-phaser#> .
<http://two-play.com/rerdavies#me>
a foaf:Person ;
foaf:name "Robin Davies" ;
foaf:mbox <mailto:rerdavies@gmail.com> ;
foaf:homepage <https://github.com/sponsors/rerdavies> .
<http://two-play.com/plugins/toob-phaser>
a lv2:Plugin ,
lv2:PhaserPlugin ;
doap:name "TooB Phaser" ,
"TooB Phaser"@en-gb-gb
;
uiext:ui <http://two-play.com/plugins/toob-phaser-ui> ;
doap:license <https://rerdavies.github.io/pipedal/LicenseToobAmp> ;
doap:maintainer <http://two-play.com/rerdavies#me> ;
lv2:minorVersion 0 ;
lv2:microVersion 62 ;
rdfs:comment """
A loose emulation of an MXR® Phase 90 Phaser.
MXR is a registered trademark of Dunlop Manufacturing, Inc. The TooB Phaser is not in any way associated with or endorsed by Dunlop Manufacturing.
""" ;
mod:brand "TooB";
mod:label "Phaser";
lv2:optionalFeature lv2:hardRTCapable;
lv2:port
[
a lv2:InputPort ,
lv2:ControlPort ;
lv2:index 0;
lv2:symbol "rate" ;
lv2:name "Speed";
lv2:default 1.4 ;
lv2:minimum 0.1;
lv2:maximum 6.0;
lv2:portProperty epp:logarithmic;
],
[
a lv2:AudioPort ,
lv2:InputPort ;
lv2:index 1 ;
lv2:symbol "in" ;
lv2:name "In"
],
[
a lv2:AudioPort ,
lv2:OutputPort ;
lv2:index 2 ;
lv2:symbol "out" ;
lv2:name "Out"
]
.
<http://two-play.com/plugins/toob-phaser-ui>
a uiext:X11UI ;
lv2:binary <ToobAmpUI.so>;
lv2:extensionData uiext::idle ;
lv2:extensionData uiext:resize ;
lv2:extensionData uiext:idleInterface;
lv2:requiredFeature uiext:idleInterface ;
.
+1 -1
View File
@@ -52,7 +52,7 @@ recordPrefix:audioFile
doap:license <https://opensource.org/license/mit/> ;
doap:maintainer <http://two-play.com/rerdavies#me> ;
lv2:minorVersion 1 ;
lv2:microVersion 61 ;
lv2:microVersion 62 ;
ui:ui <http://two-play.com/plugins/toob-record-mono-ui>;
+1 -1
View File
@@ -88,7 +88,7 @@ myprefix:loop3_group
doap:license <https://opensource.org/license/mit/> ;
doap:maintainer <http://two-play.com/rerdavies#me> ;
lv2:minorVersion 1 ;
lv2:microVersion 61 ;
lv2:microVersion 62 ;
ui:ui <http://two-play.com/plugins/toob-record-stereo-ui>;
+1 -1
View File
@@ -40,7 +40,7 @@
doap:license <https://rerdavies.github.io/pipedal/LicenseToobAmp> ;
doap:maintainer <http://two-play.com/rerdavies#me> ;
lv2:minorVersion 0 ;
lv2:microVersion 61 ;
lv2:microVersion 62 ;
rdfs:comment """
TooB Tuner is a chromatic guitar tuner.
""" ;
+1 -1
View File
@@ -39,7 +39,7 @@
doap:license <https://rerdavies.github.io/pipedal/LicenseToobAmp> ;
doap:maintainer <http://two-play.com/rerdavies#me> ;
lv2:minorVersion 0 ;
lv2:microVersion 61 ;
lv2:microVersion 62 ;
rdfs:comment """
Volume control.
+10
View File
@@ -59,6 +59,11 @@
lv2:binary <ToobAmp.so> ;
rdfs:seeAlso <ToobDelay.ttl> .
<http://two-play.com/plugins/toob-phaser> a lv2:Plugin ;
lv2:binary <ToobAmp.so> ;
rdfs:seeAlso <ToobPhaser.ttl> .
<http://two-play.com/plugins/toob-chorus> a lv2:Plugin ;
lv2:binary <ToobAmp.so> ;
rdfs:seeAlso <ToobChorus.ttl> .
@@ -92,6 +97,11 @@
lv2:binary <ToobAmp.so> ;
rdfs:seeAlso <ToobMix.ttl> .
<http://two-play.com/plugins/toob-graphiceq> a lv2:Plugin ;
lv2:binary <ToobAmp.so> ;
rdfs:seeAlso <ToobGraphicEq.ttl> .
<http://two-play.com/plugins/toob-volume> a lv2:Plugin ;
lv2:binary <ToobAmp.so> ;
rdfs:seeAlso <ToobVolume.ttl> .
@@ -0,0 +1,132 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="512"
height="48"
viewBox="0 0 135.46666 12.7"
version="1.1"
id="svg5"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<defs
id="defs2" />
<g
id="layer1">
<g
aria-label="TooB GE-7 Graphic Equalizer"
id="text236"
style="font-style:italic;font-weight:bold;font-size:5.99722px;font-family:Timana;-inkscape-font-specification:'Timana Bold Italic';fill:#686868;stroke:#7f7f7f;stroke-width:0.285001;stop-color:#000000">
<path
d="M 12.022963,5.7265975 12.163523,4.93302 h 3.461286 l -0.137632,0.7935775 h -1.24454 L 13.64233,9.1966686 h -1.004418 l 0.603236,-3.4700711 z"
style="font-weight:900;font-family:Roboto;-inkscape-font-specification:'Roboto, Heavy Italic';fill:#e0e0e0;fill-opacity:0.752941;stroke:none;stroke-width:0.285"
id="path394" />
<path
d="m 14.804876,7.6622237 0.0059,-0.061495 q 0.07321,-0.6852292 0.512458,-1.1654754 0.439249,-0.4802461 1.162547,-0.4656044 0.694014,0.011713 1.021987,0.4861028 0.330901,0.4714611 0.272335,1.1215504 -0.06442,0.7232975 -0.512458,1.2094003 Q 16.819568,9.2698769 16.09627,9.2552352 15.408112,9.2435219 15.077211,8.7779174 14.74631,8.3093846 14.804876,7.6622237 Z m 0.957564,0.3543279 q 0.0059,0.1932698 0.09078,0.336758 0.08492,0.1405598 0.304546,0.1464165 0.571024,0.014642 0.658874,-0.922424 0.01171,-0.1581298 0.0059,-0.354328 -0.0088,-0.1961981 -0.09371,-0.3426146 -0.08492,-0.1464165 -0.304546,-0.1522731 -0.24598,-0.00586 -0.389468,0.1581298 -0.143488,0.1610581 -0.216696,0.4597478 -0.07321,0.2957613 -0.05564,0.6705876 z"
style="font-weight:900;font-family:Roboto;-inkscape-font-specification:'Roboto, Heavy Italic';fill:#e0e0e0;fill-opacity:0.752941;stroke:none;stroke-width:0.285"
id="path396" />
<path
d="m 18.072893,7.6622237 0.0059,-0.061495 q 0.07321,-0.6852292 0.512458,-1.1654754 0.43925,-0.4802461 1.162547,-0.4656044 0.694015,0.011713 1.021987,0.4861028 0.330902,0.4714611 0.272335,1.1215504 -0.06442,0.7232975 -0.512458,1.2094003 Q 20.087584,9.2698769 19.364286,9.2552352 18.676129,9.2435219 18.345228,8.7779174 18.014326,8.3093846 18.072893,7.6622237 Z m 0.957564,0.3543279 q 0.0059,0.1932698 0.09078,0.336758 0.08492,0.1405598 0.304546,0.1464165 0.571025,0.014642 0.658875,-0.922424 0.01171,-0.1581298 0.0059,-0.354328 -0.0088,-0.1961981 -0.09371,-0.3426146 -0.08492,-0.1464165 -0.304547,-0.1522731 -0.245979,-0.00586 -0.389468,0.1581298 -0.143488,0.1610581 -0.216696,0.4597478 -0.07321,0.2957613 -0.05564,0.6705876 z"
style="font-weight:900;font-family:Roboto;-inkscape-font-specification:'Roboto, Heavy Italic';fill:#e0e0e0;fill-opacity:0.752941;stroke:none;stroke-width:0.285"
id="path398" />
<path
d="m 24.644066,7.9111317 q -0.02928,0.4714612 -0.272335,0.7525808 -0.240123,0.2811197 -0.614949,0.4070379 -0.374826,0.1259182 -0.808219,0.1259182 h -1.721858 l 0.737939,-4.2636486 1.341175,0.00293 q 0.998561,0.00293 1.393885,0.4743895 0.207912,0.2459797 0.178628,0.6764443 -0.02343,0.3601846 -0.219624,0.5915226 -0.196198,0.2284098 -0.521243,0.363113 0.28112,0.096635 0.401181,0.3426146 0.12299,0.2459797 0.10542,0.5270994 z m -1.812636,-2.1845342 -0.172772,0.9839189 0.433393,0.00293 q 0.269406,-0.00293 0.494888,-0.1024916 0.22841,-0.099563 0.275263,-0.3982528 0.041,-0.2664781 -0.09663,-0.3689696 -0.137632,-0.1054199 -0.389468,-0.1142049 z m 0.825789,2.1728209 Q 23.695287,7.673937 23.604509,7.5363055 23.516659,7.3986739 23.282392,7.3869606 l -0.737939,-0.00293 -0.178628,1.0219872 0.597379,0.00293 q 0.251837,-0.00293 0.450963,-0.1229898 0.199127,-0.1200616 0.243052,-0.3865396 z"
style="font-weight:900;font-family:Roboto;-inkscape-font-specification:'Roboto, Heavy Italic';fill:#e0e0e0;fill-opacity:0.752941;stroke:none;stroke-width:0.285"
id="path400" />
<path
d="M 30.245961,6.9184278 29.970698,8.6724975 Q 29.674937,9.0151122 29.174192,9.138102 28.676376,9.2581636 28.251768,9.2523069 27.657317,9.2464502 27.300061,8.9536172 26.942805,8.6607842 26.805173,8.1922514 26.667542,7.7237186 26.734893,7.1849058 l 0.03221,-0.2342664 q 0.07614,-0.5534543 0.336758,-1.0307722 0.260621,-0.4773178 0.696942,-0.7672224 0.436322,-0.292833 1.039558,-0.2811197 1.431953,0.023427 1.522731,1.4583084 L 29.40553,6.3269051 Q 29.385032,6.0370004 29.259114,5.855444 29.136124,5.6709592 28.816936,5.6592459 28.474321,5.6446042 28.260553,5.8525157 28.046785,6.0604271 27.93258,6.3679018 q -0.111276,0.3045463 -0.152273,0.6149493 -0.041,0.3074746 -0.04685,0.4538911 -0.0059,0.1464165 0,0.3045464 0.0088,0.2957613 0.146416,0.5066011 0.137632,0.2079114 0.486103,0.2137681 0.354328,0.00586 0.623734,-0.1727715 l 0.131775,-0.6647309 h -0.694014 l 0.12299,-0.7057276 z"
style="font-weight:900;font-family:Roboto;-inkscape-font-specification:'Roboto, Heavy Italic';fill:#e0e0e0;fill-opacity:0.752941;stroke:none;stroke-width:0.285"
id="path402" />
<path
d="M 30.424588,9.1966686 31.162528,4.93302 h 2.860978 l -0.137631,0.7935775 h -1.856562 l -0.15813,0.8989973 H 33.43784 L 33.306065,7.389889 h -1.563728 l -0.178628,1.0161305 h 1.850704 l -0.137631,0.7906491 z"
style="font-weight:900;font-family:Roboto;-inkscape-font-specification:'Roboto, Heavy Italic';fill:#e0e0e0;fill-opacity:0.752941;stroke:none;stroke-width:0.285"
id="path404" />
<path
d="M 35.89471,6.9769944 35.762935,7.7412886 H 34.049862 L 34.181637,6.9769944 Z"
style="font-weight:900;font-family:Roboto;-inkscape-font-specification:'Roboto, Heavy Italic';fill:#e0e0e0;fill-opacity:0.752941;stroke:none;stroke-width:0.285"
id="path406" />
<path
d="m 39.812816,4.93302 -0.09078,0.5710244 -2.102541,3.6926242 H 36.565298 L 38.659054,5.6943858 H 36.70293 L 36.82592,4.93302 Z"
style="font-weight:900;font-family:Roboto;-inkscape-font-specification:'Roboto, Heavy Italic';fill:#e0e0e0;fill-opacity:0.752941;stroke:none;stroke-width:0.285"
id="path408" />
<path
d="M 44.931536,6.9184278 44.656273,8.6724975 Q 44.360512,9.0151122 43.859768,9.138102 43.361952,9.2581636 42.937344,9.2523069 42.342893,9.2464502 41.985636,8.9536172 41.62838,8.6607842 41.490749,8.1922514 41.353117,7.7237186 41.420469,7.1849058 l 0.03221,-0.2342664 q 0.07614,-0.5534543 0.336758,-1.0307722 0.260622,-0.4773178 0.696943,-0.7672224 0.436321,-0.292833 1.039557,-0.2811197 1.431953,0.023427 1.522732,1.4583084 l -0.957564,-0.00293 q -0.0205,-0.2899047 -0.146417,-0.4714611 -0.12299,-0.1844848 -0.442178,-0.1961981 -0.342614,-0.014642 -0.556382,0.1932698 -0.213768,0.2079114 -0.327973,0.5153861 -0.111277,0.3045463 -0.152273,0.6149493 -0.041,0.3074746 -0.04685,0.4538911 -0.0059,0.1464165 0,0.3045464 0.0088,0.2957613 0.146417,0.5066011 0.137631,0.2079114 0.486103,0.2137681 0.354327,0.00586 0.623734,-0.1727715 l 0.131775,-0.6647309 h -0.694015 l 0.12299,-0.7057276 z"
style="font-weight:900;font-family:Roboto;-inkscape-font-specification:'Roboto, Heavy Italic';fill:#e0e0e0;fill-opacity:0.752941;stroke:none;stroke-width:0.285"
id="path410" />
<path
d="m 47.054577,6.8920728 q -0.430465,-0.00586 -0.658874,0.292833 l -0.357257,2.0117628 h -0.96342 l 0.550526,-3.1684531 0.896069,-0.00293 -0.07321,0.4128946 q 0.131774,-0.2020548 0.307474,-0.3396863 0.1757,-0.1376315 0.427536,-0.1376315 0.125919,0 0.295762,0.040997 l -0.125918,0.9194956 q -0.190342,-0.029283 -0.29869,-0.029283 z"
style="font-weight:900;font-family:Roboto;-inkscape-font-specification:'Roboto, Heavy Italic';fill:#e0e0e0;fill-opacity:0.752941;stroke:none;stroke-width:0.285"
id="path412" />
<path
d="m 48.960917,9.1966686 q -0.041,-0.1229898 -0.03807,-0.2899047 -0.327973,0.3572563 -0.776008,0.3484713 -0.392396,-0.00586 -0.676444,-0.2635497 -0.28112,-0.257693 -0.26355,-0.6647309 0.01464,-0.4216795 0.254765,-0.6530176 0.243051,-0.2342664 0.597379,-0.3250447 0.357257,-0.090778 0.711585,-0.090778 l 0.322116,0.00586 0.03514,-0.1786282 q 0.02636,-0.1581298 -0.0205,-0.2899047 -0.04393,-0.1347031 -0.234267,-0.1405598 -0.31626,-0.00586 -0.389468,0.3484713 l -0.966349,0.00293 q 0.01757,-0.3689696 0.240123,-0.6003077 0.225482,-0.231338 0.553455,-0.3367579 0.327973,-0.1083482 0.650089,-0.099563 0.506601,0.00878 0.846287,0.301618 0.342615,0.2899046 0.292833,0.8287174 l -0.216696,1.3558168 -0.03807,0.3162597 q -0.0205,0.1991264 0.05857,0.3689696 l -0.0029,0.055638 z M 48.410391,8.5582927 q 0.295761,0.011713 0.518314,-0.2576931 l 0.09663,-0.5124578 -0.248908,-0.00293 q -0.222553,0.00586 -0.392396,0.1317749 -0.169843,0.1229898 -0.202055,0.3601846 -0.03514,0.2723347 0.22841,0.2811197 z"
style="font-weight:900;font-family:Roboto;-inkscape-font-specification:'Roboto, Heavy Italic';fill:#e0e0e0;fill-opacity:0.752941;stroke:none;stroke-width:0.285"
id="path414" />
<path
d="m 51.99174,9.2581636 q -0.415823,-0.011713 -0.670587,-0.327973 l -0.286977,1.4846634 h -0.96342 l 0.761366,-4.3866385 0.887284,-0.00293 -0.04685,0.2986897 q 0.31626,-0.3601846 0.752581,-0.3543279 0.433393,0.00586 0.658874,0.257693 0.225482,0.2489081 0.292833,0.6178777 0.07028,0.3660412 0.03514,0.7232975 -0.143488,1.0600555 -0.717441,1.4875917 -0.286976,0.2137681 -0.702799,0.2020548 z m 0.146417,-2.5271489 q -0.301618,-0.014642 -0.503673,0.248908 l -0.225481,1.259182 q 0.09663,0.2518364 0.401181,0.257693 0.301618,0.00878 0.468533,-0.292833 0.166914,-0.3045463 0.187413,-0.9663489 0.0029,-0.1932698 -0.06442,-0.345543 -0.06442,-0.1522731 -0.263549,-0.1610581 z"
style="font-weight:900;font-family:Roboto;-inkscape-font-specification:'Roboto, Heavy Italic';fill:#e0e0e0;fill-opacity:0.752941;stroke:none;stroke-width:0.285"
id="path416" />
<path
d="m 55.353463,6.7310147 q -0.260622,-0.00586 -0.459748,0.1874131 l -0.40411,2.2782408 h -0.96342 l 0.781864,-4.497915 h 0.96342 l -0.327973,1.6720765 q 0.357257,-0.4099662 0.817004,-0.4041096 0.547598,0.011713 0.735011,0.3953246 0.190342,0.3836112 0.137632,0.8667857 L 56.30517,9.1966686 H 55.335893 L 55.669722,7.2200458 Q 55.696077,7.017991 55.637511,6.8774312 55.581872,6.7368713 55.353463,6.7310147 Z"
style="font-weight:900;font-family:Roboto;-inkscape-font-specification:'Roboto, Heavy Italic';fill:#e0e0e0;fill-opacity:0.752941;stroke:none;stroke-width:0.285"
id="path418" />
<path
d="m 57.51457,5.2287813 q -0.0059,-0.2284097 0.152273,-0.3631129 0.161058,-0.1347032 0.377754,-0.1376315 0.207912,-0.00293 0.36897,0.1229899 0.161058,0.1229898 0.163987,0.3426146 0.0059,0.2284097 -0.155202,0.3631129 -0.15813,0.1347032 -0.374826,0.1376315 -0.207912,0.00293 -0.36897,-0.1200615 -0.15813,-0.1259182 -0.163986,-0.345543 z m 0.878499,0.7994342 -0.547598,3.1684531 h -0.966349 l 0.550526,-3.1684531 z"
style="font-weight:900;font-family:Roboto;-inkscape-font-specification:'Roboto, Heavy Italic';fill:#e0e0e0;fill-opacity:0.752941;stroke:none;stroke-width:0.285"
id="path420" />
<path
d="m 59.857235,8.4967977 q 0.207911,0.00586 0.325045,-0.1142048 0.120061,-0.1229899 0.149344,-0.3162597 l 0.904854,-0.00293 Q 61.210123,8.6256443 60.788444,8.9477606 60.369693,9.2669485 59.83088,9.2552352 59.139794,9.2435219 58.832319,8.7691324 58.524845,8.2918146 58.580483,7.6534387 l 0.01171,-0.093707 q 0.07614,-0.6618026 0.497816,-1.1332637 0.42168,-0.4714612 1.127407,-0.4568195 0.571025,0.011713 0.881428,0.3631129 0.313331,0.3513996 0.301618,0.9107106 l -0.904854,-0.00293 q 0.0088,-0.1903414 -0.06442,-0.3455429 -0.07028,-0.1581299 -0.292833,-0.1669148 -0.22841,-0.00878 -0.3514,0.1347031 -0.120062,0.1405599 -0.169843,0.345543 -0.04978,0.2020548 -0.06735,0.3777546 l -0.0029,0.067352 -0.02343,0.3367579 q -0.0088,0.1961981 0.05564,0.3484713 0.06735,0.1522732 0.278191,0.1581298 z"
style="font-weight:900;font-family:Roboto;-inkscape-font-specification:'Roboto, Heavy Italic';fill:#e0e0e0;fill-opacity:0.752941;stroke:none;stroke-width:0.285"
id="path422" />
<path
d="M 62.975907,9.1966686 63.713847,4.93302 h 2.860978 l -0.137631,0.7935775 h -1.856562 l -0.158129,0.8989973 h 1.566656 L 65.857384,7.389889 h -1.563728 l -0.178628,1.0161305 h 1.850705 l -0.137632,0.7906491 z"
style="font-weight:900;font-family:Roboto;-inkscape-font-specification:'Roboto, Heavy Italic';fill:#e0e0e0;fill-opacity:0.752941;stroke:none;stroke-width:0.285"
id="path424" />
<path
d="M 69.418233,6.0282155 68.656868,10.414854 H 67.68759 L 67.983352,8.9272623 Q 67.67002,9.2610919 67.260054,9.2552352 66.832518,9.2493786 66.609965,8.9946138 66.387412,8.7369208 66.317132,8.3679512 66.24978,7.9960533 66.287849,7.6505103 l 0.0059,-0.064423 q 0.04685,-0.3894679 0.204983,-0.7672225 0.161058,-0.3777546 0.453891,-0.6178777 0.295762,-0.2430514 0.749653,-0.231338 0.477318,0.014642 0.720369,0.4041095 l 0.149345,-0.3484713 z m -2.187462,1.9502678 q -0.0059,0.1961981 0.05857,0.3513996 0.06442,0.1552015 0.266478,0.1639865 0.295762,0.011713 0.503673,-0.2518364 L 68.290826,6.9769944 Q 68.202976,6.7310147 67.89843,6.725158 67.371331,6.7105164 67.257126,7.5860871 Z"
style="font-weight:900;font-family:Roboto;-inkscape-font-specification:'Roboto, Heavy Italic';fill:#e0e0e0;fill-opacity:0.752941;stroke:none;stroke-width:0.285"
id="path426" />
<path
d="M 71.26601,9.1966686 71.330433,8.854054 Q 70.976105,9.2640202 70.475361,9.2581636 69.959975,9.2493786 69.752063,8.9009073 69.544152,8.552436 69.591005,8.0780465 l 0.342615,-2.049831 h 0.963421 l -0.348472,2.0615443 q -0.04685,0.389468 0.286977,0.4041096 0.301618,0.011713 0.518314,-0.2459797 l 0.392396,-2.2196742 h 0.966349 l -0.550526,3.1684531 z"
style="font-weight:900;font-family:Roboto;-inkscape-font-specification:'Roboto, Heavy Italic';fill:#e0e0e0;fill-opacity:0.752941;stroke:none;stroke-width:0.285"
id="path428" />
<path
d="m 74.460818,9.1966686 q -0.041,-0.1229898 -0.03807,-0.2899047 -0.327973,0.3572563 -0.776008,0.3484713 -0.392396,-0.00586 -0.676444,-0.2635497 -0.28112,-0.257693 -0.26355,-0.6647309 0.01464,-0.4216795 0.254765,-0.6530176 0.243051,-0.2342664 0.597379,-0.3250447 0.357256,-0.090778 0.711584,-0.090778 l 0.322117,0.00586 0.03514,-0.1786282 q 0.02635,-0.1581298 -0.0205,-0.2899047 -0.04393,-0.1347031 -0.234266,-0.1405598 -0.31626,-0.00586 -0.389468,0.3484713 l -0.966349,0.00293 q 0.01757,-0.3689696 0.240123,-0.6003077 0.225482,-0.231338 0.553455,-0.3367579 0.327973,-0.1083482 0.650089,-0.099563 0.506601,0.00878 0.846287,0.301618 0.342615,0.2899046 0.292833,0.8287174 l -0.216696,1.3558168 -0.03807,0.3162597 q -0.0205,0.1991264 0.05857,0.3689696 l -0.0029,0.055638 z M 73.910292,8.5582927 q 0.295761,0.011713 0.518314,-0.2576931 l 0.09663,-0.5124578 -0.248908,-0.00293 q -0.222553,0.00586 -0.392396,0.1317749 -0.169843,0.1229898 -0.202055,0.3601846 -0.03514,0.2723347 0.22841,0.2811197 z"
style="font-weight:900;font-family:Roboto;-inkscape-font-specification:'Roboto, Heavy Italic';fill:#e0e0e0;fill-opacity:0.752941;stroke:none;stroke-width:0.285"
id="path430" />
<path
d="m 77.567774,4.6987536 -0.778936,4.497915 h -0.966349 l 0.778936,-4.497915 z"
style="font-weight:900;font-family:Roboto;-inkscape-font-specification:'Roboto, Heavy Italic';fill:#e0e0e0;fill-opacity:0.752941;stroke:none;stroke-width:0.285"
id="path432" />
<path
d="m 78.056806,5.2287813 q -0.0059,-0.2284097 0.152273,-0.3631129 0.161058,-0.1347032 0.377755,-0.1376315 0.207911,-0.00293 0.368969,0.1229899 0.161059,0.1229898 0.163987,0.3426146 0.0059,0.2284097 -0.155202,0.3631129 -0.158129,0.1347032 -0.374826,0.1376315 -0.207911,0.00293 -0.368969,-0.1200615 -0.15813,-0.1259182 -0.163987,-0.345543 z m 0.878499,0.7994342 -0.547598,3.1684531 h -0.966349 l 0.550526,-3.1684531 z"
style="font-weight:900;font-family:Roboto;-inkscape-font-specification:'Roboto, Heavy Italic';fill:#e0e0e0;fill-opacity:0.752941;stroke:none;stroke-width:0.285"
id="path434" />
<path
d="m 79.365771,6.7895813 0.131775,-0.7613658 h 2.530077 l -0.09956,0.576881 -1.672077,1.8243496 1.382172,0.00586 -0.131775,0.7613658 h -2.614999 l 0.102492,-0.5915227 1.663291,-1.809708 z"
style="font-weight:900;font-family:Roboto;-inkscape-font-specification:'Roboto, Heavy Italic';fill:#e0e0e0;fill-opacity:0.752941;stroke:none;stroke-width:0.285"
id="path436" />
<path
d="M 84.736329,8.7047092 Q 84.537203,9.0004705 84.179947,9.1322454 83.825619,9.2610919 83.485932,9.2552352 82.827058,9.2464502 82.431734,8.8130574 82.039337,8.3796645 82.089119,7.7266469 l 0.01171,-0.1142049 q 0.06735,-0.6881575 0.50953,-1.171332 0.442178,-0.4861028 1.171332,-0.4714611 0.661802,0.011713 0.966349,0.4743894 0.307474,0.4597479 0.240123,1.0776255 L 84.932527,7.922845 H 83.05254 q 0,0.2459798 0.134703,0.4041096 0.134703,0.1552015 0.392396,0.1639865 0.421679,0.011713 0.755509,-0.3221163 z M 83.71727,6.7280864 q -0.263549,-0.00878 -0.401181,0.1756998 -0.134703,0.1844848 -0.213768,0.4041095 h 0.963421 l 0.01757,-0.084922 Q 84.115523,7.017991 84.027673,6.8745029 83.939824,6.7310147 83.71727,6.7280864 Z"
style="font-weight:900;font-family:Roboto;-inkscape-font-specification:'Roboto, Heavy Italic';fill:#e0e0e0;fill-opacity:0.752941;stroke:none;stroke-width:0.285"
id="path438" />
<path
d="m 87.078991,6.8920728 q -0.430465,-0.00586 -0.658874,0.292833 L 86.06286,9.1966686 h -0.96342 l 0.550526,-3.1684531 0.896069,-0.00293 -0.07321,0.4128946 q 0.131775,-0.2020548 0.307474,-0.3396863 0.1757,-0.1376315 0.427537,-0.1376315 0.125918,0 0.295761,0.040997 l -0.125918,0.9194956 q -0.190342,-0.029283 -0.29869,-0.029283 z"
style="font-weight:900;font-family:Roboto;-inkscape-font-specification:'Roboto, Heavy Italic';fill:#e0e0e0;fill-opacity:0.752941;stroke:none;stroke-width:0.285"
id="path440" />
</g>
<path
id="path1348"
style="color:#000000;fill:#e0e0e0;fill-opacity:0.752941;-inkscape-stroke:none"
d="M 6.6569584,2.1171834 C 4.774717,2.1318994 3.2431785,3.6744673 3.243213,5.5567668 v 2.1109822 0.0062 0.00568 0.00982 c 0.00453,0.8890342 0.2392311,1.7354052 0.7462076,2.386935 0.1277885,0.164224 0.2744584,0.313735 0.4376994,0.445967 V 7.3390869 H 4.43074 V 5.5567668 c -2.28e-5,-1.2443843 0.9901438,-2.2443973 2.2344894,-2.254126 1.249133,-0.00958 2.258501,0.9812478 2.271179,2.2303548 v 0.023771 2.3435262 c 0,0.539163 -0.163809,0.8448933 -0.445451,1.074353 -0.281642,0.2294597 -0.736455,0.3787882 -1.343587,0.3787882 h -0.464596 v 2.225771 h 1.058358 v -1.221698 c 0.540406,-0.08223 1.101059,-0.137859 1.500167,-0.4630207 0.557114,-0.4538937 0.8805656,-1.1720775 0.8805656,-1.9941935 v -2.3435262 -0.03359 -0.00155 C 10.102686,3.6324092 8.5462194,2.1027009 6.6569584,2.1171834 Z" />
<g
aria-label="B"
id="text1054"
style="font-style:italic;font-weight:900;font-size:6.35px;font-family:Roboto;-inkscape-font-specification:'Roboto, Heavy Italic';fill:#e0e0e0;fill-opacity:0.752941;stroke-width:0.285001;stop-color:#000000"
transform="translate(-3.9310512,-0.1615253)">
<path
id="path1085"
style="font-style:normal;-inkscape-font-specification:'Roboto, Heavy';stroke-width:0.285"
d="M 8.865092,5.8580404 V 8.9958333 11.74073 H 9.9533976 V 8.9958333 h 0.7441404 c 0.549837,-0.00413 0.964283,-0.116789 1.243335,-0.3379638 0.281119,-0.223242 0.42168,-0.5560389 0.42168,-0.9983887 0,-0.2439125 -0.06305,-0.4506186 -0.189136,-0.6201172 -0.12609,-0.1694982 -0.306958,-0.2852537 -0.542602,-0.3472656 0.208772,-0.078548 0.366902,-0.2005048 0.474389,-0.3658692 0.107487,-0.1653644 0.161231,-0.3648358 0.161231,-0.598413 0,-0.4051429 -0.151929,-0.7141686 -0.455786,-0.9270752 C 11.508859,4.5878339 11.18123,4.4813802 10.486698,4.4813802 H 9.9533976 c -1.0883054,0 -1.0883056,1.029605 -1.0883056,1.3766602 z m 1.0883056,-0.022757 c 0,-0.3308701 0.1341694,-0.4768142 0.3334184,-0.4952 l 0.199882,-0.018444 c 0.203885,-0.018814 0.420647,0.042375 0.530201,0.127124 0.109553,0.082682 0.164331,0.2191083 0.164331,0.4092774 0,0.1653644 -0.05064,0.2904216 -0.151929,0.3751709 -0.101285,0.08475 -0.270784,0.1281579 -0.508496,0.1302246 H 9.9533976 Z m 0,1.2412875 h 0.7627444 c 0.374137,0.00207 0.561206,0.1912032 0.561206,0.5674073 0,0.1632973 -0.05271,0.2904217 -0.15813,0.381372 -0.105419,0.088883 -0.256315,0.1333252 -0.452686,0.1333252 H 9.9533976 Z" />
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 20 KiB

@@ -0,0 +1,76 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="256"
height="48"
viewBox="0 0 67.73333 12.7"
version="1.1"
id="svg5"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<defs
id="defs2" />
<g
id="layer1">
<g
aria-label="TooB Phaser"
id="text236"
style="font-style:italic;font-weight:bold;font-size:5.99722px;font-family:Timana;-inkscape-font-specification:'Timana Bold Italic';fill:#686868;stroke:#7f7f7f;stroke-width:0.285001;stop-color:#000000">
<path
d="M 12.022963,5.7265975 12.163523,4.93302 h 3.461286 l -0.137632,0.7935775 h -1.24454 L 13.64233,9.1966686 h -1.004418 l 0.603236,-3.4700711 z"
style="font-weight:900;font-family:Roboto;-inkscape-font-specification:'Roboto, Heavy Italic';fill:#e0e0e0;fill-opacity:0.752941;stroke:none;stroke-width:0.285"
id="path407" />
<path
d="m 14.804876,7.6622237 0.0059,-0.061495 q 0.07321,-0.6852292 0.512458,-1.1654754 0.439249,-0.4802461 1.162547,-0.4656044 0.694014,0.011713 1.021987,0.4861028 0.330901,0.4714611 0.272335,1.1215504 -0.06442,0.7232975 -0.512458,1.2094003 Q 16.819568,9.2698769 16.09627,9.2552352 15.408112,9.2435219 15.077211,8.7779174 14.74631,8.3093846 14.804876,7.6622237 Z m 0.957564,0.3543279 q 0.0059,0.1932698 0.09078,0.336758 0.08492,0.1405598 0.304546,0.1464165 0.571024,0.014642 0.658874,-0.922424 0.01171,-0.1581298 0.0059,-0.354328 Q 16.81374,7.026776 16.72883,6.8803595 16.64391,6.733943 16.424284,6.7280864 16.178304,6.7222264 16.034816,6.8862162 15.891328,7.0472743 15.81812,7.345964 15.74491,7.6417253 15.76248,8.0165516 Z"
style="font-weight:900;font-family:Roboto;-inkscape-font-specification:'Roboto, Heavy Italic';fill:#e0e0e0;fill-opacity:0.752941;stroke:none;stroke-width:0.285"
id="path409" />
<path
d="m 18.072893,7.6622237 0.0059,-0.061495 q 0.07321,-0.6852292 0.512458,-1.1654754 0.43925,-0.4802461 1.162547,-0.4656044 0.694015,0.011713 1.021987,0.4861028 0.330902,0.4714611 0.272335,1.1215504 Q 20.9837,8.3005996 20.535662,8.7867024 20.087584,9.2698769 19.364286,9.2552352 18.676129,9.2435219 18.345228,8.7779174 18.014326,8.3093846 18.072893,7.6622237 Z m 0.957564,0.3543279 q 0.0059,0.1932698 0.09078,0.336758 0.08492,0.1405598 0.304546,0.1464165 0.571025,0.014642 0.658875,-0.922424 0.01171,-0.1581298 0.0059,-0.354328 -0.0088,-0.1961981 -0.09371,-0.3426146 -0.08492,-0.1464165 -0.304547,-0.1522731 -0.245979,-0.00586 -0.389468,0.1581298 -0.143488,0.1610581 -0.216696,0.4597478 -0.07321,0.2957613 -0.05564,0.6705876 z"
style="font-weight:900;font-family:Roboto;-inkscape-font-specification:'Roboto, Heavy Italic';fill:#e0e0e0;fill-opacity:0.752941;stroke:none;stroke-width:0.285"
id="path411" />
<path
d="m 24.644066,7.9111317 q -0.02928,0.4714612 -0.272335,0.7525808 -0.240123,0.2811197 -0.614949,0.4070379 -0.374826,0.1259182 -0.808219,0.1259182 H 21.226705 L 21.964644,4.93302 23.305819,4.93595 q 0.998561,0.00293 1.393885,0.4743895 0.207912,0.2459797 0.178628,0.6764443 -0.02343,0.3601846 -0.219624,0.5915226 -0.196198,0.2284098 -0.521243,0.363113 0.28112,0.096635 0.401181,0.3426146 0.12299,0.2459797 0.10542,0.5270994 z m -1.812636,-2.1845342 -0.172772,0.9839189 0.433393,0.00293 q 0.269406,-0.00293 0.494888,-0.1024916 0.22841,-0.099563 0.275263,-0.3982528 0.041,-0.2664781 -0.09663,-0.3689696 Q 23.62794,5.7383125 23.376104,5.7295275 Z m 0.825789,2.1728209 Q 23.695287,7.673937 23.604509,7.5363055 23.516659,7.3986739 23.282392,7.3869606 l -0.737939,-0.00293 -0.178628,1.0219872 0.597379,0.00293 q 0.251837,-0.00293 0.450963,-0.1229898 0.199127,-0.1200616 0.243052,-0.3865396 z"
style="font-weight:900;font-family:Roboto;-inkscape-font-specification:'Roboto, Heavy Italic';fill:#e0e0e0;fill-opacity:0.752941;stroke:none;stroke-width:0.285"
id="path413" />
<path
d="m 28.415755,7.7530019 -0.7028,-0.00293 -0.251836,1.446595 H 26.45963 l 0.737939,-4.2636486 1.598869,0.00293 q 0.626662,0.014642 1.042485,0.3894679 0.418751,0.3748263 0.366041,1.0307722 -0.03807,0.4743895 -0.301618,0.7847925 -0.260621,0.310403 -0.655946,0.4626762 -0.392396,0.1493448 -0.831645,0.1493448 z m -0.3514,-2.0264044 -0.213768,1.2298986 0.603236,0.00586 q 0.286976,-0.00586 0.489031,-0.1552015 0.204983,-0.1522732 0.248908,-0.4451062 0.03807,-0.2430514 -0.0615,-0.4304645 -0.09663,-0.1874132 -0.366041,-0.2020548 z"
style="font-weight:900;font-family:Roboto;-inkscape-font-specification:'Roboto, Heavy Italic';fill:#e0e0e0;fill-opacity:0.752941;stroke:none;stroke-width:0.285"
id="path415" />
<path
d="m 32.011744,6.7310147 q -0.260622,-0.00586 -0.459748,0.1874131 l -0.40411,2.2782408 h -0.96342 l 0.781864,-4.497915 h 0.963421 l -0.327973,1.6720765 q 0.357256,-0.4099662 0.817004,-0.4041096 0.547597,0.011713 0.735011,0.3953246 0.190341,0.3836112 0.137631,0.8667857 L 32.963451,9.1966686 H 31.994174 L 32.328003,7.2200458 Q 32.354358,7.017991 32.295792,6.8774312 32.240154,6.7368713 32.011744,6.7310147 Z"
style="font-weight:900;font-family:Roboto;-inkscape-font-specification:'Roboto, Heavy Italic';fill:#e0e0e0;fill-opacity:0.752941;stroke:none;stroke-width:0.285"
id="path417" />
<path
d="m 35.265118,9.1966686 q -0.041,-0.1229898 -0.03807,-0.2899047 -0.327973,0.3572563 -0.776008,0.3484713 -0.392396,-0.00586 -0.676444,-0.2635497 -0.28112,-0.257693 -0.26355,-0.6647309 0.01464,-0.4216795 0.254765,-0.6530176 0.243052,-0.2342664 0.597379,-0.3250447 0.357257,-0.090778 0.711585,-0.090778 l 0.322116,0.00586 0.03514,-0.1786282 Q 35.458388,6.9272128 35.411535,6.7954379 35.36761,6.6607348 35.177268,6.6548781 34.861009,6.6490214 34.7878,7.0033494 l -0.966349,0.00293 q 0.01757,-0.3689696 0.240123,-0.6003077 0.225482,-0.231338 0.553455,-0.3367579 0.327973,-0.1083482 0.650089,-0.099563 0.506601,0.00878 0.846288,0.301618 0.342614,0.2899046 0.292833,0.8287174 l -0.216697,1.3558168 -0.03807,0.3162597 q -0.0205,0.1991264 0.05857,0.3689696 l -0.0029,0.055638 z M 34.714592,8.5582927 q 0.295761,0.011713 0.518315,-0.2576931 l 0.09663,-0.5124578 -0.248908,-0.00293 q -0.222553,0.00586 -0.392396,0.1317749 -0.169843,0.1229898 -0.202055,0.3601846 -0.03514,0.2723347 0.22841,0.2811197 z"
style="font-weight:900;font-family:Roboto;-inkscape-font-specification:'Roboto, Heavy Italic';fill:#e0e0e0;fill-opacity:0.752941;stroke:none;stroke-width:0.285"
id="path419" />
<path
d="m 38.363293,8.2888863 q 0.03807,-0.1961981 -0.28112,-0.284048 l -0.225481,-0.058567 q -0.357256,-0.093707 -0.673516,-0.310403 -0.313331,-0.2166964 -0.29869,-0.6442326 0.01171,-0.3513997 0.219625,-0.5798094 0.21084,-0.2284097 0.521243,-0.336758 0.310403,-0.1112765 0.620806,-0.1054198 0.486103,0.00586 0.866785,0.2547647 0.383612,0.248908 0.389468,0.7789358 l -0.957564,-0.00293 q 0.0029,-0.1727715 -0.07028,-0.2723347 -0.07028,-0.1024916 -0.260621,-0.1024916 -0.143488,0 -0.272335,0.084922 -0.125918,0.081993 -0.152273,0.231338 -0.03221,0.1698432 0.134703,0.2342665 0.166915,0.064423 0.286977,0.090778 0.266478,0.064423 0.515386,0.1727715 0.251836,0.1054198 0.409966,0.301618 0.161058,0.1932698 0.152273,0.5153861 -0.01464,0.3631129 -0.245979,0.585666 -0.22841,0.2196247 -0.559312,0.319188 -0.327972,0.099563 -0.635447,0.093706 -0.483175,-0.00878 -0.869714,-0.284048 -0.383611,-0.275263 -0.395325,-0.7965058 l 0.890213,0.00293 q 0.0088,0.4216795 0.424607,0.4187512 0.152274,0 0.289905,-0.07028 0.14056,-0.073208 0.1757,-0.2371939 z"
style="font-weight:900;font-family:Roboto;-inkscape-font-specification:'Roboto, Heavy Italic';fill:#e0e0e0;fill-opacity:0.752941;stroke:none;stroke-width:0.285"
id="path421" />
<path
d="M 42.378032,8.7047092 Q 42.178906,9.0004705 41.821649,9.1322454 41.467321,9.2610919 41.127635,9.2552352 40.468761,9.2464502 40.073436,8.8130574 39.68104,8.3796645 39.730822,7.7266469 l 0.01171,-0.1142049 q 0.06735,-0.6881575 0.509529,-1.171332 0.442178,-0.4861028 1.171332,-0.4714611 0.661803,0.011713 0.966349,0.4743894 0.307475,0.4597479 0.240123,1.0776255 L 42.57423,7.922845 h -1.879988 q 0,0.2459798 0.134703,0.4041096 0.134704,0.1552015 0.392397,0.1639865 0.421679,0.011713 0.755509,-0.3221163 z M 41.358973,6.7280864 q -0.26355,-0.00878 -0.401181,0.1756998 -0.134703,0.1844848 -0.213768,0.4041095 h 0.96342 l 0.01757,-0.084922 Q 41.757226,7.017991 41.669376,6.8745029 41.581526,6.7310147 41.358973,6.7280864 Z"
style="font-weight:900;font-family:Roboto;-inkscape-font-specification:'Roboto, Heavy Italic';fill:#e0e0e0;fill-opacity:0.752941;stroke:none;stroke-width:0.285"
id="path423" />
<path
d="m 44.720697,6.8920728 q -0.430464,-0.00586 -0.658874,0.292833 l -0.357256,2.0117628 h -0.963421 l 0.550526,-3.1684531 0.896069,-0.00293 -0.07321,0.4128946 q 0.131775,-0.2020548 0.307475,-0.3396863 0.1757,-0.1376315 0.427536,-0.1376315 0.125918,0 0.295761,0.040997 l -0.125918,0.9194956 q -0.190341,-0.029283 -0.29869,-0.029283 z"
style="font-weight:900;font-family:Roboto;-inkscape-font-specification:'Roboto, Heavy Italic';fill:#e0e0e0;fill-opacity:0.752941;stroke:none;stroke-width:0.285"
id="path425" />
</g>
<path
id="path1348"
style="color:#000000;fill:#e0e0e0;fill-opacity:0.752941;-inkscape-stroke:none"
d="M 6.6569584,2.1171834 C 4.774717,2.1318994 3.2431785,3.6744673 3.243213,5.5567668 v 2.1109822 0.0062 0.00568 0.00982 c 0.00453,0.8890342 0.2392311,1.7354052 0.7462076,2.386935 0.1277885,0.164224 0.2744584,0.313735 0.4376994,0.445967 V 7.3390869 H 4.43074 V 5.5567668 c -2.28e-5,-1.2443843 0.9901438,-2.2443973 2.2344894,-2.254126 1.249133,-0.00958 2.258501,0.9812478 2.271179,2.2303548 v 0.023771 2.3435262 c 0,0.539163 -0.163809,0.8448933 -0.445451,1.074353 -0.281642,0.2294597 -0.736455,0.3787882 -1.343587,0.3787882 h -0.464596 v 2.225771 h 1.058358 v -1.221698 c 0.540406,-0.08223 1.101059,-0.137859 1.500167,-0.4630207 0.557114,-0.4538937 0.8805656,-1.1720775 0.8805656,-1.9941935 v -2.3435262 -0.03359 -0.00155 C 10.102686,3.6324092 8.5462194,2.1027009 6.6569584,2.1171834 Z" />
<g
aria-label="B"
id="text1054"
style="font-style:italic;font-weight:900;font-size:6.35px;font-family:Roboto;-inkscape-font-specification:'Roboto, Heavy Italic';fill:#e0e0e0;fill-opacity:0.752941;stroke-width:0.285001;stop-color:#000000"
transform="translate(-3.9310512,-0.1615253)">
<path
id="path1085"
style="font-style:normal;-inkscape-font-specification:'Roboto, Heavy';stroke-width:0.285"
d="M 8.865092,5.8580404 V 8.9958333 11.74073 H 9.9533976 V 8.9958333 h 0.7441404 c 0.549837,-0.00413 0.964283,-0.116789 1.243335,-0.3379638 0.281119,-0.223242 0.42168,-0.5560389 0.42168,-0.9983887 0,-0.2439125 -0.06305,-0.4506186 -0.189136,-0.6201172 -0.12609,-0.1694982 -0.306958,-0.2852537 -0.542602,-0.3472656 0.208772,-0.078548 0.366902,-0.2005048 0.474389,-0.3658692 0.107487,-0.1653644 0.161231,-0.3648358 0.161231,-0.598413 0,-0.4051429 -0.151929,-0.7141686 -0.455786,-0.9270752 C 11.508859,4.5878339 11.18123,4.4813802 10.486698,4.4813802 H 9.9533976 c -1.0883054,0 -1.0883056,1.029605 -1.0883056,1.3766602 z m 1.0883056,-0.022757 c 0,-0.3308701 0.1341694,-0.4768142 0.3334184,-0.4952 l 0.199882,-0.018444 c 0.203885,-0.018814 0.420647,0.042375 0.530201,0.127124 0.109553,0.082682 0.164331,0.2191083 0.164331,0.4092774 0,0.1653644 -0.05064,0.2904216 -0.151929,0.3751709 -0.101285,0.08475 -0.270784,0.1281579 -0.508496,0.1302246 H 9.9533976 Z m 0,1.2412875 h 0.7627444 c 0.374137,0.00207 0.561206,0.1912032 0.561206,0.5674073 0,0.1632973 -0.05271,0.2904217 -0.15813,0.381372 -0.105419,0.088883 -0.256315,0.1333252 -0.452686,0.1333252 H 9.9533976 Z" />
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.
Binary file not shown.
+1
View File
@@ -324,6 +324,7 @@ void Lv2Pedalboard::PrepareMidiMap(const PedalboardItem &pedalboardItem)
mapping.midiBinding = binding;
mapping.instanceId = pedalboardItem.instanceId();
if (pPortInfo->mod_momentaryOffByDefault() || pPortInfo->mod_momentaryOnByDefault())
{
mapping.mappingType = MidiControlType::MomentarySwitch;
+2
View File
@@ -67,6 +67,8 @@
#define PIPEDAL_UI__ledColor PIPEDAL_UI_PREFIX "ledColor"
#define PIPEDAL_UI__graphicEq PIPEDAL_UI_PREFIX "graphicEq"
namespace pipedal {
+7
View File
@@ -159,6 +159,7 @@ void PluginHost::LilvUris::Initialize(LilvWorld *pWorld)
pipedalUI__yBottom = lilv_new_uri(pWorld, PIPEDAL_UI__yBottom);
pipedalUI__xLog = lilv_new_uri(pWorld, PIPEDAL_UI__xLog);
pipedalUI__width = lilv_new_uri(pWorld, PIPEDAL_UI__width);
pipedalUI__graphicEq = lilv_new_uri(pWorld,PIPEDAL_UI__graphicEq);
ui__portNotification = lilv_new_uri(pWorld, LV2_UI__portNotification);
ui__plugin = lilv_new_uri(pWorld, LV2_UI__plugin);
@@ -1005,8 +1006,12 @@ Lv2PortInfo::Lv2PortInfo(PluginHost *host, const LilvPlugin *plugin, const LilvP
this->integer_property_ = lilv_port_has_property(plugin, pPort, host->lilvUris->integer_property_uri);
this->mod_momentaryOffByDefault_ = lilv_port_has_property(plugin, pPort, host->lilvUris->mod__preferMomentaryOffByDefault);
this->mod_momentaryOnByDefault_ = lilv_port_has_property(plugin, pPort, host->lilvUris->mod__preferMomentaryOnByDefault);
this->pipedal_graphicEq_ = lilv_port_has_property(plugin, pPort, host->lilvUris->pipedalUI__graphicEq);
this->enumeration_property_ = lilv_port_has_property(plugin, pPort, host->lilvUris->enumeration_property_uri);
this->toggled_property_ = lilv_port_has_property(plugin, pPort, host->lilvUris->core__toggled);
this->not_on_gui_ = lilv_port_has_property(plugin, pPort, host->lilvUris->portprops__not_on_gui_property_uri);
this->connection_optional_ = lilv_port_has_property(plugin, pPort, host->lilvUris->core__connectionOptional);
@@ -1729,6 +1734,7 @@ json_map::storage_type<Lv2PortInfo> Lv2PortInfo::jmap{
MAP_REF(Lv2PortInfo, toggled_property),
MAP_REF(Lv2PortInfo, mod_momentaryOffByDefault),
MAP_REF(Lv2PortInfo, mod_momentaryOnByDefault),
MAP_REF(Lv2PortInfo, pipedal_graphicEq),
MAP_REF(Lv2PortInfo, not_on_gui),
MAP_REF(Lv2PortInfo, buffer_type),
MAP_REF(Lv2PortInfo, port_group),
@@ -1796,6 +1802,7 @@ json_map::storage_type<Lv2PluginUiPort> Lv2PluginUiPort::jmap{{
MAP_REF(Lv2PluginUiPort, mod_momentaryOffByDefault),
MAP_REF(Lv2PluginUiPort, mod_momentaryOnByDefault),
MAP_REF(Lv2PluginUiPort, pipedal_graphicEq),
MAP_REF(Lv2PluginUiPort, enumeration_property),
MAP_REF(Lv2PluginUiPort, not_on_gui),
MAP_REF(Lv2PluginUiPort, toggled_property),
+6
View File
@@ -221,6 +221,7 @@ namespace pipedal
bool mod_momentaryOffByDefault_ = false;
bool mod_momentaryOnByDefault_ = false;
bool pipedal_graphicEq_ = false;
bool not_on_gui_ = false;
std::string buffer_type_;
@@ -294,6 +295,7 @@ namespace pipedal
LV2_PROPERTY_GETSET_SCALAR(integer_property);
LV2_PROPERTY_GETSET_SCALAR(mod_momentaryOffByDefault);
LV2_PROPERTY_GETSET_SCALAR(mod_momentaryOnByDefault);
LV2_PROPERTY_GETSET_SCALAR(pipedal_graphicEq);
LV2_PROPERTY_GETSET_SCALAR(enumeration_property);
LV2_PROPERTY_GETSET_SCALAR(toggled_property);
LV2_PROPERTY_GETSET_SCALAR(not_on_gui);
@@ -513,6 +515,7 @@ namespace pipedal
integer_property_(pPort->integer_property()),
mod_momentaryOffByDefault_(pPort->mod_momentaryOffByDefault()),
mod_momentaryOnByDefault_(pPort->mod_momentaryOnByDefault()),
pipedal_graphicEq_(pPort->pipedal_graphicEq()),
enumeration_property_(pPort->enumeration_property()),
toggled_property_(pPort->toggled_property()), not_on_gui_(pPort->not_on_gui()), scale_points_(pPort->scale_points()),
@@ -558,6 +561,8 @@ namespace pipedal
bool mod_momentaryOffByDefault_ = false;
bool mod_momentaryOnByDefault_ = false;
bool pipedal_graphicEq_ = false;
bool enumeration_property_ = false;
bool not_on_gui_ = false;
bool toggled_property_ = false;
@@ -728,6 +733,7 @@ namespace pipedal
AutoLilvNode pipedalUI__yTop;
AutoLilvNode pipedalUI__yBottom;
AutoLilvNode pipedalUI__width;
AutoLilvNode pipedalUI__graphicEq;
AutoLilvNode pipedalUI__outputPorts;
+111
View File
@@ -0,0 +1,111 @@
/*
* Copyright (c) 2025 Robin E. R. Davies
* All rights reserved.
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
* The above copyright notice and this permission notice shall be included in all
* copies or substantial portions of the Software.
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE.
*/
import SvgPathBuilder from "./SvgPathBuilder";
export interface GraphicEqCtlProps {
position: number;
imgRef: React.Ref<SVGSVGElement> | undefined;
onTouchStart: React.TouchEventHandler<SVGSVGElement> | undefined;
onTouchMove: React.TouchEventHandler<SVGSVGElement> | undefined;
onPointerDown: React.PointerEventHandler<SVGSVGElement> | undefined;
onPointerUp: React.PointerEventHandler<SVGSVGElement> | undefined;
onPointerMoveCapture: React.PointerEventHandler<SVGSVGElement> | undefined;
onDrag: React.DragEventHandler<SVGSVGElement> | undefined;
dialColor: string;
opacity: number;
};
const STROKE_HEIGHT=8.0;
function MakeGraphicEqPath(value: number)
{
let x0 = 6;
let xN = 64-x0;
let xC0 = (64-STROKE_HEIGHT)/2;
let xC1 = xC0+STROKE_HEIGHT;
let h = 64-STROKE_HEIGHT*2.5;
let y0 = 0;
let y1 = h-h*value;;
let y2 = y1 + STROKE_HEIGHT;
let y3 = y2 + STROKE_HEIGHT/2;
let y4 = y3 + STROKE_HEIGHT;
let y5 = 64;
let s = new SvgPathBuilder();
s.moveTo(x0,y1)
.lineTo(xC0,y1)
.lineTo(xC0,y0)
.lineTo(xC1,y0)
.lineTo(xC1,y1)
.lineTo(xN,y1)
.lineTo(xN,y2)
.lineTo(x0,y2)
.closePath()
.moveTo(x0,y3)
.lineTo(x0,y4)
.lineTo(xC0,y4)
.lineTo(xC0,y5)
.lineTo(xC1,y5)
.lineTo(xC1,y4)
.lineTo(xN,y4)
.lineTo(xN,y3)
.lineTo(x0,y3)
.closePath();
return s.toString();
}
export function UpdateGraphicEqPath(el: SVGSVGElement, value: number) {
if (!el) return;
let p = MakeGraphicEqPath(value);
let pathEl = el.getElementById("myPath");
pathEl?.setAttribute("d",p);
}
export default function GraphicEqCtl(props: GraphicEqCtlProps) {
return (
<svg width="64px" height="64px"
ref={props.imgRef}
viewBox="0 0 64 64"
style={{
overscrollBehavior: "none",
touchAction: "none",
width: 36, height: 42, opacity: props.opacity
}}
onTouchStart={props.onTouchStart}
onTouchMove={props.onTouchMove}
onPointerDown={props.onPointerDown}
onPointerUp={props.onPointerUp}
onPointerMoveCapture={props.onPointerMoveCapture}
onDrag={props.onDrag}
fill={props.dialColor}
>
<path id="myPath" d={MakeGraphicEqPath(props.position)} />
</svg>
);
}
+11 -1
View File
@@ -453,6 +453,7 @@ export enum ControlType {
Trigger,
Momentary,
MomentaryOnByDefault,
GraphicEq,
Tuner,
Vu,
@@ -497,6 +498,7 @@ deserialize(input: any): UiControl {
this.integer_property = input.integer_property;
this.mod_momentaryOffByDefault = input.mod_momentaryOffByDefault;
this.mod_momentaryOnByDefault = input.mod_momentaryOnByDefault;
this.pipedal_graphicEq = input.pipedal_graphicEq;
this.enumeration_property = input.enumeration_property;
this.toggled_property = input.toggled_property;
this.trigger_property = input.trigger_property;
@@ -548,7 +550,11 @@ deserialize(input: any): UiControl {
}
if (this.is_input)
{
if (this.mod_momentaryOnByDefault) {
if (this.pipedal_graphicEq)
{
this.controlType = ControlType.GraphicEq;
}
else if (this.mod_momentaryOnByDefault) {
this.controlType = ControlType.MomentaryOnByDefault;
} else if (this.mod_momentaryOffByDefault) {
this.controlType = ControlType.Momentary;
@@ -604,6 +610,7 @@ deserialize(input: any): UiControl {
integer_property: boolean = false;
mod_momentaryOffByDefault: boolean = false;
mod_momentaryOnByDefault: boolean = false;
pipedal_graphicEq: boolean = false;
enumeration_property: boolean = false;
trigger_property: boolean = false;
not_on_gui: boolean = false;
@@ -647,6 +654,9 @@ deserialize(input: any): UiControl {
isAbToggle(): boolean {
return this.controlType === ControlType.ABSwitch;
}
isGraphicEq() : boolean {
return this.controlType === ControlType.GraphicEq;
}
isSelect(): boolean {
return this.controlType === ControlType.Select;
}
+169 -65
View File
@@ -40,6 +40,7 @@ import ControlTooltip from './ControlTooltip';
import PlayArrowIcon from '@mui/icons-material/PlayArrow';
import StopIcon from '@mui/icons-material/Stop';
import FiberManualRecordIcon from '@mui/icons-material/FiberManualRecord';
import GraphicEqCtl, { UpdateGraphicEqPath } from './GraphicEqCtl';
const MIN_ANGLE = -135;
const MAX_ANGLE = 135;
@@ -59,6 +60,21 @@ const ULTRA_FINE_RANGE_SCALE = RANGE_SCALE * 50; // 12000 pixels to move from 0
export const StandardItemSize = { width: 80, height: 140 }
function preventNextClickAfterDrag() {
// the broswer fires a click event when the pointer goes up
// on ANY element under the mouse. Prevent this click event
// (and any other click event) from happening for 100ms
// after the drag stops.
let clickHandler = (e: MouseEvent) => {
e.preventDefault();
e.stopPropagation();
};
document.addEventListener('click',clickHandler,true);
window.setTimeout(() => {
document.removeEventListener('click',clickHandler,true);
},100);
}
function androidEmoji(text: string) {
// android chrome doesn't support these characters properly.
if (text === "⏹") {
@@ -67,9 +83,8 @@ function androidEmoji(text: string) {
if (text === "⏺") {
return (<FiberManualRecordIcon fontSize={"medium"} />)
}
if (text === "⏵")
{
return (<PlayArrowIcon fontSize={"medium"}/>);
if (text === "⏵") {
return (<PlayArrowIcon fontSize={"medium"} />);
}
return text;
}
@@ -129,6 +144,7 @@ export interface PluginControlProps extends WithStyles<typeof pluginControlStyle
}
type PluginControlState = {
error: boolean;
editFocused: boolean;
};
const PluginControl =
@@ -137,6 +153,7 @@ const PluginControl =
frameRef: React.RefObject<HTMLDivElement | null>;
imgRef: React.RefObject<SVGSVGElement | null>;
graphicEqControlRef: React.RefObject<SVGSVGElement | null>;
inputRef: React.RefObject<HTMLInputElement | null>;
selectRef: React.RefObject<HTMLSelectElement | null>;
@@ -148,10 +165,12 @@ const PluginControl =
super(props);
this.state = {
error: false
error: false,
editFocused: false
};
this.model = PiPedalModelFactory.getInstance();
this.imgRef = React.createRef();
this.graphicEqControlRef = React.createRef();
this.inputRef = React.createRef();
this.selectRef = React.createRef();
this.displayValueRef = React.createRef();
@@ -195,16 +214,19 @@ const PluginControl =
inputChanged: boolean = false;
onInputLostFocus(event: any): void {
this.setState({editFocused: false});
if (this.inputChanged) // validation requried?
{
this.inputChanged = false;
this.validateInput(event, true);
}
this.displayValueRef.current!.style.display = "block";
//this.displayValueRef.current!.style.display = "block";
}
onInputFocus(event: SyntheticEvent): void {
this.displayValueRef.current!.style.display = "none";
//this.displayValueRef.current!.style.display = "none";
this.setState({editFocused: true});
if (Utility.hasIMEKeyboard()) {
event.preventDefault();
event.stopPropagation();
@@ -273,6 +295,7 @@ const PluginControl =
onDrag(e: SyntheticEvent) {
e.preventDefault();
e.stopPropagation();
}
isValidPointer(e: PointerEvent<SVGSVGElement>): boolean {
@@ -333,9 +356,19 @@ const PluginControl =
if (!this.mouseDown && this.isValidPointer(e)) {
e.preventDefault();
e.stopPropagation();
if (document.activeElement)
{
let e = document.activeElement as any;
if (e.blur)
{
e.blur();
}
}
if (this.isTouchDevice()) {
if (this.props.uiControl?.isDial() ?? false) {
if (this.props.uiControl
&& (this.props.uiControl.isDial() || this.props.uiControl.isGraphicEq())
) {
this.isTap = false;
this.showZoomedControl();
return;
@@ -390,7 +423,9 @@ const PluginControl =
onPointerLostCapture(e: PointerEvent<SVGSVGElement>) {
if (this.isCapturedPointer(e)) {
--this.pointersDown;
if (this.pointersDown !== 0) {
--this.pointersDown;
}
this.isTap = false;
@@ -438,7 +473,7 @@ const PluginControl =
onPointerDoubleTap() {
let uiControl = this.props.uiControl;
if (uiControl) {
if (uiControl.isDial()) {
if (uiControl.isDial() || uiControl.isGraphicEq()) {
this.resetToDefaultValue(uiControl);
}
}
@@ -457,10 +492,14 @@ const PluginControl =
onPointerUp(e: PointerEvent<SVGSVGElement>) {
if (this.isCapturedPointer(e)) {
--this.pointersDown;
if (this.pointersDown !== 0)
{
--this.pointersDown;
}
e.preventDefault();
e.stopPropagation();
let dRange = this.updateRange(e)
this.previewRange(dRange, true);
@@ -471,9 +510,15 @@ const PluginControl =
this.onPointerTap();
}
}
// prevent click from firing on other elements
// when the pointer goes up0.
preventNextClickAfterDrag();
} else {
--this.pointersDown;
if (this.pointersDown !== 0)
{
--this.pointersDown;
}
}
}
@@ -518,7 +563,7 @@ const PluginControl =
this.isTap = false;
}
}
}
handleButtonMouseLeave(buttonStyle: ButtonStyle) {
}
@@ -527,10 +572,10 @@ const PluginControl =
if (uiControl) {
switch (buttonStyle) {
case ButtonStyle.Momentary:
this.model.setPedalboardControl(this.props.instanceId, uiControl.symbol,uiControl.max_value);
this.model.setPedalboardControl(this.props.instanceId, uiControl.symbol, uiControl.max_value);
break;
case ButtonStyle.MomentaryOnByDefault:
this.model.setPedalboardControl(this.props.instanceId, uiControl.symbol,uiControl.min_value);
this.model.setPedalboardControl(this.props.instanceId, uiControl.symbol, uiControl.min_value);
break;
case ButtonStyle.Trigger:
{
@@ -539,7 +584,7 @@ const PluginControl =
value = uiControl.min_value;
}
this.model.sendPedalboardControlTrigger(this.props.instanceId, uiControl.symbol, value);
}
break;
}
@@ -550,10 +595,10 @@ const PluginControl =
if (uiControl) {
switch (buttonStyle) {
case ButtonStyle.Momentary:
this.model.setPedalboardControl(this.props.instanceId, uiControl.symbol,uiControl.min_value);
this.model.setPedalboardControl(this.props.instanceId, uiControl.symbol, uiControl.min_value);
break;
case ButtonStyle.MomentaryOnByDefault:
this.model.setPedalboardControl(this.props.instanceId, uiControl.symbol,uiControl.max_value);
this.model.setPedalboardControl(this.props.instanceId, uiControl.symbol, uiControl.max_value);
break;
case ButtonStyle.Trigger:
{
@@ -567,14 +612,22 @@ const PluginControl =
let range = this.valueToRange(value);
value = this.rangeToValue(range);
let transform = this.rangeToRotationTransform(range);
if (this.mouseDown && !commitValue) {
transform += " scale(1.5, 1.5)";
}
let imgElement = this.imgRef.current
if (imgElement) {
if (imgElement.style) {
imgElement.style.transform = transform;
if (this.props.uiControl?.isGraphicEq()) {
let imgElement = this.imgRef.current
if (imgElement) {
UpdateGraphicEqPath(imgElement, range);
}
} else {
let transform = this.rangeToRotationTransform(range);
if (this.mouseDown && !commitValue) {
transform += " scale(1.5, 1.5)";
}
if (imgElement.style) {
imgElement.style.transform = transform;
}
}
}
if (commitValue) {
@@ -594,10 +647,18 @@ const PluginControl =
// apply value quantization and clipping.
range = this.valueToRange(value);
let imgElement = this.imgRef.current
if (imgElement) {
if (imgElement.style) {
imgElement.style.transform = this.rangeToRotationTransform(range);
if (this.props.uiControl?.isGraphicEq()) {
let imgElement = this.imgRef.current
if (imgElement) {
UpdateGraphicEqPath(imgElement, range);
}
} else {
let imgElement = this.imgRef.current
if (imgElement) {
if (imgElement.style) {
imgElement.style.transform = this.rangeToRotationTransform(range);
}
}
}
let inputElement = this.inputRef.current;
@@ -779,6 +840,16 @@ const PluginControl =
return "rotate(" + angle + "deg)";
}
getEqPosition(): number {
let range = 0;
let uiControl = this.props.uiControl;
if (uiControl) {
let value = this.props.value;
range = this.valueToRange(value);
}
return range;
}
getRotationTransform(): string {
let range = 0;
let uiControl = this.props.uiControl;
@@ -812,6 +883,8 @@ const PluginControl =
let isButton = false;
let buttonStyle: ButtonStyle = ButtonStyle.None;
let isGraphicEq = control.isGraphicEq();
if (control.isTrigger()) {
isButton = true;
buttonStyle = ButtonStyle.Trigger;
@@ -833,6 +906,9 @@ const PluginControl =
if (isButton) {
item_width = undefined;
}
if (isGraphicEq) {
item_width = 58;
}
return (
@@ -862,27 +938,29 @@ const PluginControl =
(
control.name.length !== 1 ? (
<Button variant="contained" color="primary" size="small"
onMouseDown={
(evt) => { this.handleButtonMouseDown(buttonStyle); }
}
onMouseUp={
(evt) => { this.handleButtonMouseUp(buttonStyle); }
}
onTouchStart={
(evt) => { evt.preventDefault();
this.handleButtonMouseDown(buttonStyle); }
}
onTouchEnd={
(evt) => {
evt.preventDefault();
this.handleButtonMouseUp(buttonStyle);
onMouseDown={
(evt) => { this.handleButtonMouseDown(buttonStyle); }
}
}
onMouseLeave={(
(evet) => { this.handleButtonMouseLeave(buttonStyle); }
)}
onMouseUp={
(evt) => { this.handleButtonMouseUp(buttonStyle); }
}
onTouchStart={
(evt) => {
evt.preventDefault();
this.handleButtonMouseDown(buttonStyle);
}
}
onTouchEnd={
(evt) => {
evt.preventDefault();
this.handleButtonMouseUp(buttonStyle);
}
}
onMouseLeave={(
(evet) => { this.handleButtonMouseLeave(buttonStyle); }
)}
style={{
style={{
textTransform: "none",
background: (isDarkMode() ? "#6750A4" : undefined),
marginLeft: 8, marginRight: 8, minWidth: 60,
@@ -903,12 +981,14 @@ const PluginControl =
(evt) => { this.handleButtonMouseUp(buttonStyle); }
}
onTouchStart={
(evt) => { evt.preventDefault();
this.handleButtonMouseDown(buttonStyle); }
(evt) => {
evt.preventDefault();
this.handleButtonMouseDown(buttonStyle);
}
}
onTouchEnd={
(evt) => {
evt.preventDefault();
evt.preventDefault();
this.handleButtonMouseUp(buttonStyle);
}
}
@@ -935,22 +1015,41 @@ const PluginControl =
)
)
: ((isSelect || isAbSwitch || isOnOffSwitch) ? (
: (isSelect || isAbSwitch || isOnOffSwitch) ? (
this.makeSelect(control, value)
) : (
<div style={{ flex: "0 1 auto" }}>
<DialIcon ref={this.imgRef}
style={{
overscrollBehavior: "none", touchAction: "none", fill: dialColor,
width: 36, height: 36, opacity: DEFAULT_OPACITY, transform: this.getRotationTransform()
}}
onTouchStart={this.onTouchStart} onTouchMove={this.onTouchMove}
onPointerDown={this.onPointerDown} onPointerUp={this.onPointerUp} onPointerMoveCapture={this.onPointerMove} onDrag={this.onDrag}
)
: (isGraphicEq) ? (
<div style={{ flex: "0 1 auto" }}>
<GraphicEqCtl
imgRef={this.imgRef}
position={this.getEqPosition()}
dialColor={dialColor}
opacity={DEFAULT_OPACITY}
/>
</div>
)
)
onTouchStart={this.onTouchStart}
onTouchMove={this.onTouchMove}
onPointerDown={this.onPointerDown} onPointerUp={this.onPointerUp}
onPointerMoveCapture={this.onPointerMove}
onDrag={this.onDrag}
/>
</div>
) : (
<div style={{ flex: "0 1 auto" }}>
<DialIcon ref={this.imgRef}
style={{
overscrollBehavior: "none", touchAction: "none", fill: dialColor,
width: 36, height: 36, opacity: DEFAULT_OPACITY, transform: this.getRotationTransform()
}}
onTouchStart={this.onTouchStart} onTouchMove={this.onTouchMove}
onPointerDown={this.onPointerDown} onPointerUp={this.onPointerUp}
onPointerMoveCapture={this.onPointerMove}
onDrag={this.onDrag}
/>
</div>
)
}
</div>
@@ -969,6 +1068,8 @@ const PluginControl =
defaultValue={control.formatShortValue(value)}
error={this.state.error}
inputProps={{
min: this.props.uiControl?.min_value,
max: this.props.uiControl?.max_value,
'aria-label':
control.symbol + " value",
style: { textAlign: "center", fontSize: FONT_SIZE },
@@ -978,7 +1079,10 @@ const PluginControl =
onFocus={this.onInputFocus}
onKeyPress={this.onInputKeyPress} />
<div className={classes.displayValue} ref={this.displayValueRef} onClick={(e) => { this.inputRef.current!.focus(); }} >
<div className={classes.displayValue}
ref={this.displayValueRef} onClick={(e) => { this.inputRef.current!.focus(); }}
style={{display: this.state.editFocused? "none": "block"}}
>
<Typography noWrap color="inherit" style={{ fontSize: "12.8px", paddingTop: 4, paddingBottom: 6 }}
>