You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit 619e7e5
Browse filesBrowse the repository at this point in the historyBrowse files
Copy file name to clipboardExpand all lines: docs/todo.md
+12-6Lines changed: 12 additions & 6 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -2,11 +2,15 @@
2
2
3
3
## Producer Control Bus
4
4
5
-
Read /home/danny/github/downspout/docs/producer-control-bus.md and see what might need tweaking/implementing in the plugins to make this more intuitive and useful in /home/danny/github/transmission
5
+
~~Read /home/danny/github/downspout/docs/producer-control-bus.md and see what might need tweaking/implementing in the plugins to make this more intuitive and useful in /home/danny/github/transmission~~
6
+
7
+
Assessment: contract is well-defined. Remaining gaps:
8
+
- Bassops CC 34/35 overlay not active (needs `DISTRHO_PLUGIN_WANT_MIDI_INPUT 1` in its DistrhoPluginInfo.h and MIDI processing wired in the plugin)
9
+
- Transmission should be able to read bus participation from each plugin's `profile.ttl` using `trn:busRole`, `trn:ccMapping`, and `trn:ccGate` — verify these are populated correctly in all bus-participant profiles (Mixgen, T-Mix, Loopdelay, Lightverb, Bassops)
6
10
7
11
## Campione
8
12
9
-
High priority : it forgets its zones between loads.
13
+
High priority : it forgets its zones between loads. (May be fixed — verify.)
10
14
11
15
~~The drum sound recognition part of plugins/campione doesn't find any matches when tested on samples lifted from a drum loop~~ Fixed: three-part acoustic fix + loop-slicing mode.
12
16
@@ -24,7 +28,7 @@ Simplify UI, make sounds more varied.
24
28
25
29
## Lightverb
26
30
27
-
Remove the SIGNAL FLOW block - if it is only labels
31
+
~~Remove the SIGNAL FLOW block - if it is only labels~~ Done: removed block, shifted remaining sections up 82px, reduced window height 650→568.
28
32
Think about lightweight additions: spatial? Presets?
29
33
30
34
## Floozy
@@ -35,13 +39,15 @@ assignments, the generators will not follow. Consider exposing CC number paramet
35
39
on the receiver side, or adding a note to the UI that CC numbers must match
36
40
Conductor's settings.
37
41
38
-
### Pending — Conductor CC channel collision note
42
+
### ~~Pending — Conductor CC channel collision note~~
39
43
40
-
The BassGen "MIDI Follow" system (Note On response for drum triggering) and the
44
+
~~The BassGen "MIDI Follow" system (Note On response for drum triggering) and the
41
45
"Conductor" system (CC response) operate on different MIDI message types, so they
42
46
can coexist on the same channel. However, the UI should make this clearer — consider
43
47
a tooltip or panel note explaining that Follow Ch and Conductor Ch serve different
44
-
purposes and can differ.
48
+
purposes and can differ.~~
49
+
50
+
Done: section labels now read "MIDI Follow · note-on triggers" and "Conductor · CC 20–24 from Mixgen".
Copy file name to clipboardExpand all lines: plugins/lightverb/src/dpf/LightverbUI.cpp
+4-5Lines changed: 4 additions & 5 deletions
Original file line number
Diff line number
Diff line change
@@ -7,11 +7,10 @@ class LightverbUI final:public GenerativePanelUI{
7
7
public:LightverbUI():GenerativePanelUI("Lightverb","Fast stereo space for Transmission · fixed-cost FDN · CC 32 mix / CC 33 space",downspout::lightverb::kParameterSpecs.data(),downspout::lightverb::kParameterCount,231,184,92){}
drawSection(24,102,1032,66,"SIGNAL FLOW","zero latency · stereo in / stereo out · use as insert or 100% wet send");drawReadout(38,120,1004,40,"RECOMMENDED MASTER CHAIN","T-Mix → Loopdelay → Lightverb → Guardian");
11
-
drawSection(24,184,612,204,"SPACE","four delay lines; the same small workload at every setting");drawPercentSlider(kSpace,38,218,282,"Space","Changes the virtual room scale without adding processing cost.");drawSlider(kDecaySeconds,334,218,288,"Decay"," s","Time for the reverberant tail to fall by roughly 60 dB.",2);drawPercentSlider(kDamping,38,280,282,"Damping","Absorbs high frequencies in the tail; higher values sound darker.");drawSlider(kPreDelayMs,334,280,288,"Pre-delay"," ms","Separates the dry attack from the reverb onset.",0);
12
-
drawSection(652,184,404,204,"BLEND","insert-friendly defaults; set Wet mix to 100% on a send");drawPercentSlider(kWidth,666,218,180,"Stereo width","Narrows or spreads the reverberant field.");drawPercentSlider(kMix,860,218,182,"Wet mix","Dry at 0%; effect-only at 100% for an auxiliary send.");drawSlider(kOutputDb,666,280,376,"Output trim"," dB","Level-match Lightverb with the next effect, normally Guardian.",1);
13
-
drawSection(24,404,612,204,"PRODUCER CONTROL BUS","CC 19 lifecycle · MIDI passes through to the next effect");drawToggle(kMidiEnabled,38,438,176,"Accept MIDI control","Listen for the fixed Lightverb controller contract.");drawSlider(kControlChannel,226,435,190,"Control channel · 0 = Omni","","0 is Omni; 1–16 isolates this chain from other producer buses.",0);drawToggle(kRequireProducerGate,428,438,194,"Require CC 19 gate","Ignore CC 32/33 until the producer acquires this bus with CC 19.");drawReadout(38,492,282,46,"CC 32 · MIX","0–100% wet return");drawReadout(334,492,288,46,"CC 33 · SPACE","small–large space");drawLamp(38,554,136,"BUS ACTIVE",value(kStatusProducerActive)>=.5f);drawLamp(186,554,136,"MIX TAKEN",value(kStatusMixMidi)>=.5f);drawLamp(334,554,136,"SPACE TAKEN",value(kStatusSpaceMidi)>=.5f);drawAction(0,482,554,140,37,"RELEASE MIDI","Return Mix and Space to their saved panel values.");
drawSection(24,102,612,204,"SPACE","four delay lines; the same small workload at every setting");drawPercentSlider(kSpace,38,136,282,"Space","Changes the virtual room scale without adding processing cost.");drawSlider(kDecaySeconds,334,136,288,"Decay"," s","Time for the reverberant tail to fall by roughly 60 dB.",2);drawPercentSlider(kDamping,38,198,282,"Damping","Absorbs high frequencies in the tail; higher values sound darker.");drawSlider(kPreDelayMs,334,198,288,"Pre-delay"," ms","Separates the dry attack from the reverb onset.",0);
11
+
drawSection(652,102,404,204,"BLEND","insert-friendly defaults; set Wet mix to 100% on a send");drawPercentSlider(kWidth,666,136,180,"Stereo width","Narrows or spreads the reverberant field.");drawPercentSlider(kMix,860,136,182,"Wet mix","Dry at 0%; effect-only at 100% for an auxiliary send.");drawSlider(kOutputDb,666,198,376,"Output trim"," dB","Level-match Lightverb with the next effect, normally Guardian.",1);
12
+
drawSection(24,322,612,204,"PRODUCER CONTROL BUS","CC 19 lifecycle · MIDI passes through to the next effect");drawToggle(kMidiEnabled,38,356,176,"Accept MIDI control","Listen for the fixed Lightverb controller contract.");drawSlider(kControlChannel,226,353,190,"Control channel · 0 = Omni","","0 is Omni; 1–16 isolates this chain from other producer buses.",0);drawToggle(kRequireProducerGate,428,356,194,"Require CC 19 gate","Ignore CC 32/33 until the producer acquires this bus with CC 19.");drawReadout(38,410,282,46,"CC 32 · MIX","0–100% wet return");drawReadout(334,410,288,46,"CC 33 · SPACE","small–large space");drawLamp(38,472,136,"BUS ACTIVE",value(kStatusProducerActive)>=.5f);drawLamp(186,472,136,"MIX TAKEN",value(kStatusMixMidi)>=.5f);drawLamp(334,472,136,"SPACE TAKEN",value(kStatusSpaceMidi)>=.5f);drawAction(0,482,472,140,37,"RELEASE MIDI","Return Mix and Space to their saved panel values.");
0 commit comments