WAV to CSV Samples

Paste an uncompressed WAV clip as base64 or hex and export its decoded PCM samples to CSV — one column per channel, optionally with a time (seconds) or sample-index column. Pick normalized float, raw integer, or dBFS values, the delimiter, and a frame window. Runs entirely in your browser; the audio is never uploaded.

Try:
CSV samples

About this tool

Paste an uncompressed WAV clip as base64 or hex and this tool decodes its PCM samples and writes them to CSV — one column per audio channel, optionally preceded by a time (seconds) or sample-index column. It is the online equivalent of a "sample data export": turn the raw waveform into a numeric table you can open in a spreadsheet, load into pandas/NumPy, or feed to a signal-processing or machine-learning pipeline.

You choose how each sample value is written:

You also control the decimal precision, the delimiter (comma for CSV, semicolon, or tab for TSV), whether to write a header row, and a start_frame / max_frames window so a long recording exports only the slice you want. Everything runs locally in your browser using WebAssembly — the audio bytes are never uploaded.

Worked example

The base64 above is a 16 kHz, mono, 16-bit WAV whose first three sample frames are the raw integers 16384, -8192, 0. With the defaults (time index, float values, comma delimiter, header on) it exports:

time_s,channel_1
0.000000,0.500000
0.000063,-0.250000
0.000125,0.000000

Switch Sample value scale to int and Index column(s) to sample and the same clip becomes:

sample,channel_1
0,16384
1,-8192
2,0

Which WAV variants are decoded

RIFF/WAVE PCM at 8, 16, 24, or 32-bit integer and IEEE float at 32 or 64-bit are decoded. Compressed or companded audio — MP3, AAC/M4A, Ogg (Vorbis/ Opus), FLAC, and A-law / mu-law WAV — is rejected with a message naming the format it detected, rather than producing garbage. Convert those to uncompressed WAV first (for example ffmpeg -i clip.mp3 clip.wav).

Limits and edge cases

FAQ

How do I turn my .wav file into base64 to paste here?

There is no file upload — the tool takes a base64 or hex string. On macOS or Linux run base64 clip.wav (or xxd -p clip.wav for hex) and paste the output. On Windows PowerShell, use [Convert]::ToBase64String([IO.File]::ReadAllBytes("clip.wav")). Then set Input encoding to match what you pasted.

Which WAV formats are supported?

Uncompressed RIFF/WAVE only: PCM at 8, 16, 24, or 32-bit integer and IEEE float at 32 or 64-bit. Compressed containers and codecs (MP3, AAC/M4A, Ogg, FLAC) and companded A-law / mu-law WAV are rejected with a clear message naming the detected format — convert them to plain WAV first, e.g. ffmpeg -i clip.mp3 clip.wav.

What is the difference between the float, int, and dB value scales?

float writes the normalized amplitude in [-1, 1], so the numbers are comparable across clips regardless of bit depth. int writes the raw PCM integer at the source bit depth (a 16-bit file gives -32768..32767), which is handy when you need the exact stored samples. db writes the dBFS magnitude, where 0 dB is full scale and true silence reports a -120 floor instead of negative infinity.

How do I export just part of a long recording?

Use Start frame and Max frames. One frame is one sample per channel, so at 44.1 kHz, frame 44100 is one second in. Set Start frame to where you want to begin and Max frames to how many frames to write (up to 500000). The export covers start_frame … start_frame + max_frames, clamped to the clip length.

Is my audio uploaded anywhere?

No. The decoder is compiled to WebAssembly and runs entirely in your browser tab. The WAV bytes you paste never leave your device, and there is no sign-up or server request.

Developer & Automation Access

Run it from the terminal

Same engine as this page, headless — via the gizza CLI:

gizza tool wav-to-csv-samples "UklGRi4AAABXQVZFZm10IBAAAAABAAEAgD4AAAB9AAACABAAZGF0YQYAAAAAQADgAAA="

New to the CLI? Get gizza →

Open it by URL

Pre-fill and auto-run this tool with query parameters — the names match the API/CLI:

https://gizza.ai/tools/wav-to-csv-samples/?input=UklGRi4AAABXQVZFZm10IBAAAAABAAEAgD4AAAB9AAACABAAZGF0YQYAAAAAQADgAAA%3D&input_format=base64&value_scale=float&precision=6&index_column=time&delimiter=comma&header=true&start_frame=0&max_frames=100000

Machine-readable descriptor: tool.json — title + parameters JSON Schema for agents.