Everything happens in your browser
When you choose a file, your browser decodes it with the Web Audio API. The effect is rendered in an offline audio context or with our own code, and the result is encoded back to MP3 or WAV on your device. No file, waveform or setting is sent to a server.
The effects
Speed-based effects (slowed, nightcore) change the playback rate, so tempo and pitch move together, as in the original style. Reverb uses a generated room impulse; echo uses a feedback delay; 8D audio moves the sound between left and right with a slow automated panner; bass and brightness use shelving filters; a limiter keeps boosted audio from clipping.
The speed changer and pitch shifter use a time-stretch algorithm (WSOLA, waveform-similarity overlap-add) that we wrote for WaveTinker, so tempo and pitch can change independently. Very large changes can sound grainy; that is a limit of every time-stretch method.
Levels and loudness
The normalizer measures integrated loudness the way ITU-R BS.1770 describes it: the signal is K-weighted (a filter that follows how the ear weighs frequencies), cut into 400 ms blocks, and quiet blocks are gated out before averaging. The result is in LUFS, the unit streaming services use. Peaks are measured sample by sample (not true peak), and the tool holds the gain back so peaks stay under −1 dBFS.
Editing and formats
The trimmer cuts on the sample, with an optional 10 ms fade so the cut does not click. The joiner converts every file to the first file's sample rate and to stereo, then places them end to end, with silence or an equal-power crossfade between them. The converter changes sample rate and channel count with the browser's own resampler.
Analysis tools
The BPM finder measures how sharply the loudness rises over time and looks for the repeating period between 60 and 200 beats per minute. The key finder adds up the energy of each of the twelve pitch classes and compares the result with standard major and minor key profiles (Krumhansl-Schmuckler). The tuner uses a YIN-style pitch detector on the microphone signal. The chord finder compares the notes you pick with a table of chord formulas, and the Camelot wheel is computed from the circle of fifths. The analysis results are estimates, and the pages say so.
How we test them
Automated tests run the signal-processing code on generated tones and click tracks: pitch detection within 5 cents, time-stretch length within 10 ms and pitch within 10 cents, pitch shift within 12 cents, BPM within 1 beat per minute, known major and minor keys, the BS.1770 reference levels (a full-scale 1 kHz tone reads 0 LUFS in stereo and −3.01 LUFS in one channel), fade curves, the WAV header, chord names and all 24 Camelot codes. The tests live with the source code and run before every release.
Offline and installing
After your first visit the site stores its scripts in your browser, and every page you open is kept there too. Tools you have used keep working without a connection, and most browsers offer to install WaveTinker as an app. Clearing the site's data removes the stored copy.
Formats
You can open anything your browser can decode: usually MP3, WAV, M4A/AAC, OGG/Opus and FLAC, and the sound track of most MP4, MOV and WebM videos. Downloads are WAV (lossless, 16 or 24-bit) or MP3 (128 to 320 kbps, encoded with the open-source LAME library; see licenses).