Skip to content

Releases: GPTmadeit/HelixTune

HELIX Tune 1.1.2

Choose a tag to compare

@GPTmadeit GPTmadeit released this 13 Sep 03:22

1.1.2 — performance

HELIX now uses a third to a half as much CPU, and its slowest audio buffers finish in less than half the time. Those slow buffers cause the pops and crackles, especially when you stack harmony voices or run other plugins alongside it. The sound hasn't changed. The tests compare output before and after, and where that's measurable it's bit-identical.

What changed

Stereo, 44.1 kHz CPU before → after Slowest buffer at 64 samples
Correction, Alto/Tenor 4.8% → 1.5% 52% → 17% of its deadline
Correction + 4 harmony voices 8.2% → 3.7% 56% → 25%
Generic input type 14.2% → 5.7% 105% → 46%
Generic + 4 harmony voices 17.5% → 7.9% 199% → 58%

Over 100% means the buffer missed its deadline, and that's the pop you hear. With the Generic input type, 1.1.1 missed deadlines at small buffer sizes.

  • The pitch detector's transform is half the size. It was sized for lags that are never used. The result is mathematically identical, and the detector now costs about half as much in every input type.
  • Harmony voices that are switched off no longer run. In 1.1.1 all four voices processed audio as soon as one was on. Switching a voice off now fades it out instead of cutting it.
  • Mono vocals on stereo tracks are processed once. When the left and right channels are identical, the lead is rendered once and copied. The output is bit-identical to rendering both channels, and a test checks that.
  • The pitch-mark search is about 3× faster. It's the shifter's inner loop, and it now uses vector (SIMD) instructions.
  • Formant processing turns itself off at neutral settings. With Throat Length at 1.0 it skips its analysis and filtering entirely.
  • At 88.2 kHz and above, pitch detection runs on a copy of the input at half or a quarter of the sample rate. The audio is still processed at full rate. Correction stays within 0.02 cents at 88.2, 96 and 192 kHz.
  • The editor only redraws what changed. Hidden panels stop redrawing, and the header no longer redraws all its controls 60 times a second.

About RAM

HELIX uses a few megabytes, all allocated when the plugin loads. More RAM doesn't help audio pops. They happen when the CPU can't finish a buffer in time. If you still hear pops with a large session in FL Studio:

  • Raise the buffer size in Options → Audio settings to 512 or more while mixing.
  • Leave Multithreaded processing on in the same dialog.
  • Use Alto/Tenor or another specific input type instead of Generic when you know the singer's range. Generic costs about three times as much.

Verified

83 DSP checks and 21 processor checks pass. Six of the new checks re-run correction at 88.2, 96 and 192 kHz. The stereo and harmony checks compare output against the old behaviour bit for bit. pluginval at strictness 10 passes cleanly. A new HelixTuneBench target reports average and worst-case buffer times, so you can measure on your own machine.

Installing

Close your DAW and run HELIX-Tune-1.1.2-Windows.exe, or use the version button in the plugin header to update.

HELIX Tune 1.1.1

Choose a tag to compare

@GPTmadeit GPTmadeit released this 11 Sep 08:08

1.1.1 — updater security

This release hardens the built-in updater. Nothing about the sound changes.

The updater downloads an installer and runs it, and the installer asks for admin rights, so it now refuses to run anything it cannot verify:

  • Only this repository's own downloads. The installer link must be an HTTPS download from github.com/GPTmadeit/HelixTune/releases with a plain .exe file name. Any other host, account, scheme, query string or path is refused.
  • Checked against GitHub's published SHA-256. The downloaded file has to match the exact size and SHA-256 digest GitHub lists for the asset before it is started. If a release has no digest, you get a link to the release page instead of an automatic install.
  • No predictable files. Downloads go to a fresh random file name, are capped at the published size, and are deleted if they fail verification. Previously a download that was cut short would still have been launched.

Everything from 1.1.0

