Grid and Routing
Test whenever you touch the connection layer, block bypass, block movement, splice logic, or graph topology.
Prerequisites
- A preset with at least 3 blocks in a chain (Input > Plugin > Output)
Test Cases
TC-GR-001: Connect blocks in a chain
Steps:
- Add an Input, a Plugin block, and an Output to the grid
- Connect Input to Plugin by dragging from the right edge to the left edge
- Connect Plugin to Output
Expected: Audio flows through the chain. Route highlights show the signal path when a block is selected.
TC-GR-002: Mute block breaks route highlight
Steps:
- Select a block in the middle of a chain
- Set bypass mode to “Mute”
- Toggle bypass on
Expected: Route highlight breaks at the muted block immediately (no need to click away).
TC-GR-003: Thru bypass preserves route highlight
Steps:
- Select a block in the middle of a chain
- Set bypass mode to “Thru”
- Toggle bypass on
Expected: Route highlight stays connected through the bypassed block. Audio passes through.
TC-GR-004: Remove block from middle of chain
Steps:
- Build a chain: Input > A > B > Output
- Remove block A
Expected: Block A is removed. Connections to/from A are cleaned up. Block B is disconnected from Input (no auto-reconnect).
TC-GR-005: Splice block into existing connection
Steps:
- Build a chain: Input > Output (direct connection)
- Add a new plugin block by dropping it onto the connection line
Expected: New block is spliced in: Input > New > Output. Audio flows through all three.
TC-GR-006: Move block to new position
Steps:
- Place a block at column 3, row 2
- Drag it to column 6, row 4
Expected: Block moves. Connections follow. Audio continues flowing.
TC-GR-007: Drop target highlight during drag
Steps:
- Start dragging a block
- Move the cursor over various empty cells
Expected: The cell under the cursor highlights in blue (drop target indicator). Only one cell is highlighted at a time. Occupied cells do not highlight. No ghost highlights remain after dropping.
TC-GR-008: Drag and drop back to original position
Steps:
- Start dragging a block
- Release it on its original cell
Expected: Block stays in place. No ghost highlights on any cell after release.
TC-GR-009: Click to select still works after drag
Steps:
- Click a block without dragging (no mouse movement)
Expected: Block is selected (not dragged). Options panel shows the block’s settings.
TC-GR-010: Splice fails when path is broken by muted block
Steps:
- Build a chain: Input > A > B > Output
- Mute block A (bypass mode “Mute”)
- Click an empty cell on the connection line between A and B
- Add a Plugin block
Expected: New block should splice into the connection between A and B regardless of bypass state.
TC-GR-011: Mute FX In — reverb tails ring out with dry pass-through
Steps:
- Build a chain: Input > Reverb plugin > Output
- Set reverb to a long decay (2+ seconds)
- Set bypass mode to “Mute FX In”
- Play guitar, then toggle bypass on
Expected: Dry guitar signal continues immediately. Reverb tail fades out naturally over the decay time. Level and Balance controls still affect the output while bypassed.
TC-GR-012: Mute FX Out — signal enters effect before engaging
Steps:
- Build a chain: Input > Reverb plugin > Output
- Set bypass mode to “Mute FX Out”
- Toggle bypass on
- Play guitar for a few seconds (signal enters reverb silently)
- Toggle bypass off
Expected: While bypassed, dry guitar signal passes through. When un-bypassed, reverb immediately has a tail built up from the signal that was entering while bypassed.
TC-GR-013: Mute In — tails ring, no dry
Steps:
- Build a chain: Input > Delay plugin > Output
- Set bypass mode to “Mute In”
- Play guitar, then toggle bypass on
Expected: Delay repeats continue (tails ring out). Dry signal is silenced — only the effect tail is heard, fading to silence.
TC-GR-014: Mute Out — signal enters, output silenced
Steps:
- Build a chain: Input > Delay plugin > Output
- Set bypass mode to “Mute Out”
- Toggle bypass on, play guitar
- Toggle bypass off
Expected: While bypassed, total silence. When un-bypassed, delay has accumulated repeats from the input signal.
TC-GR-015: FX bypass modes with scene recall
Steps:
- Build a chain: Input > Reverb > Output
- Set reverb bypass mode to “Mute FX In”
- Create scene 0 with reverb active, scene 1 with reverb bypassed
- Play guitar, recall scene 1
Expected: Reverb tail rings out naturally. Dry signal continues without interruption. Recalling scene 0 re-engages the reverb.
Status: Known bug (pre-existing). Splice detection does not account for muted blocks in the path.
TC-GR-011: Multiple parallel chains
Steps:
- Add two Input blocks and two Output blocks
- Create two independent chains: Input1 > Plugin1 > Output1, Input2 > Plugin2 > Output2
Expected: Both chains process audio independently. Selecting a block in one chain highlights only that chain’s route.