The unvoiced engine's mod matrix is unreachable from the editor #73
Labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
bcox/tymbal#73
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
DrawUnvoicedLayer(editor/patch_view.h:2695-3096) never callsDrawModMatrix. Every other engine page does --DrawFmPairPage:1637,DrawVaPage:2677,DrawPartialPage:3552,DrawModalPage:4084-- so theunvoiced engine is the one engine whose modulation matrix has no UI at all.
The matrix itself is real and complete everywhere else:
dsp/unvoiced_layer.hdefines 16 destinations (kDestinationCount): the12 timeline lanes,
kTimelineSpeed, and the three the LPG added --kLpgTarget,kLpgCutoff,kLpgResonance.plugin/patch_format.hserializes it through the sameWriteModMatrix/ReadModMatrixpair as every other engine, so entriesround-trip through a
.dsppatchcorrectly.dsp/unvoiced_layer_test.ccdrives routes onto those destinations(
ARouteOntoTheCutoffMovesTheRing,ARouteOntoResonanceShortensTheRing),so the DSP side is exercised.
So an unvoiced route can be authored in C++ as a factory patch and will
load, save and sound correctly -- but it cannot be created, inspected or
removed in the editor, and a patch that has one shows no sign of it.
Opening such a patch, editing something unrelated and saving preserves the
route silently, which is the safe outcome rather than the obvious one.
This predates #43; every unvoiced destination has always been unreachable.
#43 made it conspicuous by adding three destinations whose whole point is a
gate you modulate -- an LPG whose target, cutoff and resonance cannot be
routed from the editor leaves most of that engine's new expressive range
off the panel.
Scope
Call
DrawModMatrixfromDrawUnvoicedLayerthe way the other four pagesdo, with a
MatrixSpecnaming the unvoiced destinations. The destinationlabels are the only genuinely new content:
editor/destination_table.handthe sectioned-destination idiom at
editor/patch_view.h:896already carrythe machinery.