PCM Drop logoPCM Drop

Play PCM File Online

Open, play and convert raw PCM audio in your browser — and work out the right settings when you do not know them.

A .pcm file is audio with the label torn off: the samples are all there, but nothing in the file says how fast to play them, how many bits each one uses, or how many channels are interleaved. That is why double-clicking one usually does nothing, and why this page exists. Drop one or more files into the player below, set the sample rate, bit depth and channel count, and listen. If it sounds wrong, the troubleshooting table further down maps what you hear to the setting that is off. Once it sounds right, export to MP3, WAV, OGG or WebM — several files at once if you need, packaged as a single ZIP. Everything runs locally in your browser; your audio is never uploaded.

PCM Drop logoPCM Drop

Fast PCM playback with bulk export to MP3, WAV, and OGG.

Drag & Drop PCM file(s) here

or

Your files are processed on your device and never uploaded.

How To Use This Tool

  1. Drag and drop one or more .pcm files onto the player, or click to choose them from your device.
  2. Set sample rate, bit depth and channels. If you know where the file came from, start with the matching preset in the table below; otherwise try 16000 Hz, 16-bit, mono.
  3. Press play and listen. Check the waveform too — real audio has visible shape, while wrong settings usually produce a solid block of noise.
  4. If the speed, pitch or texture is off, use the troubleshooting table to find which setting to change, then play again.
  5. Choose an output format (MP3, WAV, OGG or WebM) and download. Multiple files are converted together and delivered as one ZIP archive.

What Is a PCM File?

PCM (pulse-code modulation) is the simplest way to store sound digitally. A microphone signal is measured thousands of times per second, and each measurement — a sample — is written down as a number. Play those numbers back at the same rate through a speaker and you get the original sound. Every WAV file, every CD and nearly every audio interface works with PCM internally; MP3, AAC and Opus are compressed formats that are decoded back to PCM before you hear them.

A raw .pcm file is just those numbers, one after another, with nothing else in the file. There is no header saying how many samples per second there are, how many bytes each sample occupies, or whether left and right channels are interleaved. Three facts fully describe the data — sample rate, bit depth (with its encoding and byte order), and channel count — and all three have to come from somewhere other than the file itself: the device documentation, the API that produced it, or trial and error.

PCM vs WAV: the 44-byte difference

A WAV file is PCM with a small RIFF header in front, usually 44 bytes long. That header stores exactly the three facts a raw file is missing, which is why any media player can open a WAV but almost none can open a .pcm. If you strip the header from a 16-bit WAV, what remains is a valid raw PCM file. If you are unsure what you have, open the file in a hex editor: a WAV starts with the ASCII characters RIFF and contains WAVE at byte 8. If you see those, rename the file to .wav and open it normally.

Why VLC and Windows Media Player refuse to play it

Media players identify files by looking for a known header or container signature. A headerless file has none, so the player either reports an unsupported format or guesses and plays noise. Some desktop tools can decode raw PCM if you supply the parameters by hand, which is useful once you have found the right settings here:

# VLC
vlc --demux=rawaud --rawaud-channels=1 --rawaud-samplerate=16000 --rawaud-fourcc=s16l file.pcm

# FFmpeg's player (mono, 16-bit signed little-endian, 16 kHz)
ffplay -f s16le -ar 16000 file.pcm

# Audacity: File → Import → Raw Data…, then pick encoding, byte order, channels and rate

Sample Rate Reference

The sample rate is how many samples are stored per second of audio, per channel. It determines the highest frequency the recording can contain — half the sample rate, known as the Nyquist limit. In practice the rate tells you a lot about where a file came from:

Common PCM sample rates and where they are used
Sample rateHighest frequencyTypical source
8,000 Hz4 kHzTelephone calls, G.711 VoIP, call-centre recordings, older voice assistants
16,000 Hz8 kHzWideband (HD) voice, speech-recognition input, most embedded microphones
22,050 Hz11 kHzOlder games and multimedia, low-bandwidth music
24,000 Hz12 kHzSeveral text-to-speech APIs (enter it with the Custom option)
44,100 Hz22 kHzCD audio, consumer music, Android’s only rate guaranteed on every device
48,000 Hz24 kHzVideo, broadcast, and the native rate of most PC and phone audio hardware
96,000 Hz48 kHzStudio and high-resolution recording

If you know the duration of a recording, the file size gives the sample rate away. Raw PCM has no compression, so the size is exactly:

