{"id":4603,"date":"2026-02-17T22:15:03","date_gmt":"2026-02-18T03:15:03","guid":{"rendered":"https:\/\/smartdsp.pro\/?page_id=4603"},"modified":"2026-02-21T22:51:25","modified_gmt":"2026-02-22T03:51:25","slug":"loudness-analyzer","status":"publish","type":"page","link":"https:\/\/smartdsp.pro\/fr\/loudness-analyzer\/","title":{"rendered":"Analyseur de volume sonore"},"content":{"rendered":"\n[et_pb_section fb_built=&#8221;1&#8243; _builder_version=&#8221;4.27.5&#8243; _module_preset=&#8221;default&#8221; background_color=&#8221;#000000&#8243; background_image=&#8221;https:\/\/smartdsp.pro\/wp-content\/uploads\/2022\/10\/streamer-79.png&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_row _builder_version=&#8221;4.27.5&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;4.27.5&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_code _builder_version=&#8221;4.27.5&#8243; _module_preset=&#8221;default&#8221; hover_enabled=&#8221;0&#8243; global_colors_info=&#8221;{}&#8221; sticky_enabled=&#8221;0&#8243;]<!DOCTYPE html><!-- [et_pb_line_break_holder] --><html lang=\"en\"><!-- [et_pb_line_break_holder] --><head><!-- [et_pb_line_break_holder] --><meta charset=\"UTF-8\"><!-- [et_pb_line_break_holder] --><meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\"><!-- [et_pb_line_break_holder] --><title>Loudness Analyzer<\/title><!-- [et_pb_line_break_holder] --><link rel=\"preconnect\" href=\"https:\/\/fonts.googleapis.com\"><!-- [et_pb_line_break_holder] --><link rel=\"preconnect\" href=\"https:\/\/fonts.gstatic.com\" crossorigin><!-- [et_pb_line_break_holder] --><link href=\"https:\/\/fonts.googleapis.com\/css2?family=Be+Vietnam+Pro:ital,wght@0,300;0,400;0,500;0,600;0,700;0,800;1,400&#038;display=swap\" rel=\"stylesheet\"><!-- [et_pb_line_break_holder] --><style><!-- [et_pb_line_break_holder] -->  :root {<!-- [et_pb_line_break_holder] -->    --accent:        #f3be29;<!-- [et_pb_line_break_holder] -->    --accent-hover:  #f99c06;<!-- [et_pb_line_break_holder] -->    --accent-pink:   #cd3ba7;<!-- [et_pb_line_break_holder] -->    --gradient:      linear-gradient(135deg, #f3be29 0%, #cd3ba7 100%);<!-- [et_pb_line_break_holder] -->    --gradient-soft: linear-gradient(135deg, rgba(243,190,41,0.13) 0%, rgba(205,59,167,0.13) 100%);<!-- [et_pb_line_break_holder] -->    --gradient-glow: linear-gradient(135deg, rgba(243,190,41,0.06) 0%, rgba(205,59,167,0.06) 100%);<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    --glass:         rgba(255,255,255,0.04);<!-- [et_pb_line_break_holder] -->    --glass-b:       rgba(255,255,255,0.08);<!-- [et_pb_line_break_holder] -->    --glass-b2:      rgba(255,255,255,0.13);<!-- [et_pb_line_break_holder] -->    --glass-hover:   rgba(255,255,255,0.065);<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    --text:          #ffffff;<!-- [et_pb_line_break_holder] -->    --text-sub:      rgba(255,255,255,0.58);<!-- [et_pb_line_break_holder] -->    --text-muted:    white;<!-- [et_pb_line_break_holder] -->    --text-faint:    rgba(255,255,255,0.60);<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    --good:  #3ecf8e;<!-- [et_pb_line_break_holder] -->    --warn:  #f3be29;<!-- [et_pb_line_break_holder] -->    --bad:   #f16c6c;<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    --r:     14px;<!-- [et_pb_line_break_holder] -->    --r-sm:  9px;<!-- [et_pb_line_break_holder] -->    --r-xs:  6px;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  body {<!-- [et_pb_line_break_holder] -->    background: transparent;<!-- [et_pb_line_break_holder] -->    color: var(--text);<!-- [et_pb_line_break_holder] -->    font-family: 'Be Vietnam Pro', sans-serif;<!-- [et_pb_line_break_holder] -->    -webkit-font-smoothing: antialiased;<!-- [et_pb_line_break_holder] -->    min-height: 100vh;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  <!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  \/* \u2500 Layout \u2500 *\/<!-- [et_pb_line_break_holder] -->  .la {<!-- [et_pb_line_break_holder] -->    max-width: 860px;<!-- [et_pb_line_break_holder] -->    margin: 0 auto;<!-- [et_pb_line_break_holder] -->    padding: 52px 24px 72px;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  \/* \u2500 Header \u2500 *\/<!-- [et_pb_line_break_holder] -->  .la-header { margin-bottom: 40px; }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  .la-badge {<!-- [et_pb_line_break_holder] -->    display: inline-flex;<!-- [et_pb_line_break_holder] -->    align-items: center;<!-- [et_pb_line_break_holder] -->    gap: 7px;<!-- [et_pb_line_break_holder] -->    padding: 5px 14px 5px 10px;<!-- [et_pb_line_break_holder] -->    border-radius: 100px;<!-- [et_pb_line_break_holder] -->    border: 1px solid rgba(8, 156, 4,0.22);<!-- [et_pb_line_break_holder] -->    background: rgba(28, 156, 4,0.06);<!-- [et_pb_line_break_holder] -->    margin-bottom: 20px;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  .la-badge-pip {<!-- [et_pb_line_break_holder] -->    width: 5px; height: 5px;<!-- [et_pb_line_break_holder] -->    border-radius: 50%;<!-- [et_pb_line_break_holder] -->    background: #089c04;<!-- [et_pb_line_break_holder] -->    box-shadow: 0 0 7px #089c04;<!-- [et_pb_line_break_holder] -->    animation: pip 2.5s ease infinite;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  @keyframes pip {<!-- [et_pb_line_break_holder] -->    0%,100%{ opacity:1; box-shadow:0 0 7px var(--accent); }<!-- [et_pb_line_break_holder] -->    50%     { opacity:0.35; box-shadow:0 0 2px var(--accent); }<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  .la-badge-text {<!-- [et_pb_line_break_holder] -->    font-size: 10px;<!-- [et_pb_line_break_holder] -->    font-weight: 600;<!-- [et_pb_line_break_holder] -->    letter-spacing: 0.1em;<!-- [et_pb_line_break_holder] -->    text-transform: uppercase;<!-- [et_pb_line_break_holder] -->    color: #089c04;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  h1.la-title {<!-- [et_pb_line_break_holder] -->    font-size: clamp(28px, 4.8vw, 40px);<!-- [et_pb_line_break_holder] -->    font-weight: 800;<!-- [et_pb_line_break_holder] -->    letter-spacing: -0.035em;<!-- [et_pb_line_break_holder] -->    line-height: 1.06;<!-- [et_pb_line_break_holder] -->    color: var(--text);<!-- [et_pb_line_break_holder] -->    margin-bottom: 10px;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  h1.la-title .gr {<!-- [et_pb_line_break_holder] -->    background: var(--gradient);<!-- [et_pb_line_break_holder] -->    -webkit-background-clip: text;<!-- [et_pb_line_break_holder] -->    -webkit-text-fill-color: transparent;<!-- [et_pb_line_break_holder] -->    background-clip: text;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  <!-- [et_pb_line_break_holder] -->    h1 {<!-- [et_pb_line_break_holder] -->    background: var(--gradient);<!-- [et_pb_line_break_holder] -->    -webkit-background-clip: text;<!-- [et_pb_line_break_holder] -->    -webkit-text-fill-color: transparent;<!-- [et_pb_line_break_holder] -->    background-clip: text;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  .la-desc {<!-- [et_pb_line_break_holder] -->    font-size: 13.5px;<!-- [et_pb_line_break_holder] -->    font-weight: 400;<!-- [et_pb_line_break_holder] -->    color: var(--text-muted);<!-- [et_pb_line_break_holder] -->    line-height: 1.65;<!-- [et_pb_line_break_holder] -->    max-width: auto;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  \/* \u2500 Drop Zone \u2500 *\/<!-- [et_pb_line_break_holder] -->  .la-drop {<!-- [et_pb_line_break_holder] -->    position: relative;<!-- [et_pb_line_break_holder] -->    border: 1.5px dashed var(--glass-b2);<!-- [et_pb_line_break_holder] -->    border-radius: var(--r);<!-- [et_pb_line_break_holder] -->    padding: 56px 32px;<!-- [et_pb_line_break_holder] -->    text-align: center;<!-- [et_pb_line_break_holder] -->    cursor: pointer;<!-- [et_pb_line_break_holder] -->    background: var(--glass);<!-- [et_pb_line_break_holder] -->    backdrop-filter: blur(16px);<!-- [et_pb_line_break_holder] -->    -webkit-backdrop-filter: blur(16px);<!-- [et_pb_line_break_holder] -->    overflow: hidden;<!-- [et_pb_line_break_holder] -->    transition: border-color 0.25s, background 0.25s, transform 0.22s;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  .la-drop::after {<!-- [et_pb_line_break_holder] -->    content:'';<!-- [et_pb_line_break_holder] -->    position:absolute; inset:0;<!-- [et_pb_line_break_holder] -->    background: var(--gradient-glow);<!-- [et_pb_line_break_holder] -->    opacity:0;<!-- [et_pb_line_break_holder] -->    transition: opacity 0.3s;<!-- [et_pb_line_break_holder] -->    pointer-events:none;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  .la-drop:hover, .la-drop.drag {<!-- [et_pb_line_break_holder] -->    border-color: rgba(243,190,41,0.42);<!-- [et_pb_line_break_holder] -->    background: rgba(243,190,41,0.035);<!-- [et_pb_line_break_holder] -->    transform: translateY(-2px);<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  .la-drop:hover::after, .la-drop.drag::after { opacity:1; }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  .la-drop-icon {<!-- [et_pb_line_break_holder] -->    width: 58px; height: 58px;<!-- [et_pb_line_break_holder] -->    border-radius: 16px;<!-- [et_pb_line_break_holder] -->    background: var(--gradient-soft);<!-- [et_pb_line_break_holder] -->    border: 1px solid rgba(243,190,41,0.18);<!-- [et_pb_line_break_holder] -->    display: flex; align-items:center; justify-content:center;<!-- [et_pb_line_break_holder] -->    margin: 0 auto 20px;<!-- [et_pb_line_break_holder] -->    color: var(--accent);<!-- [et_pb_line_break_holder] -->    transition: transform 0.35s cubic-bezier(0.34,1.56,0.64,1);<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  .la-drop:hover .la-drop-icon { transform: translateY(-5px) scale(1.06); }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  .la-drop-title {<!-- [et_pb_line_break_holder] -->    font-size: 15px;<!-- [et_pb_line_break_holder] -->    font-weight: 700;<!-- [et_pb_line_break_holder] -->    letter-spacing: -0.015em;<!-- [et_pb_line_break_holder] -->    color: var(--text);<!-- [et_pb_line_break_holder] -->    margin-bottom: 7px;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  .la-drop-sub {<!-- [et_pb_line_break_holder] -->    font-size: 12.5px;<!-- [et_pb_line_break_holder] -->    color: var(--text-muted);<!-- [et_pb_line_break_holder] -->    line-height: 1.7;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  .la-drop-sub b {<!-- [et_pb_line_break_holder] -->    font-weight: 700;<!-- [et_pb_line_break_holder] -->    background: var(--gradient);<!-- [et_pb_line_break_holder] -->    -webkit-background-clip: text;<!-- [et_pb_line_break_holder] -->    -webkit-text-fill-color: transparent;<!-- [et_pb_line_break_holder] -->    background-clip: text;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  .la-formats {<!-- [et_pb_line_break_holder] -->    display: flex;<!-- [et_pb_line_break_holder] -->    flex-wrap: wrap;<!-- [et_pb_line_break_holder] -->    gap: 5px;<!-- [et_pb_line_break_holder] -->    justify-content: center;<!-- [et_pb_line_break_holder] -->    margin-top: 18px;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  .la-fmt {<!-- [et_pb_line_break_holder] -->    font-size: 9.5px;<!-- [et_pb_line_break_holder] -->    font-weight: 700;<!-- [et_pb_line_break_holder] -->    letter-spacing: 0.07em;<!-- [et_pb_line_break_holder] -->    text-transform: uppercase;<!-- [et_pb_line_break_holder] -->    padding: 3px 9px;<!-- [et_pb_line_break_holder] -->    border-radius: 100px;<!-- [et_pb_line_break_holder] -->    background: rgba(255,255,255,0.04);<!-- [et_pb_line_break_holder] -->    border: 1px solid rgba(255,255,255,0.08);<!-- [et_pb_line_break_holder] -->    color: var(--text-muted);<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  input[type=\"file\"] { display:none; }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  \/* \u2500 Analyzing \u2500 *\/<!-- [et_pb_line_break_holder] -->  .la-analyzing {<!-- [et_pb_line_break_holder] -->    display: none;<!-- [et_pb_line_break_holder] -->    background: var(--glass);<!-- [et_pb_line_break_holder] -->    backdrop-filter: blur(16px);<!-- [et_pb_line_break_holder] -->    -webkit-backdrop-filter: blur(16px);<!-- [et_pb_line_break_holder] -->    border: 1px solid var(--glass-b);<!-- [et_pb_line_break_holder] -->    border-radius: var(--r);<!-- [et_pb_line_break_holder] -->    padding: 48px 32px;<!-- [et_pb_line_break_holder] -->    text-align: center;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  .la-viz {<!-- [et_pb_line_break_holder] -->    display: flex; align-items:center; justify-content:center;<!-- [et_pb_line_break_holder] -->    gap: 3.5px; height: 56px; margin-bottom: 26px;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  .la-vbar {<!-- [et_pb_line_break_holder] -->    width: 3.5px; border-radius: 3px;<!-- [et_pb_line_break_holder] -->    animation: vbar 1.15s ease-in-out infinite;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  @keyframes vbar {<!-- [et_pb_line_break_holder] -->    0%,100% { height:5px; opacity:0.3; }<!-- [et_pb_line_break_holder] -->    50%      { height:46px; opacity:1; }<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  .la-analyzing-title {<!-- [et_pb_line_break_holder] -->    font-size: 14px; font-weight: 700;<!-- [et_pb_line_break_holder] -->    letter-spacing: -0.015em;<!-- [et_pb_line_break_holder] -->    color: var(--text); margin-bottom: 5px;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  .la-analyzing-file {<!-- [et_pb_line_break_holder] -->    font-size: 11.5px; font-weight: 400;<!-- [et_pb_line_break_holder] -->    color: var(--text-muted); margin-bottom: 22px;<!-- [et_pb_line_break_holder] -->    max-width: 380px; margin-left:auto; margin-right:auto;<!-- [et_pb_line_break_holder] -->    overflow:hidden; text-overflow:ellipsis; white-space:nowrap;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  .la-prog {<!-- [et_pb_line_break_holder] -->    height: 2px; background: rgba(255,255,255,0.07);<!-- [et_pb_line_break_holder] -->    border-radius: 2px; overflow:hidden;<!-- [et_pb_line_break_holder] -->    max-width: 300px; margin: 0 auto;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  .la-prog-fill {<!-- [et_pb_line_break_holder] -->    height:100%; background: var(--gradient);<!-- [et_pb_line_break_holder] -->    border-radius:2px; width:0%;<!-- [et_pb_line_break_holder] -->    transition: width 0.35s ease;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  \/* \u2500 Results \u2500 *\/<!-- [et_pb_line_break_holder] -->  .la-results {<!-- [et_pb_line_break_holder] -->    display: none;<!-- [et_pb_line_break_holder] -->    animation: fadeup 0.45s cubic-bezier(0.22,1,0.36,1) both;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  @keyframes fadeup {<!-- [et_pb_line_break_holder] -->    from { opacity:0; transform:translateY(16px); }<!-- [et_pb_line_break_holder] -->    to   { opacity:1; transform:translateY(0); }<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  \/* File bar *\/<!-- [et_pb_line_break_holder] -->  .la-filebar {<!-- [et_pb_line_break_holder] -->    display: flex; align-items:center; justify-content:space-between;<!-- [et_pb_line_break_holder] -->    gap: 14px; flex-wrap: wrap;<!-- [et_pb_line_break_holder] -->    padding: 14px 18px;<!-- [et_pb_line_break_holder] -->    background: var(--glass);<!-- [et_pb_line_break_holder] -->    backdrop-filter: blur(16px);<!-- [et_pb_line_break_holder] -->    -webkit-backdrop-filter: blur(16px);<!-- [et_pb_line_break_holder] -->    border: 1px solid var(--glass-b);<!-- [et_pb_line_break_holder] -->    border-radius: var(--r);<!-- [et_pb_line_break_holder] -->    margin-bottom: 14px;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  .la-file-name {<!-- [et_pb_line_break_holder] -->    font-size: 13.5px; font-weight: 700; letter-spacing: -0.015em;<!-- [et_pb_line_break_holder] -->    color: var(--text);<!-- [et_pb_line_break_holder] -->    white-space:nowrap; overflow:hidden; text-overflow:ellipsis;<!-- [et_pb_line_break_holder] -->    max-width: 380px;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  .la-file-meta {<!-- [et_pb_line_break_holder] -->    font-size: 10.5px; font-weight: 400;<!-- [et_pb_line_break_holder] -->    color: var(--text-muted); margin-top: 2px;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  .la-btns { display:flex; gap:8px; flex-shrink:0; }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  \/* Buttons *\/<!-- [et_pb_line_break_holder] -->  .btn {<!-- [et_pb_line_break_holder] -->    display: inline-flex; align-items:center; gap:6px;<!-- [et_pb_line_break_holder] -->    padding: 8px 17px;<!-- [et_pb_line_break_holder] -->    border-radius: var(--r-sm);<!-- [et_pb_line_break_holder] -->    font-family: 'Be Vietnam Pro', sans-serif;<!-- [et_pb_line_break_holder] -->    font-size: 12px; font-weight: 700; letter-spacing: 0.01em;<!-- [et_pb_line_break_holder] -->    cursor: pointer; transition: all 0.2s ease;<!-- [et_pb_line_break_holder] -->    border: none; outline: none; white-space: nowrap;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  .btn-grad {<!-- [et_pb_line_break_holder] -->    background: var(--gradient);<!-- [et_pb_line_break_holder] -->    color: #140700;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  .btn-grad:hover {<!-- [et_pb_line_break_holder] -->    filter: brightness(1.1);<!-- [et_pb_line_break_holder] -->    transform: translateY(-1px);<!-- [et_pb_line_break_holder] -->    box-shadow: 0 8px 22px rgba(243,190,41,0.22);<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  .btn-ghost {<!-- [et_pb_line_break_holder] -->    background: var(--glass);<!-- [et_pb_line_break_holder] -->    border: 1px solid var(--glass-b2);<!-- [et_pb_line_break_holder] -->    color: var(--text-sub);<!-- [et_pb_line_break_holder] -->    backdrop-filter: blur(8px);<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  .btn-ghost:hover {<!-- [et_pb_line_break_holder] -->    background: var(--glass-hover);<!-- [et_pb_line_break_holder] -->    border-color: rgba(243,190,41,0.28);<!-- [et_pb_line_break_holder] -->    color: var(--text);<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  \/* \u2500 Metrics \u2500 *\/<!-- [et_pb_line_break_holder] -->  .la-grid {<!-- [et_pb_line_break_holder] -->    display: grid;<!-- [et_pb_line_break_holder] -->    grid-template-columns: repeat(3,1fr);<!-- [et_pb_line_break_holder] -->    gap: 10px;<!-- [et_pb_line_break_holder] -->    margin-bottom: 14px;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  @media(max-width:580px){ .la-grid{ grid-template-columns:repeat(2,1fr); } }<!-- [et_pb_line_break_holder] -->  @media(max-width:340px){ .la-grid{ grid-template-columns:1fr; } }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  .la-card {<!-- [et_pb_line_break_holder] -->    background: var(--glass);<!-- [et_pb_line_break_holder] -->    border: 1px solid var(--glass-b);<!-- [et_pb_line_break_holder] -->    border-radius: var(--r);<!-- [et_pb_line_break_holder] -->    padding: 19px 18px 17px;<!-- [et_pb_line_break_holder] -->    position: relative; overflow:hidden;<!-- [et_pb_line_break_holder] -->    backdrop-filter: blur(16px);<!-- [et_pb_line_break_holder] -->    -webkit-backdrop-filter: blur(16px);<!-- [et_pb_line_break_holder] -->    transition: border-color 0.2s, transform 0.22s;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  .la-card:hover { border-color: var(--glass-b2); transform: translateY(-2px); }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  .la-card::before {<!-- [et_pb_line_break_holder] -->    content:'';<!-- [et_pb_line_break_holder] -->    position:absolute; top:0; left:0; right:0;<!-- [et_pb_line_break_holder] -->    height: 1.5px;<!-- [et_pb_line_break_holder] -->    background: var(--cline, transparent);<!-- [et_pb_line_break_holder] -->    border-radius: var(--r) var(--r) 0 0;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  .la-card-hero {<!-- [et_pb_line_break_holder] -->    background: linear-gradient(135deg, rgba(243,190,41,0.07) 0%, rgba(205,59,167,0.06) 100%);<!-- [et_pb_line_break_holder] -->    border-color: rgba(243,190,41,0.2);<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  .la-card-hero::before { background: var(--gradient); }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  .la-lbl {<!-- [et_pb_line_break_holder] -->    font-size: 9.5px; font-weight: 700;<!-- [et_pb_line_break_holder] -->    text-transform: uppercase; letter-spacing: 0.1em;<!-- [et_pb_line_break_holder] -->    color: var(--text-muted); margin-bottom: 12px;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  .la-val {<!-- [et_pb_line_break_holder] -->    font-size: 30px; font-weight: 800;<!-- [et_pb_line_break_holder] -->    letter-spacing: -0.04em; line-height:1;<!-- [et_pb_line_break_holder] -->    color: var(--text);<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  .la-card-hero .la-val {<!-- [et_pb_line_break_holder] -->    background: var(--gradient);<!-- [et_pb_line_break_holder] -->    -webkit-background-clip: text;<!-- [et_pb_line_break_holder] -->    -webkit-text-fill-color: transparent;<!-- [et_pb_line_break_holder] -->    background-clip: text;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  .la-unit {<!-- [et_pb_line_break_holder] -->    font-size: 10px; font-weight: 600;<!-- [et_pb_line_break_holder] -->    color: var(--text-muted); margin-top:5px; letter-spacing:0.04em;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  .la-bar {<!-- [et_pb_line_break_holder] -->    height: 2px; background: rgba(255,255,255,0.06);<!-- [et_pb_line_break_holder] -->    border-radius:2px; margin-top:14px; overflow:hidden;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  .la-bar-fill {<!-- [et_pb_line_break_holder] -->    height:100%; border-radius:2px; width:0%;<!-- [et_pb_line_break_holder] -->    transition: width 1.1s cubic-bezier(0.4,0,0.2,1);<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  \/* \u2500 Divider \u2500 *\/<!-- [et_pb_line_break_holder] -->  .la-div {<!-- [et_pb_line_break_holder] -->    display:flex; align-items:center; gap:12px;<!-- [et_pb_line_break_holder] -->    margin: 18px 0 12px;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  .la-div-line { flex:1; height:1px; background:var(--glass-b); }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  .la-div-txt {<!-- [et_pb_line_break_holder] -->    font-size: 9.5px; font-weight:700; letter-spacing:0.1em;<!-- [et_pb_line_break_holder] -->    text-transform:uppercase; color:var(--text-muted); white-space:nowrap;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  \/* \u2500 Expand \u2500 *\/<!-- [et_pb_line_break_holder] -->  .la-expand {<!-- [et_pb_line_break_holder] -->    width:100%;<!-- [et_pb_line_break_holder] -->    background: var(--glass);<!-- [et_pb_line_break_holder] -->    border: 1px solid var(--glass-b);<!-- [et_pb_line_break_holder] -->    border-radius: var(--r);<!-- [et_pb_line_break_holder] -->    padding: 14px 18px;<!-- [et_pb_line_break_holder] -->    display:flex; align-items:center; justify-content:space-between;<!-- [et_pb_line_break_holder] -->    cursor:pointer;<!-- [et_pb_line_break_holder] -->    backdrop-filter: blur(16px);<!-- [et_pb_line_break_holder] -->    -webkit-backdrop-filter: blur(16px);<!-- [et_pb_line_break_holder] -->    transition: all 0.2s;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  .la-expand:hover {<!-- [et_pb_line_break_holder] -->    border-color: rgba(243,190,41,0.28);<!-- [et_pb_line_break_holder] -->    background: var(--glass-hover);<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  .la-expand-left { display:flex; align-items:center; gap:11px; }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  .la-expand-ico {<!-- [et_pb_line_break_holder] -->    width:30px; height:30px; border-radius:8px;<!-- [et_pb_line_break_holder] -->    background: var(--gradient-soft);<!-- [et_pb_line_break_holder] -->    border: 1px solid rgba(243,190,41,0.18);<!-- [et_pb_line_break_holder] -->    display:flex; align-items:center; justify-content:center;<!-- [et_pb_line_break_holder] -->    flex-shrink:0;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  .la-expand-title {<!-- [et_pb_line_break_holder] -->    font-size: 13px; font-weight:700; letter-spacing:-0.01em; color:var(--text);<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  .la-expand-sub {<!-- [et_pb_line_break_holder] -->    font-size: 10.5px; font-weight:400; color:var(--text-muted); margin-top:1px;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  .la-chevron { color:var(--text-muted); transition:transform 0.3s ease; flex-shrink:0; }<!-- [et_pb_line_break_holder] -->  .la-expand.open .la-chevron { transform:rotate(180deg); }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  \/* \u2500 Platforms \u2500 *\/<!-- [et_pb_line_break_holder] -->  .la-plats { display:none; margin-top:10px; }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  .la-plats-grid {<!-- [et_pb_line_break_holder] -->    display:grid; grid-template-columns:repeat(2,1fr); gap:10px;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  @media(max-width:480px){ .la-plats-grid{ grid-template-columns:1fr; } }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  .la-plat {<!-- [et_pb_line_break_holder] -->    background: var(--glass);<!-- [et_pb_line_break_holder] -->    border: 1px solid var(--glass-b);<!-- [et_pb_line_break_holder] -->    border-radius: var(--r);<!-- [et_pb_line_break_holder] -->    padding: 15px 15px 14px;<!-- [et_pb_line_break_holder] -->    transition: border-color 0.2s, transform 0.22s;<!-- [et_pb_line_break_holder] -->    backdrop-filter: blur(12px);<!-- [et_pb_line_break_holder] -->    -webkit-backdrop-filter: blur(12px);<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  .la-plat:hover { transform:translateY(-2px); }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  .la-plat-top {<!-- [et_pb_line_break_holder] -->    display:flex; align-items:center; justify-content:space-between; margin-bottom:10px;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  .la-plat-name {<!-- [et_pb_line_break_holder] -->    display:flex; align-items:center; gap:8px;<!-- [et_pb_line_break_holder] -->    font-size:12.5px; font-weight:700; letter-spacing:-0.01em; color:var(--text);<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  .la-plat-ico {<!-- [et_pb_line_break_holder] -->    width:24px; height:24px; border-radius:6px;<!-- [et_pb_line_break_holder] -->    display:flex; align-items:center; justify-content:center;<!-- [et_pb_line_break_holder] -->    font-size:8.5px; font-weight:800; letter-spacing:0.03em; flex-shrink:0;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  .la-plat-tgt { font-size:9.5px; font-weight:500; color:var(--text-faint); }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  .la-plat-diff {<!-- [et_pb_line_break_holder] -->    font-size:20px; font-weight:800; letter-spacing:-0.04em; line-height:1;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  .d-over  { color:var(--warn); }<!-- [et_pb_line_break_holder] -->  .d-under { color:var(--good); }<!-- [et_pb_line_break_holder] -->  .d-ok    { color:var(--text-muted); }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  .la-plat-desc {<!-- [et_pb_line_break_holder] -->    font-size:10.5px; font-weight:400; color:var(--text-muted); margin-top:3px; line-height:1.5;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  .la-plat-bar { height:2px; background:rgba(255,255,255,0.06); border-radius:2px; margin-top:11px; overflow:hidden; }<!-- [et_pb_line_break_holder] -->  .la-plat-bar-fill { height:100%; border-radius:2px; width:0%; transition:width 1s cubic-bezier(0.4,0,0.2,1); }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  \/* \u2500 EBU Note \u2500 *\/<!-- [et_pb_line_break_holder] -->  .la-note {<!-- [et_pb_line_break_holder] -->    margin-top: 14px;<!-- [et_pb_line_break_holder] -->    padding: 12px 15px;<!-- [et_pb_line_break_holder] -->    background: rgba(255,255,255,0.02);<!-- [et_pb_line_break_holder] -->    border: 1px solid rgba(255,255,255,0.07);<!-- [et_pb_line_break_holder] -->    border-radius: var(--r-sm);<!-- [et_pb_line_break_holder] -->    font-size: 10px; font-weight:400; color:var(--text-muted); line-height:1.7;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  .la-note strong { font-weight:700; color:var(--accent); }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  \/* \u2500 Footer \u2500 *\/<!-- [et_pb_line_break_holder] -->  .la-footer { text-align:center; margin-top:22px; }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  \/* \u2500 Toast \u2500 *\/<!-- [et_pb_line_break_holder] -->  .la-toast {<!-- [et_pb_line_break_holder] -->    position:fixed; bottom:26px; right:26px;<!-- [et_pb_line_break_holder] -->    background: rgba(8,8,12,0.92);<!-- [et_pb_line_break_holder] -->    border: 1px solid var(--glass-b2);<!-- [et_pb_line_break_holder] -->    backdrop-filter: blur(24px);<!-- [et_pb_line_break_holder] -->    -webkit-backdrop-filter: blur(24px);<!-- [et_pb_line_break_holder] -->    border-radius: var(--r-sm);<!-- [et_pb_line_break_holder] -->    padding: 10px 15px;<!-- [et_pb_line_break_holder] -->    font-size:12px; font-weight:500; color:var(--text);<!-- [et_pb_line_break_holder] -->    display:flex; align-items:center; gap:8px;<!-- [et_pb_line_break_holder] -->    transform:translateY(70px); opacity:0;<!-- [et_pb_line_break_holder] -->    transition:all 0.35s cubic-bezier(0.4,0,0.2,1);<!-- [et_pb_line_break_holder] -->    z-index:999; max-width:290px;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  .la-toast.show { transform:translateY(0); opacity:1; }<!-- [et_pb_line_break_holder] -->  .la-toast-pip { width:6px;height:6px;border-radius:50%;background:var(--good);flex-shrink:0; }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  \/* \u2500 Value status colours \u2500 *\/<!-- [et_pb_line_break_holder] -->  .v-good { color:var(--good)!important; -webkit-text-fill-color:var(--good)!important; }<!-- [et_pb_line_break_holder] -->  .v-warn { color:var(--warn)!important; -webkit-text-fill-color:var(--warn)!important; }<!-- [et_pb_line_break_holder] -->  .v-bad  { color:var(--bad)!important;  -webkit-text-fill-color:var(--bad)!important; }<!-- [et_pb_line_break_holder] --><\/style><!-- [et_pb_line_break_holder] --><\/head><!-- [et_pb_line_break_holder] --><body><!-- [et_pb_line_break_holder] --><div class=\"la\"><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  <!-- Header --><!-- [et_pb_line_break_holder] -->  <header class=\"la-header\"><!-- [et_pb_line_break_holder] -->    <div class=\"la-badge\"><!-- [et_pb_line_break_holder] -->      <span class=\"la-badge-pip\"><\/span><!-- [et_pb_line_break_holder] -->      <span class=\"la-badge-text\">EBU R128 \u00b7 Free \u00b7 100% Local \u00b7 No Ads \u00b7 No Account Required<\/span><!-- [et_pb_line_break_holder] -->    <\/div><!-- [et_pb_line_break_holder] -->    <h1 class=\"la-title\"><span class=\"gr\">Loudness Analyzer<\/span><\/h1><!-- [et_pb_line_break_holder] -->    <pee class=\"la-desc\">Professional audio metering powered entirely by your browser \u2014 your files never leave your device.<\/br>Also includes loudness normalization &#8220;penalty&#8221; for the different major platforms with the dropdown below.<\/pee><!-- [et_pb_line_break_holder] -->  <\/header><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  <!-- Drop Zone --><!-- [et_pb_line_break_holder] -->  <div class=\"la-drop\" id=\"dropZone\"><!-- [et_pb_line_break_holder] -->    <input type=\"file\" id=\"fileInput\" accept=\".wav,.mp3,.mp4,.m4a,.ogg,.flac,.aac,.webm,.opus\"><!-- [et_pb_line_break_holder] -->    <div class=\"la-drop-icon\"><!-- [et_pb_line_break_holder] -->      <svg width=\"22\" height=\"22\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.3\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><!-- [et_pb_line_break_holder] -->        <path d=\"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4\"\/><!-- [et_pb_line_break_holder] -->        <polyline points=\"17 8 12 3 7 8\"\/><!-- [et_pb_line_break_holder] -->        <line x1=\"12\" y1=\"3\" x2=\"12\" y2=\"15\"\/><!-- [et_pb_line_break_holder] -->      <\/svg><!-- [et_pb_line_break_holder] -->    <\/div><!-- [et_pb_line_break_holder] -->    <div class=\"la-drop-title\">Drop your audio file here<\/div><!-- [et_pb_line_break_holder] -->    <div class=\"la-drop-sub\">or <b>click to browse<\/b> \u2014 all processing is local &#038; private<\/div><!-- [et_pb_line_break_holder] -->    <div class=\"la-formats\"><!-- [et_pb_line_break_holder] -->      <span class=\"la-fmt\">WAV<\/span><span class=\"la-fmt\">MP3<\/span><span class=\"la-fmt\">MP4<\/span><!-- [et_pb_line_break_holder] -->      <span class=\"la-fmt\">M4A<\/span><span class=\"la-fmt\">OGG<\/span><span class=\"la-fmt\">FLAC<\/span><span class=\"la-fmt\">AAC<\/span><!-- [et_pb_line_break_holder] -->    <\/div><!-- [et_pb_line_break_holder] -->  <\/div><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  <!-- Analyzing --><!-- [et_pb_line_break_holder] -->  <div class=\"la-analyzing\" id=\"analyzingPanel\"><!-- [et_pb_line_break_holder] -->    <div class=\"la-viz\" id=\"vizEl\"><\/div><!-- [et_pb_line_break_holder] -->    <div class=\"la-analyzing-title\" id=\"aTitle\">Analyzing loudness\u2026<\/div><!-- [et_pb_line_break_holder] -->    <div class=\"la-analyzing-file\" id=\"aFile\"><\/div><!-- [et_pb_line_break_holder] -->    <div class=\"la-prog\"><div class=\"la-prog-fill\" id=\"progFill\"><\/div><\/div><!-- [et_pb_line_break_holder] -->  <\/div><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  <!-- Results --><!-- [et_pb_line_break_holder] -->  <div class=\"la-results\" id=\"resultsPanel\"><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <div class=\"la-filebar\"><!-- [et_pb_line_break_holder] -->      <div><!-- [et_pb_line_break_holder] -->        <div class=\"la-file-name\" id=\"rName\"><\/div><!-- [et_pb_line_break_holder] -->        <div class=\"la-file-meta\" id=\"rMeta\"><\/div><!-- [et_pb_line_break_holder] -->      <\/div><!-- [et_pb_line_break_holder] -->      <div class=\"la-btns\"><!-- [et_pb_line_break_holder] -->        <button class=\"btn btn-grad\" id=\"exportBtn\"><!-- [et_pb_line_break_holder] -->          <svg width=\"12\" height=\"12\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4\"\/><polyline points=\"7 10 12 15 17 10\"\/><line x1=\"12\" y1=\"15\" x2=\"12\" y2=\"3\"\/><\/svg><!-- [et_pb_line_break_holder] -->          Export Report<!-- [et_pb_line_break_holder] -->        <\/button><!-- [et_pb_line_break_holder] -->        <button class=\"btn btn-ghost\" id=\"newBtn\">New File<\/button><!-- [et_pb_line_break_holder] -->      <\/div><!-- [et_pb_line_break_holder] -->    <\/div><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <!-- Metrics grid --><!-- [et_pb_line_break_holder] -->    <div class=\"la-grid\"><!-- [et_pb_line_break_holder] -->      <div class=\"la-card la-card-hero\"><!-- [et_pb_line_break_holder] -->        <div class=\"la-lbl\">Integrated Loudness<\/div><!-- [et_pb_line_break_holder] -->        <div class=\"la-val\" id=\"v-int\">\u2013<\/div><!-- [et_pb_line_break_holder] -->        <div class=\"la-unit\">LUFS<\/div><!-- [et_pb_line_break_holder] -->        <div class=\"la-bar\"><div class=\"la-bar-fill\" id=\"b-int\" style=\"background:var(--gradient)\"><\/div><\/div><!-- [et_pb_line_break_holder] -->      <\/div><!-- [et_pb_line_break_holder] -->      <div class=\"la-card\" style=\"--cline:rgba(205,59,167,.55)\"><!-- [et_pb_line_break_holder] -->        <div class=\"la-lbl\">Max Short-Term<\/div><!-- [et_pb_line_break_holder] -->        <div class=\"la-val\" id=\"v-st\">\u2013<\/div><!-- [et_pb_line_break_holder] -->        <div class=\"la-unit\">LUFS<\/div><!-- [et_pb_line_break_holder] -->        <div class=\"la-bar\"><div class=\"la-bar-fill\" id=\"b-st\" style=\"background:var(--accent-pink)\"><\/div><\/div><!-- [et_pb_line_break_holder] -->      <\/div><!-- [et_pb_line_break_holder] -->      <div class=\"la-card\" style=\"--cline:rgba(249,156,6,.55)\"><!-- [et_pb_line_break_holder] -->        <div class=\"la-lbl\">Max Momentary<\/div><!-- [et_pb_line_break_holder] -->        <div class=\"la-val\" id=\"v-mom\">\u2013<\/div><!-- [et_pb_line_break_holder] -->        <div class=\"la-unit\">LUFS<\/div><!-- [et_pb_line_break_holder] -->        <div class=\"la-bar\"><div class=\"la-bar-fill\" id=\"b-mom\" style=\"background:var(--accent-hover)\"><\/div><\/div><!-- [et_pb_line_break_holder] -->      <\/div><!-- [et_pb_line_break_holder] -->      <div class=\"la-card\" style=\"--cline:rgba(241,108,108,.55)\"><!-- [et_pb_line_break_holder] -->        <div class=\"la-lbl\">Max True Peak<\/div><!-- [et_pb_line_break_holder] -->        <div class=\"la-val\" id=\"v-tp\">\u2013<\/div><!-- [et_pb_line_break_holder] -->        <div class=\"la-unit\">dBTP<\/div><!-- [et_pb_line_break_holder] -->        <div class=\"la-bar\"><div class=\"la-bar-fill\" id=\"b-tp\" style=\"background:var(--bad)\"><\/div><\/div><!-- [et_pb_line_break_holder] -->      <\/div><!-- [et_pb_line_break_holder] -->      <div class=\"la-card\" style=\"--cline:rgba(255,255,255,.12)\"><!-- [et_pb_line_break_holder] -->        <div class=\"la-lbl\">Max Peak<\/div><!-- [et_pb_line_break_holder] -->        <div class=\"la-val\" id=\"v-pk\">\u2013<\/div><!-- [et_pb_line_break_holder] -->        <div class=\"la-unit\">dBFS<\/div><!-- [et_pb_line_break_holder] -->        <div class=\"la-bar\"><div class=\"la-bar-fill\" id=\"b-pk\" style=\"background:rgba(255,255,255,.3)\"><\/div><\/div><!-- [et_pb_line_break_holder] -->      <\/div><!-- [et_pb_line_break_holder] -->      <div class=\"la-card\" style=\"--cline:rgba(62,207,142,.55)\"><!-- [et_pb_line_break_holder] -->        <div class=\"la-lbl\">Max RMS<\/div><!-- [et_pb_line_break_holder] -->        <div class=\"la-val\" id=\"v-rms\">\u2013<\/div><!-- [et_pb_line_break_holder] -->        <div class=\"la-unit\">dBFS<\/div><!-- [et_pb_line_break_holder] -->        <div class=\"la-bar\"><div class=\"la-bar-fill\" id=\"b-rms\" style=\"background:var(--good)\"><\/div><\/div><!-- [et_pb_line_break_holder] -->      <\/div><!-- [et_pb_line_break_holder] -->    <\/div><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <!-- Platform expand --><!-- [et_pb_line_break_holder] -->    <button class=\"la-expand\" id=\"expandBtn\"><!-- [et_pb_line_break_holder] -->      <div class=\"la-expand-left\"><!-- [et_pb_line_break_holder] -->        <div class=\"la-expand-ico\"><!-- [et_pb_line_break_holder] -->          <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#f3be29\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M9 18V5l12-2v13\"\/><circle cx=\"6\" cy=\"18\" r=\"3\"\/><circle cx=\"18\" cy=\"16\" r=\"3\"\/><\/svg><!-- [et_pb_line_break_holder] -->        <\/div><!-- [et_pb_line_break_holder] -->        <div><!-- [et_pb_line_break_holder] -->          <div class=\"la-expand-title\">Streaming Platform Normalization<\/div><!-- [et_pb_line_break_holder] -->          <div class=\"la-expand-sub\">Spotify, YouTube, Tidal, Apple Music, Deezer, SoundCloud<\/div><!-- [et_pb_line_break_holder] -->        <\/div><!-- [et_pb_line_break_holder] -->      <\/div><!-- [et_pb_line_break_holder] -->      <svg class=\"la-chevron\" width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><polyline points=\"6 9 12 15 18 9\"\/><\/svg><!-- [et_pb_line_break_holder] -->    <\/button><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <div class=\"la-plats\" id=\"platPanel\"><!-- [et_pb_line_break_holder] -->      <div class=\"la-plats-grid\" id=\"platGrid\"><\/div><!-- [et_pb_line_break_holder] -->    <\/div><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <div class=\"la-note\"><!-- [et_pb_line_break_holder] -->      <strong>EBU R128<\/strong> compliant \u00b7 Integrated loudness: K-weighted 400ms gated blocks (ITU-R BS.1770-4), absolute \u221270 LUFS gate + relative \u221210 LU gate. Short-term: 3s sliding window. Momentary: 400ms. True Peak: Catmull-Rom 4\u00d7 oversampling. All computation runs locally \u2014 no audio data is ever transmitted.<!-- [et_pb_line_break_holder] -->    <\/div><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <div class=\"la-footer\"><!-- [et_pb_line_break_holder] -->      <button class=\"btn btn-ghost\" id=\"newBtn2\" style=\"font-size:11px;padding:7px 14px\"><!-- [et_pb_line_break_holder] -->        <svg width=\"11\" height=\"11\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><polyline points=\"1 4 1 10 7 10\"\/><path d=\"M3.51 15a9 9 0 1 0 .49-3.51\"\/><\/svg><!-- [et_pb_line_break_holder] -->        Analyze Another File<!-- [et_pb_line_break_holder] -->      <\/button><!-- [et_pb_line_break_holder] -->    <\/div><!-- [et_pb_line_break_holder] -->  <\/div><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><\/div><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><div class=\"la-toast\" id=\"toast\"><!-- [et_pb_line_break_holder] -->  <span class=\"la-toast-pip\"><\/span><!-- [et_pb_line_break_holder] -->  <span id=\"toastMsg\">Done!<\/span><!-- [et_pb_line_break_holder] --><\/div><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><script><!-- [et_pb_line_break_holder] -->\/\/ \u2500\u2500\u2500 Platform config \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500<!-- [et_pb_line_break_holder] -->const PLATS=[<!-- [et_pb_line_break_holder] -->  {id:'spotify',    name:'Spotify',    target:-14, color:'#1ed760', bg:'rgba(30,215,96,0.1)'},<!-- [et_pb_line_break_holder] -->  {id:'youtube',    name:'YouTube',    target:-14, color:'#ff4444', bg:'rgba(255,68,68,0.1)'},<!-- [et_pb_line_break_holder] -->  {id:'tidal',      name:'Tidal',      target:-14, color:'#00e8ff', bg:'rgba(0,232,255,0.1)'},<!-- [et_pb_line_break_holder] -->  {id:'applemusic', name:'Apple Music',target:-16, color:'#4f9eff', bg:'rgba(79,158,255,0.1)'},<!-- [et_pb_line_break_holder] -->  {id:'deezer',     name:'Deezer',     target:-15, color:'#a259ff', bg:'rgba(162,89,255,0.1)'},<!-- [et_pb_line_break_holder] -->  {id:'soundcloud', name:'SoundCloud', target:-14, color:'#ff6600', bg:'rgba(255,102,0,0.1)'},<!-- [et_pb_line_break_holder] -->];<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->\/\/ \u2500\u2500\u2500 EBU R128 Engine \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500<!-- [et_pb_line_break_holder] -->function kWeight(samples, fs){<!-- [et_pb_line_break_holder] -->  \/\/ Stage 1: High-shelf pre-filter<!-- [et_pb_line_break_holder] -->  const f0=1681.974450955533,G=3.999843853973347,Q=0.7071752369554196;<!-- [et_pb_line_break_holder] -->  const K1=Math.tan(Math.PI*f0\/fs);<!-- [et_pb_line_break_holder] -->  const Vh=Math.pow(10,G\/20),Vb=Math.pow(Vh,0.4996667741545416);<!-- [et_pb_line_break_holder] -->  const a0=1+K1\/Q+K1*K1;<!-- [et_pb_line_break_holder] -->  const b0=(Vh+Vb*K1\/Q+K1*K1)\/a0,b1=2*(K1*K1-Vh)\/a0,b2=(Vh-Vb*K1\/Q+K1*K1)\/a0;<!-- [et_pb_line_break_holder] -->  const a1=2*(K1*K1-1)\/a0,a2=(1-K1\/Q+K1*K1)\/a0;<!-- [et_pb_line_break_holder] -->  let s1=new Float32Array(samples.length),x1=0,x2=0,y1=0,y2=0;<!-- [et_pb_line_break_holder] -->  for(let i=0;i<samples.length;i++){<!-- [et_pb_line_break_holder] -->    const x=samples[i],y=b0*x+b1*x1+b2*x2-a1*y1-a2*y2;<!-- [et_pb_line_break_holder] -->    x2=x1;x1=x;y2=y1;y1=y;s1[i]=y;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  \/\/ Stage 2: High-pass 38Hz<!-- [et_pb_line_break_holder] -->  const f1=38.13547087602444,Q1=0.5003270373238773;<!-- [et_pb_line_break_holder] -->  const K2=Math.tan(Math.PI*f1\/fs);<!-- [et_pb_line_break_holder] -->  const a0b=1+K2\/Q1+K2*K2;<!-- [et_pb_line_break_holder] -->  const b0b=1\/a0b,b1b=-2\/a0b,b2b=1\/a0b;<!-- [et_pb_line_break_holder] -->  const a1b=2*(K2*K2-1)\/a0b,a2b=(1-K2\/Q1+K2*K2)\/a0b;<!-- [et_pb_line_break_holder] -->  let s2=new Float32Array(samples.length);<!-- [et_pb_line_break_holder] -->  x1=0;x2=0;y1=0;y2=0;<!-- [et_pb_line_break_holder] -->  for(let i=0;i<samples.length;i++){<!-- [et_pb_line_break_holder] -->    const x=s1[i],y=b0b*x+b1b*x1+b2b*x2-a1b*y1-a2b*y2;<!-- [et_pb_line_break_holder] -->    x2=x1;x1=x;y2=y1;y1=y;s2[i]=y;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  return s2;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->function analyze(buf, onProg){<!-- [et_pb_line_break_holder] -->  const sr=buf.sampleRate,nc=buf.numberOfChannels,n=buf.length;<!-- [et_pb_line_break_holder] -->  const cw=[1,1,1,1.41,1.41];<!-- [et_pb_line_break_holder] -->  const kch=[];<!-- [et_pb_line_break_holder] -->  for(let c=0;c<nc;c++) kch.push(kWeight(buf.getChannelData(c),sr));<!-- [et_pb_line_break_holder] -->  const ms=new Float32Array(n);<!-- [et_pb_line_break_holder] -->  for(let i=0;i<n;i++){let s=0;for(let c=0;c<nc;c++){const w=cw[Math.min(c,4)];s+=w*kch[c][i]*kch[c][i];}ms[i]=s;}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  function lufs(blkSize,stepSize){<!-- [et_pb_line_break_holder] -->    const vals=[];<!-- [et_pb_line_break_holder] -->    for(let s=0;s+blkSize<=n;s+=stepSize){<!-- [et_pb_line_break_holder] -->      let sum=0;for(let i=s;i<s+blkSize;i++)sum+=ms[i];<!-- [et_pb_line_break_holder] -->      const m=sum\/blkSize;if(m>0)vals.push(-0.691+10*Math.log10(m));<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] -->    return vals;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  const mB=Math.round(0.4*sr),mS=Math.round(0.1*sr);<!-- [et_pb_line_break_holder] -->  const momVals=lufs(mB,mS);    onProg?.(0.4);<!-- [et_pb_line_break_holder] -->  const stVals=lufs(Math.round(3*sr),mS); onProg?.(0.6);<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  \/\/ Integrated (gated)<!-- [et_pb_line_break_holder] -->  const blk=lufs(mB,mS);<!-- [et_pb_line_break_holder] -->  const abs=blk.filter(l=>l>=-70);<!-- [et_pb_line_break_holder] -->  let integrated=-Infinity;<!-- [et_pb_line_break_holder] -->  if(abs.length){<!-- [et_pb_line_break_holder] -->    const am=abs.reduce((a,b)=>a+Math.pow(10,b\/10),0)\/abs.length;<!-- [et_pb_line_break_holder] -->    const rt=10*Math.log10(am)-10;<!-- [et_pb_line_break_holder] -->    const rg=abs.filter(l=>l>=rt);<!-- [et_pb_line_break_holder] -->    if(rg.length){const rm=rg.reduce((a,b)=>a+Math.pow(10,b\/10),0)\/rg.length;integrated=10*Math.log10(rm);}<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  onProg?.(0.8);<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  \/\/ True Peak<!-- [et_pb_line_break_holder] -->  let tp=-Infinity;<!-- [et_pb_line_break_holder] -->  for(let c=0;c<nc;c++){<!-- [et_pb_line_break_holder] -->    const ch=buf.getChannelData(c);<!-- [et_pb_line_break_holder] -->    for(let i=1;i<ch.length-2;i++){<!-- [et_pb_line_break_holder] -->      for(let t=0;t<4;t++){<!-- [et_pb_line_break_holder] -->        const f=t\/4,p0=ch[Math.max(0,i-1)],p1=ch[i],p2=ch[Math.min(ch.length-1,i+1)],p3=ch[Math.min(ch.length-1,i+2)];<!-- [et_pb_line_break_holder] -->        const v=0.5*((2*p1)+(-p0+p2)*f+(2*p0-5*p1+4*p2-p3)*f*f+(-p0+3*p1-3*p2+p3)*f*f*f);<!-- [et_pb_line_break_holder] -->        const db=Math.abs(v)>0?20*Math.log10(Math.abs(v)):-Infinity;<!-- [et_pb_line_break_holder] -->        if(db>tp)tp=db;<!-- [et_pb_line_break_holder] -->      }<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  \/\/ Max peak<!-- [et_pb_line_break_holder] -->  let pk=0;<!-- [et_pb_line_break_holder] -->  for(let c=0;c<nc;c++){const ch=buf.getChannelData(c);for(let i=0;i<ch.length;i++){const a=Math.abs(ch[i]);if(a>pk)pk=a;}}<!-- [et_pb_line_break_holder] -->  const pkDb=pk>0?20*Math.log10(pk):-Infinity;<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  \/\/ Max RMS 50ms<!-- [et_pb_line_break_holder] -->  const rB=Math.round(0.05*sr);let maxRms=-Infinity;<!-- [et_pb_line_break_holder] -->  const ch0=buf.getChannelData(0);<!-- [et_pb_line_break_holder] -->  for(let s=0;s+rB<=n;s+=rB){<!-- [et_pb_line_break_holder] -->    let sum=0;for(let i=s;i<s+rB;i++)sum+=ch0[i]*ch0[i];<!-- [et_pb_line_break_holder] -->    const db=Math.sqrt(sum\/rB)>0?20*Math.log10(Math.sqrt(sum\/rB)):-Infinity;<!-- [et_pb_line_break_holder] -->    if(db>maxRms)maxRms=db;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  onProg?.(1);<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  return{<!-- [et_pb_line_break_holder] -->    integrated:isFinite(integrated)?integrated:null,<!-- [et_pb_line_break_holder] -->    maxShortTerm:stVals.length?Math.max(...stVals):null,<!-- [et_pb_line_break_holder] -->    maxMomentary:momVals.length?Math.max(...momVals):null,<!-- [et_pb_line_break_holder] -->    truePeak:isFinite(tp)?tp:null,<!-- [et_pb_line_break_holder] -->    maxPeak:isFinite(pkDb)?pkDb:null,<!-- [et_pb_line_break_holder] -->    maxRms:isFinite(maxRms)?maxRms:null,<!-- [et_pb_line_break_holder] -->  };<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->\/\/ \u2500\u2500\u2500 Native File Metadata Parser \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500<!-- [et_pb_line_break_holder] -->function parseNativeMeta(ab, filename){<!-- [et_pb_line_break_holder] -->  const ext=(filename.split('.').pop()||'').toLowerCase();<!-- [et_pb_line_break_holder] -->  const v=new DataView(ab);<!-- [et_pb_line_break_holder] -->  const u8=new Uint8Array(ab);<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  function ascii(off,len){let s='';for(let i=0;i<len;i++)s+=String.fromCharCode(u8[off+i]);return s;}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  \/\/ \u2500\u2500 WAV \/ RF64 \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500<!-- [et_pb_line_break_holder] -->  if(ext==='wav'||ext==='wave'||(ab.byteLength>12&&(ascii(0,4)==='RIFF'||ascii(0,4)==='RF64'))){<!-- [et_pb_line_break_holder] -->    try{<!-- [et_pb_line_break_holder] -->      if(ascii(0,4)==='RIFF'||ascii(0,4)==='RF64'){<!-- [et_pb_line_break_holder] -->        \/\/ Walk chunks to find 'fmt '<!-- [et_pb_line_break_holder] -->        let off=12;<!-- [et_pb_line_break_holder] -->        while(off+8<=ab.byteLength){<!-- [et_pb_line_break_holder] -->          const id=ascii(off,4);<!-- [et_pb_line_break_holder] -->          const sz=v.getUint32(off+4,true);<!-- [et_pb_line_break_holder] -->          if(id==='fmt '){<!-- [et_pb_line_break_holder] -->            const sr=v.getUint32(off+12,true);<!-- [et_pb_line_break_holder] -->            const bd=v.getUint16(off+22,true);<!-- [et_pb_line_break_holder] -->            return{sampleRate:sr,bitDepth:bd||null};<!-- [et_pb_line_break_holder] -->          }<!-- [et_pb_line_break_holder] -->          off+=8+sz+(sz%2); \/\/ chunks are word-aligned<!-- [et_pb_line_break_holder] -->        }<!-- [et_pb_line_break_holder] -->      }<!-- [et_pb_line_break_holder] -->    }catch(e){}<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  \/\/ \u2500\u2500 AIFF \/ AIFF-C \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500<!-- [et_pb_line_break_holder] -->  if(ext==='aif'||ext==='aiff'||ext==='aifc'||(ab.byteLength>12&&ascii(0,4)==='FORM'&&(ascii(8,4)==='AIFF'||ascii(8,4)==='AIFC'))){<!-- [et_pb_line_break_holder] -->    try{<!-- [et_pb_line_break_holder] -->      let off=12;<!-- [et_pb_line_break_holder] -->      while(off+8<=ab.byteLength){<!-- [et_pb_line_break_holder] -->        const id=ascii(off,4);<!-- [et_pb_line_break_holder] -->        const sz=v.getInt32(off+4,false); \/\/ big-endian<!-- [et_pb_line_break_holder] -->        if(id==='COMM'){<!-- [et_pb_line_break_holder] -->          const bd=v.getInt16(off+10,false);<!-- [et_pb_line_break_holder] -->          \/\/ Sample rate is an 80-bit extended float at off+12<!-- [et_pb_line_break_holder] -->          const exp=v.getUint16(off+12,false)-16383;<!-- [et_pb_line_break_holder] -->          const mant=v.getUint32(off+14,false);<!-- [et_pb_line_break_holder] -->          const sr=Math.round(mant*Math.pow(2,exp-31));<!-- [et_pb_line_break_holder] -->          return{sampleRate:sr,bitDepth:bd||null};<!-- [et_pb_line_break_holder] -->        }<!-- [et_pb_line_break_holder] -->        off+=8+sz+(sz%2);<!-- [et_pb_line_break_holder] -->      }<!-- [et_pb_line_break_holder] -->    }catch(e){}<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  \/\/ \u2500\u2500 MP3 \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500<!-- [et_pb_line_break_holder] -->  if(ext==='mp3'||(ab.byteLength>3&&u8[0]===0xFF&&(u8[1]&0xE0)===0xE0)){<!-- [et_pb_line_break_holder] -->    try{<!-- [et_pb_line_break_holder] -->      const MP3_SR=[44100,48000,32000,0];<!-- [et_pb_line_break_holder] -->      \/\/ Skip ID3 tag if present<!-- [et_pb_line_break_holder] -->      let start=0;<!-- [et_pb_line_break_holder] -->      if(ascii(0,3)==='ID3'){<!-- [et_pb_line_break_holder] -->        const id3sz=((u8[6]&0x7F)<<21)|((u8[7]&#038;0x7F)<<14)|((u8[8]&#038;0x7F)<<7)|(u8[9]&#038;0x7F);<!-- [et_pb_line_break_holder] -->        start=10+id3sz;<!-- [et_pb_line_break_holder] -->      }<!-- [et_pb_line_break_holder] -->      for(let i=start;i<Math.min(ab.byteLength-3,start+131072);i++){<!-- [et_pb_line_break_holder] -->        if(u8[i]===0xFF&&(u8[i+1]&0xE0)===0xE0){<!-- [et_pb_line_break_holder] -->          const h=(u8[i]<<24)|(u8[i+1]<<16)|(u8[i+2]<<8)|u8[i+3];<!-- [et_pb_line_break_holder] -->          const sri=(h>>10)&0x3;<!-- [et_pb_line_break_holder] -->          const sr=MP3_SR[sri];<!-- [et_pb_line_break_holder] -->          if(sr>0)return{sampleRate:sr,bitDepth:null}; \/\/ MP3 has no bit depth concept<!-- [et_pb_line_break_holder] -->        }<!-- [et_pb_line_break_holder] -->      }<!-- [et_pb_line_break_holder] -->    }catch(e){}<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  \/\/ \u2500\u2500 AAC \/ M4A \/ MP4 (ftyp box \u2192 moov\u2192trak\u2192mdia\u2192mdhd) \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500<!-- [et_pb_line_break_holder] -->  if(ext==='m4a'||ext==='aac'||ext==='mp4'||ext==='m4b'){<!-- [et_pb_line_break_holder] -->    try{<!-- [et_pb_line_break_holder] -->      \/\/ Find 'mdhd' box which contains the native sample rate<!-- [et_pb_line_break_holder] -->      const buf8=u8;<!-- [et_pb_line_break_holder] -->      for(let i=0;i<Math.min(ab.byteLength-8,524288);i++){<!-- [et_pb_line_break_holder] -->        if(buf8[i]===0x6D&&buf8[i+1]===0x64&&buf8[i+2]===0x68&&buf8[i+3]===0x64){ \/\/ 'mdhd'<!-- [et_pb_line_break_holder] -->          \/\/ mdhd: version(1) flags(3) creation(4) modification(4) timescale(4)<!-- [et_pb_line_break_holder] -->          const version=buf8[i+4];<!-- [et_pb_line_break_holder] -->          const off2=version===1?i+4+1+3+8+8:i+4+1+3+4+4;<!-- [et_pb_line_break_holder] -->          const sr=v.getUint32(off2,false);<!-- [et_pb_line_break_holder] -->          if(sr>0&&sr<=192000)return{sampleRate:sr,bitDepth:null};<!-- [et_pb_line_break_holder] -->        }<!-- [et_pb_line_break_holder] -->      }<!-- [et_pb_line_break_holder] -->    }catch(e){}<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  \/\/ \u2500\u2500 OGG \/ OPUS \/ FLAC-in-OGG \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500<!-- [et_pb_line_break_holder] -->  if(ext==='ogg'||ext==='opus'||ext==='oga'||(ab.byteLength>4&&ascii(0,4)==='OggS')){<!-- [et_pb_line_break_holder] -->    try{<!-- [et_pb_line_break_holder] -->      \/\/ Find the Vorbis or Opus identification header inside OGG pages<!-- [et_pb_line_break_holder] -->      for(let i=0;i<Math.min(ab.byteLength-80,32768);i++){<!-- [et_pb_line_break_holder] -->        \/\/ Vorbis: \\x01vorbis<!-- [et_pb_line_break_holder] -->        if(u8[i]===0x01&&ascii(i+1,6)==='vorbis'){<!-- [et_pb_line_break_holder] -->          const sr=v.getUint32(i+11,true);<!-- [et_pb_line_break_holder] -->          const bd=u8[i+19]||null;<!-- [et_pb_line_break_holder] -->          return{sampleRate:sr,bitDepth:bd||null};<!-- [et_pb_line_break_holder] -->        }<!-- [et_pb_line_break_holder] -->        \/\/ Opus: OpusHead<!-- [et_pb_line_break_holder] -->        if(ascii(i,8)==='OpusHead'){<!-- [et_pb_line_break_holder] -->          const sr=v.getUint32(i+12,true);<!-- [et_pb_line_break_holder] -->          return{sampleRate:sr,bitDepth:null};<!-- [et_pb_line_break_holder] -->        }<!-- [et_pb_line_break_holder] -->      }<!-- [et_pb_line_break_holder] -->    }catch(e){}<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  \/\/ \u2500\u2500 FLAC (native) \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500<!-- [et_pb_line_break_holder] -->  if(ext==='flac'||(ab.byteLength>4&&ascii(0,4)==='fLaC')){<!-- [et_pb_line_break_holder] -->    try{<!-- [et_pb_line_break_holder] -->      if(ascii(0,4)==='fLaC'){<!-- [et_pb_line_break_holder] -->        \/\/ STREAMINFO block starts at byte 4<!-- [et_pb_line_break_holder] -->        \/\/ Bytes 14-17 contain sample rate (20 bits) and bit depth (5 bits)<!-- [et_pb_line_break_holder] -->        const b14=v.getUint32(4+4+4+2,false); \/\/ skip to the right offset<!-- [et_pb_line_break_holder] -->        \/\/ STREAMINFO layout: 4-byte header, then:<!-- [et_pb_line_break_holder] -->        \/\/ min_block(16) max_block(16) min_frame(24) max_frame(24) sample_rate(20) channels(3) bit_depth(5) total_samples(36) md5(128)<!-- [et_pb_line_break_holder] -->        const raw=new DataView(ab,4+4); \/\/ skip fLaC marker + block header<!-- [et_pb_line_break_holder] -->        \/\/ Read bytes at offset 8,9,10 for sample_rate+channels+bit_depth<!-- [et_pb_line_break_holder] -->        const b8=u8[4+4+8];<!-- [et_pb_line_break_holder] -->        const b9=u8[4+4+9];<!-- [et_pb_line_break_holder] -->        const b10=u8[4+4+10];<!-- [et_pb_line_break_holder] -->        const sr=((b8<<12)|(b9<<4)|(b10>>4))&0xFFFFF;<!-- [et_pb_line_break_holder] -->        const bd=((b10&0x0F)<<1)|(u8[4+4+11]>>7);<!-- [et_pb_line_break_holder] -->        const bitDepth=bd+1;<!-- [et_pb_line_break_holder] -->        return{sampleRate:sr,bitDepth:bitDepth};<!-- [et_pb_line_break_holder] -->      }<!-- [et_pb_line_break_holder] -->    }catch(e){}<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  \/\/ Fallback: nothing parsed<!-- [et_pb_line_break_holder] -->  return{sampleRate:null,bitDepth:null};<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->\/\/ \u2500\u2500\u2500 UI \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500<!-- [et_pb_line_break_holder] -->let results=null,fname='',fmeta='',nativeFileMeta={sampleRate:null,bitDepth:null};<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->\/\/ Build viz bars<!-- [et_pb_line_break_holder] -->const vizEl=document.getElementById('vizEl');<!-- [et_pb_line_break_holder] -->const barCols=['#f3be29','#f99c06','#cd3ba7','#f3be29','#3ecf8e','#f99c06'];<!-- [et_pb_line_break_holder] -->for(let i=0;i<32;i++){<!-- [et_pb_line_break_holder] -->  const b=document.createElement('div');<!-- [et_pb_line_break_holder] -->  b.className='la-vbar';<!-- [et_pb_line_break_holder] -->  b.style.background=barCols[i%barCols.length];<!-- [et_pb_line_break_holder] -->  b.style.animationDelay=(i*0.04)+'s';<!-- [et_pb_line_break_holder] -->  vizEl.appendChild(b);<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->const dropZone=document.getElementById('dropZone');<!-- [et_pb_line_break_holder] -->const fileInput=document.getElementById('fileInput');<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->dropZone.addEventListener('dragover',e=>{e.preventDefault();dropZone.classList.add('drag');});<!-- [et_pb_line_break_holder] -->dropZone.addEventListener('dragleave',()=>dropZone.classList.remove('drag'));<!-- [et_pb_line_break_holder] -->dropZone.addEventListener('drop',e=>{e.preventDefault();dropZone.classList.remove('drag');const f=e.dataTransfer.files[0];if(f)run(f);});<!-- [et_pb_line_break_holder] -->dropZone.addEventListener('click',()=>fileInput.click());<!-- [et_pb_line_break_holder] -->fileInput.addEventListener('change',e=>{if(e.target.files[0])run(e.target.files[0]);});<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->function show(id){document.getElementById(id).style.display='block';}<!-- [et_pb_line_break_holder] -->function hide(id){document.getElementById(id).style.display='none';}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->async function run(file){<!-- [et_pb_line_break_holder] -->  fname=file.name;<!-- [et_pb_line_break_holder] -->  hide('dropZone');show('analyzingPanel');hide('resultsPanel');<!-- [et_pb_line_break_holder] -->  document.getElementById('aFile').textContent=file.name;<!-- [et_pb_line_break_holder] -->  document.getElementById('aTitle').textContent='Reading audio data\u2026';<!-- [et_pb_line_break_holder] -->  document.getElementById('progFill').style.width='5%';<!-- [et_pb_line_break_holder] -->  try{<!-- [et_pb_line_break_holder] -->    const ab=await file.arrayBuffer();<!-- [et_pb_line_break_holder] -->    \/\/ Parse native metadata BEFORE decodeAudioData \u2014 that call detaches\/transfers the ArrayBuffer<!-- [et_pb_line_break_holder] -->    const nativeMeta=parseNativeMeta(ab,file.name);<!-- [et_pb_line_break_holder] -->    nativeFileMeta=nativeMeta;<!-- [et_pb_line_break_holder] -->    document.getElementById('progFill').style.width='20%';<!-- [et_pb_line_break_holder] -->    document.getElementById('aTitle').textContent='Decoding audio\u2026';<!-- [et_pb_line_break_holder] -->    const ctx=new(window.AudioContext||window.webkitAudioContext)();<!-- [et_pb_line_break_holder] -->    let audioBuf;<!-- [et_pb_line_break_holder] -->    try{audioBuf=await ctx.decodeAudioData(ab);}<!-- [et_pb_line_break_holder] -->    catch(e){throw new Error('Cannot decode audio. Try WAV, MP3, or OGG.');}<!-- [et_pb_line_break_holder] -->    document.getElementById('progFill').style.width='30%';<!-- [et_pb_line_break_holder] -->    document.getElementById('aTitle').textContent='Computing K-weighted loudness\u2026';<!-- [et_pb_line_break_holder] -->    await new Promise(r=>setTimeout(r,45));<!-- [et_pb_line_break_holder] -->    const res=await new Promise((res,rej)=>{<!-- [et_pb_line_break_holder] -->      setTimeout(()=>{<!-- [et_pb_line_break_holder] -->        try{res(analyze(audioBuf,p=>{document.getElementById('progFill').style.width=(30+p*60)+'%';}));}<!-- [et_pb_line_break_holder] -->        catch(e){rej(e);}<!-- [et_pb_line_break_holder] -->      },55);<!-- [et_pb_line_break_holder] -->    });<!-- [et_pb_line_break_holder] -->    document.getElementById('progFill').style.width='100%';<!-- [et_pb_line_break_holder] -->    const srStr=nativeMeta.sampleRate?nativeMeta.sampleRate.toLocaleString()+' Hz':'unknown Hz';<!-- [et_pb_line_break_holder] -->    const bdStr=nativeMeta.bitDepth?nativeMeta.bitDepth+'-bit':'';<!-- [et_pb_line_break_holder] -->    fmeta=`${sz(file.size)} \u00b7 ${audioBuf.numberOfChannels}ch \u00b7 ${srStr}${bdStr?' \u00b7 '+bdStr:''} \u00b7 ${dur(audioBuf.duration)}`;<!-- [et_pb_line_break_holder] -->    results=res;<!-- [et_pb_line_break_holder] -->    await new Promise(r=>setTimeout(r,280));<!-- [et_pb_line_break_holder] -->    render(res);<!-- [et_pb_line_break_holder] -->    ctx.close();<!-- [et_pb_line_break_holder] -->  }catch(err){<!-- [et_pb_line_break_holder] -->    hide('analyzingPanel');show('dropZone');<!-- [et_pb_line_break_holder] -->    toast('Error: '+(err.message||'Could not process file'),false);<!-- [et_pb_line_break_holder] -->    fileInput.value='';<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->function render(r){<!-- [et_pb_line_break_holder] -->  hide('analyzingPanel');show('resultsPanel');<!-- [et_pb_line_break_holder] -->  document.getElementById('rName').textContent=fname;<!-- [et_pb_line_break_holder] -->  document.getElementById('rMeta').textContent=fmeta;<!-- [et_pb_line_break_holder] -->  const f=v=>v!==null?v.toFixed(1):'\u2013';<!-- [et_pb_line_break_holder] -->  document.getElementById('v-int').textContent=f(r.integrated);<!-- [et_pb_line_break_holder] -->  document.getElementById('v-st').textContent=f(r.maxShortTerm);<!-- [et_pb_line_break_holder] -->  document.getElementById('v-mom').textContent=f(r.maxMomentary);<!-- [et_pb_line_break_holder] -->  document.getElementById('v-tp').textContent=f(r.truePeak);<!-- [et_pb_line_break_holder] -->  document.getElementById('v-pk').textContent=f(r.maxPeak);<!-- [et_pb_line_break_holder] -->  document.getElementById('v-rms').textContent=f(r.maxRms);<!-- [et_pb_line_break_holder] -->  \/\/ True peak colour<!-- [et_pb_line_break_holder] -->  const tpEl=document.getElementById('v-tp');<!-- [et_pb_line_break_holder] -->  if(r.truePeak!==null){<!-- [et_pb_line_break_holder] -->    tpEl.classList.add(r.truePeak>-1?'v-bad':r.truePeak>-3?'v-warn':'v-good');<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  setTimeout(()=>{<!-- [et_pb_line_break_holder] -->    setBar('b-int',r.integrated,-60,0);<!-- [et_pb_line_break_holder] -->    setBar('b-st',r.maxShortTerm,-60,0);<!-- [et_pb_line_break_holder] -->    setBar('b-mom',r.maxMomentary,-60,0);<!-- [et_pb_line_break_holder] -->    setBar('b-tp',r.truePeak,-20,3);<!-- [et_pb_line_break_holder] -->    setBar('b-pk',r.maxPeak,-30,0);<!-- [et_pb_line_break_holder] -->    setBar('b-rms',r.maxRms,-40,0);<!-- [et_pb_line_break_holder] -->  },100);<!-- [et_pb_line_break_holder] -->  buildPlats(r.integrated);<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->function setBar(id,v,mn,mx){<!-- [et_pb_line_break_holder] -->  if(v===null)return;<!-- [et_pb_line_break_holder] -->  document.getElementById(id).style.width=Math.max(0,Math.min(100,(v-mn)\/(mx-mn)*100))+'%';<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->function buildPlats(integrated){<!-- [et_pb_line_break_holder] -->  const g=document.getElementById('platGrid');g.innerHTML='';<!-- [et_pb_line_break_holder] -->  PLATS.forEach(p=>{<!-- [et_pb_line_break_holder] -->    const d=integrated!==null?integrated-p.target:null;<!-- [et_pb_line_break_holder] -->    let dt='\u2013',dc='d-ok',desc='',bp=0,bc=p.color;<!-- [et_pb_line_break_holder] -->    if(d!==null){<!-- [et_pb_line_break_holder] -->      if(d>0.5){dt='+'+d.toFixed(1)+' LU';dc='d-over';desc='Will be turned down by '+d.toFixed(1)+' LU';bp=Math.min(100,(d\/18)*100);bc='#f3be29';}<!-- [et_pb_line_break_holder] -->      else if(d<-0.5){dt=d.toFixed(1)+' LU';dc='d-under';desc='Quieter than target \u2014 no boost applied';bp=Math.min(100,(Math.abs(d)\/22)*100);bc='#3ecf8e';}<!-- [et_pb_line_break_holder] -->      else{dt='\u2248 0 LU';dc='d-ok';desc='Matches platform target';bp=1;}<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] -->    const c=document.createElement('div');<!-- [et_pb_line_break_holder] -->    c.className='la-plat';c.style.borderColor=p.color+'28';<!-- [et_pb_line_break_holder] -->    c.innerHTML=`<!-- [et_pb_line_break_holder] -->      <div class=\"la-plat-top\"><!-- [et_pb_line_break_holder] -->        <div class=\"la-plat-name\"><!-- [et_pb_line_break_holder] -->          <div class=\"la-plat-ico\" style=\"background:${p.bg};color:${p.color}\">${p.name.slice(0,2).toUpperCase()}<\/div><!-- [et_pb_line_break_holder] -->          ${p.name}<!-- [et_pb_line_break_holder] -->        <\/div><!-- [et_pb_line_break_holder] -->        <div class=\"la-plat-tgt\" style=\"color:${p.color}66\">Target ${p.target} LUFS<\/div><!-- [et_pb_line_break_holder] -->      <\/div><!-- [et_pb_line_break_holder] -->      <div class=\"la-plat-diff ${dc}\">${dt}<\/div><!-- [et_pb_line_break_holder] -->      <div class=\"la-plat-desc\">${desc}<\/div><!-- [et_pb_line_break_holder] -->      <div class=\"la-plat-bar\"><div class=\"la-plat-bar-fill\" id=\"pb-${p.id}\" style=\"background:${bc};width:0%\"><\/div><\/div>`;<!-- [et_pb_line_break_holder] -->    g.appendChild(c);<!-- [et_pb_line_break_holder] -->    setTimeout(()=>{const el=document.getElementById('pb-'+p.id);if(el)el.style.width=bp+'%';},200);<!-- [et_pb_line_break_holder] -->  });<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->\/\/ Expand<!-- [et_pb_line_break_holder] -->const expandBtn=document.getElementById('expandBtn');<!-- [et_pb_line_break_holder] -->const platPanel=document.getElementById('platPanel');<!-- [et_pb_line_break_holder] -->expandBtn.addEventListener('click',()=>{<!-- [et_pb_line_break_holder] -->  const open=platPanel.style.display==='block';<!-- [et_pb_line_break_holder] -->  platPanel.style.display=open?'none':'block';<!-- [et_pb_line_break_holder] -->  expandBtn.classList.toggle('open',!open);<!-- [et_pb_line_break_holder] -->});<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->\/\/ Export<!-- [et_pb_line_break_holder] -->document.getElementById('exportBtn').addEventListener('click',()=>{<!-- [et_pb_line_break_holder] -->  if(!results)return;<!-- [et_pb_line_break_holder] -->  const r=results,f=v=>v!==null?v.toFixed(2):'N\/A',now=new Date().toLocaleString();<!-- [et_pb_line_break_holder] -->  let t=`Smart DSP - LOUDNESS ANALYSIS REPORT\\n${'\u2550'.repeat(54)}\\n`;<!-- [et_pb_line_break_holder] -->  t+=`Generated : ${now}\\nFile      : ${fname}\\nInfo      : ${fmeta}\\n\\n`;<!-- [et_pb_line_break_holder] -->  t+=`LOUDNESS MEASUREMENTS  (EBU R128 \/ ITU-R BS.1770-4)\\n${'\u2500'.repeat(54)}\\n`;<!-- [et_pb_line_break_holder] -->  t+=`Integrated Loudness       ${f(r.integrated).padStart(8)} LUFS\\n`;<!-- [et_pb_line_break_holder] -->  t+=`Max Short-Term Loudness   ${f(r.maxShortTerm).padStart(8)} LUFS\\n`;<!-- [et_pb_line_break_holder] -->  t+=`Max Momentary Loudness    ${f(r.maxMomentary).padStart(8)} LUFS\\n`;<!-- [et_pb_line_break_holder] -->  t+=`Max True Peak             ${f(r.truePeak).padStart(8)} dBTP\\n`;<!-- [et_pb_line_break_holder] -->  t+=`Max Peak                  ${f(r.maxPeak).padStart(8)} dBFS\\n`;<!-- [et_pb_line_break_holder] -->  t+=`Max RMS                   ${f(r.maxRms).padStart(8)} dBFS\\n\\n`;<!-- [et_pb_line_break_holder] -->  t+=`STREAMING PLATFORM NORMALIZATION\\n${'\u2500'.repeat(54)}\\n`;<!-- [et_pb_line_break_holder] -->  if(r.integrated!==null){<!-- [et_pb_line_break_holder] -->    PLATS.forEach(p=>{<!-- [et_pb_line_break_holder] -->      const d=r.integrated-p.target,sign=d>0?'+':'';<!-- [et_pb_line_break_holder] -->      const action=d>0.5?'turned DOWN':d<-0.5?'no boost \u2014 stays as-is':'matches target';<!-- [et_pb_line_break_holder] -->      t+=`${p.name.padEnd(13)} ${String(p.target).padStart(4)} LUFS  |  ${(sign+d.toFixed(2)+' LU').padStart(10)}  (${action})\\n`;<!-- [et_pb_line_break_holder] -->    });<!-- [et_pb_line_break_holder] -->  }else t+=`Integrated loudness not available.\\n`;<!-- [et_pb_line_break_holder] -->  t+=`\\n${'\u2550'.repeat(54)}\\nReport generated by Smart DSP Audio Loudness Analyzer - https:\/\/smartdsp.pro\/tools\\n`;<!-- [et_pb_line_break_holder] -->  const a=Object.assign(document.createElement('a'),{href:URL.createObjectURL(new Blob([t],{type:'text\/plain'})),download:fname.replace(\/\\.[^.]+$\/,'')+'_loudness_report.txt'});<!-- [et_pb_line_break_holder] -->  a.click();URL.revokeObjectURL(a.href);<!-- [et_pb_line_break_holder] -->  toast('Report exported successfully');<!-- [et_pb_line_break_holder] -->});<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->\/\/ Reset<!-- [et_pb_line_break_holder] -->function reset(){<!-- [et_pb_line_break_holder] -->  hide('resultsPanel');hide('analyzingPanel');show('dropZone');<!-- [et_pb_line_break_holder] -->  platPanel.style.display='none';expandBtn.classList.remove('open');<!-- [et_pb_line_break_holder] -->  fileInput.value='';results=null;<!-- [et_pb_line_break_holder] -->  document.getElementById('v-tp').className='la-val';<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->document.getElementById('newBtn').addEventListener('click',reset);<!-- [et_pb_line_break_holder] -->document.getElementById('newBtn2').addEventListener('click',reset);<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->function toast(msg,ok=true){<!-- [et_pb_line_break_holder] -->  const el=document.getElementById('toast');<!-- [et_pb_line_break_holder] -->  document.getElementById('toastMsg').textContent=msg;<!-- [et_pb_line_break_holder] -->  el.querySelector('.la-toast-pip').style.background=ok?'var(--good)':'var(--bad)';<!-- [et_pb_line_break_holder] -->  el.classList.add('show');setTimeout(()=>el.classList.remove('show'),3200);<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->function sz(b){return b<1048576?(b\/1024).toFixed(0)+' KB':(b\/1048576).toFixed(1)+' MB';}<!-- [et_pb_line_break_holder] -->function dur(s){const m=Math.floor(s\/60);return m+':'+String(Math.floor(s%60)).padStart(2,'0');}<!-- [et_pb_line_break_holder] --><\/script><!-- [et_pb_line_break_holder] --><\/body><!-- [et_pb_line_break_holder] --><\/html>[\/et_pb_code][\/et_pb_column][\/et_pb_row][\/et_pb_section][et_pb_section fb_built=&#8221;1&#8243; admin_label=&#8221;Hero Section&#8221; _builder_version=&#8221;4.27.5&#8243; background_color=&#8221;#000000&#8243; use_background_color_gradient=&#8221;on&#8221; background_color_gradient_stops=&#8221;#000000 0%|rgba(0,0,0,0) 20%|rgba(0,0,0,0) 80%|#000000 100%&#8221; background_color_gradient_overlays_image=&#8221;on&#8221; background_image=&#8221;https:\/\/smartdsp.pro\/wp-content\/uploads\/2022\/10\/streamer-79.png&#8221; custom_padding=&#8221;9px|||1px||&#8221; locked=&#8221;off&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_row _builder_version=&#8221;4.16&#8243; background_size=&#8221;initial&#8221; background_position=&#8221;top_left&#8221; background_repeat=&#8221;repeat&#8221; module_alignment=&#8221;center&#8221; custom_width_px=&#8221;700px&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;4.16&#8243; custom_padding=&#8221;|||&#8221; global_colors_info=&#8221;{}&#8221; custom_padding__hover=&#8221;|||&#8221;][et_pb_text _builder_version=&#8221;4.16&#8243; text_font=&#8221;||||||||&#8221; text_font_size=&#8221;18px&#8221; text_line_height=&#8221;2em&#8221; header_font=&#8221;Titillium Web||||||||&#8221; header_font_size=&#8221;66px&#8221; header_line_height=&#8221;1.5em&#8221; header_2_font=&#8221;Titillium Web||||||||&#8221; header_2_font_size=&#8221;66px&#8221; header_2_line_height=&#8221;1.5em&#8221; header_3_font=&#8221;Titillium Web||||||||&#8221; header_3_font_size=&#8221;66px&#8221; header_3_line_height=&#8221;1.5em&#8221; header_4_font=&#8221;Titillium Web||||||||&#8221; header_4_font_size=&#8221;66px&#8221; header_4_line_height=&#8221;1.5em&#8221; header_5_font=&#8221;Titillium Web||||||||&#8221; header_5_font_size=&#8221;66px&#8221; header_5_line_height=&#8221;1.5em&#8221; header_6_font=&#8221;Titillium Web||||||||&#8221; header_6_font_size=&#8221;66px&#8221; header_6_line_height=&#8221;1.5em&#8221; text_orientation=&#8221;center&#8221; background_layout=&#8221;dark&#8221; max_width=&#8221;700px&#8221; module_alignment=&#8221;center&#8221; header_font_size_tablet=&#8221;40px&#8221; header_font_size_phone=&#8221;&#8221; header_font_size_last_edited=&#8221;on|phone&#8221; global_colors_info=&#8221;{}&#8221;]<h1>Frequently Asked<\/h1>[\/et_pb_text][et_pb_code _builder_version=&#8221;4.27.5&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][\/et_pb_code][\/et_pb_column][\/et_pb_row][et_pb_row column_structure=&#8221;1_2,1_2&#8243; custom_padding_last_edited=&#8221;on|desktop&#8221; _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; background_color=&#8221;rgba(79,79,79,0.16)&#8221; overflow-x=&#8221;visible&#8221; overflow-y=&#8221;visible&#8221; custom_padding=&#8221;80px|80px|80px|80px|true|true&#8221; custom_padding_tablet=&#8221;30px|30px|30px|30px|true|true&#8221; custom_padding_phone=&#8221;20px|20px|20px|20px|true|true&#8221; border_radii=&#8221;on|20px|20px|20px|20px&#8221; box_shadow_style=&#8221;preset1&#8243; box_shadow_horizontal=&#8221;-1px&#8221; box_shadow_vertical=&#8221;-1px&#8221; box_shadow_blur=&#8221;0px&#8221; box_shadow_color=&#8221;rgba(255,255,255,0.21)&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_column type=&#8221;1_2&#8243; _builder_version=&#8221;4.17.4&#8243; _module_preset=&#8221;default&#8221; custom_padding_tablet=&#8221;||||false|false&#8221; custom_padding_phone=&#8221;||30px||false|false&#8221; custom_padding_last_edited=&#8221;off|phone&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_blurb title=&#8221;How do I use the Loudness Analyzer?&#8221; use_icon=&#8221;on&#8221; font_icon=&#8221;&#x75;||divi||400&#8243; icon_color=&#8221;#f3be29&#8243; icon_placement=&#8221;left&#8221; _builder_version=&#8221;4.27.5&#8243; header_font=&#8221;&#8211;et_global_heading_font|700||on|||||&#8221; header_font_size=&#8221;14px&#8221; header_letter_spacing=&#8221;2px&#8221; header_line_height=&#8221;1.8em&#8221; body_font=&#8221;&#8211;et_global_heading_font||||||||&#8221; body_text_color=&#8221;#FFFFFF&#8221; body_font_size=&#8221;16px&#8221; body_line_height=&#8221;1.8em&#8221; background_enable_color=&#8221;off&#8221; use_background_color_gradient=&#8221;on&#8221; background_color_gradient_direction=&#8221;164deg&#8221; background_color_gradient_stops=&#8221;rgba(243,190,41,0.17) 0%|rgba(205,59,167,0.17) 100%&#8221; background_layout=&#8221;dark&#8221; custom_margin=&#8221;||12%|&#8221; custom_margin_tablet=&#8221;70px|||&#8221; custom_margin_last_edited=&#8221;off|desktop&#8221; custom_padding=&#8221;30px|16px|30px|16px&#8221; animation_style=&#8221;fold&#8221; border_radii=&#8221;on|20px|20px|20px|20px&#8221; box_shadow_style=&#8221;preset1&#8243; locked=&#8221;off&#8221; global_colors_info=&#8221;{}&#8221;]<div class=\"faq-item\">\n<p class=\"font-claude-response-body break-words whitespace-normal leading-[1.7]\">It couldn&#8217;t be simpler:<\/p>\n<ul>\n<li><strong>Drop your file<\/strong> onto the analyzer, or click to browse and select it from your device. <br \/><em>Most common audio formats are supported: WAV, MP3, MP4, M4A, OGG, FLAC, and AAC.<br \/><\/em><\/li>\n<\/ul>\n<p><em><\/em><\/p>\n<ul>\n<li><strong>Wait a moment<\/strong> while the tool processes your file. Analysis time depends on the length of the track \u2014 most songs complete in just a few seconds.<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul>\n<li><strong>Read your results.<\/strong> Your six loudness statistics appear immediately. Pay particular attention to the Integrated LUFS \u2014 that&#8217;s the number the streaming platforms will compare against their targets.<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul>\n<li><strong>Expand the Streaming Platform panel<\/strong> to see exactly how each major platform will handle your track, and by how much it will be adjusted.<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul>\n<li><strong>Export your report<\/strong> using the button at the top right. You&#8217;ll get a clean text file with all measurements and platform comparisons \u2014 handy for sharing with clients or keeping as a reference alongside your project files.<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<\/div>[\/et_pb_blurb][et_pb_blurb title=&#8221;What is loudness normalization and why does it matter for my music?&#8221; use_icon=&#8221;on&#8221; font_icon=&#8221;&#x75;||divi||400&#8243; icon_color=&#8221;#f3be29&#8243; icon_placement=&#8221;left&#8221; _builder_version=&#8221;4.27.5&#8243; header_font=&#8221;&#8211;et_global_heading_font|700||on|||||&#8221; header_font_size=&#8221;14px&#8221; header_letter_spacing=&#8221;2px&#8221; header_line_height=&#8221;1.8em&#8221; body_font=&#8221;&#8211;et_global_heading_font||||||||&#8221; body_text_color=&#8221;#FFFFFF&#8221; body_font_size=&#8221;16px&#8221; body_line_height=&#8221;1.8em&#8221; background_enable_color=&#8221;off&#8221; use_background_color_gradient=&#8221;on&#8221; background_color_gradient_direction=&#8221;164deg&#8221; background_color_gradient_stops=&#8221;rgba(243,190,41,0.17) 0%|rgba(205,59,167,0.17) 100%&#8221; background_layout=&#8221;dark&#8221; custom_margin=&#8221;||12%|&#8221; custom_margin_tablet=&#8221;70px|||&#8221; custom_margin_last_edited=&#8221;off|desktop&#8221; custom_padding=&#8221;30px|16px|30px|16px&#8221; animation_style=&#8221;fold&#8221; animation_delay=&#8221;100ms&#8221; border_radii=&#8221;on|20px|20px|20px|20px&#8221; box_shadow_style=&#8221;preset1&#8243; locked=&#8221;off&#8221; global_colors_info=&#8221;{}&#8221;]<div class=\"faq-item\">\n<div class=\"faq-answer\">\n<p class=\"font-claude-response-body break-words whitespace-normal leading-[1.7]\">When you upload a track to a streaming platform, the platform automatically adjusts its playback volume so that all songs are perceived at roughly the same loudness. This process is called loudness normalization. Each platform has its own target \u2014 for example, Spotify and YouTube normalize to around \u221214 LUFS, while Qobuz targets a quieter \u221218 LUFS.<\/p>\n<p class=\"font-claude-response-body break-words whitespace-normal leading-[1.7]\">If your track is louder than the target, the platform will turn it down. If it&#8217;s quieter, most platforms simply leave it as-is rather than boosting it. This means that over-compressing or over-limiting your master to make it &#8220;loud&#8221; actually works against you \u2014 the platform will reduce it anyway, but you&#8217;ll have sacrificed dynamic range in the process. Knowing where your track sits relative to each platform&#8217;s target lets you make informed mastering decisions and deliver the best possible listening experience.<\/p>\n<p>Read more in this article I wrote: <a href=\"https:\/\/smartdsp.pro\/why-louder-is-not-better\/\" target=\"_blank\" rel=\"noopener\">Why Louder Is Not Better?<\/a><\/p>\n<\/div>\n<\/div>[\/et_pb_blurb][\/et_pb_column][et_pb_column type=&#8221;1_2&#8243; _builder_version=&#8221;4.17.4&#8243; _module_preset=&#8221;default&#8221; custom_padding_tablet=&#8221;|||0%|false|false&#8221; custom_padding_phone=&#8221;|||0%|false|false&#8221; custom_padding_last_edited=&#8221;off|desktop&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_blurb title=&#8221;Is my audio file uploaded anywhere? How is my data handled?&#8221; use_icon=&#8221;on&#8221; font_icon=&#8221;&#x75;||divi||400&#8243; icon_color=&#8221;#f3be29&#8243; icon_placement=&#8221;left&#8221; _builder_version=&#8221;4.27.5&#8243; header_font=&#8221;&#8211;et_global_heading_font|700||on|||||&#8221; header_font_size=&#8221;14px&#8221; header_letter_spacing=&#8221;2px&#8221; header_line_height=&#8221;1.8em&#8221; body_font=&#8221;&#8211;et_global_heading_font||||||||&#8221; body_text_color=&#8221;#FFFFFF&#8221; body_font_size=&#8221;16px&#8221; body_line_height=&#8221;1.8em&#8221; background_enable_color=&#8221;off&#8221; use_background_color_gradient=&#8221;on&#8221; background_color_gradient_direction=&#8221;164deg&#8221; background_color_gradient_stops=&#8221;rgba(243,190,41,0.17) 0%|rgba(205,59,167,0.17) 100%&#8221; background_layout=&#8221;dark&#8221; custom_margin=&#8221;||12%|&#8221; custom_margin_tablet=&#8221;70px|||&#8221; custom_margin_last_edited=&#8221;off|desktop&#8221; custom_padding=&#8221;30px|16px|30px|16px&#8221; animation_style=&#8221;fold&#8221; animation_delay=&#8221;250ms&#8221; border_radii=&#8221;on|20px|20px|20px|20px&#8221; box_shadow_style=&#8221;preset1&#8243; locked=&#8221;off&#8221; global_colors_info=&#8221;{}&#8221;]<div class=\"faq-item\">\n<div class=\"faq-answer\">\n<p class=\"font-claude-response-body break-words whitespace-normal leading-[1.7]\">Your audio file never leaves your device.<\/p>\n<p class=\"font-claude-response-body break-words whitespace-normal leading-[1.7]\">This tool runs entirely inside your web browser using the Web Audio API \u2014 a built-in capability of all modern browsers. When you drop a file onto the analyzer, it is read and processed locally by your own computer&#8217;s processor. No data is sent to any server, no file is stored anywhere, and no third party ever has access to your audio. You can even disconnect from the internet before dropping your file and the tool will work perfectly.<\/p>\n<p class=\"font-claude-response-body break-words whitespace-normal leading-[1.7]\">This also means the tool is completely free with no account required, no usage limits, and no hidden data collection.<\/p>\n<\/div>\n<\/div>[\/et_pb_blurb][et_pb_blurb title=&#8221;What are LUFS and what do the other stats mean?&#8221; use_icon=&#8221;on&#8221; font_icon=&#8221;&#x75;||divi||400&#8243; icon_color=&#8221;#f3be29&#8243; icon_placement=&#8221;left&#8221; _builder_version=&#8221;4.27.5&#8243; header_font=&#8221;&#8211;et_global_heading_font|700||on|||||&#8221; header_font_size=&#8221;14px&#8221; header_letter_spacing=&#8221;2px&#8221; header_line_height=&#8221;1.8em&#8221; body_font=&#8221;&#8211;et_global_heading_font||||||||&#8221; body_text_color=&#8221;#FFFFFF&#8221; body_font_size=&#8221;16px&#8221; body_line_height=&#8221;1.8em&#8221; background_enable_color=&#8221;off&#8221; use_background_color_gradient=&#8221;on&#8221; background_color_gradient_direction=&#8221;164deg&#8221; background_color_gradient_stops=&#8221;rgba(243,190,41,0.17) 0%|rgba(205,59,167,0.17) 100%&#8221; background_layout=&#8221;dark&#8221; custom_margin=&#8221;||12%|&#8221; custom_margin_tablet=&#8221;70px|||&#8221; custom_margin_last_edited=&#8221;off|desktop&#8221; custom_padding=&#8221;30px|16px|30px|16px&#8221; animation_style=&#8221;fold&#8221; animation_delay=&#8221;150ms&#8221; border_radii=&#8221;on|20px|20px|20px|20px&#8221; box_shadow_style=&#8221;preset1&#8243; locked=&#8221;off&#8221; global_colors_info=&#8221;{}&#8221;]<p class=\"font-claude-response-body break-words whitespace-normal leading-[1.7]\">LUFS stands for <em>Loudness Units relative to Full Scale<\/em> \u2014 it&#8217;s the international standard for measuring perceived loudness in audio. Unlike simple peak levels, LUFS accounts for how the human ear actually experiences volume, making it the go-to metric for broadcast, streaming, and mastering.<\/p>\n<ul class=\"[li_&amp;]:mb-0 [li_&amp;]:mt-1 [li_&amp;]:gap-1 [&amp;:not(:last-child)_ul]:pb-1 [&amp;:not(:last-child)_ol]:pb-1 list-disc flex flex-col gap-1 pl-8 mb-3\">\n<li class=\"whitespace-normal break-words pl-2\"><strong>Integrated LUFS<\/strong> is the average loudness of your entire track, measured from start to finish with gating applied to ignore silence. This is the most important number for streaming platforms.<\/li>\n<li class=\"whitespace-normal break-words pl-2\"><strong>Max Short-Term LUFS<\/strong> is the loudest 3-second window found anywhere in your track. Useful for identifying the densest, loudest sections.<\/li>\n<li class=\"whitespace-normal break-words pl-2\"><strong>Max Momentary LUFS<\/strong> is the loudest 400ms snapshot in the file. It reacts faster than short-term and captures transient intensity.<\/li>\n<li class=\"whitespace-normal break-words pl-2\"><strong>Max True Peak<\/strong> measures the actual peak level of the audio signal <em>between<\/em> digital samples, using oversampling. Expressed in dBTP (decibels True Peak), it&#8217;s the most accurate way to detect clipping \u2014 especially after encoding.<\/li>\n<li class=\"whitespace-normal break-words pl-2\"><strong>Max Peak<\/strong> is the highest individual sample value in the file, expressed in dBFS (decibels relative to Full Scale). 0 dBFS is the absolute digital ceiling.<\/li>\n<li class=\"whitespace-normal break-words pl-2\"><strong>Max RMS<\/strong> reflects the loudest average power level found in any short window of the track. It gives a good sense of the energy and density of your mix.<\/li>\n<\/ul>[\/et_pb_blurb][et_pb_blurb title=&#8221;What is EBU R128?&#8221; use_icon=&#8221;on&#8221; font_icon=&#8221;&#x75;||divi||400&#8243; icon_color=&#8221;#f3be29&#8243; icon_placement=&#8221;left&#8221; _builder_version=&#8221;4.27.5&#8243; header_font=&#8221;&#8211;et_global_heading_font|700||on|||||&#8221; header_font_size=&#8221;14px&#8221; header_letter_spacing=&#8221;2px&#8221; header_line_height=&#8221;1.8em&#8221; body_font=&#8221;&#8211;et_global_heading_font||||||||&#8221; body_text_color=&#8221;#FFFFFF&#8221; body_font_size=&#8221;16px&#8221; body_line_height=&#8221;1.8em&#8221; background_enable_color=&#8221;off&#8221; use_background_color_gradient=&#8221;on&#8221; background_color_gradient_direction=&#8221;164deg&#8221; background_color_gradient_stops=&#8221;rgba(243,190,41,0.17) 0%|rgba(205,59,167,0.17) 100%&#8221; background_layout=&#8221;dark&#8221; custom_margin=&#8221;||12%|&#8221; custom_margin_tablet=&#8221;70px|||&#8221; custom_margin_last_edited=&#8221;off|desktop&#8221; custom_padding=&#8221;30px|16px|30px|16px&#8221; animation_style=&#8221;fold&#8221; animation_delay=&#8221;100ms&#8221; border_radii=&#8221;on|20px|20px|20px|20px&#8221; box_shadow_style=&#8221;preset1&#8243; locked=&#8221;off&#8221; global_colors_info=&#8221;{}&#8221;]<div class=\"faq-item\">\n<div class=\"faq-answer\">\n<p>EBU R128 is the European Broadcasting Union&#8217;s standard for loudness normalization and maximum permitted true peak level in audio. Published in 2010 and regularly updated since, it defines exactly how loudness should be measured and targets a program loudness of \u221223 LUFS for broadcast content. It is built on the ITU-R BS.1770 measurement algorithm, which applies a specific frequency weighting (called K-weighting) to reflect how the human ear perceives different frequencies at different volumes. EBU R128 is now the foundation for loudness standards across television, radio, podcasting, and music streaming worldwide. This tool follows its measurement methodology precisely.<\/p>\n<\/div>\n<\/div>[\/et_pb_blurb][\/et_pb_column][\/et_pb_row][et_pb_row _builder_version=&#8221;4.27.5&#8243; _module_preset=&#8221;default&#8221; locked=&#8221;off&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;4.27.5&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_heading title=&#8221;We&#8217;ve much more for you to explore:&#8221; _builder_version=&#8221;4.27.5&#8243; _module_preset=&#8221;default&#8221; title_level=&#8221;h2&#8243; title_font=&#8221;&#8211;et_global_heading_font||||||||&#8221; title_text_color=&#8221;#FFFFFF&#8221; global_colors_info=&#8221;{}&#8221;][\/et_pb_heading][\/et_pb_column][\/et_pb_row][et_pb_row column_structure=&#8221;1_4,1_4,1_4,1_4&#8243; _builder_version=&#8221;4.18.0&#8243; custom_margin=&#8221;1vw|auto||auto|false|false&#8221; animation_style=&#8221;flip&#8221; locked=&#8221;off&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_column type=&#8221;1_4&#8243; _builder_version=&#8221;4.18.0&#8243; custom_padding=&#8221;|||&#8221; global_colors_info=&#8221;{}&#8221; custom_padding__hover=&#8221;|||&#8221;][et_pb_button button_url=&#8221;https:\/\/smartdsp.pro\/mastering-services&#8221; button_text=&#8221;Mastering&#8221; button_alignment=&#8221;center&#8221; _builder_version=&#8221;4.27.5&#8243; _module_preset=&#8221;3117bc07-6a8a-4679-b3bb-b6ed74b48a2f&#8221; custom_button=&#8221;on&#8221; button_text_color=&#8221;#FFFFFF&#8221; button_bg_use_color_gradient=&#8221;on&#8221; button_bg_color_gradient_direction=&#8221;229deg&#8221; button_bg_color_gradient_stops=&#8221;rgba(189,22,179,0.8) 0%|rgba(253,202,65,0.8) 100%&#8221; button_border_width=&#8221;0px&#8221; button_border_radius=&#8221;15px&#8221; button_font=&#8221;Be Vietnam Pro|600|||||||&#8221; button_use_icon=&#8221;off&#8221; box_shadow_style=&#8221;preset1&#8243; box_shadow_blur=&#8221;35px&#8221; box_shadow_spread=&#8221;-11px&#8221; box_shadow_color=&#8221;rgba(255,255,255,0.28)&#8221; global_colors_info=&#8221;{}&#8221; button_bg_color__hover_enabled=&#8221;on|desktop&#8221; button_bg_color__hover=&#8221;rgba(0,127,31,0.7)&#8221; button_bg_enable_color__hover=&#8221;on&#8221; button_border_width__hover=&#8221;0px&#8221; button_border_width__hover_enabled=&#8221;on|desktop&#8221; button_border_radius__hover=&#8221;15px&#8221; button_border_radius__hover_enabled=&#8221;on|desktop&#8221; box_shadow_color__hover=&#8221;rgba(255,255,255,0.49)&#8221; box_shadow_color__hover_enabled=&#8221;on|hover&#8221; button_text_size__hover_enabled=&#8221;on|desktop&#8221; button_border_color__hover=&#8221;rgba(255,255,255,0.02)&#8221; button_border_color__hover_enabled=&#8221;on|hover&#8221; button_icon_color__hover=&#8221;#FFFFFF&#8221; button_icon_color__hover_enabled=&#8221;on|hover&#8221;][\/et_pb_button][\/et_pb_column][et_pb_column type=&#8221;1_4&#8243; _builder_version=&#8221;4.18.0&#8243; custom_padding=&#8221;|||&#8221; global_colors_info=&#8221;{}&#8221; custom_padding__hover=&#8221;|||&#8221;][et_pb_button button_url=&#8221;https:\/\/smartdsp.pro\/smart-dsp-products\/&#8221; button_text=&#8221;Audio Effects&#8221; button_alignment=&#8221;center&#8221; _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;3117bc07-6a8a-4679-b3bb-b6ed74b48a2f&#8221; custom_button=&#8221;on&#8221; button_text_color=&#8221;#FFFFFF&#8221; button_bg_use_color_gradient=&#8221;on&#8221; button_bg_color_gradient_direction=&#8221;229deg&#8221; button_bg_color_gradient_stops=&#8221;rgba(189,22,179,0.8) 0%|rgba(253,202,65,0.8) 100%&#8221; button_border_width=&#8221;0px&#8221; button_border_radius=&#8221;15px&#8221; button_font=&#8221;Be Vietnam Pro|600|||||||&#8221; button_use_icon=&#8221;off&#8221; box_shadow_style=&#8221;preset1&#8243; box_shadow_blur=&#8221;35px&#8221; box_shadow_spread=&#8221;-11px&#8221; box_shadow_color=&#8221;rgba(255,255,255,0.28)&#8221; global_colors_info=&#8221;{}&#8221; button_bg_color__hover_enabled=&#8221;on|desktop&#8221; button_bg_color__hover=&#8221;rgba(0,127,31,0.7)&#8221; button_bg_enable_color__hover=&#8221;on&#8221; button_border_width__hover=&#8221;0px&#8221; button_border_width__hover_enabled=&#8221;on|desktop&#8221; button_border_radius__hover=&#8221;15px&#8221; button_border_radius__hover_enabled=&#8221;on|desktop&#8221; box_shadow_color__hover=&#8221;rgba(255,255,255,0.49)&#8221; box_shadow_color__hover_enabled=&#8221;on|hover&#8221; button_text_size__hover_enabled=&#8221;on|desktop&#8221; button_border_color__hover=&#8221;rgba(255,255,255,0.02)&#8221; button_border_color__hover_enabled=&#8221;on|hover&#8221; button_icon_color__hover=&#8221;#FFFFFF&#8221; button_icon_color__hover_enabled=&#8221;on|hover&#8221;][\/et_pb_button][\/et_pb_column][et_pb_column type=&#8221;1_4&#8243; _builder_version=&#8221;4.18.0&#8243; custom_padding=&#8221;|||&#8221; global_colors_info=&#8221;{}&#8221; custom_padding__hover=&#8221;|||&#8221;][et_pb_button button_url=&#8221;https:\/\/www.patreon.com\/posts\/how-to-get-most-96445637&#8243; url_new_window=&#8221;on&#8221; button_text=&#8221;Learning&#8221; button_alignment=&#8221;center&#8221; _builder_version=&#8221;4.27.5&#8243; _module_preset=&#8221;3117bc07-6a8a-4679-b3bb-b6ed74b48a2f&#8221; custom_button=&#8221;on&#8221; button_text_color=&#8221;#FFFFFF&#8221; button_bg_use_color_gradient=&#8221;on&#8221; button_bg_color_gradient_direction=&#8221;229deg&#8221; button_bg_color_gradient_stops=&#8221;rgba(189,22,179,0.8) 0%|rgba(253,202,65,0.8) 100%&#8221; button_border_width=&#8221;0px&#8221; button_border_radius=&#8221;15px&#8221; button_font=&#8221;Be Vietnam Pro|600|||||||&#8221; button_use_icon=&#8221;off&#8221; box_shadow_style=&#8221;preset1&#8243; box_shadow_blur=&#8221;35px&#8221; box_shadow_spread=&#8221;-11px&#8221; box_shadow_color=&#8221;rgba(255,255,255,0.28)&#8221; global_colors_info=&#8221;{}&#8221; button_bg_color__hover_enabled=&#8221;on|desktop&#8221; button_bg_color__hover=&#8221;rgba(0,127,31,0.7)&#8221; button_bg_enable_color__hover=&#8221;on&#8221; button_border_width__hover=&#8221;0px&#8221; button_border_width__hover_enabled=&#8221;on|desktop&#8221; button_border_radius__hover=&#8221;15px&#8221; button_border_radius__hover_enabled=&#8221;on|desktop&#8221; box_shadow_color__hover=&#8221;rgba(255,255,255,0.49)&#8221; box_shadow_color__hover_enabled=&#8221;on|hover&#8221; button_text_size__hover_enabled=&#8221;on|desktop&#8221; button_border_color__hover=&#8221;rgba(255,255,255,0.02)&#8221; button_border_color__hover_enabled=&#8221;on|hover&#8221; button_icon_color__hover=&#8221;#FFFFFF&#8221; button_icon_color__hover_enabled=&#8221;on|hover&#8221;][\/et_pb_button][\/et_pb_column][et_pb_column type=&#8221;1_4&#8243; _builder_version=&#8221;4.18.0&#8243; custom_padding=&#8221;|||&#8221; global_colors_info=&#8221;{}&#8221; custom_padding__hover=&#8221;|||&#8221;][et_pb_button button_url=&#8221;https:\/\/smartdsp.pro\/tools&#8221; button_text=&#8221;Online Tools&#8221; button_alignment=&#8221;center&#8221; _builder_version=&#8221;4.27.5&#8243; _module_preset=&#8221;3117bc07-6a8a-4679-b3bb-b6ed74b48a2f&#8221; custom_button=&#8221;on&#8221; button_text_color=&#8221;#FFFFFF&#8221; button_bg_use_color_gradient=&#8221;on&#8221; button_bg_color_gradient_direction=&#8221;229deg&#8221; button_bg_color_gradient_stops=&#8221;rgba(189,22,179,0.8) 0%|rgba(253,202,65,0.8) 100%&#8221; button_border_width=&#8221;0px&#8221; button_border_radius=&#8221;15px&#8221; button_font=&#8221;Be Vietnam Pro|600|||||||&#8221; button_use_icon=&#8221;off&#8221; box_shadow_style=&#8221;preset1&#8243; box_shadow_blur=&#8221;35px&#8221; box_shadow_spread=&#8221;-11px&#8221; box_shadow_color=&#8221;rgba(255,255,255,0.28)&#8221; global_colors_info=&#8221;{}&#8221; button_bg_color__hover_enabled=&#8221;on|desktop&#8221; button_bg_color__hover=&#8221;rgba(0,127,31,0.7)&#8221; button_bg_enable_color__hover=&#8221;on&#8221; button_border_width__hover=&#8221;0px&#8221; button_border_width__hover_enabled=&#8221;on|desktop&#8221; button_border_radius__hover=&#8221;15px&#8221; button_border_radius__hover_enabled=&#8221;on|desktop&#8221; box_shadow_color__hover=&#8221;rgba(255,255,255,0.49)&#8221; box_shadow_color__hover_enabled=&#8221;on|hover&#8221; button_text_size__hover_enabled=&#8221;on|desktop&#8221; button_border_color__hover=&#8221;rgba(255,255,255,0.02)&#8221; button_border_color__hover_enabled=&#8221;on|hover&#8221; button_icon_color__hover=&#8221;#FFFFFF&#8221; button_icon_color__hover_enabled=&#8221;on|hover&#8221;][\/et_pb_button][\/et_pb_column][\/et_pb_row][\/et_pb_section][et_pb_section fb_built=&#8221;1&#8243; admin_label=&#8221;Support&#8221; _builder_version=&#8221;4.18.0&#8243; background_enable_color=&#8221;off&#8221; use_background_color_gradient=&#8221;on&#8221; background_color_gradient_stops=&#8221;#000000 0%|rgba(41,196,169,0) 100%&#8221; background_color_gradient_overlays_image=&#8221;on&#8221; background_image=&#8221;https:\/\/smartdsp.pro\/wp-content\/uploads\/2022\/10\/footer-background-scaled-1.jpg&#8221; custom_padding=&#8221;100px|0px|100px|0px&#8221; locked=&#8221;off&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_row column_structure=&#8221;3_5,2_5&#8243; _builder_version=&#8221;4.16&#8243; global_colors_info=&#8221;{}&#8221;][et_pb_column type=&#8221;3_5&#8243; _builder_version=&#8221;4.16&#8243; custom_padding=&#8221;40px||40px|&#8221; global_colors_info=&#8221;{}&#8221; custom_padding__hover=&#8221;|||&#8221;][et_pb_text _builder_version=&#8221;4.18.0&#8243; text_font=&#8221;PT Sans|700|||||||&#8221; text_text_color=&#8221;#00B22D&#8221; text_font_size=&#8221;22px&#8221; header_font=&#8221;||||||||&#8221; global_colors_info=&#8221;{}&#8221;]<p>FEEDBACK, ANSWERS, HELP WITH TROUBLESHOOTING<\/p>[\/et_pb_text][et_pb_text _builder_version=&#8221;4.18.0&#8243; text_font=&#8221;PT Sans|700|||||||&#8221; text_text_color=&#8221;#FFFFFF&#8221; text_font_size=&#8221;18px&#8221; text_line_height=&#8221;1.8em&#8221; header_font=&#8221;||||||||&#8221; header_2_font=&#8221;Poppins|500|||||||&#8221; header_2_text_color=&#8221;#ffffff&#8221; header_2_font_size=&#8221;38px&#8221; header_2_line_height=&#8221;1.3em&#8221; header_3_font=&#8221;||||||||&#8221; header_4_font=&#8221;||||||||&#8221; global_colors_info=&#8221;{}&#8221;]<h2>Available 7\/7<\/h2>\n<p>You want some feedback on your project, you have some audio related question or even need some help troubleshooting something?<br \/>Don&#8217;t wait any longer, hit us up!<\/p>[\/et_pb_text][\/et_pb_column][et_pb_column type=&#8221;2_5&#8243; _builder_version=&#8221;4.16&#8243; custom_padding=&#8221;|||&#8221; global_colors_info=&#8221;{}&#8221; custom_padding__hover=&#8221;|||&#8221;][et_pb_image src=&#8221;https:\/\/smartdsp.pro\/wp-content\/uploads\/2020\/07\/finance-illustration-03.png&#8221; title_text=&#8221;finance-illustration-03&#8243; align=&#8221;center&#8221; align_tablet=&#8221;center&#8221; align_phone=&#8221;&#8221; align_last_edited=&#8221;on|desktop&#8221; disabled_on=&#8221;on|on|off&#8221; _builder_version=&#8221;4.16&#8243; width=&#8221;40%&#8221; custom_margin=&#8221;45px|||||&#8221; animation_style=&#8221;slide&#8221; animation_direction=&#8221;bottom&#8221; animation_intensity_slide=&#8221;10%&#8221; global_colors_info=&#8221;{}&#8221;][\/et_pb_image][\/et_pb_column][\/et_pb_row][et_pb_row column_structure=&#8221;1_4,1_4,1_4,1_4&#8243; _builder_version=&#8221;4.27.4&#8243; global_colors_info=&#8221;{}&#8221; button_border_width__hover=&#8221;0px&#8221; button_border_width__hover_enabled=&#8221;on|desktop&#8221; button_border_radius__hover=&#8221;15px&#8221; button_border_radius__hover_enabled=&#8221;on|desktop&#8221; box_shadow_color__hover=&#8221;rgba(255,255,255,0.49)&#8221; box_shadow_color__hover_enabled=&#8221;on|hover&#8221; button_text_size__hover_enabled=&#8221;on|desktop&#8221; button_bg_color__hover=&#8221;rgba(0,127,31,0.7)&#8221; button_bg_color__hover_enabled=&#8221;on|desktop&#8221; button_border_color__hover=&#8221;rgba(255,255,255,0.02)&#8221; button_border_color__hover_enabled=&#8221;on|hover&#8221; button_icon_color__hover=&#8221;#FFFFFF&#8221; button_icon_color__hover_enabled=&#8221;on|hover&#8221;][et_pb_column type=&#8221;1_4&#8243; _builder_version=&#8221;4.16&#8243; custom_padding=&#8221;40px||40px|&#8221; global_colors_info=&#8221;{}&#8221; custom_padding__hover=&#8221;|||&#8221;][\/et_pb_column][et_pb_column type=&#8221;1_4&#8243; _builder_version=&#8221;4.16&#8243; custom_padding=&#8221;|||&#8221; global_colors_info=&#8221;{}&#8221; custom_padding__hover=&#8221;|||&#8221;][et_pb_button button_url=&#8221;https:\/\/smartdsp.pro\/get-feedback&#8221; url_new_window=&#8221;on&#8221; button_text=&#8221;Get some feedback&#8221; button_alignment=&#8221;center&#8221; _builder_version=&#8221;4.27.4&#8243; custom_button=&#8221;on&#8221; button_text_size=&#8221;18px&#8221; button_text_color=&#8221;#FFFFFF&#8221; button_bg_use_color_gradient=&#8221;on&#8221; button_bg_color_gradient_direction=&#8221;229deg&#8221; button_bg_color_gradient_stops=&#8221;rgba(189,22,179,0.8) 0%|rgba(253,202,65,0.8) 100%&#8221; button_border_width=&#8221;0px&#8221; button_border_radius=&#8221;15px&#8221; button_font=&#8221;Be Vietnam Pro|600|||||||&#8221; button_use_icon=&#8221;off&#8221; box_shadow_style=&#8221;preset1&#8243; box_shadow_blur=&#8221;35px&#8221; box_shadow_spread=&#8221;-11px&#8221; box_shadow_color=&#8221;rgba(255,255,255,0.28)&#8221; global_colors_info=&#8221;{}&#8221; button_text_size__hover_enabled=&#8221;on|desktop&#8221; button_one_text_size__hover_enabled=&#8221;off&#8221; button_two_text_size__hover_enabled=&#8221;off&#8221; button_text_color__hover_enabled=&#8221;off&#8221; button_one_text_color__hover_enabled=&#8221;off&#8221; button_two_text_color__hover_enabled=&#8221;off&#8221; button_border_width__hover_enabled=&#8221;on|desktop&#8221; button_one_border_width__hover_enabled=&#8221;off&#8221; button_two_border_width__hover_enabled=&#8221;off&#8221; button_border_color__hover_enabled=&#8221;on|hover&#8221; button_one_border_color__hover_enabled=&#8221;off&#8221; button_two_border_color__hover_enabled=&#8221;off&#8221; button_border_radius__hover_enabled=&#8221;on|desktop&#8221; button_one_border_radius__hover_enabled=&#8221;off&#8221; button_two_border_radius__hover_enabled=&#8221;off&#8221; button_letter_spacing__hover_enabled=&#8221;off&#8221; button_one_letter_spacing__hover_enabled=&#8221;off&#8221; button_two_letter_spacing__hover_enabled=&#8221;off&#8221; button_bg_color__hover_enabled=&#8221;on|desktop&#8221; button_one_bg_color__hover_enabled=&#8221;off&#8221; button_two_bg_color__hover_enabled=&#8221;off&#8221; button_bg_color__hover=&#8221;rgba(0,127,31,0.7)&#8221; button_border_width__hover=&#8221;0px&#8221; button_border_radius__hover=&#8221;15px&#8221; box_shadow_color__hover=&#8221;rgba(255,255,255,0.49)&#8221; box_shadow_color__hover_enabled=&#8221;on|hover&#8221; button_border_color__hover=&#8221;rgba(255,255,255,0.02)&#8221; button_icon_color__hover=&#8221;#FFFFFF&#8221; button_icon_color__hover_enabled=&#8221;on|hover&#8221; button_text_size__hover=&#8221;18px&#8221;][\/et_pb_button][\/et_pb_column][et_pb_column type=&#8221;1_4&#8243; _builder_version=&#8221;4.16&#8243; custom_padding=&#8221;|||&#8221; global_colors_info=&#8221;{}&#8221; custom_padding__hover=&#8221;|||&#8221;][et_pb_button button_url=&#8221;https:\/\/smartdsp.pro\/contact&#8221; url_new_window=&#8221;on&#8221; button_text=&#8221;I have a question&#8221; button_alignment=&#8221;center&#8221; _builder_version=&#8221;4.27.4&#8243; custom_button=&#8221;on&#8221; button_text_size=&#8221;18px&#8221; button_text_color=&#8221;#FFFFFF&#8221; button_bg_use_color_gradient=&#8221;on&#8221; button_bg_color_gradient_direction=&#8221;229deg&#8221; button_bg_color_gradient_stops=&#8221;rgba(189,22,179,0.8) 0%|rgba(253,202,65,0.8) 100%&#8221; button_border_width=&#8221;0px&#8221; button_border_radius=&#8221;15px&#8221; button_font=&#8221;Be Vietnam Pro|600|||||||&#8221; button_use_icon=&#8221;off&#8221; box_shadow_style=&#8221;preset1&#8243; box_shadow_blur=&#8221;35px&#8221; box_shadow_spread=&#8221;-11px&#8221; box_shadow_color=&#8221;rgba(255,255,255,0.28)&#8221; global_colors_info=&#8221;{}&#8221; button_text_size__hover_enabled=&#8221;on|desktop&#8221; button_one_text_size__hover_enabled=&#8221;off&#8221; button_two_text_size__hover_enabled=&#8221;off&#8221; button_text_color__hover_enabled=&#8221;off&#8221; button_one_text_color__hover_enabled=&#8221;off&#8221; button_two_text_color__hover_enabled=&#8221;off&#8221; button_border_width__hover_enabled=&#8221;on|desktop&#8221; button_one_border_width__hover_enabled=&#8221;off&#8221; button_two_border_width__hover_enabled=&#8221;off&#8221; button_border_color__hover_enabled=&#8221;on|hover&#8221; button_one_border_color__hover_enabled=&#8221;off&#8221; button_two_border_color__hover_enabled=&#8221;off&#8221; button_border_radius__hover_enabled=&#8221;on|desktop&#8221; button_one_border_radius__hover_enabled=&#8221;off&#8221; button_two_border_radius__hover_enabled=&#8221;off&#8221; button_letter_spacing__hover_enabled=&#8221;off&#8221; button_one_letter_spacing__hover_enabled=&#8221;off&#8221; button_two_letter_spacing__hover_enabled=&#8221;off&#8221; button_bg_color__hover_enabled=&#8221;on|desktop&#8221; button_one_bg_color__hover_enabled=&#8221;off&#8221; button_two_bg_color__hover_enabled=&#8221;off&#8221; button_bg_color__hover=&#8221;rgba(0,127,31,0.7)&#8221; button_border_width__hover=&#8221;0px&#8221; button_border_radius__hover=&#8221;15px&#8221; box_shadow_color__hover=&#8221;rgba(255,255,255,0.49)&#8221; box_shadow_color__hover_enabled=&#8221;on|hover&#8221; button_border_color__hover=&#8221;rgba(255,255,255,0.02)&#8221; button_icon_color__hover=&#8221;#FFFFFF&#8221; button_icon_color__hover_enabled=&#8221;on|hover&#8221; button_text_size__hover=&#8221;18px&#8221;][\/et_pb_button][\/et_pb_column][et_pb_column type=&#8221;1_4&#8243; _builder_version=&#8221;4.16&#8243; custom_padding=&#8221;|||&#8221; global_colors_info=&#8221;{}&#8221; custom_padding__hover=&#8221;|||&#8221;][\/et_pb_column][\/et_pb_row][\/et_pb_section]\n","protected":false},"excerpt":{"rendered":"<p>Professional Loudness Analyzer LUfs &#038; max. True Peak.  Know if your music will be attenuated by YouTube, Spotify, TIDAL, Apple Music, Soundcloud.<\/p>","protected":false},"author":392,"featured_media":4731,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_et_pb_use_builder":"on","_et_pb_old_content":"","_et_gb_content_width":"","footnotes":""},"class_list":["post-4603","page","type-page","status-publish","has-post-thumbnail","hentry"],"_links":{"self":[{"href":"https:\/\/smartdsp.pro\/fr\/wp-json\/wp\/v2\/pages\/4603","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/smartdsp.pro\/fr\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/smartdsp.pro\/fr\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/smartdsp.pro\/fr\/wp-json\/wp\/v2\/users\/392"}],"replies":[{"embeddable":true,"href":"https:\/\/smartdsp.pro\/fr\/wp-json\/wp\/v2\/comments?post=4603"}],"version-history":[{"count":11,"href":"https:\/\/smartdsp.pro\/fr\/wp-json\/wp\/v2\/pages\/4603\/revisions"}],"predecessor-version":[{"id":4734,"href":"https:\/\/smartdsp.pro\/fr\/wp-json\/wp\/v2\/pages\/4603\/revisions\/4734"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/smartdsp.pro\/fr\/wp-json\/wp\/v2\/media\/4731"}],"wp:attachment":[{"href":"https:\/\/smartdsp.pro\/fr\/wp-json\/wp\/v2\/media?parent=4603"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}