Skip to content

Add six-channel mixer board face to Porta424 app#39

Merged
johnnyclem merged 1 commit into
mainfrom
claude/porta424-swiftui-replica-ozxind
Jun 22, 2026
Merged

Add six-channel mixer board face to Porta424 app#39
johnnyclem merged 1 commit into
mainfrom
claude/porta424-swiftui-replica-ozxind

Conversation

@johnnyclem

Copy link
Copy Markdown
Owner

Summary

Recreates the TASCAM Portastudio 424 mkIII front-panel mixer as a new face of the app. Rather than dropping in a standalone replica that reinvents knobs, faders, and buttons, this build the full board out of the project's existing retro controls (RetroKnob, RetroFader, RetroTransportButton) and the warm cream Porta theme, wired to real app state through TapeDeckViewModel.

What's included

  • MixerState.swiftChannelState (trim, 3-band EQ, FX1/FX2 sends, pan, channel fader, MIC/LINE source, record-arm) plus a ChannelSource enum and a .defaultBoard factory. Added a channels array and toggleArm / toggleSource helpers to TapeDeckViewModel.
  • MixerBoardView.swift — the full six-channel board:
    • Header reuses CassetteView, TapeCounterView, and stereo VUMeterView.
    • Six channel strips built from RetroKnob (EQ knobs detented to flat at center) and RetroFader, with MIC/LINE toggle and a breathing record-arm button.
    • Master section fader bound to the live DSP master volume, so it actually affects audio; onChange(of: dsp) debounces to the engine like the other views.
    • Bottom bar reuses TransportBar, plus a pitch knob and a POWER reset.
    • Channel strips scroll horizontally so the board stays usable on iPhone.
  • Integration — reachable via a MIXER button in the tape-deck header (TapeDeckView) and the iPad utility drawer (SideDrawerView), presented as a fullScreenCover with a DECK return button.
  • Docs — README highlights and project-structure tree updated.

Notes

  • Per-channel mixer parameters are UI state today (the DSP engine takes master params); the master fader is the live-wired control. This mirrors the existing architecture and leaves room to map channels onto the engine later.
  • The iOS app target isn't part of CI (CI builds the Linux/macOS DSP package only), so these SwiftUI changes were verified by inspection against the existing control/view-model conventions rather than a compile in this environment.

🤖 Generated with Claude Code

https://claude.ai/code/session_01T9m6a6N9BTYjq448t2XAza


Generated by Claude Code

Recreates the TASCAM Portastudio 424 mkIII front-panel mixer using the
existing retro controls and warm cream theme instead of reinventing them.

- MixerState: per-channel state (trim, 3-band EQ, FX sends, pan, fader,
  MIC/LINE source, record-arm), wired into TapeDeckViewModel
- MixerBoardView: full board built from RetroKnob / RetroFader /
  RetroTransportButton, reusing CassetteView, TapeCounterView, VUMeterView,
  and TransportBar; master fader bound to the live DSP master volume
- Reachable via a MIXER button in the tape-deck header and the iPad
  utility drawer, presented as a full-screen cover with a DECK return

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01T9m6a6N9BTYjq448t2XAza
@pulumi

pulumi Bot commented Jun 22, 2026

Copy link
Copy Markdown

🤖 Pulumi Neo didn't review this pull request: no Pulumi preview ran for it. Agentic reviews require a preview of the affected stacks (for example from your CI's pulumi preview).

@johnnyclem
johnnyclem merged commit 6ba684f into main Jun 22, 2026
0 of 2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants