WPF · C# · .NET 10 · SkiaSharp In Development

RTPC
Curve Editor

A standalone desktop tool for designing and exporting Wwise RTPC curves — built outside the DAW so curve design gets a proper UI. Precise mathematical control over Bézier handles, Wwise-matched preset shapes, multi-curve comparison, and direct XML export for Wwise import. Built with WPF, SkiaSharp, and C# 14 on .NET 10.

🖥️ Windows Desktop C# 14 / .NET 10 🎛️ Wwise Integration 🖊️ WPF / SkiaSharp 💾 XML Export
01 — Demo

Tool Demo

// replace with YouTube embed when ready

02 — Interface
RTPC Curve Editor — Sine constant-power fade-in preset applied to a curve

Sine (Constant Power Fade In) preset with live evaluation panel

RTPC Curve Editor — two comparison curves overlaid on the same canvas

Multi-curve comparison — two curves layered on one canvas

💾

XML export — Wwise-importable output

🔬

Point selection and handle editing

Core Features

  • Bézier curve editing — full handle control for each segment, matching the mathematical precision of Wwise's internal curve format
  • Wwise-matched presets — Logarithmic Base 3/1.41, Exponential Base 3/1.41, Sine Constant Power Fade In/Out, S-Curve, Inverted S-Curve — applied handle-only, never inserting points
  • Multi-select and editing — left-click point/segment selection, Ctrl+click multi-select, Ctrl+A select all, double-click to add/remove points
  • Multi-curve view — design and compare multiple RTPC curves side by side before committing to the project
  • XML export — outputs Wwise-importable XML with accurate curve data, ready to drop into any project
  • One-pole parameter smoothing — no zipper artefacts; handle movements feel continuous and natural in the UI

⚙️ Engineering Decisions

01

WPF + SkiaSharp rendering

WPF handles the shell and data bindings; SkiaSharp draws the curve canvas. This separates UI concerns cleanly and gives GPU-accelerated 2D drawing without locking into WPF's GDI path, which can't handle the smooth handle interactions needed here.

02

Handle-only preset application

Wwise applies curve shape by adjusting Bézier handles on boundary points — it never inserts new points. Replicating this exactly means exported curves behave identically in Wwise to ones authored natively, with no unwanted control point proliferation.

03

CommunityToolkit.Mvvm + ObservableCollection

MVVM architecture with a single backing field for AllCurves and a RefreshAllCurves() method eliminates the ghost-points bug that comes from returning a new ObservableCollection on every property read — a common WPF pitfall in data-bound canvas scenarios.

04

External to Wwise

The tool lives outside the Wwise project entirely. This means curve design can happen earlier in the audio pipeline, curves can be version-controlled as plain XML alongside game code, and the same curve library can be shared across multiple Wwise projects.

04 — Why This Exists

The problem with designing RTPC curves inside Wwise

Wwise's built-in curve editor works, but it's locked inside the project, limited in mathematical precision, and offers no way to compare curves side by side or share templates across projects. Audio programmers working on RTPC-heavy systems — adaptive music intensity, distance attenuation, ability charge curves — end up tweaking curves iteratively in Wwise with no external reference and no version control over the curve shapes themselves. This tool moves curve design outside the DAW entirely: design here with full mathematical control, export as Wwise-importable XML, and treat curve libraries as first-class versioned assets.

Adaptive Music

Design intensity transition curves precisely before wiring them to game state — see the shape you'll get before it's live.

Distance Attenuation

Compare logarithmic vs exponential falloff curves side by side and export the winner directly to the attenuation editor.

Ability Audio Coupling

Charge, impact, range — each ability parameter gets its own RTPC curve, authored externally and dropped into Wwise as XML.

05 — Technical Specs
C# 14 / .NET 10
Application runtime
WPF
Desktop UI framework
SkiaSharp 3.x
GPU-accelerated curve rendering
CommunityToolkit.Mvvm
MVVM architecture
System.Text.Json
Serialization / export
XML Export
Wwise-importable curve format

🔬 Planned Additions

Import from existing Wwise XML, curve diffing for version comparison, preset save/load system, batch export for full RTPC libraries, and a dark/light theme switch for different monitor environments.

06 — Download

Windows build coming once the current development phase is complete. Source available on GitHub.

🪟
Windows — .exe
64-bit, Windows 10+, .NET 10 runtime
Coming soon
💻
Source
Build from source via Visual Studio
GitHub →

Interested in Game Audio Tooling?

If you're building RTPC-heavy Wwise pipelines or looking for C# desktop tooling experience — reach out.