Open-source time-frequency analysis

See sound across time and frequency.

SineSoda is a real-time VST3 analysis plug-in for researchers, engineers, educators, and anyone curious about sound. Compare 15 transforms on the same live input while the audio passes through unchanged.

macOS universal (Apple Silicon + Intel) · Windows x64 · VST3 · Apache-2.0

Compare the methods

Fifteen transforms. One open-source plug-in.

These examples use the same analysis settings wherever possible, making it easier to see what each method reveals. Frequency views use an 8,192-point analysis and logarithmic display; chroma keeps its native twelve pitch-class rows.

Full-width STFT time-frequency history of the harmonic-resolution piano roll
STFTExact FFT bins and steady harmonic detail.
Full-width log-filterbank history of the harmonic-resolution piano roll
Log filterbankEqual musical spacing across octaves.
Full-width Mel-frequency history of the harmonic-resolution piano roll
MelPerceptual emphasis for broad spectral balance.
Full-width Bark-scale history of the harmonic-resolution piano roll
BarkCritical-band grouping for masking cues.
Full-width ERB-scale history of the harmonic-resolution piano roll
ERBCochlear bandwidths with smooth low-end separation.
Full-width constant-Q history of the arpeggiated extended-chord piano roll
CQTStable note geometry for chords and tuning.
Full-width variable-Q history of the arpeggiated extended-chord piano roll
VQTNote alignment with shorter low-frequency support.
Full-width Morlet wavelet history of the staccato ascending piano roll
Morlet CWTMulti-resolution onset and motion structure.
Full-width Morse wavelet history of the staccato ascending piano roll
Morse CWTAdjustable analytic wavelet concentration.
Full-width Stockwell history of the staccato ascending piano roll
StockwellFrequency-dependent timing with absolute phase.
Full-width frequency-reassigned STFT history of the staccato ascending piano roll
Reassigned STFTSharper ridges and separated short notes.
Full-width synchrosqueezed wavelet history of the staccato ascending piano roll
Synchrosqueezed CWTConcentrated instantaneous-frequency tracks.
Full-width twelve-row chroma history of the arpeggiated extended-chord piano roll
ChromaPitch-class motion independent of octave.
Full-width Haar wavelet-packet history of the staccato ascending piano roll
Haar wavelet packetBlock-local changes and abrupt edges.
Full-width smoothed pseudo Wigner-Ville history of the staccato ascending piano roll
Smoothed pseudo Wigner–VilleHigh concentration with controlled cross-terms.

Compare 15 methods

Move between STFT, CQT, VQT, wavelets, Stockwell, reassigned and synchrosqueezed transforms, chroma, and more.

Designed for live signals

Lock-free audio handoff, bounded queues, overload recovery, and automatic rate limiting keep analysis work away from the audio path.

Open to inspect and extend

The implementation, algorithm notes, tests, and build system are available under Apache-2.0 for research, teaching, and engineering work.

Examples

Start with a question, then choose a view.

These short examples show how different representations help with sustained harmonics, localized onsets, and pitch-class motion.

01

Resolve notes and harmonics

Extended chords with low roots, close upper voices, and sustained tails give CQT enough structure to expose octave geometry and partial spacing.

CQT · 8,192 points · Log display · 48 bins/octave

A synchronized piano-roll playhead and scrolling CQT view for four sustained extended chords

02

Separate onsets and motion

Short ascending notes, octave punctuations, and changing durations make localization differences visible instead of hiding them inside sustained energy.

Reassigned STFT · 8,192 points · Log display

A synchronized piano-roll playhead and scrolling frequency-reassigned STFT for short ascending transients

03

Follow harmonic function

Arpeggiated major, minor, predominant, and dominant colors keep pitch classes distinct while moving notes across octaves.

Chroma · 8,192-point source analysis · 12 pitch classes

A synchronized piano-roll playhead and scrolling Chroma view for four ascending harmonic arpeggios

Use cases

Useful at the bench, in the studio, and in the classroom.

01

Research and prototyping

Compare time-frequency methods on the same live input before committing to one in a larger analysis pipeline.

02

Audio engineering

Investigate masking, resonant tails, low-frequency buildup, and transient overlap using a representation suited to the problem.

03

Teaching and learning

Make the trade-offs between time resolution, frequency resolution, perceptual scales, and pitch-based views visible as audio plays.

04

Sound and music analysis

Inspect modulation, harmonics, tuning, chords, and pitch-class activity without changing the source signal.

Capabilities

Hold the signal steady and change the analysis.

Switch the transform, frequency geometry, resolution, update rate, and calibrated color range without interrupting the source. This makes side-by-side reasoning easier and keeps the comparison grounded in the same material.

01

Transform depth

Move across FFT, filterbank, wavelet, reassigned, quadratic, and pitch-class views.

02

Musical geometry

Use logarithmic frequency, constant-Q spacing, and a piano ruler to read notes and partials.

03

Resolution control

Set FFT size up to 8,192 points, band count up to 512, and as many as 48 bins per octave.

04

Analysis shaping

Adjust speed, cutoff range, Q scale, and VQT gamma for the structure under inspection.

05

Calibrated display

Choose native, logarithmic, or linear layout with explicit dBFS floor and ceiling controls.

06

Live resilience

Keep audio bit-exact while bounded queues, overload recovery, and rate limiting protect the UI.

Tutorials

See the controls in context.

These short tours keep the source running while the analysis method and display geometry change, so you can connect each control to its effect on the result.

Transform tour

Move through every transform

Watch the same musical phrase pass through all fifteen views while FFT size, bands, bins per octave, Q scale, and VQT gamma sweep across their full ranges.

A synchronized piano roll above SineSoda while Native and Linear domains are dragged vertically and Log remains fixed

Scale options

Switch the display geometry

Drag vertically through the scrollable Native and Linear frequency domains, then compare them with the fixed full-range logarithmic view.

Install in three steps

Download. Copy. Scan.

  1. Extract the archive and copy SineSoda.vst3 into your user VST3 folder.
  2. Open Options → Manage plugins in FL Studio and select Find installed plugins.
  3. Add SineSoda to a mixer effect slot.

Read the complete installation guide →