first commit
This commit is contained in:
@@ -0,0 +1,43 @@
|
||||
---
|
||||
name: sp-audio-fx-plugin-pitch-shifter
|
||||
description: Pitch shifter FX plugin — time-stretching pitch change without speed alteration. Grain size, overlap, formant preservation. Part of audio-fx-plugin-* family.
|
||||
---
|
||||
|
||||
# sp-audio-fx-plugin-pitch-shifter
|
||||
|
||||
| Symbol | Kind | Responsibility |
|
||||
|---|---|---|
|
||||
| `PitchShifterPlugin` | Class | Pitch shifter FX plugin extending `AbstractAudioFxPlugin` |
|
||||
| `PitchShifterPluginOptions` | Type | Semitones, grain size, overlap, formant preserve, mix |
|
||||
| `PitchShifterPluginOptionsSchema` | Schema | Zod schema for options validation |
|
||||
| `PitchShifterPresetDataSchema` | Schema | Zod schema for serialisable preset |
|
||||
|
||||
**File Structure:** `packages/media/audio-fx/audio-fx-plugin-pitch-shifter/src/{pitch-shifter,schemas}/`
|
||||
|
||||
**Sibling packages:**
|
||||
- `@suaveplan/audio-fx-plugin-base` — FX plugin foundation
|
||||
- `@suaveplan/audio-fx-plugin-glados` — GLaDOS effect (uses pitch shift)
|
||||
|
||||
**Patterns:**
|
||||
|
||||
*Quick Start:*
|
||||
```ts
|
||||
import { PitchShifterPlugin } from "@suaveplan/audio-fx-plugin-pitch-shifter";
|
||||
const shifter = new PitchShifterPlugin({ semitones: -7, grainSize: 80, overlap: 0.2 });
|
||||
```
|
||||
|
||||
**Constraints:**
|
||||
- Extends `AbstractAudioFxPlugin` from `@suaveplan/audio-fx-plugin-base`
|
||||
- Grain-based time-stretching preserves playback speed
|
||||
- Formant preservation maintains vocal character during shifts
|
||||
- Larger grains = smoother sound, more latency
|
||||
- Overlap controls crossfade between grains
|
||||
- Mix control for dry/wet blend
|
||||
- Preset schema validates all parameters
|
||||
|
||||
**Checklist:**
|
||||
- [ ] `PitchShifterPlugin` extends `AbstractAudioFxPlugin`
|
||||
- [ ] Pitch changes by specified semitones without speed change
|
||||
- [ ] Formant preservation maintains vocal character
|
||||
- [ ] Grain size tradeoff between quality and latency
|
||||
- [ ] Overlap crossfade reduces grain boundary artifacts
|
||||
Reference in New Issue
Block a user