bytes = sample rate × (bit depth ÷ 8) × channels × seconds

For example, a 30-second voice clip that is 960,000 bytes works out to 32,000 bytes per second. That fits 16,000 Hz × 16-bit × mono, or 8,000 Hz × 16-bit × stereo, or 32,000 Hz × 8-bit × mono. Voice clips are almost always mono, so 16 kHz / 16-bit / mono is the one to try first — and playing it settles the rest in seconds.

Bit Depth, Signedness and Byte Order

Bit depth is how many bits store each sample, which sets the dynamic range — roughly 6 dB per bit. But the number alone is not enough: the same 16 bits can be read as signed or unsigned, and the two bytes can be stored in either order. This player decodes the three layouts that cover the vast majority of real files:

PCM sample formats and whether this player decodes them directly
FormatValue rangeWhere you see itThis player
8-bit unsigned0 to 255, silence = 1288-bit WAV, Linux arecord defaults, old gamesYes — 8-bit
8-bit signed−128 to 127, silence = 0Some trackers and embedded systemsNo — convert first
16-bit signed, little-endian−32,768 to 32,767By far the most common: phones, PCs, speech APIsYes — 16-bit
16-bit signed, big-endianSame, bytes swappedRTP L16 network audio, AIFF, some Java and legacy Mac codeNo — swap bytes first
24-bit signed±8.4 millionStudio recorders and audio interfacesNo — convert to 16-bit
32-bit signed integer±2.1 billionI²S microphones on ESP32 and other MCUsNo — convert to 16-bit
32-bit float, little-endian−1.0 to 1.0Web Audio, DAWs, Windows WASAPI, iOS Core AudioYes — 32-bit float

Byte order (endianness) only matters for samples wider than 8 bits. Little-endian stores the least significant byte first; it is what x86 PCs, ARM phones and ESP32 chips produce natively, and it is what this player expects. Big-endian appears mainly in network streams — the L16 RTP payload is defined in network byte order — and in AIFF files. A byte-swapped file is easy to recognise: you hear loud hiss with the rhythm of the original audio buried inside it.

Signed vs unsigned is an 8-bit problem in practice. The WAV convention is unsigned (silence is 128), while a few systems use signed (silence is 0). Decode one as the other and every sample is shifted by half the range, which sounds like harsh distortion that gets worse, not better, in quiet passages.

If your file is in a layout the player does not read directly, convert it with SoX or FFmpeg first:

# Big-endian 16-bit → little-endian 16-bit
sox -t raw -r 16000 -e signed -b 16 -c 1 -B in.pcm -t raw -L out.pcm

# 24-bit → 16-bit (stereo, 48 kHz)
sox -t raw -r 48000 -e signed -b 24 -c 2 in.pcm -t raw -b 16 out.pcm

# 32-bit integer (e.g. ESP32 I²S dump) → 16-bit
sox -t raw -r 16000 -e signed -b 32 -c 1 in.raw -t raw -b 16 out.pcm

# G.711 µ-law → 16-bit linear
ffmpeg -f mulaw -ar 8000 -i in.ulaw -f s16le out.pcm

Known Settings for Common Sources

Most raw audio comes from a short list of places. These are the formats each one actually produces, so you can skip the guesswork:

Typical raw audio formats by source
SourceSample rateFormatChannelsNotes
Asterisk .sln / .sln168,000 / 16,000 Hz16-bit signed LEMonoSigned-linear recordings. Other rates use the suffix, e.g. .sln48 is 48 kHz.
Asterisk .ulaw / .alaw8,000 HzG.711 µ-law / A-lawMonoCompanded, not linear PCM. Convert to 16-bit first (see above).
Twilio Media Streams8,000 HzG.711 µ-lawMonoPayloads arrive base64-encoded in JSON. Decode, concatenate, then convert from µ-law.
Android AudioRecord44,100 Hz (16,000 for speech apps)16-bit signed LEMono44.1 kHz, 16-bit and mono are the only settings guaranteed on all devices. ENCODING_PCM_FLOAT gives 32-bit float.
ESP32 + I²S MEMS mic (INMP441, SPH0645)16,000 Hz typical32-bit signed slotsMonoAudio is left-justified in 32-bit words. Shift to 16-bit in firmware or convert with SoX.
Windows waveInAs requestedUsually 16-bit signed LEAs requestedWhatever WAVEFORMATEX the app asked for; 44.1 kHz / 16-bit / stereo is the most common choice. 8-bit is unsigned.
Windows WASAPI (shared mode)48,000 Hz typical32-bit float LEStereoRaw buffers are in the device mix format, which is float on modern Windows.
Linux arecord -t raw (no format flags)8,000 Hz8-bit unsignedMonoarecord’s defaults. Add -f S16_LE -r 16000 for something more useful.
Amazon Polly (OutputFormat pcm)16,000 Hz (or 8,000)16-bit signed LEMonoDefault rate is 16 kHz.
OpenAI TTS (response_format pcm)24,000 Hz16-bit signed LEMonoUse Custom and enter 24000.

