Toob Flanger, Stereo Reverb, bug fixes

- support state in factory presets.
- Use uncompressed json for settings files.
- Set current plugin preset name to last loaded plugin preset.
- Append plugins after  start node,  before end node fixed.
- Correctly release web socket when web app goes idle.
- Fit and finish issues.
This commit is contained in:
Robin Davies
2023-06-07 04:57:13 -04:00
parent 9dcbf3d00b
commit a3dca9fa5c
133 changed files with 2715 additions and 998 deletions
+7 -1
View File
@@ -7,6 +7,7 @@
{
"name": "(gdb) generic",
"type": "cppdbg",
@@ -50,6 +51,10 @@
// it gets resolved by CMake Tools:
"name": "PATH",
"value": "$PATH:${command:cmake.launchTargetDirectory}"
},
{
"name": "LD_LIBRARY_PATH",
"value": "/usr/local/lib/aarch64-linux-gnu"
}
],
"externalConsole": false,
@@ -73,7 +78,8 @@
"args": [
//"[Dev]" -- all dev-machine tests.
//"[json_variants]" // subtest of your choice, or none to run all of the tests.
"[inverting_mutex_test]"
//"[inverting_mutex_test]"
"[utf8_to_utf32]"
],
"stopAtEntry": false,
+2 -2
View File
@@ -1,10 +1,10 @@
cmake_minimum_required(VERSION 3.16.0)
project(pipedal
VERSION 1.1.24
VERSION 1.1.25
DESCRIPTION "PiPedal Guitar Effect Pedal For Raspberry Pi"
HOMEPAGE_URL "https://rerdavies.github.io/pipedal"
)
set (DISPLAY_VERSION "v1.1.24")
set (DISPLAY_VERSION "v1.1.25")
set (CMAKE_INSTALL_PREFIX "/usr/")
+1 -1
View File
@@ -1,7 +1,7 @@
<img src='docs/GithubBanner.png' width="100%" /><br/>
Download: <a href='https://rerdavies.github.io/pipedal/download.html'>v1.1.24</a>
Download: <a href='https://rerdavies.github.io/pipedal/download.html'>v1.1.25</a>
Website: [https://rerdavies.github.io/pipedal](https://rerdavies.github.io/pipedal).
+1 -1
View File
@@ -9,6 +9,6 @@ Package: pipedal
Pre-Depends: hostapd;authbind;dnsmasq
Priority: optional
Section: sound
Version: 1.1.24
Version: 1.1.25
Installed-Size: 15147
@@ -1 +0,0 @@
{"pluginUri": "urn:zamaudio:ZaMaximX2","presets": [{"instanceId": 1,"label": "Zero","controlValues": {"ceil": 0,"rel": 25,"thresh": 0}}],"nextInstanceId": 2}
@@ -1 +0,0 @@
{"pluginUri": "urn:zamaudio:ZamGate","presets": [{"instanceId": 1,"label": "Default","controlValues": {"att": 50,"close": -50,"mak": 0,"mode": 0,"rel": 100,"sidechain": 0,"thr": -60}}],"nextInstanceId": 2}
@@ -1 +0,0 @@
{"pluginUri": "urn:zamaudio:ZamGateX2","presets": [{"instanceId": 1,"label": "Default","controlValues": {"att": 50,"close": -50,"mak": 0,"mode": 0,"rel": 100,"sidechain": 0,"thr": -60}}],"nextInstanceId": 2}
@@ -1 +0,0 @@
{"pluginUri": "urn:zamaudio:ZamGrains","presets": [ ],"nextInstanceId": 1}
@@ -1 +0,0 @@
{"pluginUri": "urn:zamaudio:ZamHeadX2","presets": [{"instanceId": 1,"label": "Zero","controlValues": {"az": 0,"elev": 0,"width": 1}}],"nextInstanceId": 2}
@@ -1 +0,0 @@
{"pluginUri": "urn:zamaudio:ZamPhono","presets": [ ],"nextInstanceId": 1}
@@ -1 +0,0 @@
{"pluginUri": "urn:zamaudio:ZamTube","presets": [ ],"nextInstanceId": 1}
@@ -1 +0,0 @@
{"pluginUri": "urn:zamaudio:ZamVerb","presets": [ ],"nextInstanceId": 1}
@@ -1 +0,0 @@
{"pluginUri": "http://two-play.com/plugins/toob-delay","presets": [{"instanceId": 1,"label": "Classic","controlValues": {"delay": 340,"feedback": 39.1666679,"level": 27}},{"instanceId": 2,"label": "Slapback","controlValues": {"delay": 94.6446991,"feedback": 39.1666679,"level": 42}}],"nextInstanceId": 3}
@@ -1 +0,0 @@
{"pluginUri": "http://two-play.com/plugins/toob-ml","presets": [{"instanceId": 1,"label": "Fender Clean","controlValues": {"bass": 0.783333361,"gain": 0,"master": 1.5,"mid": 0.5,"model": 8,"treble": 0.550000012,"trim": -3}},{"instanceId": 2,"label": "Mesa Crunch","controlValues": {"bass": 0.650000036,"gain": 0,"master": 1.5,"mid": 0.5,"model": 17,"treble": 0.550000012,"trim": -3}},{"instanceId": 3,"label": "Sparkling Clean","controlValues": {"bass": 0.650000036,"gain": 0,"master": 1.5,"mid": 0.5,"model": 19,"treble": 0.550000012,"trim": -3}}],"nextInstanceId": 4}
@@ -1 +0,0 @@
{"pluginUri": "urn:zamaudio:ZaMultiComp","presets": [{"instanceId": 1,"label": "Presence","controlValues": {"att1": 10,"att2": 10,"att3": 10,"globalgain": 0,"kn1": 3,"kn2": 3,"kn3": 3,"listen1": 0,"listen2": 0,"listen3": 0,"mak1": 9,"mak2": 6,"mak3": 6,"rat1": 5,"rat2": 5,"rat3": 5,"rel1": 200,"rel2": 200,"rel3": 200,"thr1": -20,"thr2": -18,"thr3": -16,"toggle1": 1,"toggle2": 1,"toggle3": 1,"xover1": 160,"xover2": 1400}},{"instanceId": 2,"label": "Zero","controlValues": {"att1": 10,"att2": 10,"att3": 10,"globalgain": 0,"kn1": 0,"kn2": 0,"kn3": 0,"listen1": 0,"listen2": 0,"listen3": 0,"mak1": 0,"mak2": 0,"mak3": 0,"rat1": 4,"rat2": 4,"rat3": 4,"rel1": 80,"rel2": 80,"rel3": 80,"thr1": -20,"thr2": -18,"thr3": -16,"toggle1": 0,"toggle2": 0,"toggle3": 0,"xover1": 160,"xover2": 1400}}],"nextInstanceId": 3}
@@ -1 +0,0 @@
{"pluginUri": "urn:zamaudio:ZaMultiCompX2","presets": [{"instanceId": 1,"label": "Zero","controlValues": {"att1": 10,"att2": 10,"att3": 10,"globalgain": 0,"kn1": 0,"kn2": 0,"kn3": 0,"listen1": 0,"listen2": 0,"listen3": 0,"mak1": 0,"mak2": 0,"mak3": 0,"rat1": 4,"rat2": 4,"rat3": 4,"rel1": 80,"rel2": 80,"rel3": 80,"stereodet": 1,"thr1": -20,"thr2": -18,"thr3": -16,"toggle1": 0,"toggle2": 0,"toggle3": 0,"xover1": 160,"xover2": 1400}},{"instanceId": 2,"label": "Presence","controlValues": {"att1": 10,"att2": 10,"att3": 10,"globalgain": 0,"kn1": 3,"kn2": 3,"kn3": 3,"listen1": 0,"listen2": 0,"listen3": 0,"mak1": 9,"mak2": 6,"mak3": 6,"rat1": 5,"rat2": 5,"rat3": 5,"rel1": 200,"rel2": 200,"rel3": 200,"stereodet": 1,"thr1": -20,"thr2": -18,"thr3": -16,"toggle1": 1,"toggle2": 1,"toggle3": 1,"xover1": 160,"xover2": 1400}}],"nextInstanceId": 3}
@@ -1 +0,0 @@
{"pluginUri": "urn:zamaudio:ZamComp","presets": [{"instanceId": 1,"label": "Zero","controlValues": {"att": 10,"kn": 0,"mak": 0,"rat": 4,"rel": 80,"sidech": 0,"slew": 1,"thr": 0}},{"instanceId": 2,"label": "VocalLeveller","controlValues": {"att": 50,"kn": 8,"mak": 9,"rat": 5,"rel": 400,"sidech": 0,"slew": 1,"thr": -16}},{"instanceId": 3,"label": "PoppySnare","controlValues": {"att": 10,"kn": 1,"mak": 6,"rat": 5,"rel": 10,"sidech": 0,"slew": 20,"thr": -18}}],"nextInstanceId": 4}
@@ -1 +0,0 @@
{"pluginUri": "urn:zamaudio:ZamCompX2","presets": [{"instanceId": 1,"label": "PoppySnare","controlValues": {"att": 10,"kn": 1,"mak": 6,"rat": 5,"rel": 10,"sidechain": 0,"slew": 20,"stereodet": 1,"thr": -18}},{"instanceId": 2,"label": "VocalLeveller","controlValues": {"att": 50,"kn": 8,"mak": 9,"rat": 5,"rel": 400,"sidechain": 0,"slew": 1,"stereodet": 1,"thr": -16}},{"instanceId": 3,"label": "Zero","controlValues": {"att": 10,"kn": 0,"mak": 0,"rat": 4,"rel": 80,"sidechain": 0,"slew": 1,"stereodet": 0,"thr": 0}}],"nextInstanceId": 4}
@@ -1 +0,0 @@
{"pluginUri": "urn:zamaudio:ZamDelay","presets": [ ],"nextInstanceId": 1}
@@ -1 +0,0 @@
{"pluginUri": "urn:zamaudio:ZamDynamicEQ","presets": [{"instanceId": 1,"label": "Zero","controlValues": {"att": 10,"boostcut": 0,"detectfreq": 1000,"kn": 0,"max": 10,"rat": 1.5,"rel": 80,"sidech": 0,"slew": 1,"targetfreq": 1000,"targetwidth": 1,"thr": 0,"togglehigh": 0,"togglelow": 0,"togglepeak": 1}},{"instanceId": 2,"label": "PoppySnare","controlValues": {"att": 10,"boostcut": 0,"detectfreq": 1000,"kn": 1,"max": 10,"rat": 1.5,"rel": 10,"sidech": 0,"slew": 20,"targetfreq": 1000,"targetwidth": 1,"thr": -18,"togglehigh": 0,"togglelow": 0,"togglepeak": 1}}],"nextInstanceId": 3}
@@ -1 +0,0 @@
{"pluginUri": "urn:zamaudio:ZamEQ2","presets": [{"instanceId": 1,"label": "Zero","controlValues": {"boost1": 0,"boost2": 0,"boosth": 0,"boostl": 0,"bw1": 1,"bw2": 1,"f1": 500,"f2": 3000,"fh": 8000,"fl": 250,"master": 0,"peaks": 0}},{"instanceId": 2,"label": "CarvedBass","controlValues": {"boost1": 0,"boost2": 0,"boosth": 0,"boostl": 6,"bw1": 1,"bw2": 1,"f1": 500,"f2": 3000,"fh": 8000,"fl": 60,"master": -6,"peaks": 0}},{"instanceId": 3,"label": "CarvedVox","controlValues": {"boost1": 0,"boost2": 0,"boosth": 6,"boostl": 6,"bw1": 1,"bw2": 1,"f1": 500,"f2": 3000,"fh": 330,"fl": 6600,"master": -12,"peaks": 0}},{"instanceId": 4,"label": "CarvedGuitar","controlValues": {"boost1": 5.5999999,"boost2": 0.699999988,"boosth": 0,"boostl": -1.04999995,"bw1": 1.46000004,"bw2": 1.33000004,"f1": 175,"f2": 500,"fh": 8000,"fl": 30,"master": -6,"peaks": 0}}],"nextInstanceId": 5}
@@ -1 +0,0 @@
{"pluginUri": "urn:zamaudio:ZamGEQ31","presets": [{"instanceId": 1,"label": "Default","controlValues": {"band1": 0,"band10": 0,"band11": 0,"band12": 0,"band13": 0,"band14": 0,"band15": 0,"band16": 0,"band17": 0,"band18": 0,"band19": 0,"band2": 0,"band20": 0,"band21": 0,"band22": 0,"band23": 0,"band24": 0,"band25": 0,"band26": 0,"band27": 0,"band28": 0,"band29": 0,"band3": 0,"band4": 0,"band5": 0,"band6": 0,"band7": 0,"band8": 0,"band9": 0,"master": 0}}],"nextInstanceId": 2}
@@ -1 +0,0 @@
{"entries": [{"pluginUri": "urn:zamaudio:ZaMaximX2","fileName": "1.json"},{"pluginUri": "urn:zamaudio:ZaMultiComp","fileName": "2.json"},{"pluginUri": "urn:zamaudio:ZaMultiCompX2","fileName": "3.json"},{"pluginUri": "urn:zamaudio:ZamComp","fileName": "4.json"},{"pluginUri": "urn:zamaudio:ZamCompX2","fileName": "5.json"},{"pluginUri": "urn:zamaudio:ZamDelay","fileName": "6.json"},{"pluginUri": "urn:zamaudio:ZamDynamicEQ","fileName": "7.json"},{"pluginUri": "urn:zamaudio:ZamEQ2","fileName": "8.json"},{"pluginUri": "urn:zamaudio:ZamGEQ31","fileName": "9.json"},{"pluginUri": "urn:zamaudio:ZamGate","fileName": "10.json"},{"pluginUri": "urn:zamaudio:ZamGateX2","fileName": "11.json"},{"pluginUri": "urn:zamaudio:ZamGrains","fileName": "12.json"},{"pluginUri": "urn:zamaudio:ZamHeadX2","fileName": "13.json"},{"pluginUri": "urn:zamaudio:ZamPhono","fileName": "14.json"},{"pluginUri": "urn:zamaudio:ZamTube","fileName": "15.json"},{"pluginUri": "urn:zamaudio:ZamVerb","fileName": "16.json"},{"pluginUri": "http://two-play.com/plugins/toob-delay","fileName": "17.json"},{"pluginUri": "http://two-play.com/plugins/toob-ml","fileName": "18.json"}],"nextInstanceId": 19}
File diff suppressed because one or more lines are too long
-1
View File
@@ -1 +0,0 @@
{"selectedBank": 1,"nextInstanceId": 1,"entries": [{"instanceId": 1,"name": "Default Bank"}]}
-1
View File
@@ -1 +0,0 @@
{"pluginUri": "urn:zamaudio:ZaMaximX2","presets": [{"instanceId": 1,"label": "Zero","controlValues": {"ceil": 0,"rel": 25,"thresh": 0}}],"nextInstanceId": 2}
-1
View File
@@ -1 +0,0 @@
{"pluginUri": "urn:zamaudio:ZamGate","presets": [{"instanceId": 1,"label": "Default","controlValues": {"att": 50,"close": -50,"mak": 0,"mode": 0,"rel": 100,"sidechain": 0,"thr": -60}}],"nextInstanceId": 2}
-1
View File
@@ -1 +0,0 @@
{"pluginUri": "urn:zamaudio:ZamGateX2","presets": [{"instanceId": 1,"label": "Default","controlValues": {"att": 50,"close": -50,"mak": 0,"mode": 0,"rel": 100,"sidechain": 0,"thr": -60}}],"nextInstanceId": 2}
-1
View File
@@ -1 +0,0 @@
{"pluginUri": "urn:zamaudio:ZamGrains","presets": [ ],"nextInstanceId": 1}
-1
View File
@@ -1 +0,0 @@
{"pluginUri": "urn:zamaudio:ZamHeadX2","presets": [{"instanceId": 1,"label": "Zero","controlValues": {"az": 0,"elev": 0,"width": 1}}],"nextInstanceId": 2}
-1
View File
@@ -1 +0,0 @@
{"pluginUri": "urn:zamaudio:ZamPhono","presets": [ ],"nextInstanceId": 1}
-1
View File
@@ -1 +0,0 @@
{"pluginUri": "urn:zamaudio:ZamTube","presets": [ ],"nextInstanceId": 1}
-1
View File
@@ -1 +0,0 @@
{"pluginUri": "urn:zamaudio:ZamVerb","presets": [ ],"nextInstanceId": 1}
-1
View File
@@ -1 +0,0 @@
{"pluginUri": "http://two-play.com/plugins/toob-delay","presets": [{"instanceId": 1,"label": "Classic","controlValues": {"delay": 340,"feedback": 39.1666679,"level": 27}},{"instanceId": 2,"label": "Slapback","controlValues": {"delay": 94.6446991,"feedback": 39.1666679,"level": 42}}],"nextInstanceId": 3}
-1
View File
@@ -1 +0,0 @@
{"pluginUri": "http://two-play.com/plugins/toob-ml","presets": [{"instanceId": 1,"label": "Fender Clean","controlValues": {"bass": 0.783333361,"gain": 0,"master": 1.5,"mid": 0.5,"model": 8,"treble": 0.550000012,"trim": -3}},{"instanceId": 2,"label": "Mesa Crunch","controlValues": {"bass": 0.650000036,"gain": 0,"master": 1.5,"mid": 0.5,"model": 17,"treble": 0.550000012,"trim": -3}},{"instanceId": 3,"label": "Sparkling Clean","controlValues": {"bass": 0.650000036,"gain": 0,"master": 1.5,"mid": 0.5,"model": 19,"treble": 0.550000012,"trim": -3}}],"nextInstanceId": 4}
-1
View File
@@ -1 +0,0 @@
{"pluginUri": "http://calf.sourceforge.net/plugins/Filter","presets": [{"instanceId": 1,"label": "Distant Headphones","controlValues": {"freq": 305.817993,"inertia": 74,"mode": 3,"res": 0.707000017},"state": [false,{}]},{"instanceId": 2,"label": "Totally muted","controlValues": {"freq": 10,"inertia": 20,"mode": 2,"res": 0.707000017},"state": [false,{}]},{"instanceId": 3,"label": "Disco","controlValues": {"freq": 193.820999,"inertia": 74,"mode": 0,"res": 1.37955999},"state": [false,{}]}],"nextInstanceId": 4}
-1
View File
@@ -1 +0,0 @@
{"pluginUri": "urn:zamaudio:ZaMultiComp","presets": [{"instanceId": 1,"label": "Presence","controlValues": {"att1": 10,"att2": 10,"att3": 10,"globalgain": 0,"kn1": 3,"kn2": 3,"kn3": 3,"listen1": 0,"listen2": 0,"listen3": 0,"mak1": 9,"mak2": 6,"mak3": 6,"rat1": 5,"rat2": 5,"rat3": 5,"rel1": 200,"rel2": 200,"rel3": 200,"thr1": -20,"thr2": -18,"thr3": -16,"toggle1": 1,"toggle2": 1,"toggle3": 1,"xover1": 160,"xover2": 1400}},{"instanceId": 2,"label": "Zero","controlValues": {"att1": 10,"att2": 10,"att3": 10,"globalgain": 0,"kn1": 0,"kn2": 0,"kn3": 0,"listen1": 0,"listen2": 0,"listen3": 0,"mak1": 0,"mak2": 0,"mak3": 0,"rat1": 4,"rat2": 4,"rat3": 4,"rel1": 80,"rel2": 80,"rel3": 80,"thr1": -20,"thr2": -18,"thr3": -16,"toggle1": 0,"toggle2": 0,"toggle3": 0,"xover1": 160,"xover2": 1400}}],"nextInstanceId": 3}
-1
View File
@@ -1 +0,0 @@
{"pluginUri": "http://calf.sourceforge.net/plugins/Flanger","presets": [{"instanceId": 1,"label": "Allpass filter","controlValues": {"amount": 1.85318005,"dry": 1,"feedback": -0.446399987,"min_delay": 2.63027,"mod_depth": 0.5,"mod_rate": 2.56892991,"reset": 0,"stereo": 0},"state": [false,{}]},{"instanceId": 2,"label": "Tooth Killer","controlValues": {"amount": 0.318639994,"feedback": 0.99000001,"min_delay": 0.363077998,"mod_depth": 0.181538999,"mod_rate": 0.100419},"state": [false,{}]},{"instanceId": 3,"label": "Waterlike","controlValues": {"amount": 0.926587999,"feedback": -0.169200003,"min_delay": 0.478630006,"mod_depth": 0.722720027,"mod_rate": 1.67184997},"state": [false,{}]},{"instanceId": 4,"label": "Chorus Lite","controlValues": {"amount": 0.632878006,"feedback": 0.0683998987,"min_delay": 10,"mod_depth": 2.08435011,"mod_rate": 0.910154998},"state": [false,{}]},{"instanceId": 5,"label": "Fast Sweep","controlValues": {"amount": 0.926587999,"feedback": 0.761399984,"min_delay": 0.100000001,"mod_depth": 4.35481977,"mod_rate": 5.22819996},"state": [false,{}]},{"instanceId": 6,"label": "Slow Resonant","controlValues": {"amount": 1,"feedback": -0.882000029,"min_delay": 0.125892997,"mod_depth": 0.362217993,"mod_rate": 0.146847993},"state": [false,{}]},{"instanceId": 7,"label": "Warble","controlValues": {"amount": 0.318639994,"feedback": -0.99000001,"min_delay": 0.218776003,"mod_depth": 0.181538999,"mod_rate": 20},"state": [false,{}]}],"nextInstanceId": 8}
-1
View File
@@ -1 +0,0 @@
{"pluginUri": "http://calf.sourceforge.net/plugins/MonoCompressor","presets": [{"instanceId": 1,"label": "Vocal Leveller","controlValues": {"attack": 3.10086989,"bypass": 0,"clip_in": 0,"clip_out": 1,"compression": 0.176127002,"detection": 0,"knee": 8,"level_in": 1,"makeup": 4.85678005,"meter_in": 0.847831011,"meter_out": 0.908609986,"ratio": 4.25008011,"release": 25.0011997,"stereo_link": 0,"threshold": 0.0883883983},"state": [false,{}]},{"instanceId": 2,"label": "Vocal Leveller 2","controlValues": {"attack": 10.5095997,"bypass": 0,"clip_in": 0,"clip_out": 1,"compression": 0.247421995,"detection": 0,"knee": 8,"level_in": 1,"makeup": 4.85678005,"meter_in": 0.533456981,"meter_out": 0.740245998,"ratio": 4.25008011,"release": 106.851997,"stereo_link": 0,"threshold": 0.0883883983},"state": [false,{}]},{"instanceId": 3,"label": "Snare Mic","controlValues": {"attack": 3.5034399,"bypass": 0,"clip_in": 0,"clip_out": 0,"compression": 1,"detection": 0,"knee": 1,"level_in": 1.05701995,"makeup": 2.94853997,"meter_in": 0,"meter_out": 0,"ratio": 3.00696993,"release": 21.8598995,"stereo_link": 0,"threshold": 0.164939001},"state": [false,{}]},{"instanceId": 4,"label": "Snare Mic 2","controlValues": {"attack": 10.5095997,"bypass": 0,"clip_in": 0,"clip_out": 0,"compression": 1,"detection": 0,"knee": 1,"level_in": 1.05701995,"makeup": 2.94853997,"meter_in": 0,"meter_out": 0,"ratio": 3.00696993,"release": 80.6973038,"stereo_link": 0,"threshold": 0.164939001},"state": [false,{}]}],"nextInstanceId": 5}
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
-1
View File
@@ -1 +0,0 @@
{"pluginUri": "http://calf.sourceforge.net/plugins/Reverb","presets": [{"instanceId": 1,"label": "Ambience","controlValues": {"amount": 0.291182995,"bass_cut": 514.078979,"decay_time": 1.10353994,"diffusion": 0.689999998,"dry": 1,"hf_damp": 2182.58008,"predelay": 6.5,"room_size": 4,"treble_cut": 4064.1499},"state": [false,{}]},{"instanceId": 2,"label": "Large Occupied Hall","controlValues": {"amount": 0.184284002,"decay_time": 1.45396996,"hf_damp": 9795.58008},"state": [false,{}]},{"instanceId": 3,"label": "Room","controlValues": {"amount": 0.469761014,"bass_cut": 257.649994,"decay_time": 0.445944995,"diffusion": 0.540000021,"dry": 1,"hf_damp": 5508.45996,"predelay": 25,"room_size": 4,"treble_cut": 20000},"state": [false,{}]},{"instanceId": 4,"label": "Large Empty Hall","controlValues": {"amount": 0.366021991,"decay_time": 2.00689006,"hf_damp": 20000},"state": [false,{}]},{"instanceId": 5,"label": "DiscoVerb","controlValues": {"amount": 0.269807011,"decay_time": 1,"hf_damp": 3396.48999},"state": [false,{}]},{"instanceId": 6,"label": "Empty walls","controlValues": {"amount": 0.198883995,"bass_cut": 240.453003,"decay_time": 0.505686998,"diffusion": 0.170000002,"dry": 1,"hf_damp": 3971.63989,"predelay": 13,"room_size": 4,"treble_cut": 3303.46997},"state": [false,{}]}],"nextInstanceId": 7}
-1
View File
@@ -1 +0,0 @@
{"pluginUri": "http://calf.sourceforge.net/plugins/Wavetable","presets": [{"instanceId": 1,"label": "Jazz Guitar","controlValues": {"adsr2_a": 1,"adsr2_d": 350,"adsr2_r": 50,"adsr2_s": 0.5,"adsr2_v": 1,"adsr3_a": 1,"adsr3_d": 350,"adsr3_r": 50,"adsr3_s": 0.5,"adsr3_v": 0,"adsr_a": 1,"adsr_d": 1863.34998,"adsr_r": 50,"adsr_s": 0.0299999993,"adsr_v": 0.5,"o1detune": 1,"o1level": 0.133972004,"o1offset": 0.0399999991,"o1trans": 0,"o1wave": 20,"o2detune": -1,"o2level": 0,"o2offset": 0.140000001,"o2trans": 0,"o2wave": 16},"state": [false,{}]},{"instanceId": 2,"label": "Reed","controlValues": {"adsr2_a": 1,"adsr2_d": 350,"adsr2_r": 50,"adsr2_s": 0.5,"adsr2_v": 1,"adsr3_a": 1,"adsr3_d": 350,"adsr3_r": 50,"adsr3_s": 0.5,"adsr3_v": 0,"adsr_a": 78.0643997,"adsr_d": 350,"adsr_r": 50,"adsr_s": 0.5,"adsr_v": 1,"o1detune": 6,"o1level": 0.100000001,"o1offset": -0.280000001,"o1trans": 0,"o1wave": 23,"o2detune": -6,"o2level": 0.0669858009,"o2offset": 0.400000006,"o2trans": 0,"o2wave": 24},"state": [false,{}]},{"instanceId": 3,"label": "AmbiDeXtrous","controlValues": {"adsr2_a": 1,"adsr2_d": 60.9300003,"adsr2_r": 50,"adsr2_s": 0,"adsr2_v": 1,"adsr3_a": 1,"adsr3_d": 350,"adsr3_r": 50,"adsr3_s": 0.5,"adsr3_v": 0,"adsr_a": 1,"adsr_d": 1274.21997,"adsr_r": 50,"adsr_s": 0.389999986,"adsr_v": 1,"o1detune": 6,"o1level": 0.03125,"o1offset": -0.0199999996,"o1trans": 0,"o1wave": 13,"o2detune": -6,"o2level": 0.0412346013,"o2offset": 0.0199999996,"o2trans": 0,"o2wave": 15},"state": [false,{}]},{"instanceId": 4,"label": "Double Reed","controlValues": {"adsr2_a": 1,"adsr2_d": 350,"adsr2_r": 50,"adsr2_s": 0.5,"adsr2_v": 1,"adsr3_a": 1,"adsr3_d": 350,"adsr3_r": 50,"adsr3_s": 0.5,"adsr3_v": 0,"adsr_a": 78.0643997,"adsr_d": 350,"adsr_r": 50,"adsr_s": 0.5,"adsr_v": 1,"o1detune": 6,"o1level": 0.100000001,"o1offset": 0.0199999996,"o1trans": 0,"o1wave": 24,"o2detune": -6,"o2level": 0.0669858009,"o2offset": 0.239999995,"o2trans": -12,"o2wave": 23},"state": [false,{}]},{"instanceId": 5,"label": "Sharp Sync","controlValues": {"adsr2_a": 1,"adsr2_d": 350,"adsr2_r": 50,"adsr2_s": 0.5,"adsr2_v": 0,"adsr3_a": 1,"adsr3_d": 350,"adsr3_r": 50,"adsr3_s": 0.5,"adsr3_v": 0,"adsr_a": 1,"adsr_d": 350,"adsr_r": 50,"adsr_s": 0.5,"adsr_v": 0,"o1detune": 6,"o1level": 0.03125,"o1offset": -0.0599999987,"o1trans": 0,"o1wave": 0,"o2detune": -5,"o2level": 0.0441941991,"o2offset": -0.519999981,"o2trans": 0,"o2wave": 11},"state": [false,{}]},{"instanceId": 6,"label": "Swish","controlValues": {"adsr2_a": 1,"adsr2_d": 350,"adsr2_r": 50,"adsr2_s": 0.5,"adsr2_v": 1,"adsr3_a": 1,"adsr3_d": 350,"adsr3_r": 50,"adsr3_s": 0.5,"adsr3_v": 0,"adsr_a": 47.5774994,"adsr_d": 350,"adsr_r": 50,"adsr_s": 0.5,"adsr_v": 1,"o1detune": 6,"o1level": 0.100000001,"o1offset": -0.319999993,"o1trans": 0,"o1wave": 1,"o2detune": -6,"o2level": 0,"o2offset": 0.400000006,"o2trans": 0,"o2wave": 0},"state": [false,{}]}],"nextInstanceId": 7}
File diff suppressed because one or more lines are too long
-1
View File
@@ -1 +0,0 @@
{"pluginUri": "http://drobilla.net/plugins/mda/Detune","presets": [{"instanceId": 1,"label": "Stereo Detune","controlValues": {"detune": 0.200000003,"latency": 0.5,"mix": 0.899999976,"output": 0.5},"state": [false,{}]},{"instanceId": 2,"label": "Symphonic","controlValues": {"detune": 0.200000003,"latency": 0.5,"mix": 0.899999976,"output": 0.5},"state": [false,{}]},{"instanceId": 3,"label": "Out Of Tune","controlValues": {"detune": 0.800000012,"latency": 0.5,"mix": 0.699999988,"output": 0.5},"state": [false,{}]}],"nextInstanceId": 4}
File diff suppressed because one or more lines are too long
-1
View File
@@ -1 +0,0 @@
{"pluginUri": "http://drobilla.net/plugins/mda/Leslie","presets": [{"instanceId": 1,"label": "Default","controlValues": {"hi_depth": 0.600000024,"hi_throb": 0.699999988,"hi_width": 0.699999988,"lo_throb": 0.600000024,"lo_width": 0.5,"mode": 0.5,"output": 0.5,"speed": 0.5,"x_over": 0.479999989},"state": [false,{}]},{"instanceId": 2,"label": "Slow","controlValues": {"hi_depth": 0.75,"hi_throb": 0.569999993,"hi_width": 0.699999988,"lo_throb": 0.600000024,"lo_width": 0.5,"mode": 0.5,"output": 0.5,"speed": 0.5,"x_over": 0.479999989},"state": [false,{}]},{"instanceId": 3,"label": "Fast","controlValues": {"hi_depth": 0.600000024,"hi_throb": 0.699999988,"hi_width": 0.699999988,"lo_throb": 0.600000024,"lo_width": 0.5,"mode": 1,"output": 0.5,"speed": 0.5,"x_over": 0.479999989},"state": [false,{}]}],"nextInstanceId": 4}
-1
View File
@@ -1 +0,0 @@
{"pluginUri": "urn:zamaudio:ZaMultiCompX2","presets": [{"instanceId": 1,"label": "Zero","controlValues": {"att1": 10,"att2": 10,"att3": 10,"globalgain": 0,"kn1": 0,"kn2": 0,"kn3": 0,"listen1": 0,"listen2": 0,"listen3": 0,"mak1": 0,"mak2": 0,"mak3": 0,"rat1": 4,"rat2": 4,"rat3": 4,"rel1": 80,"rel2": 80,"rel3": 80,"stereodet": 1,"thr1": -20,"thr2": -18,"thr3": -16,"toggle1": 0,"toggle2": 0,"toggle3": 0,"xover1": 160,"xover2": 1400}},{"instanceId": 2,"label": "Presence","controlValues": {"att1": 10,"att2": 10,"att3": 10,"globalgain": 0,"kn1": 3,"kn2": 3,"kn3": 3,"listen1": 0,"listen2": 0,"listen3": 0,"mak1": 9,"mak2": 6,"mak3": 6,"rat1": 5,"rat2": 5,"rat3": 5,"rel1": 200,"rel2": 200,"rel3": 200,"stereodet": 1,"thr1": -20,"thr2": -18,"thr3": -16,"toggle1": 1,"toggle2": 1,"toggle3": 1,"xover1": 160,"xover2": 1400}}],"nextInstanceId": 3}
-1
View File
@@ -1 +0,0 @@
{"pluginUri": "http://drobilla.net/plugins/mda/Piano","presets": [{"instanceId": 1,"label": "Broken Piano","controlValues": {"env_decay": 0.0500000007,"env_release": 0.957000017,"fine_tuning": 0.449999988,"hardness_offset": 0.5,"muffling_filter": 0.298999995,"polyphony": 0.330000013,"random_detuning": 0.717999995,"stereo_width": 0.5,"stretch_tuning": 0,"vel_sensitivity": 0,"vel_to_hardness": 0.5,"vel_to_muffling": 1},"state": [false,{}]},{"instanceId": 2,"label": "Plain Piano","controlValues": {"env_decay": 0.5,"env_release": 0.5,"fine_tuning": 0.5,"hardness_offset": 0.5,"muffling_filter": 0.750999987,"polyphony": 0,"random_detuning": 0,"stereo_width": 0,"stretch_tuning": 0.5,"vel_sensitivity": 0.451999992,"vel_to_hardness": 0.5,"vel_to_muffling": 0},"state": [false,{}]},{"instanceId": 3,"label": "MDA Piano","controlValues": {"env_decay": 0.5,"env_release": 0.5,"fine_tuning": 0.5,"hardness_offset": 0.5,"muffling_filter": 0.802999973,"polyphony": 0.330000013,"random_detuning": 0.246000007,"stereo_width": 0.5,"stretch_tuning": 0.5,"vel_sensitivity": 0.375999987,"vel_to_hardness": 0.5,"vel_to_muffling": 0.250999987},"state": [false,{}]},{"instanceId": 4,"label": "Compressed Piano","controlValues": {"env_decay": 0.90200001,"env_release": 0.398999989,"fine_tuning": 0.5,"hardness_offset": 0.623000026,"muffling_filter": 1,"polyphony": 0.330000013,"random_detuning": 0,"stereo_width": 0.499000013,"stretch_tuning": 0.5,"vel_sensitivity": 0.298999995,"vel_to_hardness": 0.5,"vel_to_muffling": 0.331},"state": [false,{}]},{"instanceId": 5,"label": "Dark Piano","controlValues": {"env_decay": 0.5,"env_release": 0.601999998,"fine_tuning": 0.5,"hardness_offset": 0,"muffling_filter": 0.30399999,"polyphony": 0.330000013,"random_detuning": 0.317000002,"stereo_width": 0.651000023,"stretch_tuning": 0.5,"vel_sensitivity": 0.335999995,"vel_to_hardness": 0.5,"vel_to_muffling": 0.200000003},"state": [false,{}]},{"instanceId": 6,"label": "Concert Piano","controlValues": {"env_decay": 0.648000002,"env_release": 0.5,"fine_tuning": 0.5,"hardness_offset": 0.5,"muffling_filter": 0.298000008,"polyphony": 0.356000006,"random_detuning": 0.338999987,"stereo_width": 0.850000024,"stretch_tuning": 0.660000026,"vel_sensitivity": 0.550000012,"vel_to_hardness": 0.5,"vel_to_muffling": 0.601999998},"state": [false,{}]},{"instanceId": 7,"label": "School Piano","controlValues": {"env_decay": 0.449999988,"env_release": 0.59799999,"fine_tuning": 0.5,"hardness_offset": 0.625999987,"muffling_filter": 0.602999985,"polyphony": 0.330000013,"random_detuning": 0.421000004,"stereo_width": 0.331,"stretch_tuning": 0.800999999,"vel_sensitivity": 0.173999995,"vel_to_hardness": 0.5,"vel_to_muffling": 0.5},"state": [false,{}]},{"instanceId": 8,"label": "Dance Piano","controlValues": {"env_decay": 0.398999989,"env_release": 0.250999987,"fine_tuning": 0.5,"hardness_offset": 1,"muffling_filter": 0.671999991,"polyphony": 0.330000013,"random_detuning": 0.282999992,"stereo_width": 0.248999998,"stretch_tuning": 0.666999996,"vel_sensitivity": 0.127000004,"vel_to_hardness": 0.5,"vel_to_muffling": 0.123999998},"state": [false,{}]}],"nextInstanceId": 9}
-1
View File
@@ -1 +0,0 @@
{"pluginUri": "http://drobilla.net/plugins/mda/Splitter","presets": [{"instanceId": 1,"label": "Frequency/Level Splitter","controlValues": {"envelope": 0.5,"freq": 0.5,"freq_sw": 0.25,"level": 0.5,"level_sw": 0.5,"mode": 0,"output": 0.5},"state": [false,{}]},{"instanceId": 2,"label": "Pass Peaks Only","controlValues": {"envelope": 0.5,"freq": 0.5,"freq_sw": 0.5,"level": 0.5,"level_sw": 0,"mode": 0,"output": 0.5},"state": [false,{}]},{"instanceId": 3,"label": "Stereo Crossover","controlValues": {"envelope": 0.5,"freq": 0.5,"freq_sw": 0.25,"level": 0.5,"level_sw": 0.5,"mode": 0.666666985,"output": 0.5},"state": [false,{}]}],"nextInstanceId": 4}
-1
View File
@@ -1 +0,0 @@
{"pluginUri": "http://drobilla.net/plugins/mda/ThruZero","presets": [{"instanceId": 1,"label": "Phase Canceller","controlValues": {"depth": 0.200000003,"depth_mod": 1,"feedback": 0.300000012,"mix": 0.469999999,"rate": 0.5},"state": [false,{}]},{"instanceId": 2,"label": "Mad Modulator","controlValues": {"depth": 1,"depth_mod": 1,"feedback": 0.75,"mix": 0.5,"rate": 0.75},"state": [false,{}]},{"instanceId": 3,"label": "Chorus Doubler","controlValues": {"depth": 0.600000024,"depth_mod": 0.699999988,"feedback": 0.300000012,"mix": 0.349999994,"rate": 0.600000024},"state": [false,{}]},{"instanceId": 4,"label": "Thru-Zero Flanger","controlValues": {"depth": 0.430000007,"depth_mod": 1,"feedback": 0.300000012,"mix": 0.469999999,"rate": 0.300000012},"state": [false,{}]}],"nextInstanceId": 5}
-1
View File
@@ -1 +0,0 @@
{"pluginUri": "http://drobilla.net/plugins/mda/Vocoder","presets": [{"instanceId": 1,"label": "Default","controlValues": {"envelope": 0.159999996,"filter_q": 0.550000012,"hi_band": 0.400000006,"hi_thru": 0.400000006,"mid_freq": 0.666700006,"mod_in": 0,"output": 0.5,"quality": 0},"state": [false,{}]},{"instanceId": 2,"label": "Old Vocoder","controlValues": {"envelope": 0.159999996,"filter_q": 0.550000012,"hi_band": 0,"hi_thru": 0,"mid_freq": 0.5,"mod_in": 0,"output": 0.5,"quality": 0},"state": [false,{}]},{"instanceId": 3,"label": "Pad Vocoder","controlValues": {"envelope": 0.779999971,"filter_q": 0.550000012,"hi_band": 0.400000006,"hi_thru": 0.400000006,"mid_freq": 0.300000012,"mod_in": 0,"output": 0.5,"quality": 0},"state": [false,{}]},{"instanceId": 4,"label": "16 Band Vocoder","controlValues": {"envelope": 0.159999996,"filter_q": 0.550000012,"hi_band": 0.400000006,"hi_thru": 0.400000006,"mid_freq": 0.666700006,"mod_in": 0,"output": 0.5,"quality": 1},"state": [false,{}]},{"instanceId": 5,"label": "Choral Vocoder","controlValues": {"envelope": 0.159999996,"filter_q": 0.699999988,"hi_band": 0,"hi_thru": 0.400000006,"mid_freq": 0.5,"mod_in": 0,"output": 0.5,"quality": 0},"state": [false,{}]}],"nextInstanceId": 6}
-1
View File
@@ -1 +0,0 @@
{"pluginUri": "http://drobilla.net/plugins/mda/EPiano","presets": [{"instanceId": 1,"label": "Bright","controlValues": {"env_decay": 0.5,"env_release": 0.5,"fine_tuning": 0.5,"hardness": 1,"lfo_rate": 0.649999976,"modulation": 0.5,"overdrive": 0.5,"polyphonic": 1,"random_tuning": 0.145999998,"stereo_width": 0.5,"treble_boost": 0.800000012,"vel_sense": 0.25},"state": [false,{}]},{"instanceId": 2,"label": "Default","controlValues": {"env_decay": 0.5,"env_release": 0.5,"fine_tuning": 0.5,"hardness": 0.5,"lfo_rate": 0.649999976,"modulation": 0.5,"overdrive": 0,"polyphonic": 1,"random_tuning": 0.145999998,"stereo_width": 0.5,"treble_boost": 0.5,"vel_sense": 0.25},"state": [false,{}]},{"instanceId": 3,"label": "Tremolo","controlValues": {"env_decay": 0.5,"env_release": 0.5,"fine_tuning": 0.5,"hardness": 0.5,"lfo_rate": 0.649999976,"modulation": 0.75,"overdrive": 0,"polyphonic": 1,"random_tuning": 0.246000007,"stereo_width": 0.5,"treble_boost": 0.5,"vel_sense": 0.25},"state": [false,{}]},{"instanceId": 4,"label": "Mellow","controlValues": {"env_decay": 0.5,"env_release": 0.5,"fine_tuning": 0.5,"hardness": 0,"lfo_rate": 0.649999976,"modulation": 0.5,"overdrive": 0,"polyphonic": 1,"random_tuning": 0.246000007,"stereo_width": 0.5,"treble_boost": 0,"vel_sense": 0.25},"state": [false,{}]},{"instanceId": 5,"label": "Autopan","controlValues": {"env_decay": 0.5,"env_release": 0.5,"fine_tuning": 0.5,"hardness": 0.5,"lfo_rate": 0.649999976,"modulation": 0.25,"overdrive": 0,"polyphonic": 1,"random_tuning": 0.246000007,"stereo_width": 0.5,"treble_boost": 0.5,"vel_sense": 0.25},"state": [false,{}]}],"nextInstanceId": 6}
-1
View File
@@ -1 +0,0 @@
{"pluginUri": "urn:zamaudio:ZamComp","presets": [{"instanceId": 1,"label": "Zero","controlValues": {"att": 10,"kn": 0,"mak": 0,"rat": 4,"rel": 80,"sidech": 0,"slew": 1,"thr": 0}},{"instanceId": 2,"label": "VocalLeveller","controlValues": {"att": 50,"kn": 8,"mak": 9,"rat": 5,"rel": 400,"sidech": 0,"slew": 1,"thr": -16}},{"instanceId": 3,"label": "PoppySnare","controlValues": {"att": 10,"kn": 1,"mak": 6,"rat": 5,"rel": 10,"sidech": 0,"slew": 20,"thr": -18}}],"nextInstanceId": 4}
-1
View File
@@ -1 +0,0 @@
{"pluginUri": "urn:zamaudio:ZamCompX2","presets": [{"instanceId": 1,"label": "PoppySnare","controlValues": {"att": 10,"kn": 1,"mak": 6,"rat": 5,"rel": 10,"sidechain": 0,"slew": 20,"stereodet": 1,"thr": -18}},{"instanceId": 2,"label": "VocalLeveller","controlValues": {"att": 50,"kn": 8,"mak": 9,"rat": 5,"rel": 400,"sidechain": 0,"slew": 1,"stereodet": 1,"thr": -16}},{"instanceId": 3,"label": "Zero","controlValues": {"att": 10,"kn": 0,"mak": 0,"rat": 4,"rel": 80,"sidechain": 0,"slew": 1,"stereodet": 0,"thr": 0}}],"nextInstanceId": 4}
-1
View File
@@ -1 +0,0 @@
{"pluginUri": "urn:zamaudio:ZamDelay","presets": [ ],"nextInstanceId": 1}
-1
View File
@@ -1 +0,0 @@
{"pluginUri": "urn:zamaudio:ZamDynamicEQ","presets": [{"instanceId": 1,"label": "Zero","controlValues": {"att": 10,"boostcut": 0,"detectfreq": 1000,"kn": 0,"max": 10,"rat": 1.5,"rel": 80,"sidech": 0,"slew": 1,"targetfreq": 1000,"targetwidth": 1,"thr": 0,"togglehigh": 0,"togglelow": 0,"togglepeak": 1}},{"instanceId": 2,"label": "PoppySnare","controlValues": {"att": 10,"boostcut": 0,"detectfreq": 1000,"kn": 1,"max": 10,"rat": 1.5,"rel": 10,"sidech": 0,"slew": 20,"targetfreq": 1000,"targetwidth": 1,"thr": -18,"togglehigh": 0,"togglelow": 0,"togglepeak": 1}}],"nextInstanceId": 3}
-1
View File
@@ -1 +0,0 @@
{"pluginUri": "urn:zamaudio:ZamEQ2","presets": [{"instanceId": 1,"label": "Zero","controlValues": {"boost1": 0,"boost2": 0,"boosth": 0,"boostl": 0,"bw1": 1,"bw2": 1,"f1": 500,"f2": 3000,"fh": 8000,"fl": 250,"master": 0,"peaks": 0}},{"instanceId": 2,"label": "CarvedBass","controlValues": {"boost1": 0,"boost2": 0,"boosth": 0,"boostl": 6,"bw1": 1,"bw2": 1,"f1": 500,"f2": 3000,"fh": 8000,"fl": 60,"master": -6,"peaks": 0}},{"instanceId": 3,"label": "CarvedVox","controlValues": {"boost1": 0,"boost2": 0,"boosth": 6,"boostl": 6,"bw1": 1,"bw2": 1,"f1": 500,"f2": 3000,"fh": 330,"fl": 6600,"master": -12,"peaks": 0}},{"instanceId": 4,"label": "CarvedGuitar","controlValues": {"boost1": 5.5999999,"boost2": 0.699999988,"boosth": 0,"boostl": -1.04999995,"bw1": 1.46000004,"bw2": 1.33000004,"f1": 175,"f2": 500,"fh": 8000,"fl": 30,"master": -6,"peaks": 0}}],"nextInstanceId": 5}
-1
View File
@@ -1 +0,0 @@
{"pluginUri": "urn:zamaudio:ZamGEQ31","presets": [{"instanceId": 1,"label": "Default","controlValues": {"band1": 0,"band10": 0,"band11": 0,"band12": 0,"band13": 0,"band14": 0,"band15": 0,"band16": 0,"band17": 0,"band18": 0,"band19": 0,"band2": 0,"band20": 0,"band21": 0,"band22": 0,"band23": 0,"band24": 0,"band25": 0,"band26": 0,"band27": 0,"band28": 0,"band29": 0,"band3": 0,"band4": 0,"band5": 0,"band6": 0,"band7": 0,"band8": 0,"band9": 0,"master": 0}}],"nextInstanceId": 2}
@@ -1 +0,0 @@
{"entries": [{"pluginUri": "urn:zamaudio:ZaMaximX2","fileName": "1.json"},{"pluginUri": "urn:zamaudio:ZaMultiComp","fileName": "2.json"},{"pluginUri": "urn:zamaudio:ZaMultiCompX2","fileName": "3.json"},{"pluginUri": "urn:zamaudio:ZamComp","fileName": "4.json"},{"pluginUri": "urn:zamaudio:ZamCompX2","fileName": "5.json"},{"pluginUri": "urn:zamaudio:ZamDelay","fileName": "6.json"},{"pluginUri": "urn:zamaudio:ZamDynamicEQ","fileName": "7.json"},{"pluginUri": "urn:zamaudio:ZamEQ2","fileName": "8.json"},{"pluginUri": "urn:zamaudio:ZamGEQ31","fileName": "9.json"},{"pluginUri": "urn:zamaudio:ZamGate","fileName": "10.json"},{"pluginUri": "urn:zamaudio:ZamGateX2","fileName": "11.json"},{"pluginUri": "urn:zamaudio:ZamGrains","fileName": "12.json"},{"pluginUri": "urn:zamaudio:ZamHeadX2","fileName": "13.json"},{"pluginUri": "urn:zamaudio:ZamPhono","fileName": "14.json"},{"pluginUri": "urn:zamaudio:ZamTube","fileName": "15.json"},{"pluginUri": "urn:zamaudio:ZamVerb","fileName": "16.json"},{"pluginUri": "http://two-play.com/plugins/toob-delay","fileName": "17.json"},{"pluginUri": "http://two-play.com/plugins/toob-ml","fileName": "18.json"},{"pluginUri": "http://calf.sourceforge.net/plugins/Filter","fileName": "19.json"},{"pluginUri": "http://calf.sourceforge.net/plugins/Flanger","fileName": "20.json"},{"pluginUri": "http://calf.sourceforge.net/plugins/MonoCompressor","fileName": "21.json"},{"pluginUri": "http://calf.sourceforge.net/plugins/Monosynth","fileName": "22.json"},{"pluginUri": "http://calf.sourceforge.net/plugins/Organ","fileName": "23.json"},{"pluginUri": "http://calf.sourceforge.net/plugins/Reverb","fileName": "24.json"},{"pluginUri": "http://calf.sourceforge.net/plugins/Wavetable","fileName": "25.json"},{"pluginUri": "http://drobilla.net/plugins/mda/DX10","fileName": "26.json"},{"pluginUri": "http://drobilla.net/plugins/mda/Detune","fileName": "27.json"},{"pluginUri": "http://drobilla.net/plugins/mda/JX10","fileName": "28.json"},{"pluginUri": "http://drobilla.net/plugins/mda/Leslie","fileName": "29.json"},{"pluginUri": "http://drobilla.net/plugins/mda/Piano","fileName": "30.json"},{"pluginUri": "http://drobilla.net/plugins/mda/Splitter","fileName": "31.json"},{"pluginUri": "http://drobilla.net/plugins/mda/ThruZero","fileName": "32.json"},{"pluginUri": "http://drobilla.net/plugins/mda/Vocoder","fileName": "33.json"},{"pluginUri": "http://drobilla.net/plugins/mda/EPiano","fileName": "34.json"}],"nextInstanceId": 35}
+2 -2
View File
@@ -13,14 +13,14 @@ page_icon: img/Install4.jpg
Download the most recent Debian (.deb) package for your platform:
- [Ubuntu/Raspberry Pi OS (64-bit) v1.1.24](https://github.com/rerdavies/pipedal/releases/download/v1.1.24/pipedal_1.1.24_arm64.deb)
- [Ubuntu/Raspberry Pi OS (64-bit) v1.1.25](https://github.com/rerdavies/pipedal/releases/download/v1.1.25/pipedal_1.1.25_arm64.deb)
Install the package by running
```
sudo apt update
cd ~/Downloads
sudo apt-get install ./pipedal_1.1.24_arm64.deb
sudo apt-get install ./pipedal_1.1.25_arm64.deb
```
On Raspberry Pi OS, if you have a graphical desktop installed, you can also install the package by double-clicking on the downloaded package in the File Manager.
+1 -1
View File
@@ -1,6 +1,6 @@
# Release Notes
## PiPedal 1.1.24
## PiPedal 1.1.25
- Reduce TooB Convolution Reverb and Toob Cab IR CPU use by 90%.
+2 -2
View File
@@ -4,14 +4,14 @@
Download the most recent Debian (.deb) package for your platform:
- [Ubuntu or Raspberry Pi OS (64-bit)](https://github.com/rerdavies/pipedal/releases/download/v1.1.24/pipedal_1.1.24_arm64.deb) v1.1.24
- [Ubuntu or Raspberry Pi OS (64-bit)](https://github.com/rerdavies/pipedal/releases/download/v1.1.25/pipedal_1.1.25_arm64.deb) v1.1.25
Install the package by running
```
sudo apt update
cd ~/Downloads
sudo apt-get install ./pipedal_1.1.24_arm64.deb
sudo apt-get install ./pipedal_1.1.25_arm64.deb
```
Follow the instructions in [_Configuring PiPedal After Installation_](https://rerdavies.github.io/pipedal/Configuring.html) to complete the installation.
+1 -1
View File
@@ -1,7 +1,7 @@
<img src="GithubBanner.png" width="100%"/>
<a href="Installing.html"><i>v1.1.24</i></a>
<a href="Installing.html"><i>v1.1.25</i></a>
&nbsp;
+1 -1
View File
@@ -1,5 +1,5 @@
#!/usr/bin/bash
# copy files.
# copy files to installation directories
cmake --install build --prefix /usr --config Release -v
# Done as an install action by the debian package.
sudo /usr/bin/pipedalconfig --install
-1
View File
@@ -1 +0,0 @@
cmake --install /home/patch/src/pipedal/build --prefix /usr/local --config Debug
+11 -59
View File
@@ -49,10 +49,10 @@ toobimpulse:impulseFile
doap:license <https://two-play.com/TooB/licenses/isc> ;
doap:maintainer <http://two-play.com/rerdavies#me> ;
lv2:minorVersion 0 ;
lv2:microVersion 14 ;
lv2:microVersion 15 ;
rdfs:comment """
Convolution reverb is a notoriously compute-intensive effect. For best results, use the Max T control to constrain the length of the impulse file to
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
under two seconds.
The Max T control affects how much of the impulse file is used. If the length of the impulse file is longer than the specified time, samples occuring after
@@ -68,12 +68,11 @@ impulse signal; turning it off removes leading silence. If the the Direct mix co
delaying the convolution reverb output; you want responses as quickly as possible; the Predelay control should be set to off.
The leading silence in impulse files can sometimes be quite significant.
If the input file has 4 channels, Toob Convolution Reverb assumes the signal is in Ambisonic b-format, and downmixes the channels accordingly. Unfortunately,
it currently dowmixes the Ambisonic audio to mono. Exepct a stereo version of Toob Convolution Reverb in the near future, which will make better use of
Ambisonic source material.
If the input file has 4 channels, Toob Convolution Reverb assumes the signal is in Ambisonic b-format, and downmixes the ambisonic channels to mono. To generate
stereo reverb effects from ambisonic audio, use the stereo version of this plugin.
Toob Convolution Reverb comes with a nominal set of reverb impulse files to get you started. You are strongly encouraged to seek out reverb impulse files
on the internet.
Toob Convolution Reverb comes with a nominal set of reverb impulse files to get you started. You are strongly encouraged to explore the rich collections of
reverb impulse files that are widely available on the internet.
Special thanks are extended to the the OpenAir project, wich graciously provided the base set of impulse files distributed with Toob Convolution Reverb under
licensing terms that are compatible with the Toob Amp project's licensing terms.
@@ -234,48 +233,6 @@ Source: https://www.openair.hosted.york.ac.uk/?page_id=483
lv2:ControlPort ;
lv2:index 3 ;
lv2:portProperty epp:notOnGUI;
lv2:symbol "reverb_mix2" ;
lv2:name "IR Mix";
lv2:default -10.0 ;
lv2:minimum -40.0 ;
lv2:maximum 20.0 ;
units:unit units:db ;
lv2:scalePoint [
rdfs:label "-INF" ;
rdf:value -40.0
];
rdfs:comment "Reverb mix. Set to minimum to disable." ;
],
[
a lv2:InputPort ,
lv2:ControlPort ;
lv2:index 4 ;
lv2:portProperty epp:notOnGUI;
lv2:symbol "reverb_mix3" ;
lv2:name "IR Mix";
lv2:default -10.0 ;
lv2:minimum -40.0 ;
lv2:maximum 20.0 ;
units:unit units:db ;
lv2:scalePoint [
rdfs:label "-INF" ;
rdf:value -40.0
];
rdfs:comment "Reverb mix. Set to minimum to disable." ;
],
[
a lv2:InputPort ,
lv2:ControlPort ;
lv2:index 5 ;
lv2:symbol "predelay" ;
lv2:name "Predelay";
@@ -300,7 +257,7 @@ Source: https://www.openair.hosted.york.ac.uk/?page_id=483
a lv2:OutputPort ,
lv2:ControlPort ;
lv2:index 6 ;
lv2:index 4 ;
lv2:symbol "loading_state" ;
lv2:name "Status";
@@ -340,14 +297,14 @@ Source: https://www.openair.hosted.york.ac.uk/?page_id=483
[
a lv2:AudioPort ,
lv2:InputPort ;
lv2:index 7 ;
lv2:index 5 ;
lv2:symbol "in" ;
lv2:name "In"
],
[
a lv2:AudioPort ,
lv2:OutputPort ;
lv2:index 8 ;
lv2:index 6 ;
lv2:symbol "out" ;
lv2:name "Out"
],
@@ -359,7 +316,7 @@ Source: https://www.openair.hosted.york.ac.uk/?page_id=483
lv2:designation lv2:control ;
atom:supports patch:Message ;
lv2:index 9 ;
lv2:index 7 ;
lv2:symbol "control" ;
lv2:name "Control" ;
rdfs:comment "Control" ;
@@ -369,7 +326,7 @@ Source: https://www.openair.hosted.york.ac.uk/?page_id=483
atom:bufferType atom:Sequence ;
atom:supports patch:Message;
lv2:designation lv2:control ;
lv2:index 10;
lv2:index 8;
lv2:symbol "notify" ;
lv2:name "Notify" ;
rdfs:comment "Notification" ;
@@ -405,10 +362,5 @@ toobcr:ui
lv2:symbol "loading_state";
ui:plugin <http://two-play.com/plugins/toob-convolution-reverb>;
ui:protocol ui:floatProtocol;
# pipedal_ui:style pipedal_ui:text ;
# pipedal_ui:redLevel 0;
# pipedal_ui:yellowLevel -12;
# ui:portIndex 3;
]
.
@@ -0,0 +1,424 @@
@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 pipedal_ui: <http://github.com/rerdavies/pipedal/ui#> .
@prefix ui: <http://lv2plug.in/ns/extensions/ui#> .
@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 toobcrs: <http://two-play.com/plugins/toob-convolution-reverb-stereo#> .
@prefix toobimpulse: <http://two-play.com/plugins/toob-impulse#> .
toobimpulse:impulseFile
a lv2:Parameter;
rdfs:label "File";
rdfs:range atom:Path.
<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-convolution-reverb-stereo>
a lv2:Plugin ,
lv2:ReverbPlugin ;
doap:name "TooB Convolution Reverb (Stereo)" ,
"TooB Convolution Reverb (Stereo)"@en-gb-gb
;
doap:license <https://two-play.com/TooB/licenses/isc> ;
doap:maintainer <http://two-play.com/rerdavies#me> ;
lv2:minorVersion 0 ;
lv2:microVersion 15 ;
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
under two seconds.
The Max T control affects how much of the impulse file is used. If the length of the impulse file is longer than the specified time, samples occuring after
the specified time are discarded, and the tail of the impulse convolution is fed back into the imput of the convolution. This ensures a smooth reverb tail,
and has little effect on the quality of the resulting reverb. If the impulse file is shorter than the specified time, then all samples in the impulse
file are used, and no feedback occurs.
Because reverb impulse files typically include the original sound, you will often get strange comb filter effects if you use the Direct mix control;
but this varies depending on the impulse file in question. Usually, the Direct mix control should be set to -INF.
The Predelay control determines whether Toob Convolution Reverb will strip leading silence from the impulse data. Turning it on preserves silence in the
impulse signal; turning it off removes leading silence. If the the Direct mix control is set to -INF dB, there's no real point in
delaying the convolution reverb output; you want responses as quickly as possible; the Predelay control should be set to off.
The leading silence in impulse files can sometimes be quite significant.
If the input file has 4 channels, Toob Convolution Reverb assumes the signal is in Ambisonic b-format, and downmixes the channels accordingly. Unfortunately,
it currently dowmixes the Ambisonic audio to mono. The Width control determines
how wide the stereo image is.
Toob Convolution Reverb comes with a nominal set of reverb impulse files to get you started. You are strongly encouraged to explore the rich collections of
reverb impulse files that are widely available on the internet.
Special thanks are extended to the the OpenAir project, wich graciously provided the base set of impulse files distributed with Toob Convolution Reverb under
licensing terms that are compatible with the Toob Amp project's licensing terms.
---
Toob Convolution Reverb's impulse files were provided by the OpenAir project.
https://www.openair.hosted.york.ac.uk, under CC-By-4.0 licenses.
Arthur Sykes Rymer Auditorium.wav
---------------------------------------
By: www.openairlib.net, University of York
This work is provided under a Creative Commons Attribution 4.0 International License.
https://creativecommons.org/licenses/by/4.0/
Source: https://www.openair.hosted.york.ac.uk/?page_id=425
Jack Lyons Hall, University of York.wav
---------------------------------------
By: www.openairlib.net, Audiolab University of York, Alex Duffell, Aishwarya Sridhar, Zhong Li
This work is provided under a Creative Commons Attribution 4.0 International License.
https://creativecommons.org/licenses/by/4.0/
Source: https://www.openair.hosted.york.ac.uk/?page_id=571
Koli National Park - Winter.wav
---------------------------------------
By: www.openairlib.net, Audio Lab University of York, Andrew Chadwick, Simon Shelley
This work is provided under a Creative Commons Attribution 4.0 International License.
https://creativecommons.org/licenses/by/4.0/
Source: https://www.openair.hosted.york.ac.uk/?page_id=584
St. Margarets Church.wav
---------------------------------------
By: www.openairlib.net, AudioLab University of York, www.ncem.co.uk
This work is provided under a Creative Commons Attribution 4.0 International License.
https://creativecommons.org/licenses/by/4.0/
Source: https://www.openair.hosted.york.ac.uk/?page_id=702
Genesis 6 Studio Live Room.wav
---------------------------------------
By: www.openairlib.net
This work is provided under a Creative Commons Attribution 4.0 International License.
https://creativecommons.org/licenses/by/4.0/
Source: https://www.openair.hosted.york.ac.uk/?page_id=483
""" ;
mod:brand "TooB";
mod:label "Convolution Reverb (Stereo)";
lv2:requiredFeature urid:map;
lv2:optionalFeature state::freePath, state:makePath, state:mapPath, work:schedule ;
lv2:extensionData state:interface;
lv2:optionalFeature lv2:hardRTCapable;
pg:mainInput toobcrs:mainIn ;
pg:mainOutput toobcrs:mainOut ;
patch:readable
toobimpulse:impulseFile
;
patch:writable
toobimpulse:impulseFile
;
lv2:extensionData state:interface,
work:interface;
lv2:port
[
a lv2:InputPort ,
lv2:ControlPort ;
lv2:index 0;
lv2:symbol "time" ;
lv2:name "Max T";
lv2:portProperty epp:logarithmic;
lv2:default 1.5 ;
lv2:minimum 0.1 ;
lv2:maximum 10.0 ;
lv2:portProperty epp:notAutomatic ;
lv2:portProperty epp:expensive ;
units:unit units:s ;
rdfs:comment "Maximum length of impulse data to use." ;
],
[
a lv2:InputPort ,
lv2:ControlPort ;
lv2:index 1;
lv2:symbol "direct_mix" ;
lv2:name "Direct";
lv2:default -40.0 ;
lv2:minimum -40.0 ;
lv2:maximum 20.0 ;
units:unit units:db ;
lv2:scalePoint [
rdfs:label "-INF" ;
rdf:value -40.0
];
rdfs:comment "Direct mix. Set to minimum to disable." ;
],
[
a lv2:InputPort ,
lv2:ControlPort ;
lv2:index 2 ;
lv2:symbol "reverb_mix" ;
lv2:name "Reverb";
lv2:default -10.0 ;
lv2:minimum -40.0 ;
lv2:maximum 20.0 ;
units:unit units:db ;
lv2:scalePoint [
rdfs:label "-INF" ;
rdf:value -40.0
];
rdfs:comment "Reverb mix. Set to minimum to disable." ;
],
[
a lv2:InputPort ,
lv2:ControlPort ;
lv2:index 3 ;
lv2:symbol "width" ;
lv2:name "Width";
lv2:default 1.0 ;
lv2:minimum 0.0 ;
lv2:maximum 1.0 ;
rdfs:comment "Stereo image width." ;
],
[
a lv2:InputPort ,
lv2:ControlPort ;
lv2:portProperty epp:notOnGUI; # doens't produce convincing stereo imaging.
lv2:index 4 ;
lv2:symbol "pan" ;
lv2:name "Pan";
lv2:default 0.0 ;
lv2:minimum -1.0 ;
lv2:maximum 1.0 ;
rdfs:comment "Pan." ;
],
[
a lv2:InputPort ,
lv2:ControlPort ;
lv2:index 5 ;
lv2:symbol "predelay" ;
lv2:name "Predelay";
lv2:default 1 ;
lv2:minimum 0 ;
lv2:maximum 1 ;
lv2:portProperty lv2:enumeration ;
lv2:scalePoint [
rdfs:label "Remove" ;
rdf:value 0.0;
],
[
rdfs:label "Keep" ;
rdf:value 1.0;
];
rdfs:comment "Removes leading silence in impulse when set to false." ;
],
[
a lv2:OutputPort ,
lv2:ControlPort ;
lv2:index 6 ;
lv2:symbol "loading_state" ;
lv2:name "Status";
lv2:portProperty lv2:enumeration ;
lv2:default 0.0 ;
lv2:minimum 0.0 ;
lv2:maximum 5.0 ;
# NotLoaded = 0,
# Idle = 1,
# Error = 2,
# SentRequest = 3,
# GotResponse = 4,
# CleaningUp = 5,
lv2:scalePoint [
rdfs:label "Not loaded" ;
rdf:value 0.0
],[
rdfs:label "Ready" ;
rdf:value 1.0
],[
rdfs:label "Error" ;
rdf:value 2.0
],[
rdfs:label "Loading" ;
rdf:value 3.0
],[
rdfs:label "Loading" ;
rdf:value 4.0
],[
rdfs:label "Loading" ;
rdf:value 5.0
];
rdfs:comment "Plugin status." ;
],
[
a lv2:AudioPort ,
lv2:InputPort ;
lv2:index 7 ;
lv2:symbol "inL" ;
lv2:name "InL" ;
lv2:designation pg:left ;
pg:group toobcrs:mainIn
],
[
a lv2:AudioPort ,
lv2:InputPort ;
lv2:index 8 ;
lv2:symbol "inR" ;
lv2:name "InR" ;
lv2:designation pg:right ;
pg:group toobcrs:mainIn;
],
[
a lv2:AudioPort ,
lv2:OutputPort ;
lv2:index 9 ;
lv2:symbol "outL" ;
lv2:name "OutL" ;
lv2:designation pg:left ;
pg:group toobcrs:mainOut;
],
[
a lv2:AudioPort ,
lv2:OutputPort ;
lv2:index 10 ;
lv2:symbol "outR" ;
lv2:name "OutR" ;
lv2:designation pg:right ;
pg:group toobcrs:mainOut;
],
[
a atom:AtomPort ,
lv2:InputPort;
atom:bufferType atom:Sequence ;
atom:supports patch:Message;
lv2:designation lv2:control ;
atom:supports patch:Message ;
lv2:index 11 ;
lv2:symbol "control" ;
lv2:name "Control" ;
rdfs:comment "Control" ;
] , [
a atom:AtomPort ,
lv2:OutputPort ;
atom:bufferType atom:Sequence ;
atom:supports patch:Message;
lv2:designation lv2:control ;
lv2:index 12;
lv2:symbol "notify" ;
lv2:name "Notify" ;
rdfs:comment "Notification" ;
]
.
<http://two-play.com/plugins/toob-convolution-reverb-stereo> pipedal_ui:ui toobcrs:ui .
toobcrs:ui
a pipedal_ui:ui ;
pipedal_ui:fileProperties
[
a pipedal_ui:fileProperty;
rdfs:label "Impulse File" ;
lv2:index 3 ;
pipedal_ui:patchProperty toobimpulse:impulseFile ;
pipedal_ui:directory "ReverbImpulseFiles";
pipedal_ui:fileTypes
[
a pipedal_ui:fileType;
rdfs:label "WAV File";
pipedal_ui:mimeType "audio/wav";
],
[
a pipedal_ui:fileType;
rdfs:label "FLAC File";
pipedal_ui:mimeType "audio/flac";
] ;
];
ui:portNotification
[
lv2:symbol "loading_state";
ui:plugin <http://two-play.com/plugins/toob-convolution-reverb-stereo>;
ui:protocol ui:floatProtocol;
]
.
+1 -1
View File
@@ -1 +1 @@
ToobAmp.so.1.0.14
ToobAmp.so.1.0.15
Binary file not shown.
Binary file not shown.
+8 -1
View File
@@ -41,7 +41,7 @@
lv2:minorVersion 0 ;
lv2:microVersion 14 ;
rdfs:comment """
Emulation of Boss CE-2 Chorus.
Emulation of a Boss CE-2 Chorus.
""" ;
@@ -86,6 +86,13 @@ Emulation of Boss CE-2 Chorus.
lv2:index 3 ;
lv2:symbol "out" ;
lv2:name "Out"
],
[
a lv2:AudioPort ,
lv2:OutputPort ;
lv2:index 4 ;
lv2:symbol "outr" ;
lv2:name "OutR"
]
.
+135
View File
@@ -0,0 +1,135 @@
@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 toobChorus: <http://two-play.com/plugins/toob-chorus#> .
<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-flanger>
a lv2:Plugin ,
lv2:FlangerPlugin ;
doap:name "TooB BF-2 Flanger" ,
"TooB BF-2 Flanger"@en-gb-gb
;
doap:license <https://two-play.com/TooB/licenses/isc> ;
doap:maintainer <http://two-play.com/rerdavies#me> ;
lv2:minorVersion 0 ;
lv2:microVersion 14 ;
rdfs:comment """
Emulation of a Boss BF-2 Flanger*.
* Use of Boss Audio Systems trademarks is purely nominative. The TooB project is not associated in any way with, nor endorsed by Boss Audio Systems.
""" ;
mod:brand "TooB";
mod:label "BF-2 Flanger";
lv2:optionalFeature lv2:hardRTCapable;
lv2:port
[
a lv2:InputPort ,
lv2:ControlPort ;
lv2:index 0;
lv2:symbol "manual" ;
rdfs:comment "LFO offset";
lv2:name "Manual";
lv2:default 0.5 ;
lv2:minimum 0.0;
lv2:maximum 1.0;
],
[
a lv2:InputPort ,
lv2:ControlPort ;
lv2:index 1 ;
lv2:symbol "depth" ;
rdfs:comment "LFO depth";
lv2:name "Depth";
lv2:default 0.5 ;
lv2:minimum 0.0 ;
lv2:maximum 1.0 ;
],
[
a lv2:InputPort ,
lv2:ControlPort ;
lv2:index 2 ;
lv2:symbol "rate" ;
lv2:name "Rate";
rdfs:comment "LFO rate";
lv2:default 0.5 ;
lv2:minimum 0.0 ;
lv2:maximum 1.0 ;
],
[
a lv2:OutputPort ,
lv2:ControlPort ;
lv2:index 3 ;
lv2:symbol "lfo" ;
lv2:name "LFO";
lv2:minimum -1.0 ;
lv2:maximum 1.0 ;
],
[
a lv2:InputPort ,
lv2:ControlPort ;
lv2:index 4 ;
lv2:symbol "res" ;
lv2:name "Res";
rdfs:comment "Delay feedback";
lv2:default 0.5 ;
lv2:minimum 0.0 ;
lv2:maximum 1.0 ;
],
[
a lv2:AudioPort ,
lv2:InputPort ;
lv2:index 5 ;
lv2:symbol "in" ;
lv2:name "In"
],
[
a lv2:AudioPort ,
lv2:OutputPort ;
lv2:index 6 ;
lv2:symbol "outl" ;
lv2:name "OutL"
]
.
@@ -0,0 +1,145 @@
@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 toobChorus: <http://two-play.com/plugins/toob-chorus#> .
<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-flanger-stereo>
a lv2:Plugin ,
lv2:FlangerPlugin ;
doap:name "TooB BF-2 Stereo Flanger" ,
"TooB BF-2 Stereo Flanger"@en-gb-gb
;
doap:license <https://two-play.com/TooB/licenses/isc> ;
doap:maintainer <http://two-play.com/rerdavies#me> ;
lv2:minorVersion 0 ;
lv2:microVersion 14 ;
rdfs:comment """
Digital emulation of a Boss BF-2 Flanger*.
WARNING: use of this plugin in monophonic signal chains, on some hosts, may completely cancel out the flanger effect, since the right channel is
created by subtracting the output of the flanger delay line instead of adding it. If you are using this effect in a monophonic effect chain, you
should use the monophonic version of this effect.
* Use of Boss Audio Systems trademarks is purely nominative. The TooB project is not associated in any way with, nor endorsed by Boss Audio Systems.
""" ;
mod:brand "TooB";
mod:label "BF-2 Stereo Flanger";
lv2:optionalFeature lv2:hardRTCapable;
lv2:port
[
a lv2:InputPort ,
lv2:ControlPort ;
lv2:index 0;
lv2:symbol "manual" ;
rdfs:comment "LFO offset";
lv2:name "Manual";
lv2:default 0.5 ;
lv2:minimum 0.0;
lv2:maximum 1.0;
],
[
a lv2:InputPort ,
lv2:ControlPort ;
lv2:index 1 ;
lv2:symbol "depth" ;
rdfs:comment "LFO depth";
lv2:name "Depth";
lv2:default 0.5 ;
lv2:minimum 0.0 ;
lv2:maximum 1.0 ;
],
[
a lv2:InputPort ,
lv2:ControlPort ;
lv2:index 2 ;
lv2:symbol "rate" ;
lv2:name "Rate";
rdfs:comment "LFO rate";
lv2:default 0.5 ;
lv2:minimum 0.0 ;
lv2:maximum 1.0 ;
],
[
a lv2:OutputPort ,
lv2:ControlPort ;
lv2:index 3 ;
lv2:symbol "lfo" ;
lv2:name "LFO";
lv2:minimum -1.0 ;
lv2:maximum 1.0 ;
],
[
a lv2:InputPort ,
lv2:ControlPort ;
lv2:index 4 ;
lv2:symbol "res" ;
lv2:name "Res";
rdfs:comment "Delay feedback";
lv2:default 0.5 ;
lv2:minimum 0.0 ;
lv2:maximum 1.0 ;
],
[
a lv2:AudioPort ,
lv2:InputPort ;
lv2:index 5 ;
lv2:symbol "in" ;
lv2:name "In"
],
[
a lv2:AudioPort ,
lv2:OutputPort ;
lv2:index 6 ;
lv2:symbol "outl" ;
lv2:name "OutL"
],
[
a lv2:AudioPort ,
lv2:OutputPort ;
lv2:index 7 ;
lv2:symbol "outr" ;
lv2:name "OutR"
]
.
+125 -217
View File
@@ -1,6 +1,7 @@
@prefix lv2: <http://lv2plug.in/ns/lv2core#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix modgui: <http://moddevices.com/ns/modgui#> .
@prefix pset: <http://lv2plug.in/ns/ext/presets#> .
@prefix tpset: <http://two-play.com/plugins/preset#> .
<http://two-play.com/plugins/toob-tone-stack> a lv2:Plugin ;
@@ -11,6 +12,11 @@
lv2:binary <ToobAmp.so> ;
rdfs:seeAlso <ConvolutionReverb.ttl> .
<http://two-play.com/plugins/toob-convolution-reverb-stereo> a lv2:Plugin ;
lv2:binary <ToobAmp.so> ;
rdfs:seeAlso <ConvolutionReverbStereo.ttl> .
<http://two-play.com/plugins/toob-cab-ir> a lv2:Plugin ;
lv2:binary <ToobAmp.so> ;
rdfs:seeAlso <CabIR.ttl> .
@@ -54,234 +60,136 @@
lv2:binary <ToobAmp.so> ;
rdfs:seeAlso <ToobChorus.ttl> .
<http://two-play.com/plugins/toob-flanger> a lv2:Plugin ;
lv2:binary <ToobAmp.so> ;
rdfs:seeAlso <ToobFlanger.ttl> .
<http://two-play.com/plugins/toob-flanger-stereo> a lv2:Plugin ;
lv2:binary <ToobAmp.so> ;
rdfs:seeAlso <ToobFlangerStereo.ttl> .
tpset:toob-flanger-preset-0
a pset:Preset ;
lv2:appliesTo <http://two-play.com/plugins/toob-flanger> ;
rdfs:seeAlso <toob-flanger-presets.ttl> .
tpset:toob-flanger-preset-1
a pset:Preset ;
lv2:appliesTo <http://two-play.com/plugins/toob-flanger> ;
rdfs:seeAlso <toob-flanger-presets.ttl> .
tpset:toob-flanger-preset-2
a pset:Preset ;
lv2:appliesTo <http://two-play.com/plugins/toob-flanger> ;
rdfs:seeAlso <toob-flanger-presets.ttl> .
tpset:toob-flanger-preset-3
a pset:Preset ;
lv2:appliesTo <http://two-play.com/plugins/toob-flanger> ;
rdfs:seeAlso <toob-flanger-presets.ttl> .
tpset:toob-flanger-stereo-preset-0
a pset:Preset ;
lv2:appliesTo <http://two-play.com/plugins/toob-flanger-stereo> ;
rdfs:seeAlso <toob-flanger-stereo-presets.ttl> .
tpset:toob-flanger-stereo-preset-1
a pset:Preset ;
lv2:appliesTo <http://two-play.com/plugins/toob-flanger-stereo> ;
rdfs:seeAlso <toob-flanger-stereo-presets.ttl> .
tpset:toob-flanger-stereo-preset-2
a pset:Preset ;
lv2:appliesTo <http://two-play.com/plugins/toob-flanger-stereo> ;
rdfs:seeAlso <toob-flanger-stereo-presets.ttl> .
tpset:toob-flanger-stereo-preset-3
a pset:Preset ;
lv2:appliesTo <http://two-play.com/plugins/toob-flanger-stereo> ;
rdfs:seeAlso <toob-flanger-stereo-presets.ttl> .
# <http://two-play.com/plugins/toob-power-stage>
# modgui:gui [
# modgui:resourcesDirectory <modgui> ;
# modgui:iconTemplate <modgui/icon-toob-power-stage.html> ;
# modgui:stylesheet <modgui/stylesheet-toob.css> ;
# modgui:screenshot <modgui/screenshot-toob-power-stage.png> ;
# modgui:thumbnail <modgui/thumbnail-toob-power-stage.png> ;
# modgui:javascript <modgui/script-toob-power-stage.js> ;
tpset:toob-delay-preset-0
a pset:Preset ;
lv2:appliesTo <http://two-play.com/plugins/toob-delay> ;
rdfs:seeAlso <toob-delay-presets.ttl> .
# modgui:brand "TooB" ;
# modgui:label "TooB Power Stage" ;
tpset:toob-delay-preset-1
a pset:Preset ;
lv2:appliesTo <http://two-play.com/plugins/toob-delay> ;
rdfs:seeAlso <toob-delay-presets.ttl> .
# modgui:monitoredOutputs [ lv2:symbol "notify"] ;
# modgui:port [
# lv2:index 0 ;
# lv2:symbol "trim1" ;
# lv2:name "TRIM" ;
# ] , [
# lv2:index 1 ;
# lv2:symbol "gain1" ;
# lv2:name "GAIN" ;
# ] , [
# lv2:index 2 ;
# lv2:symbol "locut1" ;
# lv2:name "LO CUT" ;
# ] , [
# lv2:index 3 ;
# lv2:symbol "hicut1" ;
# lv2:name "HI CUT" ;
# ], [
# lv2:index 22 ;
# lv2:symbol "shape1" ;
# lv2:name "SHAPE1" ;
# ], [
# lv2:index 4 ;
# lv2:symbol "gain2_enable" ;
# lv2:name "Ena" ;
# ] , [
# lv2:index 5 ;
# lv2:symbol "trim2" ;
# lv2:name "TRIM" ;
# ] , [
# lv2:index 6 ;
# lv2:symbol "gain2" ;
# lv2:name "GAIN" ;
# ] , [
# lv2:index 7 ;
# lv2:symbol "locut2" ;
# lv2:name "LO CUT" ;
# ] , [
# lv2:index 8 ;
# lv2:symbol "hicut2" ;
# lv2:name "HI CUT" ;
# ], [
# lv2:index 23 ;
# lv2:symbol "shape2" ;
# lv2:name "SHAPE2" ;
# ] , [
# lv2:index 9 ;
# lv2:symbol "gain3_enable" ;
# lv2:name "Ena" ;
# ] ,
# [
# lv2:index 10 ;
# lv2:symbol "trim3" ;
# lv2:name "TRIM" ;
# ] , [
# lv2:index 11 ;
# lv2:symbol "gain3" ;
# lv2:name "GAIN" ;
# ] , [
# lv2:index 12 ;
# lv2:symbol "locut3" ;
# lv2:name "LO CUT" ;
# ] , [
# lv2:index 13 ;
# lv2:symbol "hicut3" ;
# lv2:name "HI CUT" ;
# ] , [
# lv2:index 24 ;
# lv2:symbol "shape3" ;
# lv2:name "SHAPE3" ;
# ], [
# lv2:index 14 ;
# lv2:symbol "sag" ;
# lv2:name "SAG" ;
# ] , [
# lv2:index 15 ;
# lv2:symbol "sagd" ;
# lv2:name "SAGD" ;
# ], [
# lv2:index 16 ;
# lv2:symbol "master" ;
# lv2:name "MASTER" ;
# ],
# [
# a lv2:InputPort ,
# lv2:ControlPort ;
tpset:toob-ml-preset-0
a pset:Preset ;
lv2:appliesTo <http://two-play.com/plugins/toob-ml> ;
rdfs:seeAlso <toob-ml-presets.ttl> .
# lv2:index 21 ;
# lv2:symbol "sagf" ;
# lv2:name "SagF";
# ]
# ;
# ] .
tpset:toob-ml-preset-1
a pset:Preset ;
lv2:appliesTo <http://two-play.com/plugins/toob-ml> ;
rdfs:seeAlso <toob-ml-presets.ttl> .
# <http://two-play.com/plugins/toob-input_stage>
# modgui:gui [
# modgui:resourcesDirectory <modgui> ;
# modgui:javascript <modgui/script-toob-input-stage.js> ;
# modgui:iconTemplate <modgui/icon-toob-input-stage.html> ;
# modgui:stylesheet <modgui/stylesheet-toob.css> ;
# modgui:screenshot <modgui/screenshot-toob-input-stage.png> ;
# modgui:thumbnail <modgui/thumbnail-toob-input-stage.png> ;
tpset:toob-ml-preset-2
a pset:Preset ;
lv2:appliesTo <http://two-play.com/plugins/toob-ml> ;
rdfs:seeAlso <toob-ml-presets.ttl> .
# modgui:brand "TooB" ;
# modgui:label "TooB Input Stage" ;
tpset:toob-freeverb-preset-0
a pset:Preset ;
lv2:appliesTo <http://two-play.com/plugins/toob-freeverb> ;
rdfs:seeAlso <toob-freeverb-presets.ttl> .
# modgui:monitoredOutputs [ lv2:symbol "notify"] ;
# modgui:port [
# lv2:index 0 ;
# lv2:symbol "trim" ;
# lv2:name "Trim" ;
# ] , [
# lv2:index 1 ;
# lv2:symbol "locut" ;
# lv2:name "Lo Cut" ;
# ] , [
# lv2:index 2 ;
# lv2:symbol "bright" ;
# lv2:name "Bright" ;
# ] , [
# lv2:index 3 ;
# lv2:symbol "brightf" ;
# lv2:name "Bright F" ;
# ] , [
# lv2:index 4 ;
# lv2:symbol "hicut" ;
# lv2:name "Hi Cut" ;
# ] , [
# lv2:index 5 ;
# lv2:symbol "gate_t" ;
# lv2:name "Gate T" ;
# ] , [
# lv2:index 6 ;
# lv2:symbol "boost" ;
# lv2:name "Boost" ;
# ]
# ;
# ] .
tpset:toob-freeverb-preset-1
a pset:Preset ;
lv2:appliesTo <http://two-play.com/plugins/toob-freeverb> ;
rdfs:seeAlso <toob-freeverb-presets.ttl> .
# <http://two-play.com/plugins/toob-cab-sim>
# modgui:gui [
# modgui:resourcesDirectory <modgui> ;
# modgui:javascript <modgui/script-toob-cab-sim.js> ;
# modgui:iconTemplate <modgui/icon-toob-cab-sim.html> ;
# modgui:stylesheet <modgui/stylesheet-toob.css> ;
# modgui:screenshot <modgui/screenshot-toob-cab-sim.png> ;
# modgui:thumbnail <modgui/thumbnail-toob-cab-sim.png> ;
tpset:toob-freeverb-preset-2
a pset:Preset ;
lv2:appliesTo <http://two-play.com/plugins/toob-freeverb> ;
rdfs:seeAlso <toob-freeverb-presets.ttl> .
# modgui:brand "TooB" ;
# modgui:label "TooB Cab Simulator" ;
###
tpset:toob-convolution-reverb-stereo-preset-0
a pset:Preset ;
lv2:appliesTo <http://two-play.com/plugins/toob-convolution-reverb-stereo> ;
rdfs:seeAlso <toob-convolution-reverb-stereo-presets.ttl> .
# modgui:monitoredOutputs [ lv2:symbol "notify"] ;
# modgui:port [
# lv2:index 0 ;
# lv2:symbol "locut" ;
# lv2:name "Lo Cut" ;
# ] , [
# lv2:index 1 ;
# lv2:symbol "bright" ;
# lv2:name "Bright" ;
# ] , [
# lv2:index 2 ;
# lv2:symbol "brightf" ;
# lv2:name "F" ;
# ] , [
# lv2:index 3 ;
# lv2:symbol "hicut" ;
# lv2:name "Hi Cut" ;
# ], [
# lv2:index 4 ;
# lv2:symbol "comb" ;
# lv2:name "Comb" ;
# ], [
# lv2:index 5 ;
# lv2:symbol "combf" ;
# lv2:name "F" ;
# ], [
# lv2:index 6 ;
# lv2:symbol "trim" ;
# lv2:name "Trim" ;
# ]
# ;
# ] .
tpset:toob-convolution-reverb-stereo-preset-1
a pset:Preset ;
lv2:appliesTo <http://two-play.com/plugins/toob-convolution-reverb-stereo> ;
rdfs:seeAlso <toob-convolution-reverb-stereo-presets.ttl> .
# <http://two-play.com/plugins/toob-tone-stack>
# modgui:gui [
# modgui:resourcesDirectory <modgui> ;
# modgui:javascript <modgui/script-toob-tone-stack.js> ;
# modgui:iconTemplate <modgui/icon-toob-tone-stack.html> ;
# modgui:stylesheet <modgui/stylesheet-toob.css> ;
# modgui:screenshot <modgui/screenshot-toob-tone-stack.png> ;
# modgui:thumbnail <modgui/thumbnail-toob-tone-stack.png> ;
tpset:toob-convolution-reverb-stereo-preset-2
a pset:Preset ;
lv2:appliesTo <http://two-play.com/plugins/toob-convolution-reverb-stereo> ;
rdfs:seeAlso <toob-convolution-reverb-stereo-presets.ttl> .
# modgui:brand "TooB" ;
# modgui:label "TooB Tone Stack" ;
tpset:toob-convolution-reverb-stereo-preset-3
a pset:Preset ;
lv2:appliesTo <http://two-play.com/plugins/toob-convolution-reverb-stereo> ;
rdfs:seeAlso <toob-convolution-reverb-stereo-presets.ttl> .
###
tpset:toob-convolution-reverb-preset-0
a pset:Preset ;
lv2:appliesTo <http://two-play.com/plugins/toob-convolution-reverb> ;
rdfs:seeAlso <toob-convolution-reverb-presets.ttl> .
tpset:toob-convolution-reverb-preset-1
a pset:Preset ;
lv2:appliesTo <http://two-play.com/plugins/toob-convolution-reverb> ;
rdfs:seeAlso <toob-convolution-reverb-presets.ttl> .
tpset:toob-convolution-reverb-preset-2
a pset:Preset ;
lv2:appliesTo <http://two-play.com/plugins/toob-convolution-reverb> ;
rdfs:seeAlso <toob-convolution-reverb-presets.ttl> .
tpset:toob-convolution-reverb-preset-3
a pset:Preset ;
lv2:appliesTo <http://two-play.com/plugins/toob-convolution-reverb> ;
rdfs:seeAlso <toob-convolution-reverb-presets.ttl> .
# modgui:monitoredOutputs [ lv2:symbol "notify"] ;
# modgui:port [
# lv2:index 0 ;
# lv2:symbol "bass" ;
# lv2:name "Bass" ;
# ] , [
# lv2:index 1 ;
# lv2:symbol "mid" ;
# lv2:name "Mid" ;
# ], [
# lv2:index 2 ;
# lv2:symbol "treble" ;
# lv2:name "Treble" ;
# ] , [
# lv2:index 3 ;
# lv2:symbol "ampmodel" ;
# lv2:name "Amp Model" ;
# ]
# ;
# ] .
@@ -0,0 +1,102 @@
@prefix lv2: <http://lv2plug.in/ns/lv2core#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix pset: <http://lv2plug.in/ns/ext/presets#> .
@prefix tpset: <http://two-play.com/plugins/preset#> .
@prefix state: <http://lv2plug.in/ns/ext/state#> .
tpset:toob-convolution-reverb-preset-0
a pset:Preset ;
lv2:appliesTo <http://two-play.com/plugins/toob-convolution-reverb> ;
rdfs:label "Hall" ;
lv2:port [
lv2:symbol "direct_mix" ;
pset:value -2.222214 ;
] , [
lv2:symbol "loading_state" ;
pset:value 0.0 ;
] , [
lv2:symbol "predelay" ;
pset:value 0.0 ;
] , [
lv2:symbol "reverb_mix" ;
pset:value -12.77779 ;
] , [
lv2:symbol "time" ;
pset:value 1.5 ;
] ;
state:state [
<http://two-play.com/plugins/toob-impulse#impulseFile> "ReverbImpulseFiles/St. Margaret\u0027s Church.wav" ;
] .
tpset:toob-convolution-reverb-preset-1
a pset:Preset ;
lv2:appliesTo <http://two-play.com/plugins/toob-convolution-reverb> ;
rdfs:label "Large Hall" ;
lv2:port [
lv2:symbol "direct_mix" ;
pset:value -3.333313 ;
] , [
lv2:symbol "loading_state" ;
pset:value 0.0 ;
] , [
lv2:symbol "predelay" ;
pset:value 1.0 ;
] , [
lv2:symbol "reverb_mix" ;
pset:value -15.0 ;
] , [
lv2:symbol "time" ;
pset:value 1.5 ;
] ;
state:state [
<http://two-play.com/plugins/toob-impulse#impulseFile> "ReverbImpulseFiles/Jack Lyons Hall, University of York.wav" ;
] .
tpset:toob-convolution-reverb-preset-2
a pset:Preset ;
lv2:appliesTo <http://two-play.com/plugins/toob-convolution-reverb> ;
rdfs:label "Club" ;
lv2:port [
lv2:symbol "direct_mix" ;
pset:value -40.0 ;
] , [
lv2:symbol "loading_state" ;
pset:value 0.0 ;
] , [
lv2:symbol "predelay" ;
pset:value 0.0 ;
] , [
lv2:symbol "reverb_mix" ;
pset:value -5.0 ;
] , [
lv2:symbol "time" ;
pset:value 1.5 ;
] ;
state:state [
<http://two-play.com/plugins/toob-impulse#impulseFile> "ReverbImpulseFiles/Arthur Sykes Rymer Auditorium.wav" ;
] .
tpset:toob-convolution-reverb-preset-3
a pset:Preset ;
lv2:appliesTo <http://two-play.com/plugins/toob-convolution-reverb> ;
rdfs:label "Live Room" ;
lv2:port [
lv2:symbol "direct_mix" ;
pset:value -1.111115 ;
] , [
lv2:symbol "loading_state" ;
pset:value 0.0 ;
] , [
lv2:symbol "predelay" ;
pset:value 0.0 ;
] , [
lv2:symbol "reverb_mix" ;
pset:value -9.444443 ;
] , [
lv2:symbol "time" ;
pset:value 1.5 ;
] ;
state:state [
<http://two-play.com/plugins/toob-impulse#impulseFile> "ReverbImpulseFiles/Genesis 6 Studio Live Room.wav" ;
] .
@@ -0,0 +1,114 @@
@prefix lv2: <http://lv2plug.in/ns/lv2core#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix pset: <http://lv2plug.in/ns/ext/presets#> .
@prefix tpset: <http://two-play.com/plugins/preset#> .
@prefix state: <http://lv2plug.in/ns/ext/state#> .
tpset:toob-convolution-reverb-stereo-preset-0
a pset:Preset ;
lv2:appliesTo <http://two-play.com/plugins/toob-convolution-reverb-stereo> ;
rdfs:label "Hall" ;
lv2:port [
lv2:symbol "direct_mix" ;
pset:value -2.222214 ;
] , [
lv2:symbol "loading_state" ;
pset:value 0.0 ;
] , [
lv2:symbol "predelay" ;
pset:value 0.0 ;
] , [
lv2:symbol "reverb_mix" ;
pset:value -12.77779 ;
] , [
lv2:symbol "time" ;
pset:value 1.5 ;
] , [
lv2:symbol "width" ;
pset:value 1.0 ;
] ;
state:state [
<http://two-play.com/plugins/toob-impulse#impulseFile> "ReverbImpulseFiles/St. Margaret\u0027s Church.wav" ;
] .
tpset:toob-convolution-reverb-stereo-preset-1
a pset:Preset ;
lv2:appliesTo <http://two-play.com/plugins/toob-convolution-reverb-stereo> ;
rdfs:label "Large Hall" ;
lv2:port [
lv2:symbol "direct_mix" ;
pset:value -3.333313 ;
] , [
lv2:symbol "loading_state" ;
pset:value 0.0 ;
] , [
lv2:symbol "predelay" ;
pset:value 1.0 ;
] , [
lv2:symbol "reverb_mix" ;
pset:value -15.0 ;
] , [
lv2:symbol "time" ;
pset:value 1.5 ;
] , [
lv2:symbol "width" ;
pset:value 1.0 ;
] ;
state:state [
<http://two-play.com/plugins/toob-impulse#impulseFile> "ReverbImpulseFiles/Jack Lyons Hall, University of York.wav" ;
] .
tpset:toob-convolution-reverb-stereo-preset-2
a pset:Preset ;
lv2:appliesTo <http://two-play.com/plugins/toob-convolution-reverb-stereo> ;
rdfs:label "Club" ;
lv2:port [
lv2:symbol "direct_mix" ;
pset:value -40.0 ;
] , [
lv2:symbol "loading_state" ;
pset:value 0.0 ;
] , [
lv2:symbol "predelay" ;
pset:value 0.0 ;
] , [
lv2:symbol "reverb_mix" ;
pset:value -5.0 ;
] , [
lv2:symbol "time" ;
pset:value 1.5 ;
] , [
lv2:symbol "width" ;
pset:value 1.0 ;
] ;
state:state [
<http://two-play.com/plugins/toob-impulse#impulseFile> "ReverbImpulseFiles/Arthur Sykes Rymer Auditorium.wav" ;
] .
tpset:toob-convolution-reverb-stereo-preset-3
a pset:Preset ;
lv2:appliesTo <http://two-play.com/plugins/toob-convolution-reverb-stereo> ;
rdfs:label "Live Room" ;
lv2:port [
lv2:symbol "direct_mix" ;
pset:value -1.111115 ;
] , [
lv2:symbol "loading_state" ;
pset:value 0.0 ;
] , [
lv2:symbol "predelay" ;
pset:value 0.0 ;
] , [
lv2:symbol "reverb_mix" ;
pset:value -9.444443 ;
] , [
lv2:symbol "time" ;
pset:value 1.5 ;
] , [
lv2:symbol "width" ;
pset:value 1.0 ;
] ;
state:state [
<http://two-play.com/plugins/toob-impulse#impulseFile> "ReverbImpulseFiles/Genesis 6 Studio Live Room.wav" ;
] .
@@ -0,0 +1,35 @@
@prefix lv2: <http://lv2plug.in/ns/lv2core#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix pset: <http://lv2plug.in/ns/ext/presets#> .
@prefix tpset: <http://two-play.com/plugins/preset#> .
tpset:toob-delay-preset-0
a pset:Preset ;
lv2:appliesTo <http://two-play.com/plugins/toob-delay> ;
rdfs:label "Classic" ;
lv2:port [
lv2:symbol "delay" ;
pset:value 340.0 ;
] , [
lv2:symbol "feedback" ;
pset:value 39.1667 ;
] , [
lv2:symbol "level" ;
pset:value 27.0 ;
] .
tpset:toob-delay-preset-1
a pset:Preset ;
lv2:appliesTo <http://two-play.com/plugins/toob-delay> ;
rdfs:label "Slapback" ;
lv2:port [
lv2:symbol "delay" ;
pset:value 94.6447 ;
] , [
lv2:symbol "feedback" ;
pset:value 39.1667 ;
] , [
lv2:symbol "level" ;
pset:value 42.0 ;
] .
@@ -0,0 +1,77 @@
@prefix lv2: <http://lv2plug.in/ns/lv2core#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix pset: <http://lv2plug.in/ns/ext/presets#> .
@prefix tpset: <http://two-play.com/plugins/preset#> .
tpset:toob-flanger-preset-0
a pset:Preset ;
lv2:appliesTo <http://two-play.com/plugins/toob-flanger> ;
rdfs:label "Vibe" ;
lv2:port [
lv2:symbol "depth" ;
pset:value 0.341667 ;
] , [
lv2:symbol "manual" ;
pset:value 0.3 ;
] , [
lv2:symbol "rate" ;
pset:value 0.991667 ;
] , [
lv2:symbol "res" ;
pset:value 0.35 ;
] .
tpset:toob-flanger-preset-1
a pset:Preset ;
lv2:appliesTo <http://two-play.com/plugins/toob-flanger> ;
rdfs:label "Default" ;
lv2:port [
lv2:symbol "depth" ;
pset:value 0.5 ;
] , [
lv2:symbol "manual" ;
pset:value 0.5 ;
] , [
lv2:symbol "rate" ;
pset:value 0.5 ;
] , [
lv2:symbol "res" ;
pset:value 0.5 ;
] .
tpset:toob-flanger-preset-2
a pset:Preset ;
lv2:appliesTo <http://two-play.com/plugins/toob-flanger> ;
rdfs:label "Chorus" ;
lv2:port [
lv2:symbol "depth" ;
pset:value 0.158333 ;
] , [
lv2:symbol "manual" ;
pset:value 0.0 ;
] , [
lv2:symbol "rate" ;
pset:value 0.925 ;
] , [
lv2:symbol "res" ;
pset:value 0.0 ;
] .
tpset:toob-flanger-preset-3
a pset:Preset ;
lv2:appliesTo <http://two-play.com/plugins/toob-flanger> ;
rdfs:label "Rotary" ;
lv2:port [
lv2:symbol "depth" ;
pset:value 0.675 ;
] , [
lv2:symbol "manual" ;
pset:value 0.0 ;
] , [
lv2:symbol "rate" ;
pset:value 0.966667 ;
] , [
lv2:symbol "res" ;
pset:value 0.0 ;
] .
@@ -0,0 +1,77 @@
@prefix lv2: <http://lv2plug.in/ns/lv2core#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix pset: <http://lv2plug.in/ns/ext/presets#> .
@prefix tpset: <http://two-play.com/plugins/preset#> .
tpset:toob-flanger-stereo-preset-0
a pset:Preset ;
lv2:appliesTo <http://two-play.com/plugins/toob-flanger-stereo> ;
rdfs:label "Vibe" ;
lv2:port [
lv2:symbol "depth" ;
pset:value 0.341667 ;
] , [
lv2:symbol "manual" ;
pset:value 0.3 ;
] , [
lv2:symbol "rate" ;
pset:value 0.991667 ;
] , [
lv2:symbol "res" ;
pset:value 0.35 ;
] .
tpset:toob-flanger-stereo-preset-1
a pset:Preset ;
lv2:appliesTo <http://two-play.com/plugins/toob-flanger-stereo> ;
rdfs:label "Default" ;
lv2:port [
lv2:symbol "depth" ;
pset:value 0.5 ;
] , [
lv2:symbol "manual" ;
pset:value 0.5 ;
] , [
lv2:symbol "rate" ;
pset:value 0.5 ;
] , [
lv2:symbol "res" ;
pset:value 0.5 ;
] .
tpset:toob-flanger-stereo-preset-2
a pset:Preset ;
lv2:appliesTo <http://two-play.com/plugins/toob-flanger-stereo> ;
rdfs:label "Chorus" ;
lv2:port [
lv2:symbol "depth" ;
pset:value 0.158333 ;
] , [
lv2:symbol "manual" ;
pset:value 0.0 ;
] , [
lv2:symbol "rate" ;
pset:value 0.925 ;
] , [
lv2:symbol "res" ;
pset:value 0.0 ;
] .
tpset:toob-flanger-stereo-preset-3
a pset:Preset ;
lv2:appliesTo <http://two-play.com/plugins/toob-flanger-stereo> ;
rdfs:label "Rotary" ;
lv2:port [
lv2:symbol "depth" ;
pset:value 0.675 ;
] , [
lv2:symbol "manual" ;
pset:value 0.0 ;
] , [
lv2:symbol "rate" ;
pset:value 0.966667 ;
] , [
lv2:symbol "res" ;
pset:value 0.0 ;
] .
@@ -0,0 +1,50 @@
@prefix lv2: <http://lv2plug.in/ns/lv2core#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix pset: <http://lv2plug.in/ns/ext/presets#> .
@prefix tpset: <http://two-play.com/plugins/preset#> .
tpset:toob-freeverb-preset-0
a pset:Preset ;
lv2:appliesTo <http://two-play.com/plugins/toob-freeverb> ;
rdfs:label "Room" ;
lv2:port [
lv2:symbol "damping" ;
pset:value 0.9851851 ;
] , [
lv2:symbol "dryWet" ;
pset:value 0.6537038 ;
] , [
lv2:symbol "roomSize" ;
pset:value 0.3 ;
] .
tpset:toob-freeverb-preset-1
a pset:Preset ;
lv2:appliesTo <http://two-play.com/plugins/toob-freeverb> ;
rdfs:label "Cathedral" ;
lv2:port [
lv2:symbol "damping" ;
pset:value 1.0 ;
] , [
lv2:symbol "dryWet" ;
pset:value 0.564815 ;
] , [
lv2:symbol "roomSize" ;
pset:value 0.8555557 ;
] .
tpset:toob-freeverb-preset-2
a pset:Preset ;
lv2:appliesTo <http://two-play.com/plugins/toob-freeverb> ;
rdfs:label "Hall" ;
lv2:port [
lv2:symbol "damping" ;
pset:value 1.0 ;
] , [
lv2:symbol "dryWet" ;
pset:value 0.6740743 ;
] , [
lv2:symbol "roomSize" ;
pset:value 0.6333336 ;
] .
@@ -0,0 +1,86 @@
@prefix lv2: <http://lv2plug.in/ns/lv2core#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix pset: <http://lv2plug.in/ns/ext/presets#> .
@prefix tpset: <http://two-play.com/plugins/preset#> .
tpset:toob-ml-preset-0
a pset:Preset ;
lv2:appliesTo <http://two-play.com/plugins/toob-ml> ;
rdfs:label "Fender Clean" ;
lv2:port [
lv2:symbol "bass" ;
pset:value 0.783333 ;
] , [
lv2:symbol "gain" ;
pset:value 0.0 ;
] , [
lv2:symbol "master" ;
pset:value 1.5 ;
] , [
lv2:symbol "mid" ;
pset:value 0.5 ;
] , [
lv2:symbol "model" ;
pset:value 8.0 ;
] , [
lv2:symbol "treble" ;
pset:value 0.55 ;
] , [
lv2:symbol "trim" ;
pset:value -3.0 ;
] .
tpset:toob-ml-preset-1
a pset:Preset ;
lv2:appliesTo <http://two-play.com/plugins/toob-ml> ;
rdfs:label "Mesa Crunch" ;
lv2:port [
lv2:symbol "bass" ;
pset:value 0.65 ;
] , [
lv2:symbol "gain" ;
pset:value 0.0 ;
] , [
lv2:symbol "master" ;
pset:value 1.5 ;
] , [
lv2:symbol "mid" ;
pset:value 0.5 ;
] , [
lv2:symbol "model" ;
pset:value 17.0 ;
] , [
lv2:symbol "treble" ;
pset:value 0.55 ;
] , [
lv2:symbol "trim" ;
pset:value -3.0 ;
] .
tpset:toob-ml-preset-2
a pset:Preset ;
lv2:appliesTo <http://two-play.com/plugins/toob-ml> ;
rdfs:label "Sparkling Clean" ;
lv2:port [
lv2:symbol "bass" ;
pset:value 0.65 ;
] , [
lv2:symbol "gain" ;
pset:value 0.0 ;
] , [
lv2:symbol "master" ;
pset:value 1.5 ;
] , [
lv2:symbol "mid" ;
pset:value 0.5 ;
] , [
lv2:symbol "model" ;
pset:value 19.0 ;
] , [
lv2:symbol "treble" ;
pset:value 0.55 ;
] , [
lv2:symbol "trim" ;
pset:value -3.0 ;
] .
+2
View File
@@ -1,3 +1,5 @@
#!/bin/bash
# preview gihub.io site.
# requires installation of jeckyll. See github docs pages.
cd docs
+1 -1
View File
@@ -139,7 +139,7 @@ const appStyles = (theme: Theme) => createStyles({
loadingBox: {
position: "relative",
top: "20%",
width: "120px",
width: "240px",
color: "#888",
marginLeft: "auto",
marginRight: "auto",
+3 -1
View File
@@ -69,6 +69,7 @@ export class PedalboardItem implements Deserializable<PedalboardItem> {
this.vstState = input.vstState ?? "";
this.stateUpdateCount = input.stateUpdateCount;
this.lv2State = input.lv2State;
this.lilvPresetUri = input.lilvPresetUri;
return this;
}
deserialize(input: any): PedalboardItem {
@@ -197,7 +198,8 @@ export class PedalboardItem implements Deserializable<PedalboardItem> {
midiBindings: MidiBinding[] = [];
vstState: string = "";
stateUpdateCount: number = 0;
lv2State: [boolean,any] = [false,{}]
lv2State: [boolean,any] = [false,{}];
lilvPresetUri: string = "";
};
+1 -3
View File
@@ -1131,10 +1131,8 @@ const PedalboardView =
} else {
item.numberOfOutputs = bottomOutputs;
}
} else if (splitter.getSplitType() === SplitType.Lr) {
item.numberOfOutputs = (topOutputs !== 0 && bottomOutputs !== 0) ? 2: 0;
} else {
item.numberOfOutputs = CalculateConnection(topOutputs,bottomOutputs);
item.numberOfOutputs = (topOutputs >= 1 || bottomOutputs >= 1) ? 2: 1;
}
} else if (item.isStart())
{
+21
View File
@@ -1513,6 +1513,15 @@ export class PiPedalModel //implements PiPedalModel
}
addPedalboardItem(instanceId: number, append: boolean): number {
let pedalboard = this.pedalboard.get();
if (instanceId === Pedalboard.START_CONTROL && append)
{
instanceId = pedalboard.items[0].instanceId;
append = false;
} else if (instanceId === Pedalboard.END_CONTROL && !append)
{
instanceId = pedalboard.items[pedalboard.items.length-1].instanceId;
append = true;
}
let newPedalboard = pedalboard.clone();
this.updateVst3State(newPedalboard);
@@ -1529,6 +1538,18 @@ export class PiPedalModel //implements PiPedalModel
}
addPedalboardSplitItem(instanceId: number, append: boolean): number {
let pedalboard = this.pedalboard.get();
if (instanceId === Pedalboard.START_CONTROL && append)
{
instanceId = pedalboard.items[0].instanceId;
append = false;
} else if (instanceId === Pedalboard.END_CONTROL && !append)
{
instanceId = pedalboard.items[pedalboard.items.length-1].instanceId;
append = true;
}
let newPedalboard = pedalboard.clone();
this.updateVst3State(newPedalboard);
+2 -2
View File
@@ -214,7 +214,7 @@ class PiPedalSocket {
enterBackgroundState()
{
this.isBackground = true;
this.socket?.close();
this.close();
}
exitBackgroundState()
@@ -261,7 +261,7 @@ class PiPedalSocket {
this.socket.onerror = null;
this.socket.onmessage = null;
this.socket.onopen = null;
this.socket?.close();
this.socket.close();
}
} catch (ignored)
{
+23 -2
View File
@@ -24,7 +24,7 @@ import createStyles from '@mui/styles/createStyles';
import withStyles from '@mui/styles/withStyles';
import { UiControl } from './Lv2Plugin';
import Typography from '@mui/material/Typography';
import { PiPedalModel, PiPedalModelFactory, MonitorPortHandle } from './PiPedalModel';
import { PiPedalModel, PiPedalModelFactory, MonitorPortHandle,State } from './PiPedalModel';
@@ -87,6 +87,16 @@ const PluginOutputControl =
value: 0
};
this.model = PiPedalModelFactory.getInstance();
this.onConnectionStateChanged = this.onConnectionStateChanged.bind(this);
}
private onConnectionStateChanged(state: State)
{
if (state === State.Ready)
{
this.unsubscribe();
this.subscribe();
}
}
private mounted: boolean = false;
@@ -95,16 +105,27 @@ const PluginOutputControl =
super.componentWillUnmount();
}
this.mounted = false;
this.model.state.removeOnChangedHandler(this.onConnectionStateChanged);
this.unsubscribe();
}
componentDidMount(): void {
this.mounted = true;
this.subscribe();
this.model.state.addOnChangedHandler(this.onConnectionStateChanged);
if (super.componentDidMount) {
super.componentDidMount();
}
}
componentDidUpdate(prevProps: Readonly<PluginOutputControlProps>, prevState: Readonly<PluginOutputControlState>, snapshot?: any): void {
if (prevProps.instanceId !== this.props.instanceId)
{
this.unsubscribe();
this.subscribe();
}
}
private VU_HEIGHT = 48-2;
private animationHandle: number | undefined = undefined;
@@ -207,7 +228,7 @@ const PluginOutputControl =
<div style={{ flex: "1 1 auto", display: "flex", justifyContent: "center", alignItems: "center", flexFlow: "row nowrap" }}>
<div style={{ width: 6, height: 48, background: "#000", }}>
<div style={{ height: 46, overflow: "hidden", position: "absolute", margin: 1 }}>
<div ref={this.vuRef} style={{ width: 4, height: 44, background: "#0C0", }} />
<div ref={this.vuRef} style={{ width: 4, height: 48, background: "#0C0", }} />
</div>
</div>
+13
View File
@@ -96,6 +96,19 @@ const PluginPresetSelector =
{
this.handlePresetsMenuClose();
this.model.loadPluginPreset(this.props.instanceId,instanceId);
let presetName = this.getPresetName(instanceId);
this.setState({saveAsName: presetName});
}
getPresetName(instanceId: number)
{
for (let preset of this.state.presets.presets)
{
if (preset.instanceId === instanceId)
{
return preset.label;
}
}
return "";
}
handlePresetMenuClick(e: SyntheticEvent): void {
+3 -2
View File
@@ -85,7 +85,8 @@ const styles = (theme: Theme) => createStyles({
},
dialogTitle: {
marginLeft: theme.spacing(2),
flex: 1,
textOverflow: "ellipsis",
flex: "1 1",
},
itemFrame: {
display: "flex",
@@ -382,7 +383,7 @@ const PluginPresetsDialog = withStyles(styles, { withTheme: true })(
</IconButton>
)}
<Typography variant="h6" className={classes.dialogTitle}>
<Typography noWrap variant="h6" className={classes.dialogTitle}>
{ title }
</Typography>
{(this.props.presets.getItem(this.state.selectedItem) != null)
+1 -1
View File
@@ -318,7 +318,7 @@ const PresetSelector =
onChange={(e, extra) => this.handleChange(e, extra)}
onClose={(e) => this.handleSelectClose(e)}
displayEmpty
value={presets.selectedInstanceId}
value={presets.selectedInstanceId === 0? '' : presets.selectedInstanceId}
inputProps={{
classes: { icon: classes.icon },
'aria-label': "Select preset"
+1 -1
View File
@@ -25,7 +25,7 @@
#pragma once
#include <vector>
#include "lv2/atom.lv2/atom.h"
#include "lv2/atom/atom.h"
namespace pipedal
{
+1 -1
View File
@@ -28,7 +28,7 @@
#include <sstream>
#include "json.hpp"
#include "ss.hpp"
#include "lv2/atom.lv2/util.h"
#include "lv2/atom/util.h"
using namespace pipedal;
+2 -2
View File
@@ -27,8 +27,8 @@
#include <cstddef>
#include <vector>
#include "MapFeature.hpp"
#include "lv2/atom.lv2/atom.h"
#include "lv2/atom.lv2/forge.h"
#include "lv2/atom/atom.h"
#include "lv2/atom/forge.h"
#include "json_variant.hpp"
namespace pipedal
+2 -2
View File
@@ -27,8 +27,8 @@
#include "json.hpp"
#include "json_variant.hpp"
#include "AtomConverter.hpp"
#include "lv2/atom.lv2/util.h"
#include "lv2/patch.lv2/patch.h"
#include "lv2/atom/util.h"
#include "lv2/patch/patch.h"
#include "MapFeature.hpp"
#include <cstring>
+1 -1
View File
@@ -188,7 +188,7 @@ private:
static constexpr size_t DEFERRED_MIDI_BUFFER_SIZE = 1024;
uint8_t deferredMidiMessages[DEFERRED_MIDI_BUFFER_SIZE];
size_t deferredMidiMessageCount;
size_t deferredMidiMessageCount = 0;
bool midiProgramChangePending = false;
int selectedBank = -1;
int64_t midiProgramChangeId = 0;
+8
View File
@@ -63,6 +63,14 @@ namespace pipedal
{
Free();
this->node = node;
this->isConst = false;
return *this;
}
AutoLilvNode &operator=(const LilvNode *node)
{
Free();
this->node = const_cast<LilvNode*>(node);
this->isConst = true;
return *this;
}
+21 -2
View File
@@ -80,8 +80,8 @@ endif()
# Use LV2 headers from the /usr/lib directory.
set (LV2DEV_INCLUDE_DIRS /usr/lib)
#set (LV2DEV_INCLUDE_DIRS /usr/lib)
set (LV2DEV_INCLUDE_DIRS )
pkg_check_modules(JACK "jack")
if(!JACK_FOUND)
@@ -285,6 +285,10 @@ add_executable(pipedaltest testMain.cpp
json_variant.cpp
json_variant.hpp
utilTest.cpp
util.cpp
util.hpp
AlsaDriverTest.cpp
AvahiServiceTest.cpp
WifiChannelsTest.cpp
@@ -565,6 +569,7 @@ add_test(NAME DevTest COMMAND pipedaltest "[Dev]")
#################################
add_executable(pipedalconfig
PrettyPrinter.hpp
ServiceConfiguration.cpp ServiceConfiguration.hpp
@@ -615,6 +620,20 @@ add_executable(pipedal_latency_test
target_link_libraries(pipedal_latency_test PRIVATE pthread asound
)
add_executable(capturepresets
CapturePresetsMain.cpp
Storage.cpp
Storage.hpp
CommandLineParser.hpp
)
target_include_directories(capturepresets PRIVATE ${PIPEDAL_INCLUDES})
target_link_libraries(capturepresets ${PIPEDAL_LIBS})
add_executable(pipedaladmind AdminMain.cpp CommandLineParser.hpp
UnixSocket.cpp UnixSocket.hpp
ServiceConfiguration.cpp ServiceConfiguration.hpp
+305
View File
@@ -0,0 +1,305 @@
#include "Storage.hpp"
#include "CommandLineParser.hpp"
#include <filesystem>
#include <fstream>
#include "Uri.hpp"
#include "ss.hpp"
#include <iomanip>
#include "util.hpp"
using namespace pipedal;
using namespace std;
using namespace std::filesystem;
Storage storage;
static std::string GetPluginid(const std::string &pluginUrl)
{
uri uri_(pluginUrl);
return uri_.segments()[uri_.segment_count() - 1];
}
static char hexC[] = "0123456788ABCDEF";
static void EncodeTurtleStringBody(std::stringstream&ss,const std::string &value)
{
std::u32string u32String = ToUtf32(value);
for (auto c : u32String)
{
if (c >= ' ' && c <= 0x7F && c != '\"' && c != '\'' && c != '<' && c != '>' && c != '\\' && c != '%')
{
ss << (char)c;
}
else if (c < 0x10000)
{
ss << "\\u"
<< hexC[(c >> 12) & 0x0F]
<< hexC[(c >> 8) & 0x0F]
<< hexC[(c >> 4) & 0x0F]
<< hexC[(c >> 0) & 0x0F];
}
else
{
ss << "\\U"
<< hexC[(c >> 28) & 0x0F]
<< hexC[(c >> 24) & 0x0F]
<< hexC[(c >> 20) & 0x0F]
<< hexC[(c >> 16) & 0x0F]
<< hexC[(c >> 12) & 0x0F]
<< hexC[(c >> 8) & 0x0F]
<< hexC[(c >> 4) & 0x0F]
<< hexC[(c >> 0) & 0x0F];
}
}
}
static std::string EncodeTurtleString(const std::string &value)
{
std::stringstream ss;
ss << '"';
EncodeTurtleStringBody(ss,value);
ss << '"';
return ss.str();
}
static std::string ToString(const std::vector<uint8_t>&value)
{
const char*start = (const char*)(&value[0]);
const char*end = start+value.size();
while (end != start && end[-1] == 0)
{
--end;
}
return std::string(start,end);
}
static std::string EncodeTurtleString(const std::vector<uint8_t> &value)
{
return EncodeTurtleString(ToString(value));
}
static std::string EncodeTurtlePath(const std::string &value)
{
std::stringstream ss;
ss << '<';
EncodeTurtleStringBody(ss,value);
ss << '>';
return ss.str();
}
static std::string EncodeTurtlePath(const std::vector<uint8_t>&value)
{
return EncodeTurtlePath(ToString(value));
}
std::string GetFileName(const std::string &uri)
{
std::string id = GetPluginid(uri);
return id + "-presets.ttl";
}
void WritePrefixes(ofstream &f)
{
f
<< "@prefix lv2: <http://lv2plug.in/ns/lv2core#> ." << endl
<< "@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> ." << endl
<< "@prefix pset: <http://lv2plug.in/ns/ext/presets#> ." << endl
<< "@prefix tpset: <http://two-play.com/plugins/preset#> ." << endl
<< "@prefix state: <http://lv2plug.in/ns/ext/state#> ." << endl
<< endl;
}
static void WriteSeeAlso(ofstream &f, const std::string &uri)
{
std::string id = GetPluginid(uri);
PluginPresets presets = storage.GetPluginPresets(uri);
f << "###" << endl;
for (size_t i = 0; i < presets.presets_.size(); ++i)
{
std::string presetId = SS("tpset:" << id << "-preset-" << i);
f << presetId << endl
<< " a pset:Preset ;" << endl
<< " lv2:appliesTo <" << uri << "> ;" << endl
<< " rdfs:seeAlso "
<< "<" << GetFileName(uri) << "> ." << endl;
f << endl;
}
}
std::string EncodeTurtleFloat(float value)
{
int64_t iValue = (int64_t)value;
if (iValue == value)
{
return SS(iValue << ".0");
}
std::stringstream s;
s << setprecision(7) << value;
return s.str();
}
std::string EncodeTurtleDouble(double value)
{
int64_t iValue = (int64_t)value;
std::stringstream s;
s << '\"';
if (iValue == value)
{
if (iValue == value)
{
s << iValue << ".0";
}
} else {
s << setprecision(15) << value;
}
s << "\"^^xsd:double";
return s.str();
}
void WritePresetFile(const path &outputDirectory, const std::string &uri)
{
std::string id = GetPluginid(uri);
path fileName = outputDirectory / GetFileName(uri);
ofstream f(fileName);
if (!f.is_open())
{
throw logic_error(SS("Can't write to " << fileName));
}
cout << "Writing preset file " << fileName << endl;
WritePrefixes(f);
PluginPresets presets = storage.GetPluginPresets(uri);
for (size_t i = 0; i < presets.presets_.size(); ++i)
{
std::string presetId = SS("tpset:" << id << "-preset-" << i);
const auto &preset = presets.presets_[i];
f << presetId << endl
<< " a pset:Preset ; " << endl
<< " lv2:appliesTo <" << uri << "> ;" << endl
<< " rdfs:label " << EncodeTurtleString(preset.label_) << " ;" << endl;
if (preset.controlValues_.size() != 0)
{
f << " lv2:port ";
bool firstTime = true;
for (const auto &value : preset.controlValues_)
{
if (!firstTime)
{
f << " , ";
}
firstTime = false;
f << "[" << endl
<< " lv2:symbol " << EncodeTurtleString(value.first) << " ;" << endl
<< " pset:value " << EncodeTurtleFloat(value.second) << " ;" << endl;
f << " ]";
}
if (preset.state_.isValid_ && preset.state_.values_.size() != 0)
{
f << " ;" << endl;
f << " state:state [" << endl;
for (const auto &stateValue : preset.state_.values_)
{
f << " <"
<< stateValue.first << "> ";
const auto& t = stateValue.second;
if (t.atomType_ == LV2_ATOM__String)
{
f << EncodeTurtleString(t.value_);
} else if (t.atomType_ == LV2_ATOM__Path)
{
// encode it as a string, because Turtle paths have additional sematics.
// The type will be corrected at restore time.
f << EncodeTurtleString(t.value_);
} else if (t.atomType_ == LV2_ATOM__Float)
{
float *v = (float*)(&(t.value_[0]));
f << EncodeTurtleFloat(*v);
} else if (t.atomType_ == LV2_ATOM__Double)
{
double *v = (double*)(&(t.value_[0]));
f << EncodeTurtleDouble(*v);
} else if (t.atomType_ == LV2_ATOM__Int)
{
int32_t *v = (int32_t*)(&t.value_[0]);
f << *v;
} else if (t.atomType_ == LV2_ATOM__Long)
{
int64_t *v = (int64_t*)(&t.value_[0]);
f << *v;
}
f << " ;" << endl;
}
f << " ] ." << endl;
} else {
f << " ." << endl;
}
}
f << endl;
}
}
int main(int argc, const char *argv[])
{
// A utility for the ToobAmp project which converts Pipedal presets to LV2 presets so
// that they can be imported as pre-declared presets respective TTL files.
path outputPath = "/tmp/ToobPresets";
// Capture all ToobAmp plugin presets in LV2 format.
// CommandLineParser commandLineParser;
// commandLineParser.Parse(argc,argv);
try
{
storage.SetConfigRoot("/etc/pipedal/config");
storage.SetDataRoot("/var/pipedal");
storage.Initialize();
const PluginPresetIndex &index = storage.GetPluginPresetIndex();
std::filesystem::create_directories(outputPath);
{
ofstream f(outputPath / "add_to_manifest.ttl");
WritePrefixes(f);
for (const auto &entry : index.entries_)
{
if (entry.pluginUri_.starts_with("http://two-play.com/plugins/"))
{
cout << "Writing manifest.ttl declerations: " << entry.pluginUri_ << endl;
WriteSeeAlso(f, entry.pluginUri_);
}
}
}
for (const auto &entry : index.entries_)
{
if (entry.pluginUri_.starts_with("http://two-play.com/plugins/"))
{
WritePresetFile(outputPath, entry.pluginUri_);
}
}
}
catch (const std::exception &e)
{
cout << "ERROR: " << e.what() << endl;
return EXIT_FAILURE;
}
return EXIT_SUCCESS;
}

Some files were not shown because too many files have changed in this diff Show More