Audio to funscript
in seconds, not hours

forgegen analyses the rhythm, phrase structure, and energy of any audio track, then writes a phrase-aware .funscript ready to drive any haptic device. Phrase-level mode shaping, comparison-strip preview, stable beat tracking — and a clean handoff to FunscriptForge for refinement.

Download for Windows Download for macOS Download for Linux

Latest release  ·  Free  ·  No Python required  ·  Open source

Pre-release software. Provided as-is, without warranty of any kind. Use at your own risk.


What it does

A quality first-draft funscript from any audio track — in under a minute.

Phrase-level mode shaping

Each phrase is classified — tease, steady, fast, edging, break, chaotic — and the curve is sculpted accordingly. Edging builds 50→100, breaks go quiet, teases narrow. Not a uniform beat-thump.

Stable beat tracking

PLP-based tracker holds the beat through tempo changes and weak downbeats. Locked-BPM mode for tracks with a known fixed tempo. Sub-beat density: 1, 2, 4, or 8 actions per beat.

Comparison-strip preview

Every Style / Stroke-density / Tone option rendered as a velocity-coloured curve thumbnail with synced ◀▶ scroll and a 5-step zoom ladder (4s → 16s → 1m → 3m → 10m). Pick the option that fits before exporting.

FunscriptForge handoff

Save writes the .funscript plus an .analysis.json sidecar — chapter proposals, source metadata, generation parameters. FunscriptForge auto-loads it on funscript open. Generate fast, refine deliberately.

Stats sidebar

Mean position, range, average velocity, p90 velocity, peak velocity — the same metrics FunscriptForge surfaces. Compare a generated curve to a gold-standard reference at a glance.

Fully local

Runs on your machine. No cloud, no account, no telemetry. Your audio and funscripts never leave your computer. CLI and importable Python library for batch and pipeline workflows.


How it works

A four-step pipeline from raw audio to phrase-shaped funscript.

1

Analyse

Detect the beat grid, BPM, phrase boundaries, and energy envelope. Embedded MP4 chapters or a chapters.json sidecar feed into the structural pass.

2

Classify

Label each phrase: break, tease, slow, steady, fast, or edging. Auto-tone derives a per-phrase tone from energy and density signals.

3

Shape

Sculpt the motion curve per mode. Pick a Style / Stroke-density / Tone combination from the comparison strip — or accept the auto pick.

4

Export

Click Save. Validated .funscript JSON lands in your chosen folder, alongside a .analysis.json sidecar that FunscriptForge picks up automatically.


System requirements

Standalone app — no Python, no ffmpeg install, no dependencies.

MinimumRecommended
OSWindows 10 (64-bit) · macOS 10.15 Catalina · Linux x86-64Windows 10/11 · macOS 12+ · Ubuntu 24.04 LTS
RAM4 GB8 GB or more
Disk1 GB for the app plus room for your media and outputsSSD recommended for batch runs
Display1920 × 10802560 × 1440 QHD
Media lengthv0.1 expects ≲10-minute tracks; long-form scaling is on the v0.5 roadmap.
ffmpegBundled — no install required
PythonNot required — standalone installer

More from Liquid Releasing

Small, focused desktop tools that fit together. forgegen generates the draft; the others edit and assemble.

FunscriptForge

FunscriptForge

Structure-aware funscript post-processor. Picks up forgegen's analysis.json sidecar automatically — refine the generated draft per phrase, preview against the source, then export.

ForgeAssembler

ForgeAssembler

Concatenate many finished clips — video plus every funscript channel — into one long combined output. Chapter markers, fade-to-black joiners, per-section overlays, heatmap.

ForgeYT

ForgeYT

Paste a YouTube URL, get the audio file on your disk. MP3, M4A, Opus, or WAV with embedded title and cover art. The fastest way to get a track into forgegen.

Ready to get started?

Download the latest release, extract, and run. No install wizard, no registry entries.

Pre-release software. Provided as-is, without warranty of any kind. Use at your own risk.

All releases on GitHub →