Troubleshooting: What You Hear and What It Means

Each wrong setting has a distinct sound, so listening carefully tells you which one to change. A wrong sample rate changes speed and pitch but leaves the audio recognisable. Wrong bit depth or byte order turns it into noise. Fix the noise first, then the speed.

PCM playback symptoms, likely causes and fixes
What you hearLikely causeWhat to change
Too fast, voices high-pitched (“chipmunk”)Sample rate set higher than the recordingLower the rate — try 16,000 or 8,000 Hz
Too slow, voices deep and draggingSample rate set lower than the recordingRaise the rate — try 44,100 or 48,000 Hz
Almost right, but about 1.5 semitones off44,100 and 48,000 Hz mixed up (9% difference)Switch to the other one
Exactly double speed, an octave high, half the expected lengthMono file decoded as stereo, or rate set to 2×Set channels to mono first; if unchanged, halve the rate
Exactly half speed, an octave low, twice the expected lengthStereo file decoded as mono, or rate set to ½Set channels to stereo first; if unchanged, double the rate
Loud hiss with the original rhythm faintly audible underneathWrong byte order — big-endian dataSwap bytes with SoX or FFmpeg, then reload
Pure static, nothing recognisable at allWrong bit depth (e.g. 32-bit float or 8-bit data read as 16-bit), or the file is not PCM at allTry each bit depth; if none works, check for a compressed format
Mostly silence with sharp clicks or bursts16-bit integer data decoded as 32-bit floatSet bit depth to 16-bit
Harsh, buzzing distortion that is worst in quiet partsSigned 8-bit data decoded as unsignedConvert to unsigned 8-bit or 16-bit first
Recognisable but crunchy, like a badly overdriven phone lineG.711 µ-law or A-law decoded as linear PCMConvert from µ-law / A-law to 16-bit (see above)
A single click right at the start, otherwise fineThe file has a header — it may be a WAVHarmless; or rename to .wav and open it directly

Two habits make this faster. First, watch the waveform as well as listening: real speech shows distinct bursts separated by quieter gaps, while a wrong bit depth fills the display with a solid band. Second, if nothing works across every combination, the file is probably not PCM. Telephony systems often use µ-law, A-law or ADPCM, and some tools save Opus or AMR frames with a .pcm or .raw extension. Those need a decoder, not different settings.

Related Audio Tools

FAQ

How do I open a .pcm file?

Load it into the player on this page and enter the sample rate, bit depth and channel count it was recorded with. Standard media players usually fail on .pcm files because they are headerless — there is no metadata telling the player how to decode the data.

What settings should I try if I do not know the format?

Start with 16000 Hz, 16-bit, mono — the most common format for voice captures from devices and speech APIs. If speech sounds too slow and deep, raise the sample rate; too fast and high, lower it. If you hear pure static, change the bit depth. The file-size calculation in the guide below can also narrow down the possibilities.

Why does my PCM file sound distorted or like static?

Static or white noise almost always means the bit depth or byte order is wrong, not the sample rate. A wrong sample rate changes speed and pitch but the audio stays recognisable. See the troubleshooting table on this page for the full list of symptoms.

Can I batch convert PCM to MP3, WAV or OGG?

Yes. Upload several PCM files, choose the output format, and download them all at once in a single ZIP archive. All files in a batch use the same decode settings, so group files that share a format.

What is the difference between PCM and WAV?

The audio data is identical. A WAV file is PCM samples with a small header (usually 44 bytes) in front that records the sample rate, bit depth and channel count. A raw .pcm file is the same samples without that header, which is why you have to supply the settings yourself.

Is my audio uploaded anywhere?

No. Decoding, playback and conversion all happen in your browser. Nothing is sent to a server, and no software installation is needed.