Unity Audio Import Settings Reference
Recommended import settings for every type of audio in your Unity project.
Unity audio import settings have a huge impact on memory, load times, and sound quality. The defaults are rarely optimal. This reference gives you the exact Load Type, Compression Format, Sample Rate, and other settings for each category of audio, with explanations of why each choice matters.
Background Music
2 to 5 minutes2 to 8 MB (compressed)Long-playing tracks that loop in the background. Typically 2 to 5 minutes, the largest audio files in your project.
Examples: Menu theme, level music, boss fight music, credits
Background Music
2 to 5 minutes2 to 8 MB (compressed)Long-playing tracks that loop in the background. Typically 2 to 5 minutes, the largest audio files in your project.
Examples: Menu theme, level music, boss fight music, credits
Load Type
Streaming
Compression
Vorbis (70%)
Force to Mono
No
Import Settings (Detailed)
Music files are large. Streaming reads from disk in small chunks, using almost no RAM. This is critical on mobile where memory is limited.
Best quality-to-size ratio for long audio. Vorbis decoding is lightweight enough for streaming.
Unity analyses the clip and picks the lowest sample rate that preserves audible quality. Saves memory with no perceptible loss for music.
Streaming handles loading on demand. Preloading a music track would defeat the purpose of streaming.
Prevents hitches when starting playback. The first few frames of audio are buffered in a background thread.
Music is typically stereo. Forcing to mono would destroy the mix.
Source File Formats
Platform Overrides
Tips
- *Use 44.1 kHz stereo as your source. Do not upsample to 48 kHz; it just wastes space.
- *Loop points: set them in your DAW, not in Unity. Export with a clean loop.
- *For crossfading between tracks, have two AudioSources and fade between them.
- *On mobile, one streaming music track and one streaming ambience track is the safe limit. More can cause disk IO contention.
Unity C# Import Script
// Recommended import settings for: Background Music
// Examples: Menu theme, level music, boss fight music, credits
AudioImporter importer = AssetImporter.GetAtPath(path) as AudioImporter;
// Default settings
AudioImporterSampleSettings settings = importer.defaultSampleSettings;
settings.loadType = AudioClipLoadType.Streaming;
settings.compressionFormat = AudioCompressionFormat.Vorbis;
settings.quality = 0.70f; // 0 to 1
settings.sampleRateSetting = AudioSampleRateSetting.OptimizeSampleRate;
importer.defaultSampleSettings = settings;
importer.preloadAudioData = false;
importer.loadInBackground = true;
importer.forceToMono = false;
importer.ambisonic = false;
importer.SaveAndReimport();Ambient Loops
30 seconds to 3 minutes1 to 4 MB (compressed)Environmental background sounds that loop seamlessly. Similar to music but often mono or with spatial positioning.
Examples: Forest ambience, rain, wind, underwater hum, city traffic, campfire
Ambient Loops
30 seconds to 3 minutes1 to 4 MB (compressed)Environmental background sounds that loop seamlessly. Similar to music but often mono or with spatial positioning.
Examples: Forest ambience, rain, wind, underwater hum, city traffic, campfire
Load Type
Streaming
Compression
Vorbis (50%)
Force to Mono
Yes
Import Settings (Detailed)
Ambient loops are long and often play continuously. Streaming keeps RAM usage near zero.
Good quality at low bitrate. Ambient sounds are forgiving of compression artefacts.
Ambient sounds rarely have high-frequency content that needs preserving.
Streaming does not benefit from preloading.
Avoids frame hitches when entering a new area and starting ambient audio.
Ambient sounds are often placed in 3D space. Mono is required for proper spatial audio. Halves the file size.
Source File Formats
Tips
- *Make loops longer than you think you need. Short loops become noticeable quickly. 30+ seconds minimum.
- *Layer 2 to 3 ambient sources with different loop lengths to avoid repetition.
- *Use Audio Mixer snapshots to crossfade ambient zones.
- *MP3 adds encoder padding, making seamless looping unreliable. Use Ogg for loops.
Unity C# Import Script
// Recommended import settings for: Ambient Loops
// Examples: Forest ambience, rain, wind, underwater hum, city traffic, campfire
AudioImporter importer = AssetImporter.GetAtPath(path) as AudioImporter;
// Default settings
AudioImporterSampleSettings settings = importer.defaultSampleSettings;
settings.loadType = AudioClipLoadType.Streaming;
settings.compressionFormat = AudioCompressionFormat.Vorbis;
settings.quality = 0.50f; // 0 to 1
settings.sampleRateSetting = AudioSampleRateSetting.OptimizeSampleRate;
importer.defaultSampleSettings = settings;
importer.preloadAudioData = false;
importer.loadInBackground = true;
importer.forceToMono = true;
importer.ambisonic = false;
importer.SaveAndReimport();Sound Effects
0.1 to 2 seconds10 to 200 KB (compressed)Short, triggered sounds. The most common audio type. Must play instantly with no latency.
Examples: Explosion, sword swing, coin pickup, door open, hit impact, magic spell
Sound Effects
0.1 to 2 seconds10 to 200 KB (compressed)Short, triggered sounds. The most common audio type. Must play instantly with no latency.
Examples: Explosion, sword swing, coin pickup, door open, hit impact, magic spell
Load Type
Decompress On Load
Compression
ADPCM
Force to Mono
Yes
Import Settings (Detailed)
SFX must play instantly. Decompressing on load means zero CPU cost at playback time. RAM cost is acceptable because SFX are short.
ADPCM is 3.5x smaller than PCM with near-instant decompression. Perfect for short, frequent sounds. Minimal quality loss on percussive/transient content.
SFX often have sharp transients that sound worse when downsampled. Keep the original rate (usually 44.1 kHz or 48 kHz).
SFX need to be ready immediately. Preloading ensures the clip is in memory when you call AudioSource.Play().
SFX are small and load fast. Loading in the foreground guarantees the clip is available on the frame it is needed.
Most SFX are positional (3D). Mono is required for Unity's spatial audio. Halves RAM usage. Stereo SFX sound wrong when spatialized.
Source File Formats
Platform Overrides
Tips
- *Keep SFX under 2 seconds. Longer SFX should use Compressed In Memory instead.
- *Trim silence from the start and end in your DAW. Even 50ms of silence adds latency.
- *For rapidly repeating SFX (gunfire), use AudioSource.PlayOneShot() to avoid cutting off the previous instance.
- *Normalise peaks to -1 dBFS in your DAW. Let the game mixer handle volume.
- *For very frequently played SFX (footsteps, gunfire), consider using PCM instead of ADPCM to reduce CPU.
Unity C# Import Script
// Recommended import settings for: Sound Effects
// Examples: Explosion, sword swing, coin pickup, door open, hit impact, magic spell
AudioImporter importer = AssetImporter.GetAtPath(path) as AudioImporter;
// Default settings
AudioImporterSampleSettings settings = importer.defaultSampleSettings;
settings.loadType = AudioClipLoadType.DecompressOnLoad;
settings.compressionFormat = AudioCompressionFormat.ADPCM;
importer.defaultSampleSettings = settings;
importer.preloadAudioData = true;
importer.loadInBackground = false;
importer.forceToMono = true;
importer.ambisonic = false;
importer.SaveAndReimport();UI Sounds
0.05 to 0.3 seconds1 to 20 KBInterface feedback sounds. Must be extremely responsive with zero perceivable delay.
Examples: Button click, hover, menu open/close, notification, error beep, tab switch, slider tick
UI Sounds
0.05 to 0.3 seconds1 to 20 KBInterface feedback sounds. Must be extremely responsive with zero perceivable delay.
Examples: Button click, hover, menu open/close, notification, error beep, tab switch, slider tick
Load Type
Decompress On Load
Compression
PCM
Force to Mono
Yes
Import Settings (Detailed)
UI sounds must play with absolute minimum latency. Decompressed and in RAM, ready to go.
PCM has zero decompression cost. UI sounds are so short (under 0.5s) that the RAM difference between PCM and ADPCM is negligible. PCM guarantees the lowest possible playback latency.
Most UI sounds are simple clicks and beeps with no high-frequency content. 22.05 kHz halves the memory cost with no audible difference.
Must be instantly available. UI is loaded at scene start and stays in memory.
UI sounds are tiny. No reason to load in background; just load them immediately.
UI sounds are non-spatial. Mono saves memory and there is no stereo benefit for a button click.
Source File Formats
Tips
- *Keep UI sounds under 0.3 seconds. Shorter is better for responsiveness.
- *Group all UI sounds in a dedicated Audio Mixer group with a separate volume slider.
- *Use PlayOneShot for rapid interactions (e.g. scrolling a list quickly).
- *Do not spatialize UI sounds. Keep them 2D.
- *A subtle pitch variation (0.95 to 1.05) on repeated UI sounds prevents fatigue.
Unity C# Import Script
// Recommended import settings for: UI Sounds
// Examples: Button click, hover, menu open/close, notification, error beep, tab switch, slider tick
AudioImporter importer = AssetImporter.GetAtPath(path) as AudioImporter;
// Default settings
AudioImporterSampleSettings settings = importer.defaultSampleSettings;
settings.loadType = AudioClipLoadType.DecompressOnLoad;
settings.compressionFormat = AudioCompressionFormat.PCM;
settings.sampleRateOverride = 22050u;
settings.sampleRateSetting = AudioSampleRateSetting.OverrideSampleRate;
importer.defaultSampleSettings = settings;
importer.preloadAudioData = true;
importer.loadInBackground = false;
importer.forceToMono = true;
importer.ambisonic = false;
importer.SaveAndReimport();Voice and Dialogue
1 to 15 seconds per line20 to 200 KB per line (compressed)Character dialogue, narration, barks. Often large in total volume but played one at a time.
Examples: NPC dialogue, narrator, cutscene speech, player barks, tutorial voice
Voice and Dialogue
1 to 15 seconds per line20 to 200 KB per line (compressed)Character dialogue, narration, barks. Often large in total volume but played one at a time.
Examples: NPC dialogue, narrator, cutscene speech, player barks, tutorial voice
Load Type
Compressed In Memory
Compression
Vorbis (50%)
Force to Mono
Yes
Import Settings (Detailed)
Dialogue is mid-length (2 to 15 seconds). Streaming adds latency; decompress on load uses too much RAM for many clips. Compressed in memory is the sweet spot: low RAM, decoded on the fly.
Vorbis at 40 to 60% quality sounds excellent for speech. Real-time decoding cost is minimal for a single voice stream.
Human speech has very little content above 10 kHz. 22.05 kHz captures everything you need and halves the data.
Dialogue should start playing immediately when triggered. Preload the clip.
If you have many dialogue clips in a scene, loading them all in the foreground would cause a long load. Background loading spreads the cost.
Dialogue is almost always mono. If you need stereo narration, set this to false, but 99% of game dialogue is mono and spatialised to the speaking character.
Source File Formats
Tips
- *Use an addressable or asset bundle system to load dialogue on demand rather than including every line in the scene.
- *Set a dedicated Audio Mixer group for dialogue with ducking on music/SFX when dialogue plays.
- *For subtitle sync, bake timing metadata into your dialogue system, not into the audio clip.
- *Normalise all dialogue to the same LUFS (-16 LUFS is common for games) in your DAW.
Unity C# Import Script
// Recommended import settings for: Voice and Dialogue
// Examples: NPC dialogue, narrator, cutscene speech, player barks, tutorial voice
AudioImporter importer = AssetImporter.GetAtPath(path) as AudioImporter;
// Default settings
AudioImporterSampleSettings settings = importer.defaultSampleSettings;
settings.loadType = AudioClipLoadType.CompressedInMemory;
settings.compressionFormat = AudioCompressionFormat.Vorbis;
settings.quality = 0.50f; // 0 to 1
settings.sampleRateOverride = 22050u;
settings.sampleRateSetting = AudioSampleRateSetting.OverrideSampleRate;
importer.defaultSampleSettings = settings;
importer.preloadAudioData = true;
importer.loadInBackground = true;
importer.forceToMono = true;
importer.ambisonic = false;
importer.SaveAndReimport();Footsteps
0.1 to 0.3 seconds5 to 30 KB per clipVery frequent, very short. Played every frame of movement. Must be lightweight and varied.
Examples: Walking on grass/stone/wood/metal/water/gravel, running, landing
Footsteps
0.1 to 0.3 seconds5 to 30 KB per clipVery frequent, very short. Played every frame of movement. Must be lightweight and varied.
Examples: Walking on grass/stone/wood/metal/water/gravel, running, landing
Load Type
Decompress On Load
Compression
ADPCM
Force to Mono
Yes
Import Settings (Detailed)
Footsteps are played extremely frequently. They must decompress with zero CPU cost at playback time.
3.5x smaller than PCM. Footsteps are percussive and handle ADPCM compression well. Decompression is nearly instant.
Footsteps have sharp transients. Downsampling can make them sound dull.
Must be in memory before gameplay starts. A footstep that loads late sounds broken.
Small files, fast to load. No need for background loading.
Footsteps are always 3D positioned at the character's feet. Must be mono for spatial audio.
Source File Formats
Tips
- *Record or source 4 to 6 variations per surface type. Randomly select on each step to avoid machine-gun repetition.
- *Add subtle random pitch variation (0.9 to 1.1) for more natural feel.
- *Trigger footsteps from animation events, not from timers. Keeps them synced with the walk cycle.
- *Group by surface: Footstep_Grass_01 to 06, Footstep_Stone_01 to 06, etc.
- *Keep each clip under 0.3 seconds. Trim aggressively.
Unity C# Import Script
// Recommended import settings for: Footsteps
// Examples: Walking on grass/stone/wood/metal/water/gravel, running, landing
AudioImporter importer = AssetImporter.GetAtPath(path) as AudioImporter;
// Default settings
AudioImporterSampleSettings settings = importer.defaultSampleSettings;
settings.loadType = AudioClipLoadType.DecompressOnLoad;
settings.compressionFormat = AudioCompressionFormat.ADPCM;
importer.defaultSampleSettings = settings;
importer.preloadAudioData = true;
importer.loadInBackground = false;
importer.forceToMono = true;
importer.ambisonic = false;
importer.SaveAndReimport();One-shot (Long)
2 to 15 seconds50 to 500 KB (compressed)Longer one-off sounds that play once and are not tightly latency-sensitive.
Examples: Victory fanfare, death scream, cutscene stinger, level complete jingle, boss roar
One-shot (Long)
2 to 15 seconds50 to 500 KB (compressed)Longer one-off sounds that play once and are not tightly latency-sensitive.
Examples: Victory fanfare, death scream, cutscene stinger, level complete jingle, boss roar
Load Type
Compressed In Memory
Compression
Vorbis (70%)
Force to Mono
No
Import Settings (Detailed)
Too long for decompress-on-load (wastes RAM), too short for streaming (adds latency). Compressed in memory is ideal: stays small, decodes on the fly.
Vorbis gives the best quality-to-size ratio for clips over 2 seconds.
Unity picks the optimal rate. Fine for one-shots that do not need precise high-frequency detail.
Should be ready when triggered. A delayed victory fanfare feels broken.
If there are many potential one-shots in a level, background loading prevents them from blocking the main thread.
Many one-shots (fanfares, stingers) are designed in stereo. Keep stereo unless the sound is 3D positioned.
Source File Formats
Tips
- *For 3D positioned one-shots (boss roar from a specific location), use mono and enable spatialisation.
- *Use Audio Mixer ducking so a dramatic one-shot briefly lowers music volume.
Unity C# Import Script
// Recommended import settings for: One-shot (Long)
// Examples: Victory fanfare, death scream, cutscene stinger, level complete jingle, boss roar
AudioImporter importer = AssetImporter.GetAtPath(path) as AudioImporter;
// Default settings
AudioImporterSampleSettings settings = importer.defaultSampleSettings;
settings.loadType = AudioClipLoadType.CompressedInMemory;
settings.compressionFormat = AudioCompressionFormat.Vorbis;
settings.quality = 0.70f; // 0 to 1
settings.sampleRateSetting = AudioSampleRateSetting.OptimizeSampleRate;
importer.defaultSampleSettings = settings;
importer.preloadAudioData = true;
importer.loadInBackground = true;
importer.forceToMono = false;
importer.ambisonic = false;
importer.SaveAndReimport();Looping SFX
1 to 10 seconds20 to 200 KB (compressed)Continuous sound effects that loop while active. Between SFX and ambience in character.
Examples: Engine hum, fire burning, electric buzz, waterfall, torch flame, conveyor belt
Looping SFX
1 to 10 seconds20 to 200 KB (compressed)Continuous sound effects that loop while active. Between SFX and ambience in character.
Examples: Engine hum, fire burning, electric buzz, waterfall, torch flame, conveyor belt
Load Type
Compressed In Memory
Compression
Vorbis (60%)
Force to Mono
Yes
Import Settings (Detailed)
Looping SFX are medium-length (1 to 10 seconds). Compressed in memory balances RAM and CPU: small footprint, decoded as needed.
Vorbis handles loops well. ADPCM can introduce artefacts at loop points for tonal/sustained content.
Most looping SFX (engine hum, fire) do not need full 44.1 kHz bandwidth.
Looping SFX should start immediately when the object is activated.
Usually few looping SFX in a scene. Foreground loading keeps them instantly available.
Looping SFX are almost always 3D positioned (attached to an object in the world). Must be mono for spatial audio.
Source File Formats
Tips
- *Make the loop seamless in your DAW. Use crossfade at the loop boundary.
- *Keep loops short (1 to 5 seconds) to save memory. Longer loops are only needed for complex evolving sounds.
- *Do not use MP3 for loops. The encoder padding creates an audible gap. Use Ogg.
- *Use Audio Mixer distance attenuation curves to fade looping SFX naturally.
Unity C# Import Script
// Recommended import settings for: Looping SFX
// Examples: Engine hum, fire burning, electric buzz, waterfall, torch flame, conveyor belt
AudioImporter importer = AssetImporter.GetAtPath(path) as AudioImporter;
// Default settings
AudioImporterSampleSettings settings = importer.defaultSampleSettings;
settings.loadType = AudioClipLoadType.CompressedInMemory;
settings.compressionFormat = AudioCompressionFormat.Vorbis;
settings.quality = 0.60f; // 0 to 1
settings.sampleRateSetting = AudioSampleRateSetting.OptimizeSampleRate;
importer.defaultSampleSettings = settings;
importer.preloadAudioData = true;
importer.loadInBackground = false;
importer.forceToMono = true;
importer.ambisonic = false;
importer.SaveAndReimport();File Format Comparison
Which format to use as your source file before Unity re-encodes it.
| Format | Compression | Lossy | Loop Safe | Licence Free |
|---|---|---|---|---|
| .wavWaveform Audio (WAV) | None (PCM) | No | Yes | Yes |
| .oggOgg Vorbis | Lossy (Vorbis) | Yes | Yes | Yes |
| .mp3MPEG Layer 3 | Lossy (MP3) | Yes | No | No |
| .aiffAudio Interchange (AIFF) | None (PCM) | No | Yes | Yes |
| .flacFree Lossless Audio Codec | Lossless | No | Yes | Yes |
Quick Decision Guide
What kind of audio is it?
Short and frequent (under 2s)?
Decompress On Load + ADPCM + Mono. Covers SFX, footsteps, UI.
Medium length (2 to 15s)?
Compressed In Memory + Vorbis. Covers dialogue, one-shots, looping SFX.
Long and continuous (over 15s)?
Streaming + Vorbis. Covers music and ambient loops.
Needs absolute zero latency?
Decompress On Load + PCM. Only for critical UI sounds.
Related Tools
Audio Calculator
Convert between linear volume, decibels, and perceived loudness with engine code output.
Frame Budget Calculator
CPU/GPU budget breakdown by platform and target frame rate.
Scripting Order
Interactive Unity MonoBehaviour lifecycle diagram. When does Awake, Start, Update, and every callback run.
Build Size Analyser
Drop in your Editor.log to see what is filling your build, and model what removing it would save. Runs entirely in your browser.
Frequently asked questions
Should I use Streaming, Decompress on Load, or Compressed in Memory?
Which compression format should I use for Unity audio?
What sample rate should I use for game audio?
How do I make audio louder or quieter at runtime in Unity?
Last updated: