# Requirements Archive: v1.1 Custom Sound Mappings **Archived:** 2026-03-26 **Status:** SHIPPED For current requirements, see `.planning/REQUIREMENTS.md`. --- # Requirements: NetSynth **Defined:** 2026-03-26 **Core Value:** Network traffic patterns are instantly recognizable as distinct sounds — a ping sounds different from HTTPS noise, which sounds different from a port scan. ## v1.1 Requirements Requirements for custom sound mappings milestone. Each maps to roadmap phases. ### Config Loading - [x] **CFG-01**: User can create a TOML config file that overrides default sound mappings - [x] **CFG-02**: Tool auto-discovers config from `./netsynth.toml` or `~/.config/netsynth/config.toml` (silent if absent) - [x] **CFG-03**: User can specify an explicit config path via `--config` flag (error if file missing) - [x] **CFG-04**: User can override individual values without replicating the entire default config (partial override) - [x] **CFG-05**: Unknown keys in config file produce a clear error with the typo'd key name - [x] **CFG-06**: User can run `netsynth --print-config` to see the effective config as commented TOML ### Waveforms - [x] **WAVE-01**: User can set waveform type per traffic class (sine, square, sawtooth, triangle) - [x] **WAVE-02**: Non-sine waveforms use bandlimited additive synthesis (no aliasing artifacts) ### Custom Rules - [x] **RULE-01**: User can define custom classification rules in TOML (match by port and/or protocol, assign class name and sound) - [x] **RULE-02**: User-defined rules take priority over built-in rules (prepend before defaults) - [x] **RULE-03**: User-defined class names automatically get a synthesis layer (no silent gaps) ## Future Requirements Deferred to later releases. ### Audio Tuning - **TUNE-01**: User can configure time window duration via `--window` flag - **TUNE-02**: User can configure output duration when reading pcap files via `--duration` flag ### Distribution - **DIST-01**: Single static binary with no runtime dependencies ## Out of Scope | Feature | Reason | |---------|--------| | Stereo position configuration | Keeps v1.1 scope focused; add in future if requested | | Real-time audio playback | File output only — established v1.0 constraint | | GUI config editor | CLI-only tool; TOML is human-editable | | JSON/YAML config format | TOML chosen for readability; one format keeps it simple | | Config hot-reload | Non-interactive tool; config read once at startup | ## Traceability Which phases cover which requirements. Updated during roadmap creation. | Requirement | Phase | Status | |-------------|-------|--------| | CFG-01 | Phase 6 | Complete | | CFG-02 | Phase 6 | Complete | | CFG-03 | Phase 6 | Complete | | CFG-04 | Phase 6 | Complete | | CFG-05 | Phase 6 | Complete | | CFG-06 | Phase 7 | Complete | | WAVE-01 | Phase 5 | Complete | | WAVE-02 | Phase 5 | Complete | | RULE-01 | Phase 7 | Complete | | RULE-02 | Phase 7 | Complete | | RULE-03 | Phase 7 | Complete | **Coverage:** - v1.1 requirements: 11 total - Mapped to phases: 11 - Unmapped: 0 --- *Requirements defined: 2026-03-26* *Last updated: 2026-03-26 after roadmap creation (traceability complete)*