# Phase 9: Frequency Design and Group Architecture - Discussion Log > **Audit trail only.** Do not use as input to planning, research, or execution agents. > Decisions are captured in CONTEXT.md — this log preserves the alternatives considered. **Date:** 2026-03-27 **Phase:** 09-frequency-design-and-group-architecture **Areas discussed:** Frequency band layout, Auto-assign range update, Group field design, Waveform-per-family strategy --- ## Frequency Band Layout | Option | Description | Selected | |--------|-------------|----------| | Freeze existing | Keep all 14 current frequencies untouched. New protocols placed above 1047 Hz. | | | Rebalance all into families | Move existing protocols into their logical family bands. Cleaner design but changes existing Hz values. | ✓ | | Hybrid — freeze knowns, rebalance unknowns | Keep 10 known protocols frozen, move 4 unknown buckets higher. | | **User's choice:** Rebalance all into families **Notes:** User chose full rebalance despite the risk of breaking v1.1 user TOML configs with explicit Hz overrides. Clean family organization takes priority. ### Follow-up: Frequency Range | Option | Description | Selected | |--------|-------------|----------| | 60-2000 Hz | Comfortable low-mid range. Families get ~1 octave each. | ✓ | | 60-4000 Hz (wide spread) | More room but higher frequencies can sound thin. | | | 100-3000 Hz (mid-focused) | Avoids bass extremes, good speaker compatibility. | | **User's choice:** 60-2000 Hz --- ## Auto-Assign Range Update | Option | Description | Selected | |--------|-------------|----------| | 2500-4000 Hz | Clean gap above built-ins. Custom classes sound distinctly higher. | ✓ | | 2100-3500 Hz (tight gap) | Starts just above ceiling, risk of perceptual blending. | | | 3000-5000 Hz (far above) | Maximum separation but can sound shrill. | | **User's choice:** 2500-4000 Hz **Notes:** 50 Hz steps across the range, matching the existing step algorithm. --- ## Group Field Design | Option | Description | Selected | |--------|-------------|----------| | Simple string | Group string field. Easy to extend, no code changes for new groups. | ✓ | | Typed enum (GroupType int) | Go const iota enum. Compile-time safety but rigid. | | | String with validation | String with known-groups list. Catches typos but more complex. | | **User's choice:** Simple string **Notes:** Values: Infrastructure, Web, Mail, File Transfer, Remote Access, Database, Discovery, VoIP, Unknown. --- ## Waveform-per-Family Strategy | Option | Description | Selected | |--------|-------------|----------| | One waveform per family | Each family shares a waveform type for timbral coherence. | ✓ | | Mix waveforms within families | Each protocol picks its own waveform. More variety, less family identity. | | | You decide | Claude picks best assignment. | | **User's choice:** One waveform per family **Notes:** All 4 waveform types used across 8 families. Families exceeding 4 groups share waveforms. --- ## Claude's Discretion - Specific Hz values for each class within family bands - Waveform-to-family mapping - Pan position assignments - Family band boundaries within 60-2000 Hz - Harmonic definitions (use WaveformPresetHarmonics) ## Deferred Ideas None — discussion stayed within phase scope.