Initial Commit
This commit is contained in:
@@ -0,0 +1,73 @@
|
||||
# Tasks: enterprise-audio-analysis-spectrum
|
||||
|
||||
**Change ID**: enterprise-audio-analysis-spectrum
|
||||
**Package**: `@suaveplan/audio-analysis-spectrum`
|
||||
**Target path**: `packages/media/audio/audio-analysis-spectrum`
|
||||
**Prerequisite packages on Verdaccio**: `@suaveplan/audio-core`, `@suaveplan/error`, `@suaveplan/types`
|
||||
|
||||
---
|
||||
|
||||
## 1. Scaffold
|
||||
|
||||
- [ ] Create directory `packages/media/audio/audio-analysis-spectrum/` with `src/`, `tests/`, `src/__benchmarks__/`, and all feature subdirectories per the layout in `proposal.md`.
|
||||
- [ ] Write `package.json` at version `0.1.0` with `"type": "module"`, `"sideEffects": false`, full `exports` map, deps: `@suaveplan/audio-core workspace:^`, `@suaveplan/error workspace:^`, `@suaveplan/types workspace:^`, `@suaveplan/opentelemetry workspace:^`, `zod catalog:forms`.
|
||||
- [ ] Write `tsconfig.json` extending `@suaveplan/typescript-config/library.json`.
|
||||
- [ ] Write `vitest.config.ts` using `createTestConfig()` from `@suaveplan/testing/config`.
|
||||
- [ ] Add `lint`, `typecheck`, `test`, `test:coverage`, `build`, `docs:check` scripts.
|
||||
|
||||
---
|
||||
|
||||
## 2. Types + errors
|
||||
|
||||
- [ ] Write `src/error-codes.ts` — `SPECTRUMErrorCode`, `AUDIO_ANALYSIS_SPECTRUM_ERROR_METADATA`, `registerAudioAnalysisErrorCodes()`.
|
||||
- [ ] Write Zod schemas: `SpectrumAnalyzerOptionsSchema`, `SpectrumResultSchema`, `SpectrogramResultSchema`, `MFCCResultSchema`.
|
||||
|
||||
---
|
||||
|
||||
## 3. Algorithms
|
||||
|
||||
- [ ] Implement `fft.ts` — real FFT with configurable frame size.
|
||||
- [ ] Write `fft.test.ts` and `fft.md` (≥200 words).
|
||||
- [ ] Implement `window.ts` — Hann, Hamming, Blackman window functions.
|
||||
- [ ] Write `window.test.ts` and `window.md` (≥200 words).
|
||||
- [ ] Implement `mel-scale.ts` — mel-frequency mapping and triangular filterbank.
|
||||
- [ ] Write `mel-scale.test.ts` and `mel-scale.md` (≥200 words).
|
||||
- [ ] Implement `dct.ts` — DCT-II for MFCC computation.
|
||||
- [ ] Write `dct.test.ts` and `dct.md` (≥200 words).
|
||||
|
||||
---
|
||||
|
||||
## 4. Analyzers
|
||||
|
||||
- [ ] Implement `SpectrumAnalyzer` class with `analyze()`, `analyzeStream()`, `analyzeBlock()`.
|
||||
- [ ] Write `spectrum-analyzer.test.ts` and `spectrum-analyzer.md` (≥200 words).
|
||||
- [ ] Implement `Spectrogram` class with `analyze()`, `analyzeStream()`.
|
||||
- [ ] Write `spectrogram.test.ts` and `spectrogram.md` (≥200 words).
|
||||
- [ ] Implement `MFCC` class with `analyze()`, `analyzeStream()`.
|
||||
- [ ] Write `mfcc.test.ts` and `mfcc.md` (≥200 words).
|
||||
- [ ] Wire OTel: spans, counters, histograms per analyzer.
|
||||
|
||||
---
|
||||
|
||||
## 5. Benchmarks
|
||||
|
||||
- [ ] Write `src/__benchmarks__/spectrum.bench.ts` — spectrogram 1-minute track, MFCC 1-minute track.
|
||||
|
||||
---
|
||||
|
||||
## 6. Tests
|
||||
|
||||
- [ ] Write `tests/integration.test.ts` — full spectrum/spectrogram/MFCC round-trip on real audio fixture.
|
||||
- [ ] Write `tests/property.test.ts` (fast-check) — sine wave → single peak, white noise → flat spectrum.
|
||||
|
||||
---
|
||||
|
||||
## 7. Docs + verify + publish
|
||||
|
||||
- [ ] All co-located `.md` files (≥200 words each).
|
||||
- [ ] Write `README.md` at package root.
|
||||
- [ ] `bunx turbo lint typecheck test --filter=@suaveplan/audio-analysis-spectrum` — green.
|
||||
- [ ] `bunx turbo test:coverage --filter=@suaveplan/audio-analysis-spectrum` — 100%.
|
||||
- [ ] `bun scripts/publish.ts --package @suaveplan/audio-analysis-spectrum`.
|
||||
- [ ] Fold `specs/audio-analysis-spectrum/spec.md` into `openspec/specs/audio-analysis-spectrum/spec.md`.
|
||||
- [ ] Archive to `openspec/archive/2026-05-14-enterprise-audio-analysis-spectrum/`.
|
||||
Reference in New Issue
Block a user