From 8bee485c9ff4efbef985375f238c4ff237cd0591 Mon Sep 17 00:00:00 2001 From: "Robin E. R. Davies" Date: Sun, 20 Jul 2025 11:52:26 -0400 Subject: [PATCH] Disable traces of experimental MIDI UI. --- PiPedalCommon/src/include/json.hpp | 2 +- src/Pedalboard.cpp | 1 + src/Pedalboard.hpp | 24 ++++++++++++------------ todo.txt | 3 +++ vite/src/pipedal/MidiChannelBinding.tsx | 5 +++++ vite/src/pipedal/PedalboardView.tsx | 3 ++- vite/src/pipedal/PluginControlView.tsx | 6 ++++-- 7 files changed, 28 insertions(+), 16 deletions(-) diff --git a/PiPedalCommon/src/include/json.hpp b/PiPedalCommon/src/include/json.hpp index aa193aa..def138f 100644 --- a/PiPedalCommon/src/include/json.hpp +++ b/PiPedalCommon/src/include/json.hpp @@ -607,7 +607,7 @@ namespace pipedal if (!obj) { write_raw("null"); } else { - write(obj.get()); + write(obj.value()); } } diff --git a/src/Pedalboard.cpp b/src/Pedalboard.cpp index 6093736..a6f1119 100644 --- a/src/Pedalboard.cpp +++ b/src/Pedalboard.cpp @@ -520,6 +520,7 @@ JSON_MAP_BEGIN(PedalboardItem) JSON_MAP_REFERENCE_CONDITIONAL(PedalboardItem,topChain,IsPedalboardSplitItem) JSON_MAP_REFERENCE_CONDITIONAL(PedalboardItem,bottomChain,&IsPedalboardSplitItem) JSON_MAP_REFERENCE(PedalboardItem,midiBindings) + JSON_MAP_REFERENCE(PedalboardItem,midiChannelBinding) JSON_MAP_REFERENCE(PedalboardItem,stateUpdateCount) JSON_MAP_REFERENCE(PedalboardItem,lv2State) JSON_MAP_REFERENCE(PedalboardItem,lilvPresetUri) diff --git a/src/Pedalboard.hpp b/src/Pedalboard.hpp index cb65855..f5d0ab8 100644 --- a/src/Pedalboard.hpp +++ b/src/Pedalboard.hpp @@ -81,7 +81,7 @@ public: }; -class PedalboardItem: public JsonMemberWritable { +class PedalboardItem { public: using PropertyMap = std::map; int64_t instanceId_ = 0; @@ -148,17 +148,17 @@ public: void AddResetsForMissingProperties(Snapshot&snapshot, size_t*index) const; - virtual void write_members(json_writer&writer) const { - writer.write_member("instanceId",instanceId_); - writer.write_member("uri",uri_); - writer.write_member("pluginName",pluginName_); - writer.write_member("isEnabled",isEnabled_); - if (isSplit()) - { - writer.write_member("topChain",topChain_); - writer.write_member("bottomChain",bottomChain_); - } - } + // virtual void write_members(json_writer&writer) const { + // writer.write_member("instanceId",instanceId_); + // writer.write_member("uri",uri_); + // writer.write_member("pluginName",pluginName_); + // writer.write_member("isEnabled",isEnabled_); + // if (isSplit()) + // { + // writer.write_member("topChain",topChain_); + // writer.write_member("bottomChain",bottomChain_); + // } + // } DECLARE_JSON_MAP(PedalboardItem); }; diff --git a/todo.txt b/todo.txt index 5776346..95ebe0b 100644 --- a/todo.txt +++ b/todo.txt @@ -39,3 +39,6 @@ pcm.pipedal_aux_in { } } + + +[{\"message\":\"updateCurrentPedalboard\"},{\"clientId\":6,\"pedalboard\":{\"name\":\"Test\",\"input_volume_db\":0,\"output_volume_db\":0,\"items\":[{\"instanceId\":51,\"title\":\"\",\"isEnabled\":true,\"uri\":\"uri://two-play/pipedal/pedalboard#Empty\",\"pluginName\":\"\",\"controlValues\":[],\"midiBindings\":[],\"midiChannelBinding\":null,\"vstState\":\"\",\"stateUpdateCount\":0,\"lv2State\":[false,{}],\"lilvPresetUri\":\"\",\"pathProperties\":{}},{\"instanceId\":50,\"title\":\"\",\"isEnabled\":true,\"uri\":\"http://calf.sourceforge.net/plugins/Gate\",\"pluginName\":\"Calf Gate\",\"controlValues\":[{\"key\":\"bypass\",\"value\":0},{\"key\":\"level_in\",\"value\":1},{\"key\":\"meter_in\",\"value\":0},{\"key\":\"meter_out\",\"value\":0},{\"key\":\"clip_in\",\"value\":0},{\"key\":\"clip_out\",\"value\":0},{\"key\":\"range\",\"value\":0.0612500012},{\"key\":\"threshold\",\"value\":0.125},{\"key\":\"ratio\",\"value\":2},{\"key\":\"attack\",\"value\":20},{\"key\":\"release\",\"value\":250},{\"key\":\"makeup\",\"value\":1},{\"key\":\"knee\",\"value\":2.82842994},{\"key\":\"detection\",\"value\":0},{\"key\":\"stereo_link\",\"value\":0},{\"key\":\"gating\",\"value\":0.03125}],\"midiBindings\":[],\"midiChannelBinding\":{\"deviceSelection\":0,\"midiDevices\":[],\"channel\":-1,\"acceptProgramChanges\":true,\"acceptCommonMessages\":true},\"vstState\":\"\",\"stateUpdateCount\":0,\"lv2State\":[false,{}],\"lilvPresetUri\":\"\",\"pathProperties\":{}},{\"instanceId\":46,\"title\":\"\",\"isEnabled\":true,\"uri\":\"uri://two-play/pipedal/pedalboard#Empty\",\"pluginName\":\"\",\"controlValues\":[],\"midiBindings\":[],\"midiChannelBinding\":null,\"vstState\":\"\",\"stateUpdateCount\":0,\"lv2State\":[false,{}],\"lilvPresetUri\":\"\",\"pathProperties\":{}},{\"instanceId\":48,\"title\":\"\",\"isEnabled\":true,\"uri\":\"uri://two-play/pipedal/pedalboard#Empty\",\"pluginName\":\"\",\"controlValues\":[],\"midiBindings\":[],\"midiChannelBinding\":null,\"vstState\":\"\",\"stateUpdateCount\":0,\"lv2State\":[false,{}],\"lilvPresetUri\":\"\",\"pathProperties\":{}},{\"instanceId\":47,\"title\":\"\",\"isEnabled\":true,\"uri\":\"uri://two-play/pipedal/pedalboard#Empty\",\"pluginName\":\"\",\"controlValues\":[],\"midiBindings\":[],\"midiChannelBinding\":null,\"vstState\":\"\",\"stateUpdateCount\":1,\"lv2State\":[false,{}],\"lilvPresetUri\":\"\",\"pathProperties\":{\"http://two-play.com/plugins/toob-ml#modelFile\":\"{\\\"otype_\\\": \\\"Path\\\",\\\"value\\\": \\\"/usr/lib/lv2/ToobAmp.lv2/models/tones/MesaBoogieMk2b_Crunch.json\\\"}\"}},{\"instanceId\":31,\"title\":\"\",\"isEnabled\":true,\"uri\":\"http://two-play.com/plugins/toob-freeverb\",\"pluginName\":\"TooB Freeverb\",\"controlValues\":[{\"key\":\"dryWet\",\"value\":0.653543293},{\"key\":\"roomSize\",\"value\":0.625},{\"key\":\"damping\",\"value\":0.574999988}],\"midiBindings\":[{\"symbol\":\"dryWet\",\"bindingType\":2,\"note\":72,\"control\":23,\"minControlValue\":0,\"maxControlValue\":127,\"minValue\":0,\"maxValue\":1,\"rotaryScale\":1,\"linearControlType\":0,\"switchControlType\":0}],\"midiChannelBinding\":null,\"vstState\":\"\",\"stateUpdateCount\":0,\"lv2State\":[false,{}],\"lilvPresetUri\":\"\",\"pathProperties\":{}}],\"nextInstanceId\":51,\"snapshots\":[],\"selectedSnapshot\":-1}}] \ No newline at end of file diff --git a/vite/src/pipedal/MidiChannelBinding.tsx b/vite/src/pipedal/MidiChannelBinding.tsx index 76feeeb..06dab83 100644 --- a/vite/src/pipedal/MidiChannelBinding.tsx +++ b/vite/src/pipedal/MidiChannelBinding.tsx @@ -24,6 +24,11 @@ export enum MidiDeviceSelection { DeviceList = 2 } +// This feature is not yet completely implemented. +export const midiChannelBindingControlFeatureEnabled: boolean = false; // set to true to enable the midi channel binding control in the plugin control view. + + + export default class MidiChannelBinding { deserialize(input: any) : MidiChannelBinding { this.deviceSelection = input.deviceSelection; diff --git a/vite/src/pipedal/PedalboardView.tsx b/vite/src/pipedal/PedalboardView.tsx index 4b25517..7b3bfcd 100644 --- a/vite/src/pipedal/PedalboardView.tsx +++ b/vite/src/pipedal/PedalboardView.tsx @@ -43,6 +43,7 @@ import { } from './Pedalboard'; import MidiIcon from './svg/ic_midi.svg?react'; +import { midiChannelBindingControlFeatureEnabled } from './MidiChannelBinding'; const START_CONTROL = Pedalboard.START_CONTROL; @@ -995,7 +996,7 @@ withStyles( const classes = withStyles.getClasses(this.props); return (
{ e.preventDefault(); }}> - {hasMidiConnector && ( + {hasMidiConnector && midiChannelBindingControlFeatureEnabled && (
diff --git a/vite/src/pipedal/PluginControlView.tsx b/vite/src/pipedal/PluginControlView.tsx index 073fd86..76d483f 100644 --- a/vite/src/pipedal/PluginControlView.tsx +++ b/vite/src/pipedal/PluginControlView.tsx @@ -27,6 +27,8 @@ import AutoZoom from './AutoZoom'; import ModGuiHost from './ModGuiHost'; +import {midiChannelBindingControlFeatureEnabled} from './MidiChannelBinding'; + import { withStyles } from "tss-react/mui"; import { PiPedalModel, PiPedalModelFactory } from './PiPedalModel'; import { UiPlugin, UiControl, UiFileProperty, UiFrequencyPlot, ScalePoint } from './Lv2Plugin'; @@ -762,7 +764,7 @@ const PluginControlView = makeIoPluginInfo("Output", Pedalboard.END_PEDALBOARD_ITEM_URI); midiBindingControl(pedalboardItem: PedalboardItem): ReactNode { - if (!pedalboardItem.midiChannelBinding) { + if ((!pedalboardItem.midiChannelBinding) || (midiChannelBindingControlFeatureEnabled === false)) { return false; } return ( @@ -890,7 +892,7 @@ const PluginControlView = pedalboardItem.midiChannelBinding = MidiChannelBinding.CreateMissingValue(); } - if (pedalboardItem.midiChannelBinding) { + if (pedalboardItem.midiChannelBinding && midiChannelBindingControlFeatureEnabled) { nodes.push(this.midiBindingControl(pedalboardItem)); } return (