3.3 KiB
3.3 KiB
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/withsrc/,tests/,src/__benchmarks__/, and all feature subdirectories per the layout inproposal.md. - Write
package.jsonat version0.1.0with"type": "module","sideEffects": false, fullexportsmap, deps:@suaveplan/audio-core workspace:^,@suaveplan/error workspace:^,@suaveplan/types workspace:^,@suaveplan/opentelemetry workspace:^,zod catalog:forms. - Write
tsconfig.jsonextending@suaveplan/typescript-config/library.json. - Write
vitest.config.tsusingcreateTestConfig()from@suaveplan/testing/config. - Add
lint,typecheck,test,test:coverage,build,docs:checkscripts.
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.tsandfft.md(≥200 words). - Implement
window.ts— Hann, Hamming, Blackman window functions. - Write
window.test.tsandwindow.md(≥200 words). - Implement
mel-scale.ts— mel-frequency mapping and triangular filterbank. - Write
mel-scale.test.tsandmel-scale.md(≥200 words). - Implement
dct.ts— DCT-II for MFCC computation. - Write
dct.test.tsanddct.md(≥200 words).
4. Analyzers
- Implement
SpectrumAnalyzerclass withanalyze(),analyzeStream(),analyzeBlock(). - Write
spectrum-analyzer.test.tsandspectrum-analyzer.md(≥200 words). - Implement
Spectrogramclass withanalyze(),analyzeStream(). - Write
spectrogram.test.tsandspectrogram.md(≥200 words). - Implement
MFCCclass withanalyze(),analyzeStream(). - Write
mfcc.test.tsandmfcc.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
.mdfiles (≥200 words each). - Write
README.mdat 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.mdintoopenspec/specs/audio-analysis-spectrum/spec.md. - Archive to
openspec/archive/2026-05-14-enterprise-audio-analysis-spectrum/.