Generic input type, the Harmony on/off switch (off by default), tempo-synced Note Transition, Correction Amount and the Input Key display — see the 1.1.0 notes.

Verified

72 DSP checks and 21 processor checks pass, including seven new ones that feed the updater 15 hostile URLs and check verification against the standard SHA-256 test vector. pluginval strictness 10 is clean.

Installing

Close your DAW, then run HELIX-Tune-1.1.1-Windows.exe. If you have an earlier version, the version button in the plugin header will offer this update — and from this version on, it checks what it downloads.

HELIX Tune 1.1.0

Choose a tag to compare

@GPTmadeit GPTmadeit released this 11 Sep 07:54

What's new in 1.1.0

Generic input type

Source → Generic (All Ranges) tracks any voice from 32 Hz to 2.2 kHz without being told the range — bass through soprano on one setting. Measured within 1.5 cents from 41 Hz to 1.98 kHz (0.2 cents up to 1.3 kHz), and it corrects G2, A3 and C6 sung 40 cents flat to within 0.14 cents.

Trade-off: it inherits the lowest range's grain size, so latency is about 95 ms (Alto / Tenor is 34 ms). Your DAW compensates for that on playback; if you monitor live through the plugin, the specific type is still the tighter choice.

Harmony master switch

  • A Harmony On / Off switch leads the Harmony page and turns the whole bus off — nothing rendered, no CPU spent. Voice settings are kept for when it comes back on.
  • Harmony now starts off. Previously voice 1 defaulted on, so every new instance quietly added a third above the vocal.
  • A lamp on the HARMONY tab shows whether harmony is running, from any page.
  • Existing projects sound the same. A session saved with 1.0.x reopens with harmony on if any voice was on, and off if none were.

Note Transition, locked to tempo

A Transition knob that clicks between 1/16T, 1/16, 1/8T, 1/8, 1/4T and 1/4 at the project tempo, setting how long the glide from one note to the next takes. It is separate from Retune Speed, which decides how hard pitch is held within a note. The correction header shows the tempo and what the note value works out to — for example 1/16 @ 120 BPM = 125 ms.

Measured: 1/16 at 120 BPM lands in 127.7 ms and at 60 BPM in 249.6 ms (the analysis hop is 5.8 ms), following its S-curve to within 0.00 cents.

Correction Amount

A standalone Amount knob beside the correction section. 100% lands on the note, 50% goes halfway, 0% leaves pitch alone; transpose and detune still apply. Measured: 50% on a note 40 cents flat leaves it 19.99 cents flat.

Input Key display

The detected key has its own Input Key panel on the main page — the key in large type, a confidence bar, and the pitch-class histogram behind the answer, with Follow and Apply.

Also

  • More accurate pitch detection everywhere. Sub-sample refinement now fits the raw difference function instead of the normalised one, whose tilt was dragging the estimate: 880 Hz error went from 0.40 to 0.07 cents, and A440 correction from 0.09 to 0.02 cents.
  • 72 DSP checks and 14 processor checks pass; pluginval strictness 10 is clean.

Still open

The harmony grit with three or more voices from the last report is not addressed in this release. A short dry clip and the voice settings would let me chase it with real material.

Installing

Close your DAW, then run HELIX-Tune-1.1.0-Windows.exe. If you already have 1.0.x, the version button in the plugin header will offer this update.

HELIX Tune 1.0.1 - preset crash fix

Choose a tag to compare

@GPTmadeit GPTmadeit released this 10 Sep 05:35

Fixes

Selecting a preset crashed the host. FactoryPreset stored its settings in a std::initializer_list member. That type does not own its backing array — the array dies with the expression that created it — so the preset table dangled the moment it was built, and loading any preset walked freed memory. It is a std::vector now.

If you saw Access violation ... Read of address 0000000000000001 when clicking a preset, that was this.

