35 traffic classes across 9 protocol families shipped. Archives ROADMAP, REQUIREMENTS, and phase directories to milestones/v1.2-*. Updates README with new protocol families, sound design table, and [groups] TOML config documentation. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
85 lines
3.2 KiB
Markdown
85 lines
3.2 KiB
Markdown
# 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.
|