2724daacaf
.flush() processes new output (zero-valued input) for longer lengths
2025-08-11 14:54:32 +01:00
Geraint
3e71aec5f7
Use .outputSeek() for .exact()
2025-08-10 21:15:04 +01:00
Geraint
c3fcda8563
Add .outputSeek() for playing back samples
2025-08-10 20:15:45 +01:00
Geraint
12de19e05d
Formant metric based on peaks/dips
2025-08-10 20:15:45 +01:00
cb5a8eab7e
Zero .exact() output when it's too short
2025-08-05 08:00:13 +01:00
Geraint
222093b4cc
Bugfix in web release
2025-06-27 02:09:03 +01:00
Geraint
c5987267e6
Add .exact() method to process entire buffers, including folding extra output back in
2025-06-14 09:41:05 +01:00
Oleksii Amplee
c78aacf638
Fix MSVC build error C2397 (narrowing conversion)
...
signalsmith-stretch.h(407,29): error C2397: conversion from 'int' to 'size_t' requires a narrowing conversion
MSBuild version 17.13.15+18b3035f6 for .NET Framework
2025-05-01 10:00:31 +01:00
Geraint
7c13c1dbbd
Web: update docs, make tonalityHz controllable, not config
2025-04-19 09:34:54 +01:00
Geraint
94a41f9436
Rebuild web release, bump version (1.3.0)
2025-04-18 21:29:45 +01:00
Geraint
b84e9cf5e9
Refactor, split formants into 3 computation steps
2025-04-18 21:03:15 +01:00
Geraint
004a52b30d
Formant shifts include tonality limit
2025-04-18 19:48:59 +01:00
97594ea3eb
Add .setFormantBase() method (specified relative to sample-rate)
2025-04-16 15:21:24 +01:00
26a3a75deb
Make formants a bit more blunt
2025-04-16 15:19:47 +01:00
70e4b9c4c9
Formant shift based on (rough1) freq estimation
2025-04-16 15:18:43 +01:00
Geraint
54423c34db
Release v1.2.0
2025-04-16 11:57:23 +01:00
a654087551
Optional split computation, behind a configuration switch
2025-02-27 16:31:44 +00:00
8c3852cae3
Refactor chunked computation to be neater, fix some int warnings
2025-02-27 16:31:44 +00:00
1ad2839a04
Various speedups
2025-02-27 16:31:44 +00:00
Geraint
4c627c7568
Add empty final step (which is when we plan the next block)
2025-02-27 16:30:54 +00:00
46d866e9fe
Split .processSpectrum() into more steps
2025-02-27 16:30:54 +00:00
2c671f01aa
Compute next block in smaller steps
2025-02-27 16:30:54 +00:00
Geraint
7238c4c5a4
Use stft.finishOutput() in stretch.flush() to avoid errors
2025-02-27 16:27:07 +00:00
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