1import{u as E,j as e,d as P,D as J,A as q,E as I,a as D}from"./index-DGKNtf3q.js";import{b as B,L as C}from"./vendor-Djr1IunZ.js";import{P as U}from"./platforms-DUbC6pLN.js";const G=t=>{const a=Math.floor(t/60),l=Math.floor(t%60);return`${a}:${l.toString().padStart(2,"0")}`},b="#fe2c55",v="#25f4ee";function O(){return B.useEffect(()=>{document.title="Mastering for TikTok: Hook Timing, Sounds System & AAC Encoding | mastering.to";const t=(s,r,m=!1)=>{const j=m?`meta[property="${s}"]`:`meta[name="${s}"]`;let c=document.querySelector(j);c||(c=document.createElement("meta"),m?c.setAttribute("property",s):c.setAttribute("name",s),document.head.appendChild(c)),c.setAttribute("content",r)};t("description","The complete guide to mastering audio for TikTok â viewer retention and hook timing, the TikTok Sounds ecosystem, AAC re-encoding, â14 LUFS normalization, and phone speaker optimization. Free analyzer included."),t("robots","index, follow"),t("og:title","Mastering for TikTok: Hook Timing, Sounds System & AAC Encoding",!0),t("og:description","TikTok loses 40% of viewers in the first 3 seconds and detaches your audio for thousands of other creators to use. Here's what that means for your master.",!0),t("og:type","article",!0),t("og:url","https://mastering.to/tiktok",!0),t("twitter:card","summary_large_image"),t("twitter:title","Mastering for TikTok: Hook Timing, Sounds & AAC"),t("twitter:description","Vie
1wer retention curves, the Sounds ecosystem, 128 kbps AAC â the full TikTok audio guide plus a free analyzer.");let a=document.querySelector('link[rel="canonical"]');a||(a=document.createElement("link"),a.setAttribute("rel","canonical"),document.head.appendChild(a)),a.setAttribute("href","https://mastering.to/tiktok");const l={"@context":"https://schema.org","@type":"FAQPage",mainEntity:[{"@type":"Question",name:"What audio bitrate does TikTok use?",acceptedAnswer:{"@type":"Answer",text:"TikTok re-encodes all uploaded audio to AAC at approximately 128 kbps, similar to Instagram. All uploads are transcoded regardless of original quality. Always upload from uncompressed WAV or AIFF source files to avoid generation loss â encoding from MP3 stacks codec artifacts before TikTok's own encode, compounding quality loss."}},{"@type":"Question",name:"Does TikTok normalize audio loudness?",acceptedAnswer:{"@type":"Answer",text:"Yes. TikTok applies loudness normalization targeting approximately â14 LUFS. The normalization is primarily downward â loud masters are attenuated, while quiet masters are generally left at their mastered level. TikTok can be aggressive on heavily limited masters, which is why leaving some dynamic headroom (â1 dBTP true peak, moderate crest factor) is important for clean encoding and normalization."}},{"@type":"Question",name:"What is the TikTok Sounds system?",acceptedAnswer:{"@type":"Answer",text:"TikTok's Sounds system detaches the audio from your video and makes it available as a standalone 'Sound' that any other creator can use in their own videos. When your original sound goes viral, hundreds or thousands of creators build content over it â meaning your audio plays simultaneously with their voiceovers, ambient room noise, and additional sound effects. This changes what matters about your master: the audio needs to 'cut through' when layered under speech, not just sound good in isolation."}},{"@type":"Question",name:"How quickly do TikTok viewers decide to keep watching?",acceptedAnswer:{"@type":"Answer",text:"TikTok's own creator data indicates that roughly 40â50% of viewers leave within the first 3 seconds if they're not immediately hooked. By 5 seconds, the retention curve has typically lost 30â40% of its peak audience. This means a track structure with a slow intro that pays off 10â15 seconds in will be heard by a fraction of the potential audience. The hook â the most energetic, characterful moment â needs to land in the first 2 seconds for maximum retention."}},{"@type":"Question",name:"Should I use the hook of my song at the start of TikTok content?",acceptedAnswer:{"@type":"Answer",text:"Yes, for content created specifically for TikTok. The chorus, drop, or most energetic section should be the first thing the viewer hears. For original sounds used by other creators, this matters even more â creators typically trim your sound to the catchiest moment when using it in their videos. Songs that have an immediately identifiable musical hook in the first 2 seconds tend to perform significantly better as trending sounds than tracks with slow builds."}},{"@type":"Question",name:"How do I master a track specifically for TikTok?",acceptedAnswer:{"@type":"Answer",text:"Focus on three things: First, check your mix on a phone speaker â phone speakers heavily attenuate bass below 200 Hz and boost mids. Strong upper bass (150â300 Hz) and clear midrange presence matters more than sub-bass depth. Second, ensure true peak is below â1 dBTP and integrated loudness is below â9 LUFS to leave clean headroom for TikTok's normalization. Third, consider the Sounds context â your audio may be heard under a creator's voice, so strong low-mid character in the 200â800 Hz range helps the music identity survive when layered with speech."}}]},h={"@context":"https://schema.org","@type":"BreadcrumbList",itemListElement:[{"@type":"ListItem",position:1,name:"mastering.to",item:"https://mastering.to"},{"@type":"ListItem",position:2,name:"Mastering for TikTok",item:"https://mastering.to/tiktok"}]},d={"@context":"https://schema.org","@type":"TechArticle",headline:"Mastering for TikTok: Hook Timing, Sounds System & AAC Encoding",proficiencyLevel:"Expert",description:"The complete guide to mastering audio for TikTok.",url:"https://mastering.to/tiktok",publisher:{"@type":"Organization",name:"mastering.to",url:"https://mastering.to"}},f="tiktok-page-schema";let o=document.getElementById(f);o||(o=document.createElement("script"),o.id=f,o.type="application/ld+json",document.head.appendChild(o));const x={"@context":"https://schema.org","@type":"SoftwareApplication",name:"mastering.to",url:"https://mastering.to",applicationCategory:"MultimediaApplication",operatingSystem:"Web",offers:{"@type":"Offer",price:"0",priceCurrency:"USD"},description:"Free browser-based audio mastering analyzer. Measure LUFS, true peak, dynamic range, frequency spectrum, and check compliance with Spotify, Apple Music, Tidal, and 30+ streaming platforms.",featureList:["LUFS integrated & short-term measurement","True peak detection","Dynamic range (DR) analysis","Frequency spectrum analyzer","Streaming platform compliance checking","Codec preview simulation","A/B master comparison","Album analysis suite"]};return o.textContent=JSON.stringify([l,h,d,x]),()=>{var r,m;document.title="mastering.to â Free Audio Analyzer | LUFS Checker";const s=document.querySelector('meta[name="description"]');s&&s.setAttribute("content","Free browser-based audio mastering quality control tool. Analyze loudne
1ss (LUFS), true peak, dynamics, stereo width, spectrum, and get platform-specific assessments for Spotify, Apple Music, YouTube, vinyl, and 35+ formats. Your audio never leaves your browser."),(r=document.getElementById(f))==null||r.remove(),(m=document.querySelector('link[rel="canonical"]'))==null||m.remove()}},[]),null}function Y(){const[t,a]=B.useState("standard"),l=560,h=220,d=44,f=20,o=28,x=38,s=l-d-f,r=h-o-x,m=[100,72,55,45,40,37,35,33,32,31,30,30,29,29,28,28],j=[100,88,80,75,71,68,65,63,61,59,57,56,55,54,53,52],c=[20,22,24,26,28,32,38,45,52,60,90,92,88,85,80,82],w=[92,90,88,85,82,80,82,85,88,90,92,90,88,85,83,82],k=Array.from({length:16},(i,y)=>y),z=15,p=i=>d+i/z*s,A=i=>o+r-i/100*r,M=i=>o+r-i/100*(r*.45),T=t==="standard"?m:j,g=t==="standard"?c:w,n=t==="standard"?"#ff9f0a":v,u=t==="standard"?"#ff5555":"#30d158",S=k.map(i=>`${p(i)},${A(T[i])}`).join(" ");k.map(i=>`${p(i)},${M(g[i])}`).join(" ");const L=[`${p(0)},${o+r}`,...k.map(i=>`${p(i)},${A(T[i])}`),`${p(15)},${o+r}`].join(" "),F=t==="standard"?10:1,W=T[F],R=100-W;return e.jsxs("div",{children:[e.jsx("div",{style:{display:"flex",gap:8,marginBottom:16,flexWrap:"wrap"},children:[{id:"standard",label:"Standard structure",sub:"Intro â verse â chorus at ~10s"},{id:"hookfirst",label:"Hook-first",sub:"Energy from second 0â2"}].map(({id:i,label:y,sub:H})=>e.jsxs("button",{onClick:()=>a(i),style:{background:t===i?`${i==="hookfirst"?v:"#ff9f0a"}18`:"transparent",border:`1px solid ${t===i?i==="hookfirst"?v:"#ff9f0a":"#2a2d38"}`,color:t===i?i==="hookfirst"?v:"#ff9f0a":"#9aa0ad",padding:"6px 14px",borderRadius:5,fontSize:10,fontFamily:"'JetBrains Mono', monospace",cursor:"pointer",transition:"all 0.15s",textAlign:"left"},children:[e.jsx("div",{style:{fontWeight:700},children:y}),e.jsx("div",{style:{fontSize:8,opacity:.65,marginTop:1},children:H})]},i))}),e.jsxs("svg",{viewBox:`0 0 ${l} ${h}`,style:{width:"100%",height:"auto",display:"block"},children:[e.jsx("defs",{children:e.jsx("clipPath",{id:"ttRetClip",children:e.jsx("rect",{x:d,y:o,width:s,height:r})})}),[0,25,50,75,100].map(i=>{const y=A(i);return y<o||y>o+r?null:e.jsxs("g",{children:[e.jsx("line",{x1:d,y1:y,x2:l-f,y2:y,stroke:i===100?"#1e2030":"#0e1018",strokeWidth:1,strokeDasharray:i<100?"3 3":void 0}),e.jsxs("text",{x:d-4,y:y+4,textAnchor:"end",fontSize:7.5,fill:i===100?"#2a2d38":"#1e2030",fontFamily:"'JetBrains Mono', monospace",children:[i,"%"]})]},i)}),[0,3,6,9,12,15].map(i=>{const y=p(i);return e.jsxs("g",{children:[e.jsx("line",{x1:y,y1:o,x2:y,y2:o+r+4,stroke:"#131520",strokeWidth:1}),e.jsxs("text",{x:y,y:o+r+16,textAnchor:"middle",fontSize:8,fill:"#2a2d38",fontFamily:"'JetBrains Mono', monospace",children:[i,"s"]})]},i)}),e.jsx("text",{x:l/2,y:h-4,textAnchor:"middle",fontSize:7.5,fill:"#22222e",fontFamily:"'JetBrains Mono', monospace",letterSpacing:"0.08em",children:"TIME (seconds)"}),e.jsxs("g",{clipPath:"url(#ttRetClip)",children:[t==="standard"&&e.jsx("rect",{x:p(0),y:o,width:p(F)-p(0),height:r,fill:"#ff555508"}),e.jsx("polygon",{points:L,fill:`${n}12`}),k.map(i=>{const y=p(i),H=s/16,$=M(g[i]);return e.jsx("rect",{x:y-H*.35,y:$,width:H*.7,height:o+r-$,fill:`${u}22`,rx:1},i)}),e.jsx("polyline",{points:S,fill:"none",stroke:n,strokeWidth:2.5,strokeLinejoin:"round"}),e.jsx("line",{x1:p(F),y1:o,x2:p(F),y2:o+r,stroke:u,strokeWidth:1.5,strokeDasharray:"5 3",opacity:.8}),e.jsx("text",{x:p(F)+4,y:o+r-8,fontSize:8,fill:u,fontFamily:"'JetBrains Mono', monospace",fontWeight:"700",children:t==="hookfirst"?"Hook: 0â2s":"Chorus: ~10s"}),t==="standard"&&e.jsxs(e.Fragment,{children:[e.jsx("line",{x1:p(3),y1:o,x2:p(3),y2:o+r,stroke:"#ff5555",strokeWidth:1,strokeDasharray:"3 2",opacity:.6}),e.jsx("text",{x:p(3)+3,y:o+r-8,fontSize:7.5,fill:"#ff5555",fontFamily:"'JetBrains Mono', monospace",children:"3s mark"})]})]}),e.jsx("text",{x:d-16,y:o+6,textAnchor:"middle",fontSize:7,fill:"#333348",fontFamily:"'JetBrains Mono', monospace",transform:`rotate(-90, ${d-16}, ${o+r/2})`,children:"VIEWER RETENTION"}),e.jsx("line",{x1:d,y1:o,x2:d,y2:o+r,stroke:"#1a1d28",strokeWidth:1}),e.jsxs("text",{x:l-f,y:o+10,textAnchor:"end",fontSize:8,fill:n,fontFamily:"'JetBrains Mono', monospace",fontWeight:"700",children:[W,"% still watching when hook arrives"]})]}),e.jsx("div",{style:{display:"flex",gap:12,marginTop:12,flexWrap:"wrap"},children:[{label:"Viewers at 3s",value:`${T[3]}%`,color:t==="standard"?"#ff5555":v,note:t==="standard"?`Lost ${100-T[3]}% in 3 seconds`:`Retained ${T[3]}% past 3 seconds`},{label:"Hook arrival",value:t==="standard"?"~10s":"0â2s",color:u,note:t==="standard"?`${R}% have already left`:"Maximum audience hears it"},{label:"Viewers at hook",value:`${W}%`,color:n,note:t==="standard"?"of peak audience reached the payoff":"of peak audience still engaged"}].map(i=>e.jsxs("div",{style:{background:"#0d0f18",borderRadius:7,padding:"10px 14px",border:`1px solid ${i.color}22`,flex:1,minWidth:120},children:[e.jsx("div",{style:{fontSize:9,color:"#6a6f7c",fontFamily:"'JetBrains Mono', monospace",textTransform:"uppercase",letterSpacing:"0.1em",marginBottom:4},children:i.label}),e.jsx("div",{style:{fontSize:18,fontWeight:700,color:i.color,fontFamily:"'Space Grotesk', sans-serif",marginBottom:3},children:i.value}),e.jsx("div",{style:{fontSize:9,color:"#6a6f7c",fontFamily:"'JetBrains Mono', monospace",lineHeight:1.4},children:i.note})]},i.label))}),e.jsxs("div",{style:{marginTop:12,fontSize:12,color:"#9aa0ad",lineHeight:1.6,fontFamily:"'JetBrains Mono', monospace"},children:[t==="standard"&&"A standard introâverseâchorus structure: the payoff arrives when most viewers have already swiped. The hook needs to be the first thing they hear, not the reward for patience.",t==="hookfirst"&&"Hook-first: maximum audience reaches the most energetic moment. On TikTok, your best 2 seconds should come first â not as a reward for sitting through an intro."]})]})}function V(){const[t,a]=B.useState("all"),l=560,h=200,d=44,f=20,o=20,x=36,s=l-d-f,r=h-o-x,m=Math.log10(50),j=Math.log10(18e3),c=n=>d+(Math.log10(n)-m)/(j-m)*s,w=n=>o+r-n*r,k=[50,80,120,200,300,500,800,1200,2e3,3e3,5e3,8e3,12e3,16e3],z=[{id:"music",label:"Your TikTok Sound",sub:"The music/audio you upload",color:b,presence:[.7,.75,.82,.88,.9,.92,.88,.84,.8,.76,.65,.5,.38,.22]},{id:"voice",label:"Creator voiceover",sub:"Speech occupies 200 Hzâ3 kHz",color:v,presence:[.02,.04,.1,.35,.65,.85,.9,.88,.82,.7,.25,.06,.02,.01]}
1,{id:"ambient",label:"Room / ambient noise",sub:"Background environment",color:"#888898",presence:[.28,.3,.32,.3,.26,.22,.2,.18,.16,.14,.12,.1,.08,.06]},{id:"sfx",label:"Sound effects",sub:"TikTok built-in sounds",color:"#ff9f0a",presence:[.05,.06,.08,.12,.2,.35,.4,.55,.62,.58,.5,.42,.28,.14]}],p=k.filter(n=>n>=200&&n<=3e3),A=n=>k.map((u,S)=>`${c(u)},${w(n[S])}`).join(" "),M=n=>[`${c(k[0])},${w(0)}`,...k.map((u,S)=>`${c(u)},${w(n[S])}`),`${c(k[k.length-1])},${w(0)}`].join(" "),T=[100,200,500,1e3,2e3,5e3,1e4],g=t==="all"?null:z.find(n=>n.id===t);return e.jsxs("div",{children:[e.jsxs("div",{style:{display:"flex",gap:6,marginBottom:16,flexWrap:"wrap"},children:[e.jsx("button",{onClick:()=>a("all"),style:{background:t==="all"?"#ffffff14":"transparent",border:`1px solid ${t==="all"?"#9aa0ad":"#2a2d38"}`,color:t==="all"?"#c0c0d0":"#9aa0ad",padding:"6px 14px",borderRadius:5,fontSize:10,fontFamily:"'JetBrains Mono', monospace",cursor:"pointer",transition:"all 0.15s"},children:"All layers"}),z.map(n=>e.jsxs("button",{onClick:()=>a(t===n.id?"all":n.id),style:{background:t===n.id?`${n.color}18`:"transparent",border:`1px solid ${t===n.id?n.color:"#2a2d38"}`,color:t===n.id?n.color:"#9aa0ad",padding:"6px 14px",borderRadius:5,fontSize:10,fontFamily:"'JetBrains Mono', monospace",cursor:"pointer",transition:"all 0.15s",textAlign:"left"},children:[e.jsx("div",{style:{fontWeight:t===n.id?700:400},children:n.label}),e.jsx("div",{style:{fontSize:8,opacity:.6,marginTop:1},children:n.sub})]},n.id))]}),e.jsxs("svg",{viewBox:`0 0 ${l} ${h}`,style:{width:"100%",height:"auto",display:"block"},children:[e.jsx("defs",{children:e.jsx("clipPath",{id:"ttSoundClip",children:e.jsx("rect",{x:d,y:o,width:s,height:r})})}),[0,.5,1].map(n=>{const u=w(n);return e.jsx("line",{x1:d,y1:u,x2:l-f,y2:u,stroke:n===1?"#1e2030":"#0e1018",strokeWidth:1,strokeDasharray:n<1?"3 3":void 0},n)}),T.map(n=>{const u=c(n);return e.jsxs("g",{children:[e.jsx("line",{x1:u,y1:o,x2:u,y2:o+r,stroke:"#0e1018",strokeWidth:1}),e.jsx("text",{x:u,y:o+r+14,textAnchor:"middle",fontSize:7.5,fill:"#2a2d38",fontFamily:"'JetBrains Mono', monospace",children:n>=1e3?`${n/1e3}k`:n})]},n)}),e.jsx("text",{x:l/2,y:h-4,textAnchor:"middle",fontSize:7.5,fill:"#22222e",fontFamily:"'JetBrains Mono', monospace",letterSpacing:"0.08em",children:"FREQUENCY (Hz)"}),e.jsxs("g",{clipPath:"url(#ttSoundClip)",children:[(t==="all"||t==="music"||t==="voice")&&p.length>1&&e.jsx("rect",{x:c(200),y:o,width:c(3e3)-c(200),height:r,fill:"#ffffff05"}),z.map(n=>{const u=t===n.id,S=t==="all"||u?1:.08;return e.jsxs("g",{opacity:S,style:{cursor:"pointer"},onClick:()=>a(t===n.id?"all":n.id),children:[e.jsx("polygon",{points:M(n.presence),fill:`${n.color}18`}),e.jsx("polyline",{points:A(n.presence),fill:"none",stroke:n.color,strokeWidth:u?3:1.8})]},n.id)}),t==="all"&&e.jsx("text",{x:c(700),y:o+14,textAnchor:"middle",fontSize:7.5,fill:"#ffffff22",fontFamily:"'JetBrains Mono', monospace",children:"voice / music overlap"}),t==="music"&&e.jsxs(e.Fragment,{children:[e.jsx("line",{x1:c(200),y1:o,x2:c(200),y2:o+r,stroke:`${v}44`,strokeWidth:1,strokeDasharray:"4 3"}),e.jsx("line",{x1:c(3e3),y1:o,x2:c(3e3),y2:o+r,stroke:`${v}44`,strokeWidth:1,strokeDasharray:"4 3"}),e.jsx("text",{x:c(700),y:o+r-8,textAnchor:"middle",fontSize:8,fill:v,fontFamily:"'JetBrains Mono', monospace",opacity:.8,children:"competes with voice"})]})]}),e.jsx("line",{x1:d,y1:o,x2:d,y2:o+r,stroke:"#1a1d28",strokeWidth:1}),e.jsx("text",{x:10,y:h/2,textAnchor:"middle",fontSize:7.5,fill:"#22222e",fontFamily:"'JetBrains Mono', monospace",letterSpacing:"0.06em",transform:`rotate(-90, 10, ${h/2})`,children:"PRESENCE"})]}),g?e.jsxs("div",{style:{marginTop:12,background:`${g.color}0e`,border:`1px solid ${g.color}33`,borderLeft:`3px solid ${g.color}`,borderRadius:8,padding:"12px 16px"},children:[e.jsx("div",{style:{fontFamily:"'Space Grotesk', sans-serif",fontSize:14,fontWeight:700,color:g.color,marginBottom:6},children:g.label}),g.id==="music"&&e.jsx("p",{style:{fontSize:12,color:"#8888a0",lineHeight:1.65,margin:0},children:"Your audio competes directly with the creator's voice in the 200 Hzâ3 kHz band. Strong low-mid character in the 150â500 Hz range â bass guitar fundamentals, kick presence, lower piano â is what carries musical identity through a voiceover. Tracks relying solely on sub-bass or high-frequency shimmer for character lose their identity when voice enters the frame."}),g.id==="voice"&&e.jsx("p",{style:{fontSize:12,color:"#8888a0",lineHeight:1.65,margin:0},children:"Speech energy is concentrated between 200 Hz and 3 kHz â the same range where your music's midrange and presence lives. When a creator records a voiceover over your Sound, this entire band becomes contested. Tracks with clear musical identity in the 150â300 Hz upper-bass zone maintain recognition even when a voice is talking over the 500 Hzâ3 kHz region."}),g.id==="ambient"&&e.jsx("p",{style:{fontSize:12,color:"#8888a0",lineHeight:1.65,margin:0}
1,children:"Background room noise adds a diffuse low-level floor across all frequencies. Its main effect is to raise the noise floor, which reduces the perceived dynamic contrast in your track. Music with strong crest factor (punchy transients well above the noise floor) retains impact better in ambient environments than heavily limited, noise-floor-adjacent signals."}),g.id==="sfx"&&e.jsx("p",{style:{fontSize:12,color:"#8888a0",lineHeight:1.65,margin:0},children:"TikTok's built-in sound effects are percussive and concentrated in the upper-mid and high-frequency range. They tend to occupy 1â8 kHz with transient peaks. Tracks with strong transient clarity in this range can conflict with SFX. Musical hooks built on lower harmonic content (bass, lower synths, kick) are less affected when SFX are layered on top."})]}):e.jsx("p",{style:{fontSize:11,color:"#2a2d38",fontFamily:"'JetBrains Mono', monospace",marginTop:10,lineHeight:1.5},children:"Click a layer to see what it means for your Sound. When creators use your audio, all four layers compete in the same frequency space. The 200â3 kHz overlap between voice and music is where your track's identity either survives or disappears."})]})}function N({analysis:t}){var x,s,r;const a=(x=t==null?void 0:t.lufs)==null?void 0:x.integrated,l=(s=t==null?void 0:t.truePeak)==null?void 0:s.peak,h=(r=t==null?void 0:t.dynamics)==null?void 0:r.crestFactor;if(a==null)return null;const f=a- -14,o=[{label:"Integrated loudness",value:`${a.toFixed(1)} LUFS`,target:"â â14 LUFS normalization target",good:a<=-9,note:f>5?`${f.toFixed(1)} dB above â14 LUFS â TikTok will apply significant attenuation. The normalization is volume-only, but very loud masters interact poorly with TikTok's processing on heavily limited material. Some dynamic headroom prevents artifact amplification.`:f>0?"Slightly above â14 LUFS â minor attenuation expected. No significant impact.":"Below TikTok's normalization threshold â plays at mastered level."},...l!=null?[{label:"True peak",value:`${l.toFixed(1)} dBTP`,target:"â1 dBTP is a comfortable target",good:!0,note:l>-1?"Running a little hot. TikTok's AAC encoder can nudge intersample peaks slightly higher â at this level that may or may not introduce anything audible, so it's worth being mindful of, not a problem to fix.":"Comfortable headroom for TikTok's AAC encoding. Nothing to think about here."}]:[],...h!=null?[{label:"Crest factor (dynamics)",value:`${h.toFixed(1)} dB`,target:"Punchy transients survive noisy playback environments",good:h>=5,note:h<5?"Very heavily limited. On TikTok, transient punch is what gives audio identity over background noise and voiceovers. Heavy limiting reduces the dynamic contrast that makes sounds feel energetic in a noisy feed.":h>=8?"Good transient punch â will maintain impact on phone speakers and in noisy playback environments.":"Moderate dynamics. Will encode cleanly and hold up in typical TikTok playback contexts."}]:[]];return e.jsxs("div",{style:{background:"#0a0c14",border:"1px solid #1a1d28",borderRadius:10,padding:"18px 20px"},children:[e.jsx("div",{style:{fontSize:10,textTransform:"uppercase",letterSpacing:"0.12em",color:"#9aa0ad",fontFamily:"'JetBrains Mono', monospace",marginBottom:14},children:"TikTok Readiness â Quick Assessment"}),e.jsx("div",{style:{display:"flex",flexDirection:"column",gap:12},children:o.map(m=>e.jsxs("div",{style:{background:"#0d0f18",borderRadius:8,padding:"14px 16px",borderLeft:`3px solid ${m.good?"#30d158":"#ff9f0a"}`},children:[e.jsxs("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",marginBottom:6,gap:8,flexWrap:"wrap"},children:[e.jsx("span",{style:{fontSize:12,color:"#8888a0",fontFamily:"'JetBrains Mono', monospace"},children:m.label}),e.jsxs("div",{style:{display:"flex",gap:8,alignItems:"center"},children:[e.jsx("span",{style:{fontSize:13,fontWeight:700,color:"#00d4ff",fontFamily:"'JetBrains Mono', monospace"},children:m.value}),e.jsx("span",{style:{fontSize:9,color:m.good?"#30d158":"#ff9f0a",background:m.good?"#30d15815":"#ff9f0a15",padding:"2px 7px",borderRadius:3,fontFamily:"'JetBrains Mono', monospace",fontWeight:700},children:m.good?"GOOD":"REVIEW"})]})]}
1),e.jsxs("div",{style:{fontSize:10,color:"#44445a",fontFamily:"'JetBrains Mono', monospace",marginBottom:4},children:["Target: ",m.target]}),e.jsx("div",{style:{fontSize:11,color:"#666678",lineHeight:1.5},children:m.note})]},m.label))})]})}function Q(){const t=[{number:"01",color:"#ff5555",mistake:"Burying the hook after a long intro",why:"On TikTok, viewers decide in the first 2â3 seconds whether to stay or swipe. A track structure that builds for 8 bars before reaching its defining moment means the payoff arrives after the majority of the potential audience has already left. TikTok's viewer retention data is brutal: roughly half the audience is gone by second 5 on videos that don't immediately engage.",fix:"For TikTok content, restructure so the most energetic, memorable moment comes first. This doesn't mean cutting your song â it means identifying which 2 seconds would make someone stop scrolling, and making sure those 2 seconds are the entry point for the video. For original sounds intended to go viral, the hook should be instantly recognizable within one bar."},{number:"02",color:"#ff9f0a",mistake:"Building musical identity only in the sub-bass or high end",why:"When other creators use your Sound, their voiceover occupies the 200 Hzâ3 kHz band â the same region as most musical midrange content. If your track's defining character lives only in the sub-bass (below 100 Hz, inaudible on phone speakers anyway) or in high-frequency shimmer (above 8 kHz), it loses its identity the moment a voice starts talking over it. The track becomes anonymous background audio.",fix:"Build harmonic character in the 150â500 Hz region â the upper bass and low-mid zone where kick drum body, bass guitar fundamentals, lower synth pads, and piano fundamentals live. This range overlaps with voice but is distinct enough from the speech formant peak (around 1â2 kHz) to coexist. Tracks that 'read' as musical even when talking is happening over them tend to perform significantly better as viral Sounds."},{number:"03",color:"#30d158",mistake:"Uploading MP3 to TikTok",why:"TikTok re-encodes everything to ~128 kbps AAC. Uploading an MP3 â even at 320 kbps â means TikTok encodes from an already lossy file. The MP3 codec's artifacts (HF smearing, pre-echo, stereo narrowing) become the source signal for TikTok's AAC encode, and the two artifact patterns compound each other. The result is audibly worse than encoding from lossless PCM, particularly on reverb tails and high-frequency content above 8 kHz.",fix:"Export WAV from your DAW and upload that. Never create an intermediate MP3. TikTok will encode to AAC regardless â give it the cleanest possible source to work with. The difference is subtle but consistently audible on headphones, particularly on transients, stereo width, and the top end."}];return e.jsxs("div",{children:[e.jsxs("div",{style:{marginBottom:20},children:[e.jsx("div",{style:{fontSize:10,textTransform:"uppercase",letterSpacing:"0.15em",color:"#9aa0ad",fontFamily:"'JetBrains Mono', monospace",marginBottom:8},children:"Common Mistakes"}),e.jsx("h2",{style:{fontFamily:"'Space Grotesk', sans-serif",fontSize:22,fontWeight:700,color:"#e8e8f0",lineHeight:1.2,margin:0},children:"What goes wrong when mastering for TikTok"})]}),e.jsx("div",{style:{display:"flex",flexDirection:"column",gap:16},children:t.map(a=>e.jsxs("div",{style:{background:"#0a0c14",border:`1px solid ${a.color}22`,borderRadius:10,padding:"20px 22px",borderLeft:`3px solid ${a.color}`},children:[e.jsxs("div",{style:{display:"flex",alignItems:"flex-start",gap:14,marginBottom:12},children:[e.jsx("div",{style:{fontFamily:"'JetBrains Mono', monospace",fontSize:11,color:`${a.color}66`,fontWeight:700,flexShrink:0,paddingTop:2},children:a.number}),e.jsx("div",{style:{fontFamily:"'Space Grotesk', sans-serif",fontSize:16,fontWeight:700,color:"#e8e8f0"},children:a.mistake})]}),e.jsxs("div",{style:{paddingLeft:28},children:[e.jsxs("div",{style:{fontSize:12,color:"#888898",lineHeight:1.65,marginBottom:10},children:[e.jsx("span",{style:{color:"#9aa0ad",fontFamily:"'JetBrains Mono', monospace",fontSize:9,textTransform:"uppercase",letterSpacing:"0.1em"},children:"Why it matters · "}),a.why]}),e.jsxs("div",{style:{fontSize:12,color:"#8888a0",lineHeight:1.65,background:`${a.color}08`,borderRadius:6,padding:"10px 12px",borderLeft:`2px solid ${a.color}44`},children:[e.jsx("span",{style:{color:a.color,fontFamily:"'JetBrains Mono', monospace",fontSize:9,textTransform:"uppercase",letterSpacing:"0.1em"},children:"How to fix it · "}),a.fix]})]})]},a.number))})]})}function X(){const[t,a]=B.useState(null),l=[{q:"What audio bitrate does TikTok use?",a:"~128 kbps AAC â always re-encoded from your upload. Always upload WAV/AIFF, never MP3. Encoding from lossless PCM gives TikTok's algorithm the cleanest possible source, producing better results than re-encoding from an already lossy file."}
1,{q:"Does TikTok normalize loudness?",a:"Yes, targeting approximately â14 LUFS. Primarily downward â loud masters are attenuated. Very heavy limiting interacts poorly with TikTok's processing. Leave some headroom: â1 dBTP true peak, moderate crest factor."},{q:"What is the TikTok Sounds system?",a:"TikTok detaches your audio from your video and makes it available as a standalone Sound for other creators to use. Your master may play simultaneously under voiceovers, ambient noise, and sound effects. Strong low-mid character (150â500 Hz) is what maintains musical identity in this layered context."},{q:"How quickly do viewers leave TikTok videos?",a:"Roughly 40â50% leave within the first 3 seconds without a strong hook. The most energetic, characterful moment of your audio needs to land in the first 2 seconds for maximum viewer retention."},{q:"Should I use a different master for TikTok?",a:"Usually not. More valuable is checking your mix on a phone speaker (phone speakers roll off sharply below 200 Hz, making sub-heavy mixes sound thin), and ensuring your track has strong musical identity in the 150â500 Hz zone that survives being played under a voiceover."},{q:"Why does my track sound weak on TikTok?",a:"Three likely causes: (1) phone speaker bass rolloff below 200 Hz making the mix sound thin, (2) heavy limiting creating a flat, fatiguing sound that doesn't punch through ambient noise, or (3) musical identity built on sub-bass or HF shimmer that disappears when the track is played under other audio."}];return e.jsxs("div",{children:[e.jsxs("div",{style:{marginBottom:20},children:[e.jsx("div",{style:{fontSize:10,textTransform:"uppercase",letterSpacing:"0.15em",color:"#9aa0ad",fontFamily:"'JetBrains Mono', monospace",marginBottom:8},children:"FAQ"}),e.jsx("h2",{style:{fontFamily:"'Space Grotesk', sans-serif",fontSize:22,fontWeight:700,color:"#e8e8f0",lineHeight:1.2,margin:0},children:"Common questions about TikTok mastering"})]}),e.jsx("div",{style:{display:"flex",flexDirection:"column",gap:2},children:l.map((h,d)=>e.jsxs("div",{style:{background:"#0a0c14",border:"1px solid #1a1d28",borderRadius:8,overflow:"hidden"},children:[e.jsxs("button",{onClick:()=>a(t===d?null:d),style:{width:"100%",display:"flex",justifyContent:"space-between",alignItems:"center",padding:"14px 18px",background:"none",border:"none",cursor:"pointer",textAlign:"left",gap:12},children:[e.jsx("span",{style:{fontSize:14,color:t===d?"#e8e8f0":"#c0c0d0",fontFamily:"'Space Grotesk', sans-serif",fontWeight:500,lineHeight:1.4},children:h.q}),e.jsx("span",{style:{color:t===d?b:"#333348",fontSize:18,flexShrink:0,transform:t===d?"rotate(45deg)":"none",transition:"transform 0.2s"},children:"+"})]}),t===d&&e.jsx("div",{style:{padding:"0 18px 16px",fontSize:13,color:"#8888a0",lineHeight:1.7,borderTop:"1px solid #1a1d28"},children:e.jsx("div",{style:{paddingTop:14},children:h.a})})]},d))})]})}function _(){const t=[{path:"/instagram",name:"Instagram",desc:"128 kbps AAC · â14 LUFS · Phone speaker · Reels",color:"#E1306C"},{path:"/youtube",name:"YouTube",desc:"â14 LUFS · Opus 256 kbps · Down only",color:"#FF0000"},{path:"/spotify",name:"Spotify",desc:"â14 LUFS · Ogg Vorbis/AAC · Bidirectional",color:"#1DB954"},{path:"/soundcloud",name:"SoundCloud",desc:"â14 LUFS · MP3 128 kbps · Generation loss",color:"#FF5500"}];return e.jsxs("div",{children:[e.jsx("div",{style:{fontSize:10,textTransform:"uppercase",letterSpacing:"0.15em",color:"#9aa0ad",fontFamily:"'JetBrains Mono', monospace",marginBottom:14},children:"Also analyze for"}),e.jsx("div",{style:{display:"grid",gridTemplateColumns:"1fr 1fr",gap:10},children:t.map(a=>e.jsx(C,{to:a.path,style:{textDecoration:"none"},children:e.jsxs("div",{style:{background:"#0a0c14",border:"1px solid #1a1d28",borderRadius:8,padding:"14px 16px",transition:"all 0.15s",borderLeft:`3px solid ${a.color}55`},onMouseEnter:l=>{l.currentTarget.style.borderColor=`${a.color}66`,l.currentTarget.style.transform="translateY(-1px)"},onMouseLeave:l=>{l.currentTarget.style.borderColor="#1a1d28",l.currentTarget.style.borderLeftColor=`${a.color}55`,l.currentTarget.style.transform="none"},children:[e.jsx("div",{style:{fontFamily:"'Space Grotesk', sans-serif",fontSize:14,fontWeight:600,color:"#c0c0d0",marginBottom:4},children:a.name}),e.jsx("div",{style:{fontFamily:"'JetBrains Mono', monospace",fontSize:10,
1color:"#44445a",lineHeight:1.5},children:a.desc})]})},a.path))})]})}function te(){const t=E(),{analysis:a,analyzing:l,progress:h,fileName:d,error:f}=t,o=B.useMemo(()=>U.filter(s=>s.id==="tiktok"),[]),x=[{label:"Normalization target",value:"â â14 LUFS"},{label:"Normalization behavior",value:"Primarily downward (loud content)"},{label:"Audio codec",value:"AAC ~128 kbps (always re-encoded)"},{label:"Sample rate",value:"44.1 kHz"},{label:"True peak guideline",value:"â1 dBTP comfortable target"},{label:"Sounds system",value:"Audio detached, reused by other creators"},{label:"Upload format",value:"WAV or AIFF â never MP3"},{label:"Hook window",value:"0â2 seconds for maximum retention"}];return e.jsxs("div",{style:{paddingBottom:100},children:[e.jsx(O,{}),e.jsxs("div",{style:{marginBottom:36},children:[e.jsxs("nav",{"aria-label":"Breadcrumb",style:{fontSize:10,textTransform:"uppercase",letterSpacing:"0.15em",fontFamily:"'JetBrains Mono', monospace",marginBottom:8,display:"flex",alignItems:"center",gap:4},children:[e.jsx(C,{to:"/",style:{color:b,textDecoration:"none"},children:"mastering.to"}),e.jsx("span",{style:{color:b,opacity:.5},children:"/"}),e.jsx("span",{style:{color:b},children:"tiktok"})]}),e.jsx("h1",{style:{fontFamily:"'Space Grotesk', sans-serif",fontSize:34,fontWeight:700,color:"#e8e8f0",lineHeight:1.15,marginBottom:12,letterSpacing:"-0.02em"},children:"Mastering for TikTok"}),e.jsx("p",{style:{fontSize:15,color:"#8888a0",lineHeight:1.65,maxWidth:680,marginBottom:20},children:"TikTok is the only major platform where your audio gets detached from your video and handed to thousands of other creators. Your master plays under their voices, their rooms, their sound effects â and it loses half its potential audience in the first three seconds. The technical decisions follow from those two facts."}),e.jsx("div",{style:{display:"flex",flexWrap:"wrap",gap:8},children:[{v:"â14 LUFS",l:"normalization target"},{v:"~128 kbps",l:"AAC re-encoded"},{v:"0â2s",l:"hook window"},{v:"Sounds",l:"audio detached & reused"}].map(({v:s,l:r})=>e.jsxs("div",{style:{background:"#0d0f18",border:"1px solid #1a1d28",borderRadius:6,padding:"6px 12px",display:"flex",gap:7,alignItems:"baseline"},children:[e.jsx("span",{style:{fontFamily:"'Space Grotesk', sans-serif",fontSize:15,fontWeight:700,color:b},children:s}),e.jsx("span",{style:{fontFamily:"'JetBrains Mono', monospace",fontSize:9,textTransform:"uppercase",letterSpacing:"0.1em",color:"#44445a"},children:r})]},r))})]}),e.jsxs("div",{style:{background:"#0d0f15",border:"1px solid #1a1d28",borderRadius:8,padding:"20px 24px",marginBottom:32},children:[e.jsxs("div",{style:{fontSize:10,textTransform:"uppercase",letterSpacing:"0.15em",color:"#9aa0ad",fontFamily:"'JetBrains Mono', monospace",marginBottom:14,display:"flex",alignItems:"center",gap:8},children:[e.jsx("div",{style:{width:12,height:1,background:`${b}55`}}),"Key Specifications",e.jsx("div",{style:{flex:1,height:1,background:"#1a1d28"}})]}),e.jsx("div",{style:{display:"flex",flexDirection:"column"},children:x.map((s,r)=>e.jsxs("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",padding:"9px 0",borderBottom:r<x.length-1?"1px solid #12141e":"none",gap:12,flexWrap:"wrap"},children:[e.jsx("span",{style:{fontSize:12,color:"#777790"},children:s.label}),e.jsx("span",{style:{fontSize:12,fontFamily:"'JetBrains Mono', monospace",color:b,fontWeight:600,textAlign:"right",maxWidth:"60%",wordBreak:"break-word",marginLeft:"auto"},children:s.value})]},r))})]}),e.jsxs("div",{style:{background:"#0a0c14",border:"1px solid #1a1d28",borderRadius:10,padding:"24px 20px",marginBottom:24},children:[e.jsxs("div",{style:{marginBottom:18},children:[e.jsx("div",{style:{fontSize:10,textTransform:"uppercase",letterSpacing:"0.15em",color:"#9aa0ad",fontFamily:"'JetBrains Mono', monospace",marginBottom:8},children:"Diagram 1"}),e.jsx("h2",{style:{fontFamily:"'Space Grotesk', sans-serif",fontSize:20,fontWeight:700,color:"#e8e8f0",margin:"0 0 8px"},children:"Viewer retention vs hook timing"}),e.jsx("p",{style:{fontSize:13,color:"#8888a0",lineHeight:1.6,maxWidth:620,margin:0},children:"The orange retention curve shows how quickly TikTok viewers leave without a hook. Toggle between a standard song structure and a hook-first approach to
1see what happens to audience size when the payoff arrives late."})]}),e.jsx(Y,{})]}),e.jsxs("div",{style:{background:"#0a0c14",border:"1px solid #1a1d28",borderRadius:10,padding:"24px 20px",marginBottom:32},children:[e.jsxs("div",{style:{marginBottom:18},children:[e.jsx("div",{style:{fontSize:10,textTransform:"uppercase",letterSpacing:"0.15em",color:"#9aa0ad",fontFamily:"'JetBrains Mono', monospace",marginBottom:8},children:"Diagram 2"}),e.jsx("h2",{style:{fontFamily:"'Space Grotesk', sans-serif",fontSize:20,fontWeight:700,color:"#e8e8f0",margin:"0 0 8px"},children:"The Sounds context: your audio under other people's content"}),e.jsx("p",{style:{fontSize:13,color:"#8888a0",lineHeight:1.6,maxWidth:620,margin:0},children:"When your Sound goes viral, creators layer it under voiceovers, ambient noise, and effects. Click each layer to see what frequency space it occupies â and where your music's identity needs to live to survive the overlap."})]}),e.jsx(V,{})]}),e.jsxs("div",{style:{marginBottom:32},children:[e.jsxs("div",{style:{fontSize:10,textTransform:"uppercase",letterSpacing:"0.15em",color:"#9aa0ad",fontFamily:"'JetBrains Mono', monospace",marginBottom:14,display:"flex",alignItems:"center",gap:8},children:[e.jsx("div",{style:{width:12,height:1,background:`${b}55`}}),"Check Your Master",e.jsx("div",{style:{flex:1,height:1,background:"#1a1d28"}})]}),e.jsxs(P,{value:b,children:[!a&&!l&&e.jsx(J,{analyzer:t}),l&&e.jsx(q,{progress:h,fileName:d}),f&&e.jsx(I,{error:f}),a&&e.jsxs(e.Fragment,{children:[e.jsx(D,{analysis:a,fileName:d,onReset:t.reset,platforms:o,formatTime:G,precodedBuffers:t.precodedBuffers}),e.jsx("div",{style:{marginTop:20},children:e.jsx(N,{analysis:a})})]})]})]}),e.jsx("div",{style:{marginBottom:40},children:[{title:"The Three-Second Rule Is Real",content:"TikTok viewer retention data is unambiguous: the majority of drop-off happens in the first three seconds. Creators and labels have internalized this as a general principle â 'hook first' â but it has specific implications for audio. A track structure that builds atmospheric tension over sixteen bars before the drop arrives is a masterpiece of anticipation on a proper listening platform and a guaranteed swipe on TikTok. The audio decision this requires isn't a mastering decision â it's a compositional one. The most energetic, most instantly recognizable moment of your track should be the first thing the viewer hears. On tracks built for TikTok from the ground up, this means designing what might otherwise be a 'drop' to function as the opening bar. On existing releases, it means identifying the section that would make someone stop scrolling and using that as the video's audio entry point."},{title:"The Sounds Ecosystem: Mastering for Other People's Content",content:"TikTok's Sound system is the platform's most structurally unusual feature for audio. When your original sound gains traction, TikTok makes it available as a standalone Sound â decoupled from your video â that any creator can use in their own content. A viral Sound gets used in thousands of videos. Each of those videos layers your audio under a creator's voice, their background environment, their chosen sound effects. This means your master must work as background music, not just as foreground listening. The practical implication is that musical identity built only in sub-bass (inaudible on phone speakers) or high-frequency shimmer (masked by room noise and speech) disappears the moment a creator starts talking over it. Tracks with strong harmonic presence in the 150â500 Hz range â kick body, bass fundamentals, lower synth character â maintain recognizable identity even when a voiceover occupies the speech formant range above 300 Hz."},{title:"AAC Encoding and Generation Loss",content:"TikTok encodes all uploads to approximately 128 kbps AAC â the same bitrate as Instagram, applied unconditionally. The encoding quality ceiling is fixed; what you can control is the quality of the source you hand to the encoder. Upload WAV. Never MP3. An MP3 uploaded to TikTok gets re-encoded: MP3's artifact patterns (high-frequency smearing, pre-echo on transients, subtle stereo narrowing) are treated as the source signal for AA
1C's own encoding process. The two codec artifact patterns compound in ways that are audible on headphones, particularly on reverb tails, cymbals, and stereo width. The result is a noticeably worse encode than encoding from clean PCM â at the same output bitrate. Every step of the workflow that introduces unnecessary quality degradation before the final encode is a step you don't need to take."},{title:"Normalization, Phone Speakers, and the Feed Context",content:"TikTok's â14 LUFS normalization is standard territory â the same target as Spotify, YouTube, and Instagram. The normalization attenuates loud content without significantly boosting quiet material. The phone speaker problem is the same as Instagram: sharp rolloff below 200â250 Hz, forward mid-presence at 1â3 kHz, inconsistent top end. What's different on TikTok is the scroll context: a viewer often has their phone lying face-down on a desk, or is watching in a noisy environment, or has the volume barely audible. The audio needs to convey energy and identity even under these conditions. Punchy transients â particularly in the upper-bass and lower-mid range that phone speakers do reproduce â communicate energy more reliably in this context than wall-to-wall loudness, which flattens out on a small speaker to an undifferentiated mass of sound."}].map((s,r)=>e.jsxs("div",{style:{marginBottom:24},children:[e.jsx("h2",{style:{fontFamily:"'Space Grotesk', sans-serif",fontSize:18,fontWeight:600,color:"#c0c0d0",marginBottom:10,paddingLeft:14,borderLeft:`3px solid ${b}44`},children:s.title}),e.jsx("p",{style:{fontSize:14,color:"#8888a0",lineHeight:1.75,maxWidth:800,paddingLeft:14},children:s.content})]},r))}),e.jsx("div",{style:{marginBottom:40},children:e.jsx(Q,{})}),e.jsx("div",{style:{marginBottom:40},children:e.jsx(X,{})}),e.jsx("div",{style:{borderTop:"1px solid #1a1d28",paddingTop:32},children:e.jsx(_,{})}),e.jsxs("div",{style:{marginTop:24,paddingTop:20,borderTop:"1px solid #111420"},children:[e.jsx("div",{style:{fontSize:10,textTransform:"uppercase",letterSpacing:"0.15em",color:"#9aa0ad",fontFamily:"'JetBrains Mono', monospace",marginBottom:10},children:"Related Reading"}),e.jsx("div",{style:{display:"flex",flexWrap:"wrap",gap:"8px 20px"},children:[{to:"/learn/loudness-standards",label:"Loudness Standards by Platform"}].map(s=>e.jsx(C,{to:s.to,style:{fontSize:13,color:"#00d4ff",textDecoration:"none",borderBottom:"1px solid #00d4ff44"},children:s.label},s.to))})]})]})}export{te as default};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.