From 185709993fd911f680a6fdfb13cf6ccd3d91216c Mon Sep 17 00:00:00 2001 From: Geraint Luff Date: Tue, 29 Apr 2025 15:37:50 +0100 Subject: [PATCH] Mention formant-compensation in README --- README.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/README.md b/README.md index 3aa94f7..dc7b472 100644 --- a/README.md +++ b/README.md @@ -122,6 +122,12 @@ stretch.flush(outputBuffers, outputSamples); Using `.seek()`/`.flush()` like this, you can perform an exact time-stretch on a fixed-length sound, and your result will have `.outputLatency()` of pre-roll. +### Formant compensation + +The two methods `.setFormantFactor()` and `.setFormantSemitones()` can specify a scaling-factor for the formants. They both have an optional `compensatePitch` flag, and enabling this . when performing formant correction/shifting. + +The formant correction is not a sharp as monophonic algorithms (such such as PSOLA). It also needs you to give it a rough estimate of fundamental frequency (relative to Nyquist) using `.setFormantBase()`. + ## Compiling ⚠️ This has mostly been tested with AppleClang (Mac), and MSVC (Windows).  We aim to support other compilers though, so please get in touch if you have any problems.