40 Commits

Author SHA1 Message Date
6d52f2e861 Add CMakeLists.txt, remove DSP library dependency/copy 2025-02-27 16:27:07 +00:00
d34b33da28 Fix time-stretching bug (never recomputed previous block) 2025-02-27 16:27:07 +00:00
94553a3789 Move input time after seeking 2025-02-27 16:27:07 +00:00
37f855cc7f It sounds OK, but doesn't null with the previous one 2025-02-27 16:27:07 +00:00
1eeba87b13 v1.1.1
* Fix bug with `.reset()` after silent input (thanks Steve!)
2025-01-29 16:42:53 +00:00
44c8f865af v1.1.0 2025-01-29 15:57:09 +00:00
bc8a7fd65e Calculate interval-step twists on-the-fly 2025-01-29 14:51:45 +00:00
Geraint
79b287ee0e Calculate vertical twists only when needed 2025-01-29 14:51:45 +00:00
Geraint
e5057a9f54 Don't need a separate prevOutput, since we use it straight away 2025-01-29 14:51:45 +00:00
Geraint
218bd0f16c Do phase-centre rotation in the time domain 2025-01-29 14:51:45 +00:00
Syl Morrison
9bffc80ec8 CMake for example command-line util 2025-01-29 14:51:45 +00:00
c867188d8e Initial web release 2024-10-22 12:24:55 +01:00
Geraint
a9d78f0331 Add .flush() for getting the final bits of output without any input 2024-02-19 10:20:40 +00:00
Geraint
ebaf93d494 Add .seek() method to setup/move input position
Also update DSP library to v1.6.0 (for `STFT::nextInvalid()`)
2024-02-16 12:11:58 +00:00
Geraint
e0231d5267 Fix inverted arguments for real distribution 2023-05-10 18:40:50 +01:00
Geraint
3c8c05b633 Tidying up 2023-05-07 23:50:33 +01:00
Geraint
8395e46da7 Skip the peak-finding if we're not pitch-shifting 2023-05-07 22:58:16 +01:00
Geraint
d1bc2e358d Fix some warnings, support random seed 2023-05-06 23:03:18 +01:00
Geraint
37db3a75a4 Even smoother phase-randomisation when stretching past 2x 2023-05-01 23:10:54 +01:00
Geraint
a9112f4f35 Move some methods up so it reads better 2023-05-01 07:49:08 +01:00
Geraint
605091c29e Randomise time-stretch slightly when it goes past 2x 2023-05-01 07:47:18 +01:00
Geraint
fddcdb628f De-emphasise phase-vocoder prediction when amplitude changes up or down 2022-12-18 17:07:16 +00:00
Geraint
7ca6c8d13c Restore up-front vertical phase-twist calculations and prediction weighting 2022-12-18 02:32:29 +00:00
Geraint
f72fa99cfa Bugfix: if the prediction is too weak, scale the fallback properly.
This was a problem when doing large pitch-shifts, because the pitch-map ends up folding back on itself, causing sections of the spectrum to have 0 energy.  This was fine for the max-energy channel, but dependent channels would then have a zero prediction, and would quote their input without energy-scaling.
2022-12-18 00:20:09 +00:00
Geraint
ec3c6a253f Refactor (nest some conditions, remove unused variables) 2022-12-17 23:30:39 +00:00
Geraint
3ffe6704ce Correct energy for preliminary (phase-vocoder) output. 2022-12-17 23:08:45 +00:00
Geraint
c3addb7298 Tidying up 2022-12-17 13:29:50 +00:00
Geraint
6364651d1b Ensure previous input spectrum is always one interval behind.
This increases CPU when time-stretching, but improves tuning.
2022-12-04 09:51:58 +00:00
Geraint
bb1bc7a6c4 Remove unused #include 2022-12-01 00:26:42 +00:00
Geraint
72ea54e4a9 Smoother frequency map using cubics instead of linear segments.
This means the frequency map isn't *completely* linear around the peaks, but it's pretty close, and the smoother curve reduces pre-ringing around transients.
2022-12-01 00:02:42 +00:00
Geraint
85df203ba7 Bugfix for very large buffers (e.g. whole audio file) 2022-11-29 21:44:13 +00:00
Geraint
088dad47f6 Add cheaper preset 2022-11-29 16:36:44 +00:00
Geraint
450b2fecce Performance tweak to make it almost usable in Debug 2022-11-29 15:54:11 +00:00
Geraint
31a4c2b5ba Bypasses processing when given silent input 2022-11-29 15:38:14 +00:00
Geraint
901df7bf97 Remove unused weights 2022-11-29 15:38:14 +00:00
Geraint
8787460488 Two-pass setup 2022-11-29 15:38:14 +00:00
Geraint
96eeee7a6f Start replacing order-sorting with two-pass setup 2022-11-29 15:36:49 +00:00
Geraint
598d037212 Remove custom pitch-map, add order-sorting 2022-11-27 11:25:35 +00:00
Geraint
c6db62ca6e Add license/readme 2022-11-25 14:17:40 +00:00
Geraint
e244e31614 Initial commit: pitch-shift works OK, time-stretch could be better 2022-11-25 13:45:55 +00:00