[{"data":1,"prerenderedAt":806},["ShallowReactive",2],{"navigation_docs":3,"-guide-options":81,"-guide-options-surround":801},[4,41,62],{"title":5,"icon":6,"path":7,"stem":8,"children":9,"page":40},"Guide","i-lucide-book-open","\u002Fguide","1.guide",[10,15,20,25,30,35],{"title":11,"path":12,"stem":13,"icon":14},"Introduction","\u002Fguide\u002Fintroduction","1.guide\u002F1.introduction","i-lucide-house",{"title":16,"path":17,"stem":18,"icon":19},"How it works","\u002Fguide\u002Fhow-it-works","1.guide\u002F2.how-it-works","i-lucide-workflow",{"title":21,"path":22,"stem":23,"icon":24},"Data modes","\u002Fguide\u002Fdata-modes","1.guide\u002F3.data-modes","i-lucide-git-fork",{"title":26,"path":27,"stem":28,"icon":29},"Options","\u002Fguide\u002Foptions","1.guide\u002F4.options","i-lucide-settings-2",{"title":31,"path":32,"stem":33,"icon":34},"Gradients","\u002Fguide\u002Fgradients","1.guide\u002F5.gradients","i-lucide-palette",{"title":36,"path":37,"stem":38,"icon":39},"WebSocket protocol","\u002Fguide\u002Fwebsocket-protocol","1.guide\u002F6.websocket-protocol","i-lucide-radio",false,{"title":42,"icon":43,"path":44,"stem":45,"children":46,"page":40},"Core","i-lucide-box","\u002Fcore","2.core",[47,52,57],{"title":48,"path":49,"stem":50,"icon":51},"Installation","\u002Fcore\u002Finstallation","2.core\u002F1.installation","i-lucide-download",{"title":53,"path":54,"stem":55,"icon":56},"API reference","\u002Fcore\u002Fapi","2.core\u002F2.api","i-lucide-code",{"title":58,"path":59,"stem":60,"icon":61},"Audio engines","\u002Fcore\u002Faudio-engines","2.core\u002F3.audio-engines","i-lucide-audio-lines",{"title":63,"icon":64,"path":65,"stem":66,"children":67,"page":40},"Vue","i-simple-icons-vuedotjs","\u002Fvue","3.vue",[68,71,76],{"title":48,"path":69,"stem":70,"icon":51},"\u002Fvue\u002Finstallation","3.vue\u002F1.installation",{"title":72,"path":73,"stem":74,"icon":75},"Props, events & methods","\u002Fvue\u002Fprops","3.vue\u002F2.props","i-lucide-sliders-horizontal",{"title":77,"path":78,"stem":79,"icon":80},"Composables","\u002Fvue\u002Fcomposables","3.vue\u002F3.composables","i-lucide-plug",{"id":82,"title":26,"body":83,"description":794,"extension":795,"links":796,"meta":797,"navigation":798,"path":27,"seo":799,"stem":28,"__hash__":800},"docs\u002F1.guide\u002F4.options.md",{"type":84,"value":85,"toc":787},"minimark",[86,113,143,148,317,321,451,455,772],[87,88,89,90,94,95,99,100,103,104,108,109,112],"p",{},"Every package configures the ",[91,92,93],"strong",{},"same"," set of options — the framework-agnostic\n",[96,97,98],"code",{},"FFTVisualizerOptions",". This page is the single source of truth for what each one ",[91,101,102],{},"means",";\nthe ",[105,106,107],"a",{"href":54},"Core API"," and ",[105,110,111],{"href":73},"Vue props"," pages link back here for descriptions.",[114,115,116,117,119,120,123,124,127,128,130,131,134,135,138,139,142],"note",{},"How you pass them differs by package: ",[91,118,42],{}," takes an options object in the constructor and\n",[96,121,122],{},"setOptions()"," (",[96,125,126],{},"{ ledBars: true }","); ",[91,129,63],{}," takes them as props in ",[96,132,133],{},"camelCase"," or ",[96,136,137],{},"kebab-case","\n(",[96,140,141],{},":led-bars=\"true\"","). The names and meanings below are identical either way.",[144,145,147],"h2",{"id":146},"data-source","Data source",[149,150,151,170],"table",{},[152,153,154],"thead",{},[155,156,157,161,164,167],"tr",{},[158,159,160],"th",{},"Option",[158,162,163],{},"Type",[158,165,166],{},"Default",[158,168,169],{},"Meaning",[171,172,173,196,218,238,258,281,297],"tbody",{},[155,174,175,181,186,191],{},[176,177,178],"td",{},[96,179,180],{},"mode",[176,182,183],{},[96,184,185],{},"'websocket' | 'local' | 'external'",[176,187,188],{},[96,189,190],{},"'websocket'",[176,192,193,194],{},"Where FFT data comes from — see ",[105,195,21],{"href":22},[155,197,198,203,208,211],{},[176,199,200],{},[96,201,202],{},"websocketUrl",[176,204,205],{},[96,206,207],{},"string",[176,209,210],{},"—",[176,212,213,214,217],{},"WebSocket URL (used when ",[96,215,216],{},"mode: 'websocket'",")",[155,219,220,225,230,232],{},[176,221,222],{},[96,223,224],{},"data",[176,226,227],{},[96,228,229],{},"Uint8Array",[176,231,210],{},[176,233,234,235,217],{},"External FFT magnitudes, mono (",[96,236,237],{},"mode: 'external'",[155,239,240,249,253,255],{},[176,241,242,245,246],{},[96,243,244],{},"dataLeft"," \u002F ",[96,247,248],{},"dataRight",[176,250,251],{},[96,252,229],{},[176,254,210],{},[176,256,257],{},"External FFT magnitudes per channel (stereo external mode)",[155,259,260,265,270,275],{},[176,261,262],{},[96,263,264],{},"audioSource",[176,266,267],{},[96,268,269],{},"'mic' | 'display'",[176,271,272],{},[96,273,274],{},"'mic'",[176,276,277,278,217],{},"Local capture source (",[96,279,280],{},"mode: 'local'",[155,282,283,288,292,294],{},[176,284,285],{},[96,286,287],{},"audioDeviceId",[176,289,290],{},[96,291,207],{},[176,293,210],{},[176,295,296],{},"Specific input device for local mic capture",[155,298,299,304,309,314],{},[176,300,301],{},[96,302,303],{},"autoReconnect",[176,305,306],{},[96,307,308],{},"boolean",[176,310,311],{},[96,312,313],{},"false",[176,315,316],{},"Reconnect the WebSocket with exponential backoff (1s→30s) after an unexpected drop",[144,318,320],{"id":319},"data-processing","Data processing",[149,322,323,335],{},[152,324,325],{},[155,326,327,329,331,333],{},[158,328,160],{},[158,330,163],{},[158,332,166],{},[158,334,169],{},[171,336,337,357,377,395,414,433],{},[155,338,339,344,349,354],{},[176,340,341],{},[96,342,343],{},"bands",[176,345,346],{},[96,347,348],{},"10 | 20 | 40 | 80",[176,350,351],{},[96,352,353],{},"80",[176,355,356],{},"Number of frequency bands displayed",[155,358,359,364,369,374],{},[176,360,361],{},[96,362,363],{},"noiseFloor",[176,365,366],{},[96,367,368],{},"number",[176,370,371],{},[96,372,373],{},"0",[176,375,376],{},"Cut magnitudes below this threshold (0–255)",[155,378,379,384,388,392],{},[176,380,381],{},[96,382,383],{},"smoothing",[176,385,386],{},[96,387,368],{},[176,389,390],{},[96,391,373],{},[176,393,394],{},"Temporal smoothing (0 = none, 0.9 = heavy)",[155,396,397,402,406,411],{},[176,398,399],{},[96,400,401],{},"showPeaks",[176,403,404],{},[96,405,308],{},[176,407,408],{},[96,409,410],{},"true",[176,412,413],{},"Show falling peak indicators",[155,415,416,421,425,430],{},[176,417,418],{},[96,419,420],{},"peakDecay",[176,422,423],{},[96,424,368],{},[176,426,427],{},[96,428,429],{},"0.997",[176,431,432],{},"Peak fall speed (0.99 = slow, 0.9 = fast)",[155,434,435,440,444,448],{},[176,436,437],{},[96,438,439],{},"stereo",[176,441,442],{},[96,443,308],{},[176,445,446],{},[96,447,313],{},[176,449,450],{},"Stereo mode: left channel top, right channel bottom",[144,452,454],{"id":453},"appearance","Appearance",[149,456,457,469],{},[152,458,459],{},[155,460,461,463,465,467],{},[158,462,160],{},[158,464,163],{},[158,466,166],{},[158,468,169],{},[171,470,471,489,516,534,552,571,590,608,626,644,663,685,705,728,754],{},[155,472,473,478,482,486],{},[176,474,475],{},[96,476,477],{},"ledBars",[176,479,480],{},[96,481,308],{},[176,483,484],{},[96,485,313],{},[176,487,488],{},"LED segment effect",[155,490,491,496,501,506],{},[176,492,493],{},[96,494,495],{},"ledShape",[176,497,498],{},[96,499,500],{},"'segment' | 'meter'",[176,502,503],{},[96,504,505],{},"'segment'",[176,507,508,511,512,515],{},[96,509,510],{},"segment"," = fixed-pixel gap lines; ",[96,513,514],{},"meter"," = short, wide segments like a classic LED meter",[155,517,518,523,527,531],{},[176,519,520],{},[96,521,522],{},"lumiBars",[176,524,525],{},[96,526,308],{},[176,528,529],{},[96,530,313],{},[176,532,533],{},"Full-height bars whose brightness follows the level",[155,535,536,541,545,549],{},[176,537,538],{},[96,539,540],{},"radial",[176,542,543],{},[96,544,308],{},[176,546,547],{},[96,548,313],{},[176,550,551],{},"Circular spectrum: angle = frequency, radius = level",[155,553,554,559,563,568],{},[176,555,556],{},[96,557,558],{},"radialInnerRadius",[176,560,561],{},[96,562,368],{},[176,564,565],{},[96,566,567],{},"0.35",[176,569,570],{},"Radial: inner hole radius as a fraction of outer radius (0–0.9)",[155,572,573,578,582,587],{},[176,574,575],{},[96,576,577],{},"barSpace",[176,579,580],{},[96,581,368],{},[176,583,584],{},[96,585,586],{},"0.25",[176,588,589],{},"Gap between bars as a fraction of bar width (0–0.9)",[155,591,592,597,601,605],{},[176,593,594],{},[96,595,596],{},"reflexRatio",[176,598,599],{},[96,600,368],{},[176,602,603],{},[96,604,373],{},[176,606,607],{},"Mirrored reflection (0 = off). Linear mono: fraction of height (max 0.7). Radial: > 0 mirrors bars inward",[155,609,610,615,619,623],{},[176,611,612],{},[96,613,614],{},"reflexAlpha",[176,616,617],{},[96,618,368],{},[176,620,621],{},[96,622,586],{},[176,624,625],{},"Reflection brightness (0–1)",[155,627,628,633,637,641],{},[176,629,630],{},[96,631,632],{},"glow",[176,634,635],{},[96,636,368],{},[176,638,639],{},[96,640,373],{},[176,642,643],{},"Glow above the bar tops (0 = off, 1 = max)",[155,645,646,651,656,660],{},[176,647,648],{},[96,649,650],{},"rotation",[176,652,653],{},[96,654,655],{},"0 | 90 | 180 | 270",[176,657,658],{},[96,659,373],{},[176,661,662],{},"Rotate the whole visual clockwise, in degrees",[155,664,665,670,675,680],{},[176,666,667],{},[96,668,669],{},"gradient",[176,671,672],{},[96,673,674],{},"GradientName | GradientStop[]",[176,676,677],{},[96,678,679],{},"'classic'",[176,681,682,683],{},"Bar colors: a preset name or custom stops — see ",[105,684,31],{"href":32},[155,686,687,692,697,702],{},[176,688,689],{},[96,690,691],{},"gradientDirection",[176,693,694],{},[96,695,696],{},"'vertical' | 'horizontal'",[176,698,699],{},[96,700,701],{},"'vertical'",[176,703,704],{},"Gradient axis",[155,706,707,712,717,722],{},[176,708,709],{},[96,710,711],{},"colorMode",[176,713,714],{},[96,715,716],{},"'gradient' | 'bar-level'",[176,718,719],{},[96,720,721],{},"'gradient'",[176,723,724,727],{},[96,725,726],{},"bar-level"," colors each whole bar by its current level",[155,729,730,735,739,744],{},[176,731,732],{},[96,733,734],{},"background",[176,736,737],{},[96,738,207],{},[176,740,741],{},[96,742,743],{},"'#0a0a0a'",[176,745,746,747,245,750,753],{},"Background behind\u002Fbetween bars. Any CSS color, incl. ",[96,748,749],{},"'transparent'",[96,751,752],{},"rgba(…)"," (fixed at mount)",[155,755,756,761,765,769],{},[176,757,758],{},[96,759,760],{},"debug",[176,762,763],{},[96,764,308],{},[176,766,767],{},[96,768,313],{},[176,770,771],{},"Log connection\u002Fconfig diagnostics to the console",[773,774,775,776,779,780,783,784,786],"tip",{},"The Vue wrapper adds one ",[91,777,778],{},"Vue-only"," prop, ",[96,781,782],{},"showStats",", for its built-in connection\u002Ffps\noverlay — documented in ",[105,785,111],{"href":73},".",{"title":788,"searchDepth":789,"depth":789,"links":790},"",2,[791,792,793],{"id":146,"depth":789,"text":147},{"id":319,"depth":789,"text":320},{"id":453,"depth":789,"text":454},"The canonical option reference — every visualizer option, its type, default, and meaning.","md",null,{},{"icon":29},{"title":26,"description":794},"opl0FTpmosgTu1vR3nWmXgVnA1jXseh12kjwKdeXjFA",[802,804],{"title":21,"path":22,"stem":23,"description":803,"icon":24,"children":-1},"The three ways to get audio data into the visualizer — local, WebSocket, and external.",{"title":31,"path":32,"stem":33,"description":805,"icon":34,"children":-1},"Color the bars with a built-in preset or your own CSS-color stops.",1784963432762]