flecs
flecs copied to clipboard
feat(plugin): Pitch Shift
Pitch Shift
Implements shifting the pitch of the current song, like the Transpose extension.
I did what I could with my limited experience in this codebase, and the plugin is technically complete. But...
Help Wanted:
- Better UI: Currently the slider is implemented like playback-speed, but it would probably be beneficial to have a bigger slider since it's kinda hard right now to go up/down 1 semitone.
- ~~Cent-wise control: Currently you can make sub-semitone changes with the scroll wheel that moves in increments of 0.01, but you might want that to move in units of cents instead.~~ Probably not needed.
- Unified audio pipeline control: As currently implemented, you probably cannot have pitch-shift and the equalizer #2831 active at the same time (cuz I stole code from that pr).
- Per-song memory of pitch adjustment.
Related: #2005 #2186 #3168
Off-topic: This took me waaaaay too long to implement, because I just could not find a good library for this until I used chatgpt deep research to find this port of rubberband with 33 weekly downloads :skull:. And then it took me another eternity trying to get the renderer to load the script locally and not from the internet. But it's done and it works!