Harmony bleed through consonants. Harmony voices used to crossfade to the dry input when the signal had no pitch — correct for the lead, wrong for harmony, because every consonant then became another delayed copy of the lead. They now go silent, the consonant detector gates the harmony bus, and the gain release is faster.

Verification

53 offline DSP checks (up from 44) and a new preset-loading regression test that drives the real processor. pluginval strictness 10 still clean.

Still open

Grittiness with three or more harmony voices is not confirmed fixed. I measured and ruled out four candidate causes — clipping, formant grain resampling, overlap-add nulls on downward shifts, and shifter artefacts on a realistic voice with jitter and breath noise. The changes above help but may not be the cause. If you still hear it, a short clip and the voice settings would let me chase it properly.

HELIX Tune 1.0.0

Choose a tag to compare

@GPTmadeit GPTmadeit released this 10 Sep 02:40

The first public release of HELIX Tune.


Download

HELIX-Tune-1.0.0-Windows.exe Recommended. Installs the VST3 where every DAW looks, plus the optional standalone app.
HELIX-Tune-1.0.0-VST3-portable.zip Just the .vst3 bundle. Drop it in a VST3 folder yourself. No admin needed.

Windows 10/11, 64-bit. Run the installer, rescan plugins in your DAW, done.

Future updates can install themselves — the version button in the plugin header
checks GitHub and will fetch and run the new installer for you. Close your DAW
first so the plugin file isn't locked. Automatic checks can be switched off from
that same menu.


What's in it

Auto mode — scale-driven correction with retune speed, humanize, flex-tune,
natural vibrato handling, transpose/detune, classic mode, throat modelling, and
a live pitch scope showing sung against corrected. 21 scales plus six historical
temperaments as real cent-offset tables. Every pitch class can be removed or
bypassed from the keyboard.

Harmony mode — Auto-Key names the key from the performance and shows the
pitch-class histogram it decided from. Four harmony voices sing scale
degrees
, not fixed intervals, so a third stays a third as the line moves
through the key. Per-voice formant, pan, detune and timing spread.

Graph mode — a piano roll showing what was sung, what you asked for and what
is coming out, all on one axis. Eight tools, per-note retune and vibrato
overrides, undo/redo. Make Notes flattens the captured contour onto scale
pitches; Make Curves keeps each note's shape and corrects only its centre.

Plus — 13 factory presets, user presets, and MIDI pitch output with pitch
bend carrying the cents actually sung.


Under the hood

  • YIN detection feeding a Viterbi tracker over a lattice of candidate
    periods, so octave ambiguity is resolved with time context rather than guessed
    frame by frame.
  • TD-PSOLA shifting with interpolated epoch refinement.
  • LPC source-filter formant control, so pitch and formant stop interfering.
  • Consonant protection — sibilants and plosives are left uncorrected, while
    transpose and detune stay applied.

Measured

f0 detection, 82–880 Hz within 0.4 cents
40-cents-flat corrected to A440 0.09 cents
PSOLA across ratios 0.75–2.0 within 0.08 cents
octave errors, vibrato take 0 in 765 voiced frames
CPU, stereo @ 44.1 kHz 4.5% of one core, 7.0% with four harmony voices

44 offline DSP checks pass, and the plugin passes
pluginval at strictness 10 with zero
failures across all 56 parameters.

Latency is 18–95 ms depending on the selected voice range — inherent to
pitch-synchronous shifting, and reported to the host for delay compensation.
Pick a narrower input type for less.

Worth knowing: every measurement above comes from synthetic tones, noise
and generated melodies. The pitch maths is verifiably correct; whether the
character suits your voice is your ears' call. Start with the Natural Vocal
and Harmony: Trio presets.

The installer is not code-signed, so SmartScreen will warn on first run —
choose More infoRun anyway, or use the portable zip.


Built with JUCE. MIT licensed source; see
LICENSE for the JUCE
and trademark position. Not affiliated with Steinberg or Antares.