[{"data":1,"prerenderedAt":1615},["ShallowReactive",2],{"docs-page-en-\u002Foverview":3,"docs-nav-en":143},{"id":4,"title":5,"body":6,"description":135,"extension":136,"meta":137,"navigation":138,"order":139,"path":140,"seo":141,"stem":12,"__hash__":142},"content_en\u002Foverview.md","Overview",{"type":7,"value":8,"toc":127},"minimark",[9,13,17,20,23,28,44,48,88,92,102,106],[10,11,5],"h1",{"id":12},"overview",[14,15,16],"p",{},"SoundNinja is an open-source soundboard for live streaming, chatting with friends, and podcast recording. It is built with Tauri v2 and Nuxt 4 so it stays light on RAM and disk.",[14,18,19],{},"The goal is simple: keep a huge sound library easy to scan, then play the right clip in milliseconds. The UI also works well as a dashboard in VR.",[14,21,22],{},"SoundNinja is still in early development. Features work, but not every platform is fully tested.",[24,25,27],"h2",{"id":26},"who-it-is-for","Who it is for",[29,30,31,35,38,41],"ul",{},[32,33,34],"li",{},"Streamers who need instant sound cues",[32,36,37],{},"Friends who want a shared board for voice chat",[32,39,40],{},"Podcasters who record clips and drop them onto a board",[32,42,43],{},"Anyone who wants a customizable, local-first soundboard",[24,45,47],{"id":46},"what-you-can-do","What you can do",[29,49,50,53,56,59,62,65,68,71,74,82,85],{},[32,51,52],{},"Build a soundboard from your own audio files",[32,54,55],{},"Organize sounds in colored tabs, groups, tags, and search",[32,57,58],{},"Filter by tags (OR) and sort by name, date, duration, or size",[32,60,61],{},"Multi-select with marquee or Shift-range, then bulk color, move, or delete",[32,63,64],{},"Set per-sound volume from the context menu",[32,66,67],{},"Design the look with the Theme Creator",[32,69,70],{},"Record PC audio or a microphone in the Record Editor",[32,72,73],{},"Assign hotkeys to individual sounds",[32,75,76,77],{},"Trigger sounds from ",[78,79,81],"a",{"href":80},"\u002Fdocs\u002Fremote-control","Bitfocus Companion",[32,83,84],{},"Import and export a full soundboard to share with others",[32,86,87],{},"Use GIFs or images on sound buttons — from a local folder library, GifSnap, or KLIPY",[24,89,91],{"id":90},"license","License",[14,93,94,95,101],{},"SoundNinja is free software under ",[78,96,100],{"href":97,"rel":98},"https:\u002F\u002Fgithub.com\u002Fmarcus-universe\u002FSoundNinja\u002Fblob\u002Fmain\u002FLICENSE",[99],"nofollow","GPL-3.0",". Fork it, change it, share it.",[24,103,105],{"id":104},"next-steps","Next steps",[107,108,109,115,121],"ol",{},[32,110,111],{},[78,112,114],{"href":113},"\u002Fdocs\u002Finstallation","Install SoundNinja",[32,116,117],{},[78,118,120],{"href":119},"\u002Fdocs\u002Fadding-sounds","Add sounds",[32,122,123],{},[78,124,126],{"href":125},"\u002Fdocs\u002Forganizing-sounds","Organize your board",{"title":128,"searchDepth":129,"depth":129,"links":130},"",2,[131,132,133,134],{"id":26,"depth":129,"text":27},{"id":46,"depth":129,"text":47},{"id":90,"depth":129,"text":91},{"id":104,"depth":129,"text":105},"What SoundNinja is and what you can do with it.","md",{},true,1,"\u002Foverview",{"title":5,"description":135},"ciX-o6xn9WNflrd68yNckSQNZcLM9rkTqZf-UgjpGJc",[144,226,452,601,1014,1149,1295,1517],{"id":4,"title":5,"body":145,"description":135,"extension":136,"meta":224,"navigation":138,"order":139,"path":140,"seo":225,"stem":12,"__hash__":142},{"type":7,"value":146,"toc":218},[147,149,151,153,155,157,167,169,195,197,202,204],[10,148,5],{"id":12},[14,150,16],{},[14,152,19],{},[14,154,22],{},[24,156,27],{"id":26},[29,158,159,161,163,165],{},[32,160,34],{},[32,162,37],{},[32,164,40],{},[32,166,43],{},[24,168,47],{"id":46},[29,170,171,173,175,177,179,181,183,185,187,191,193],{},[32,172,52],{},[32,174,55],{},[32,176,58],{},[32,178,61],{},[32,180,64],{},[32,182,67],{},[32,184,70],{},[32,186,73],{},[32,188,76,189],{},[78,190,81],{"href":80},[32,192,84],{},[32,194,87],{},[24,196,91],{"id":90},[14,198,94,199,101],{},[78,200,100],{"href":97,"rel":201},[99],[24,203,105],{"id":104},[107,205,206,210,214],{},[32,207,208],{},[78,209,114],{"href":113},[32,211,212],{},[78,213,120],{"href":119},[32,215,216],{},[78,217,126],{"href":125},{"title":128,"searchDepth":129,"depth":129,"links":219},[220,221,222,223],{"id":26,"depth":129,"text":27},{"id":46,"depth":129,"text":47},{"id":90,"depth":129,"text":91},{"id":104,"depth":129,"text":105},{},{"title":5,"description":135},{"id":227,"title":228,"body":229,"description":447,"extension":136,"meta":448,"navigation":138,"order":129,"path":449,"seo":450,"stem":233,"__hash__":451},"content_en\u002Finstallation.md","Installation",{"type":7,"value":230,"toc":440},[231,234,248,252,274,277,281,295,298,302,327,338,342,349,353,368,398,415,436],[10,232,228],{"id":233},"installation",[14,235,236,237,241,242,247],{},"Grab a build from the ",[78,238,240],{"href":239},"\u002Fdownload","Download page"," or from ",[78,243,246],{"href":244,"rel":245},"https:\u002F\u002Fgithub.com\u002Fmarcus-universe\u002FSoundNinja\u002Freleases\u002Flatest",[99],"GitHub Releases",". SoundNinja is in early development, so treat builds as beta.",[24,249,251],{"id":250},"windows","Windows",[29,253,254,265,268,271],{},[32,255,256,260,261,264],{},[257,258,259],"strong",{},"Installer (.exe)"," or ",[257,262,263],{},"MSI (.msi)"," for 64-bit Windows",[32,266,267],{},"Landing page target: Windows 10 and newer",[32,269,270],{},"The app README also lists Windows 8 and above",[32,272,273],{},"The NSIS installer uses a dark theme. Pick a language during setup — SoundNinja remembers it on the next launch.",[14,275,276],{},"Run the installer, then launch SoundNinja from the Start menu.",[24,278,280],{"id":279},"macos","macOS",[29,282,283,289,292],{},[32,284,285,288],{},[257,286,287],{},"Universal .dmg"," for Apple Silicon and Intel",[32,290,291],{},"Landing page target: macOS 10.14 and newer",[32,293,294],{},"The app README lists macOS 10.15 and above",[14,296,297],{},"Open the disk image and drag SoundNinja to Applications.",[24,299,301],{"id":300},"linux","Linux",[29,303,304,310,316,324],{},[32,305,306,309],{},[257,307,308],{},"Debian (.deb)"," for Ubuntu \u002F Debian",[32,311,312,315],{},[257,313,314],{},"AppImage"," for other distros",[32,317,318,319,323],{},"After a release is published, Arch users can install ",[320,321,322],"code",{},"soundninja-bin"," from the AUR",[32,325,326],{},"Tested on Ubuntu 20.04",[14,328,329,330,333,334,337],{},"Desktop builds need WebKit and GTK packages. On Debian\u002FUbuntu that usually means ",[320,331,332],{},"libwebkit2gtk",", ",[320,335,336],{},"libgtk-3-0",", and an app-indicator library.",[24,339,341],{"id":340},"updates","Updates",[14,343,344,345,348],{},"In the app, open ",[257,346,347],{},"Help → Check for Updates",". You can also let SoundNinja check on startup in Settings.",[24,350,352],{"id":351},"build-from-source","Build from source",[14,354,355,356,361,362,367],{},"Need a custom build? Clone ",[78,357,360],{"href":358,"rel":359},"https:\u002F\u002Fgithub.com\u002Fmarcus-universe\u002FSoundNinja",[99],"the repo",", install ",[78,363,366],{"href":364,"rel":365},"https:\u002F\u002Fv2.tauri.app\u002Fstart\u002Fprerequisites\u002F",[99],"Tauri prerequisites",", then:",[369,370,374],"pre",{"className":371,"code":372,"language":373,"meta":128,"style":128},"language-bash shiki shiki-themes github-light github-dark","bun install\nbun run tauri:serve\n","bash",[320,375,376,388],{"__ignoreMap":128},[377,378,380,384],"span",{"class":379,"line":139},"line",[377,381,383],{"class":382},"sScJk","bun",[377,385,387],{"class":386},"sZZnC"," install\n",[377,389,390,392,395],{"class":379,"line":129},[377,391,383],{"class":382},[377,393,394],{"class":386}," run",[377,396,397],{"class":386}," tauri:serve\n",[14,399,400,333,403,406,407,410,411,414],{},[320,401,402],{},"npm",[320,404,405],{},"pnpm",", or ",[320,408,409],{},"deno"," work too. Production build: ",[320,412,413],{},"bun run tauri:build",".",[14,416,417,420,421,426,427,430,431,414],{},[257,418,419],{},"Windows only:"," every Windows compile includes ASIO via the ",[78,422,425],{"href":423,"rel":424},"https:\u002F\u002Fwww.steinberg.net\u002Fasiosdk",[99],"Steinberg ASIO SDK",". Run ",[320,428,429],{},"bun run setup:asio"," once (SDK is not in git). Linux and macOS use PipeWire \u002F Core Audio — skip that step. Full notes: ",[78,432,435],{"href":433,"rel":434},"https:\u002F\u002Fgithub.com\u002Fmarcus-universe\u002FSoundNinja\u002Fblob\u002Fmain\u002Fdocs\u002Fbuild-from-source.md",[99],"build-from-source.md",[437,438,439],"style",{},"html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":128,"searchDepth":129,"depth":129,"links":441},[442,443,444,445,446],{"id":250,"depth":129,"text":251},{"id":279,"depth":129,"text":280},{"id":300,"depth":129,"text":301},{"id":340,"depth":129,"text":341},{"id":351,"depth":129,"text":352},"Install SoundNinja on Windows, macOS, or Linux.",{},"\u002Finstallation",{"title":228,"description":447},"outLmMLibzOL_84ZfoLBrmphO4wVu0zaTr0u_DS4GUg",{"id":453,"title":454,"body":455,"description":595,"extension":136,"meta":596,"navigation":138,"order":597,"path":598,"seo":599,"stem":459,"__hash__":600},"content_en\u002Fadding-sounds.md","Adding Sounds",{"type":7,"value":456,"toc":587},[457,460,463,467,486,490,522,526,545,549,563,566,570,577,581],[10,458,454],{"id":459},"adding-sounds",[14,461,462],{},"A board is empty until you add clips. SoundNinja can import files, whole folders, a recording, or a shared soundboard pack.",[24,464,466],{"id":465},"import-audio-files","Import audio files",[107,468,469,480,483],{},[32,470,471,472,475,476,479],{},"Open ",[257,473,474],{},"File → Import Audio Files",", or use ",[257,477,478],{},"Import"," in the navbar.",[32,481,482],{},"Pick one or more audio files.",[32,484,485],{},"Sounds land in the current tab.",[24,487,489],{"id":488},"import-folders","Import folders",[107,491,492,502,505],{},[32,493,471,494,497,498,501],{},[257,495,496],{},"File → Import Folders"," (or ",[257,499,500],{},"Import Folders"," in the navbar).",[32,503,504],{},"Add one or more folders. Drag to reorder them before you import.",[32,506,507,508],{},"Choose how they land:\n",[29,509,510,516],{},[32,511,512,515],{},[257,513,514],{},"Import as Tabs"," — each folder becomes its own tab",[32,517,518,521],{},[257,519,520],{},"Import to current Tab"," — every file goes into the active tab",[24,523,525],{"id":524},"record-a-clip","Record a clip",[14,527,528,529,533,534,537,538,260,541,544],{},"Open the ",[78,530,532],{"href":531},"\u002Fdocs\u002Frecording-editor","Record Editor"," from the ",[257,535,536],{},"Record"," button in the player bar. Capture, trim, then ",[257,539,540],{},"Import selected",[257,542,543],{},"Import all"," into the current tab or a tab you pick.",[24,546,548],{"id":547},"import-a-soundboard","Import a soundboard",[14,550,551,554,555,558,559,562],{},[257,552,553],{},"File → Import Soundboard"," loads a shared pack. Packs are a ",[320,556,557],{},".zip"," that contains ",[320,560,561],{},"project.sninja"," plus the sound files. After import, open the project and play.",[14,564,565],{},"You can also keep several projects (profiles). Use the project selector to switch boards.",[24,567,569],{"id":568},"relink-missing-files","Relink missing files",[14,571,572,573,576],{},"If audio files move on disk, SoundNinja shows a ",[257,574,575],{},"Missing sound files"," dialog. Pick a folder to search and relink the clips.",[24,578,580],{"id":579},"next","Next",[14,582,583,584,414],{},"Organize tabs, tags, filters, and hotkeys in ",[78,585,586],{"href":125},"Organizing Sounds",{"title":128,"searchDepth":129,"depth":129,"links":588},[589,590,591,592,593,594],{"id":465,"depth":129,"text":466},{"id":488,"depth":129,"text":489},{"id":524,"depth":129,"text":525},{"id":547,"depth":129,"text":548},{"id":568,"depth":129,"text":569},{"id":579,"depth":129,"text":580},"Import audio, folders, recordings, and shared soundboards.",{},3,"\u002Fadding-sounds",{"title":454,"description":595},"SBUvL_H4633CrDyNUKazqKwru4aq1hhgoH4_o99rBsE",{"id":602,"title":586,"body":603,"description":1008,"extension":136,"meta":1009,"navigation":138,"order":1010,"path":1011,"seo":1012,"stem":607,"__hash__":1013},"content_en\u002Forganizing-sounds.md",{"type":7,"value":604,"toc":993},[605,608,615,619,646,653,657,660,674,681,687,691,701,706,738,742,748,752,785,791,795,798,825,828,832,846,850,856,877,893,900,904,914,917,921,928,938,944,948,956,963,990],[10,606,586],{"id":607},"organizing-sounds",[14,609,610,611,614],{},"SoundNinja is built for large libraries. Use ",[257,612,613],{},"tags and filters",", tabs, search, multi-select, and hotkeys so the clip you need is one click (or one key) away.",[24,616,618],{"id":617},"tabs","Tabs",[29,620,621,628,635],{},[32,622,623,624,627],{},"Add a tab with ",[257,625,626],{},"Add tab",". Give it a color so you can scan the bar fast.",[32,629,630,631,634],{},"The ",[257,632,633],{},"All"," view shows every sound across tabs.",[32,636,637,638,641,642,645],{},"A sound can belong to ",[257,639,640],{},"one or more tabs",". Right-click a sound and use ",[257,643,644],{},"Move to tab"," to assign it.",[14,647,648,649,652],{},"Tab transitions live in ",[257,650,651],{},"Settings → Main",": Slide, Fade, Buttons one by one, or None.",[24,654,656],{"id":655},"groups","Groups",[14,658,659],{},"Since v0.5.3, separators can become named groups:",[29,661,662,665,668,671],{},[32,663,664],{},"Add, rename, or remove a group from the context menu",[32,666,667],{},"Drag the group header — children move with it",[32,669,670],{},"Drop sounds in or out of a group",[32,672,673],{},"Set group border color, name color, and button alignment (or use the tab default)",[14,675,676,677,680],{},"You can still add a plain ",[257,678,679],{},"Separator"," if you only need a visual break.",[14,682,683,684,414],{},"Right-click empty board space to ",[257,685,686],{},"Add Group",[24,688,690],{"id":689},"tags-filters","Tags \u002F Filters",[14,692,693,694,697,698,700],{},"Tags cut across tabs. The slide-out ",[257,695,696],{},"Filter"," panel (sidebar ",[257,699,696],{},") is where you create them and turn them into a board filter.",[702,703,705],"h3",{"id":704},"create-and-edit-tags","Create and edit tags",[107,707,708,713,724,731],{},[32,709,471,710,712],{},[257,711,696],{}," in the sidebar.",[32,714,715,716,719,720,723],{},"Under ",[257,717,718],{},"Tags",", use ",[257,721,722],{},"Add tag"," — give it a name and a color.",[32,725,726,727,730],{},"Rename, recolor, or ",[257,728,729],{},"Delete tag"," from the same list.",[32,732,733,734,737],{},"If you see ",[257,735,736],{},"No tags yet",", add one here before you assign anything.",[702,739,741],{"id":740},"assign-tags-to-sounds","Assign tags to sounds",[14,743,744,745,747],{},"Right-click a sound → ",[257,746,718],{}," (checkboxes). A sound can have several tags. If none exist yet, the menu tells you to open the filter panel.",[702,749,751],{"id":750},"filter-the-board","Filter the board",[29,753,754,760,771,782],{},[32,755,756,757,414],{},"Toggle tags in the Filter panel, or as ",[257,758,759],{},"chips under the search bar",[32,761,762,763,766,767,770],{},"Matching is ",[257,764,765],{},"OR",": a sound stays visible if it has ",[257,768,769],{},"any"," selected tag.",[32,772,773,774,777,778,781],{},"The navbar ",[257,775,776],{},"Search"," field ",[257,779,780],{},"ANDs"," with the active tag filter (type + tags together).",[32,783,784],{},"Turn chips off (or clear the filter) to show the full tab again.",[14,786,787,788,414],{},"Colored tag names can appear on buttons. Toggle them in ",[257,789,790],{},"Settings → Behavior → Show tag badges",[24,792,794],{"id":793},"sort","Sort",[14,796,797],{},"Open the filter panel and pick a sort mode:",[29,799,800,806],{},[32,801,802,805],{},[257,803,804],{},"User defined"," — your tab order, with groups visible",[32,807,808,333,811,333,814,406,817,820,821,824],{},[257,809,810],{},"Name",[257,812,813],{},"Added time",[257,815,816],{},"Play time",[257,818,819],{},"File size"," — a flat sorted list; ",[257,822,823],{},"groups are hidden"," in these modes",[14,826,827],{},"Duration sort may warm duration metadata the first time you use it.",[24,829,831],{"id":830},"reorder","Reorder",[14,833,834,835,838,839,842,843,845],{},"Turn on drag-and-drop in ",[257,836,837],{},"Settings → Behavior"," (",[257,840,841],{},"Allow reorder","). Then drag sounds and groups into place. Reorder applies in ",[257,844,804],{}," sort.",[24,847,849],{"id":848},"multi-select","Multi-select",[14,851,852,853,855],{},"Turn on ",[257,854,849],{}," in the navbar, then:",[29,857,858,861,867,874],{},[32,859,860],{},"Click a sound to toggle it",[32,862,863,866],{},[257,864,865],{},"Shift+click"," to select a range from the last anchor",[32,868,869,870,873],{},"Drag a ",[257,871,872],{},"marquee"," on empty board space",[32,875,876],{},"Click empty board (or outside) to clear the selection",[14,878,879,880,333,883,333,886,889,890,414],{},"A bulk bar appears with the count, plus ",[257,881,882],{},"Color",[257,884,885],{},"Move to tab…",[257,887,888],{},"Delete",", and ",[257,891,892],{},"Done",[14,894,895,896,899],{},"In multi-select, each button shows an ",[257,897,898],{},"8-character ID chip",". Right-click the chip to copy it.",[24,901,903],{"id":902},"per-sound-volume","Per-sound volume",[14,905,744,906,909,910,913],{},[257,907,908],{},"Volume",". Drag the slider from 0% to 100%. ",[257,911,912],{},"Double-click"," the slider to reset to 100%.",[14,915,916],{},"This stacks with the master output volume in Settings.",[24,918,920],{"id":919},"hotkeys-and-sound-ids","Hotkeys and sound IDs",[14,922,923,924,927],{},"Every sound has an 8-character ID. Copy it from the button context menu (",[257,925,926],{},"Copy ID",") or the multi-select ID chip.",[14,929,471,930,933,934,937],{},[257,931,932],{},"Settings → Hotkeys"," to bind a key to a sound ID. Global hotkeys are optional. ",[257,935,936],{},"Assign hotkey"," on the context menu jumps there with the ID prefilled.",[14,939,940,941,943],{},"The same ID is what ",[78,942,81],{"href":80}," uses to trigger a clip.",[24,945,947],{"id":946},"background-images-and-colors","Background images and colors",[14,949,950,951,955],{},"Right-click a sound to set per-button colors or a background image. That is separate from the ",[78,952,954],{"href":953},"\u002Fdocs\u002Ftheme-editor","Theme Creator",", which styles the whole board.",[14,957,958,959,962],{},"The picker is a ",[257,960,961],{},"Background image"," dialog (PNG, JPEG, GIF, WebP):",[29,964,965,971,981],{},[32,966,967,970],{},[257,968,969],{},"Local files"," — add folders, pick a single file, search filenames, preview the grid, or remove a folder from the library",[32,972,973,976,977,414],{},[257,974,975],{},"GifSnap"," — search online GIFs with no API key. The first visit asks you to accept GifSnap requests; search results are cached to cut traffic. See ",[78,978,975],{"href":979,"rel":980},"https:\u002F\u002Fgifsnap.com",[99],[32,982,983,986,987,989],{},[257,984,985],{},"KLIPY"," — search online GIFs. Set your own API key in ",[257,988,837],{},". The key is not stored in project files.",[14,991,992],{},"After you pick an image, pan and crop it on the button.",{"title":128,"searchDepth":129,"depth":129,"links":994},[995,996,997,1002,1003,1004,1005,1006,1007],{"id":617,"depth":129,"text":618},{"id":655,"depth":129,"text":656},{"id":689,"depth":129,"text":690,"children":998},[999,1000,1001],{"id":704,"depth":597,"text":705},{"id":740,"depth":597,"text":741},{"id":750,"depth":597,"text":751},{"id":793,"depth":129,"text":794},{"id":830,"depth":129,"text":831},{"id":848,"depth":129,"text":849},{"id":902,"depth":129,"text":903},{"id":919,"depth":129,"text":920},{"id":946,"depth":129,"text":947},"Tags, filters, tabs, groups, sort, multi-select, volume, and hotkeys.",{},4,"\u002Forganizing-sounds",{"title":586,"description":1008},"nLl5gKMgo_ujNsmT6-aaMuxebqJtuEKMBGOijwuoYiw",{"id":1015,"title":1016,"body":1017,"description":1143,"extension":136,"meta":1144,"navigation":138,"order":1145,"path":1146,"seo":1147,"stem":1021,"__hash__":1148},"content_en\u002Ftheme-editor.md","Theme Editor",{"type":7,"value":1018,"toc":1137},[1019,1022,1028,1032,1059,1062,1066,1080,1084,1110,1113,1117,1123],[10,1020,1016],{"id":1021},"theme-editor",[14,1023,1024,1025,414],{},"The Theme Creator is the full visual editor for your board. Open it from ",[257,1026,1027],{},"Settings → Main → Theme Creator",[24,1029,1031],{"id":1030},"three-tabs","Three tabs",[107,1033,1034,1048,1054],{},[32,1035,1036,1039,1040,1043,1044,1047],{},[257,1037,1038],{},"General"," — theme name, shared colors, and font uploads (",[320,1041,1042],{},".ttf"," \u002F ",[320,1045,1046],{},".otf",")",[32,1049,1050,1053],{},[257,1051,1052],{},"Buttons"," — sound button colors, type, layout, and GIF overlay",[32,1055,1056,1058],{},[257,1057,618],{}," — tab bar colors, type, and border thickness",[14,1060,1061],{},"A live preview shows tabs and buttons as you edit.",[24,1063,1065],{"id":1064},"what-you-can-change","What you can change",[29,1067,1068,1071,1074,1077],{},[32,1069,1070],{},"Primary and accent colors, backgrounds, button colors, tab colors",[32,1072,1073],{},"Button and tab font family and size",[32,1075,1076],{},"Button width, radius, border width, gaps, and padding",[32,1078,1079],{},"GIF overlay opacity (normal and hover)",[24,1081,1083],{"id":1082},"save-and-share","Save and share",[29,1085,1086,1092,1098,1104],{},[32,1087,1088,1091],{},[257,1089,1090],{},"Export .css"," — write a theme file you can back up or send to a friend",[32,1093,1094,1097],{},[257,1095,1096],{},"Add to Themes"," — save the file into your Themes folder and apply it",[32,1099,1100,1103],{},[257,1101,1102],{},"Import .css"," — load a built-in preset or a saved theme",[32,1105,1106,1109],{},[257,1107,1108],{},"Reset"," — return to SoundNinja defaults",[14,1111,1112],{},"If you close the window with unsaved changes, SoundNinja asks you to save first.",[24,1114,1116],{"id":1115},"without-the-full-editor","Without the full editor",[14,1118,1119,1120,1122],{},"In ",[257,1121,651],{}," you can still:",[29,1124,1125,1128,1134],{},[32,1126,1127],{},"Pick a theme from the list",[32,1129,1130,1131,1047],{},"Edit CSS variables live (",[257,1132,1133],{},"Custom CSS",[32,1135,1136],{},"Import a theme file into the Themes folder",{"title":128,"searchDepth":129,"depth":129,"links":1138},[1139,1140,1141,1142],{"id":1030,"depth":129,"text":1031},{"id":1064,"depth":129,"text":1065},{"id":1082,"depth":129,"text":1083},{"id":1115,"depth":129,"text":1116},"Design colors, fonts, buttons, and tabs in the Theme Creator.",{},5,"\u002Ftheme-editor",{"title":1016,"description":1143},"zpMjxENa49aUipEX7TBxcqrbaZNweyJ019KsLAMJeoc",{"id":1150,"title":1151,"body":1152,"description":1289,"extension":136,"meta":1290,"navigation":138,"order":1291,"path":1292,"seo":1293,"stem":1156,"__hash__":1294},"content_en\u002Frecording-editor.md","Recording Editor",{"type":7,"value":1153,"toc":1283},[1154,1157,1163,1167,1173,1193,1196,1200,1225,1229,1244,1248,1262,1273],[10,1155,1151],{"id":1156},"recording-editor",[14,1158,1159,1160,1162],{},"Record a clip inside SoundNinja, trim it, then import it onto a tab. Open the editor with the ",[257,1161,536],{}," button in the player bar.",[24,1164,1166],{"id":1165},"choose-an-input","Choose an input",[14,1168,1119,1169,1172],{},[257,1170,1171],{},"Settings → Audio",":",[29,1174,1175,1181,1187],{},[32,1176,1177,1180],{},[257,1178,1179],{},"Input Devices"," — microphone",[32,1182,1183,1186],{},[257,1184,1185],{},"Output Devices (PC Audio)"," — loopback of what your PC is playing",[32,1188,1189,1192],{},[257,1190,1191],{},"Input volume"," — capture gain from 0% to 200%",[14,1194,1195],{},"The Record button uses the device you pick here.",[24,1197,1199],{"id":1198},"edit-the-take","Edit the take",[29,1201,1202,1205,1208,1216,1219,1222],{},[32,1203,1204],{},"Record and stop",[32,1206,1207],{},"Watch the input level meter",[32,1209,1210,260,1213],{},[257,1211,1212],{},"Normalize",[257,1214,1215],{},"Noise Cancelation",[32,1217,1218],{},"Trim the whole clip, trim to a selection, or delete a selection",[32,1220,1221],{},"Undo \u002F redo",[32,1223,1224],{},"Zoom in and out",[24,1226,1228],{"id":1227},"stage-and-import","Stage and import",[107,1230,1231,1234,1237],{},[32,1232,1233],{},"Add the selection or the full track to the staging list.",[32,1235,1236],{},"The list starts empty: record, edit, then add a clip.",[32,1238,1239,260,1241,1243],{},[257,1240,540],{},[257,1242,543],{}," into the current tab or a tab you choose.",[24,1245,1247],{"id":1246},"stem-separation-optional","Stem separation (optional)",[14,1249,1250,1251,1254,1255,260,1258,1261],{},"Official Windows, macOS, and Linux release builds ship the ",[257,1252,1253],{},"stems"," feature. The Record Editor can keep ",[257,1256,1257],{},"vocals",[257,1259,1260],{},"music"," using BS-RoFormer.",[14,1263,1264,1265,1268,1269,1272],{},"The model is about 158 MB and is ",[257,1266,1267],{},"not"," bundled with the installer. Download it from ",[257,1270,1271],{},"Settings → Stem Separation",", or accept the first-run prompt. The Windows installer can also offer to download the model on first launch.",[14,1274,1275,1276,1043,1279,1282],{},"Custom source builds need an extra flag (",[320,1277,1278],{},"tauri:serve:stems",[320,1280,1281],{},"tauri:build:stems",").",{"title":128,"searchDepth":129,"depth":129,"links":1284},[1285,1286,1287,1288],{"id":1165,"depth":129,"text":1166},{"id":1198,"depth":129,"text":1199},{"id":1227,"depth":129,"text":1228},{"id":1246,"depth":129,"text":1247},"Capture mic or PC audio, edit the clip, and drop it on your board.",{},6,"\u002Frecording-editor",{"title":1151,"description":1289},"WLz7ozLeboeLKawRkz53eUj5KSVCj4xkPMhYg5P_MIo",{"id":1296,"title":1297,"body":1298,"description":1511,"extension":136,"meta":1512,"navigation":138,"order":1513,"path":1514,"seo":1515,"stem":1302,"__hash__":1516},"content_en\u002Fremote-control.md","Remote Control",{"type":7,"value":1299,"toc":1504},[1300,1303,1306,1310,1339,1342,1345,1380,1384,1404,1407,1411,1443,1447,1453],[10,1301,1297],{"id":1302},"remote-control",[14,1304,1305],{},"SoundNinja can listen on your local network so Bitfocus Companion (or any HTTP\u002FWebSocket client) can play and stop sounds.",[24,1307,1309],{"id":1308},"enable-the-remote-server","Enable the remote server",[107,1311,1312,1317,1323,1329],{},[32,1313,471,1314,414],{},[257,1315,1316],{},"Settings → Remote",[32,1318,1319,1320,414],{},"Enable the remote server. Default port is ",[257,1321,1322],{},"7331",[32,1324,1325,1326,414],{},"Optional: set a token. Clients must send it as a Bearer token or ",[320,1327,1328],{},"?token=",[32,1330,1331,1332,1335,1336,414],{},"Copy the ",[320,1333,1334],{},"http:\u002F\u002FIP:PORT"," URL, or copy the system IP from ",[257,1337,1338],{},"Settings → About",[14,1340,1341],{},"Windows may show a firewall prompt the first time the server starts. Allow private-network access.",[24,1343,81],{"id":1344},"bitfocus-companion",[107,1346,1347,1354,1363,1373],{},[32,1348,1349,1350,414],{},"Install ",[78,1351,81],{"href":1352,"rel":1353},"https:\u002F\u002Fbitfocus.io\u002Fcompanion",[99],[32,1355,1356,1357,1362],{},"Download ",[78,1358,1361],{"href":1359,"rel":1360},"https:\u002F\u002Fgithub.com\u002Fmarcus-universe\u002Fcompanion-module-soundninja\u002Freleases\u002Flatest",[99],"SoundNinja-Companion.tgz",". There is no Companion Store package yet.",[32,1364,1365,1366,1369,1370,414],{},"In Companion: ",[257,1367,1368],{},"Modules → Load module package"," and pick the ",[320,1371,1372],{},".tgz",[32,1374,1375,1376,1379],{},"Add a ",[257,1377,1378],{},"Sound Ninja"," connection. Paste the PC IP, port, and token if you set one.",[24,1381,1383],{"id":1382},"actions","Actions",[29,1385,1386,1392,1398],{},[32,1387,1388,1391],{},[257,1389,1390],{},"Trigger Sound"," — pick from the live dropdown, or type an 8-character sound ID (Companion variables work)",[32,1393,1394,1397],{},[257,1395,1396],{},"Stop Sound"," — stop one playing sound by ID",[32,1399,1400,1403],{},[257,1401,1402],{},"Stop All"," — stop every playing sound",[14,1405,1406],{},"Copy a sound ID in SoundNinja from the button context menu or the multi-select ID chip.",[24,1408,1410],{"id":1409},"feedbacks-and-variables","Feedbacks and variables",[29,1412,1413,1419,1431,1437],{},[32,1414,1415,1418],{},[257,1416,1417],{},"Sound Playing"," — true while that sound ID is active (use it for button color)",[32,1420,1421,1424,1425,1043,1428],{},[320,1422,1423],{},"$(soundninja:connected)"," — ",[320,1426,1427],{},"true",[320,1429,1430],{},"false",[32,1432,1433,1436],{},[320,1434,1435],{},"$(soundninja:playing_count)"," — how many sounds are playing",[32,1438,1439,1442],{},[320,1440,1441],{},"$(soundninja:last_triggered)"," — last triggered sound ID",[24,1444,1446],{"id":1445},"http-api-advanced","HTTP API (advanced)",[14,1448,1449,1450],{},"Base path: ",[320,1451,1452],{},"\u002Fapi\u002Fv1",[29,1454,1455,1461,1467,1473,1483,1489,1498],{},[32,1456,1457,1460],{},[320,1458,1459],{},"GET \u002Finfo"," — app name, version, protocol, whether a token is required",[32,1462,1463,1466],{},[320,1464,1465],{},"GET \u002Fsounds"," — sound list (id, name, tabs, active)",[32,1468,1469,1472],{},[320,1470,1471],{},"GET \u002Fstate"," — sounds plus currently playing IDs",[32,1474,1475,1478,1479,1482],{},[320,1476,1477],{},"POST \u002Ftrigger"," with ",[320,1480,1481],{},"{ \"id\" }"," — play a sound",[32,1484,1485,1488],{},[320,1486,1487],{},"GET \u002Ftrigger\u002F:id"," — play (easy to test in a browser)",[32,1490,1491,1494,1495,1497],{},[320,1492,1493],{},"POST \u002Fstop"," with optional ",[320,1496,1481],{}," — stop one sound or all",[32,1499,1500,1503],{},[320,1501,1502],{},"GET \u002Fws"," — live state; send trigger\u002Fstop commands inbound",{"title":128,"searchDepth":129,"depth":129,"links":1505},[1506,1507,1508,1509,1510],{"id":1308,"depth":129,"text":1309},{"id":1344,"depth":129,"text":81},{"id":1382,"depth":129,"text":1383},{"id":1409,"depth":129,"text":1410},{"id":1445,"depth":129,"text":1446},"Trigger SoundNinja from Bitfocus Companion over the local network.",{},7,"\u002Fremote-control",{"title":1297,"description":1511},"G5BV4-hARZULMfsuLaTyczPL2Qt2QKaPmATZuk65Lik",{"id":1518,"title":1519,"body":1520,"description":1609,"extension":136,"meta":1610,"navigation":138,"order":1611,"path":1612,"seo":1613,"stem":1524,"__hash__":1614},"content_en\u002Fsupport.md","Support",{"type":7,"value":1521,"toc":1602},[1522,1525,1528,1532,1535,1542,1550,1554,1561,1563,1576,1580,1591,1595],[10,1523,1519],{"id":1524},"support",[14,1526,1527],{},"SoundNinja is a community project in early beta. The fastest way to get help is GitHub.",[24,1529,1531],{"id":1530},"report-a-bug-or-ask-a-question","Report a bug or ask a question",[14,1533,1534],{},"Open an issue on GitHub:",[14,1536,1537],{},[78,1538,1541],{"href":1539,"rel":1540},"https:\u002F\u002Fgithub.com\u002Fmarcus-universe\u002FSoundNinja\u002Fissues",[99],"github.com\u002Fmarcus-universe\u002FSoundNinja\u002Fissues",[14,1543,1544,1545,260,1547,1549],{},"Include your OS, SoundNinja version (",[257,1546,347],{},[257,1548,1338],{},"), and steps to reproduce.",[24,1551,1553],{"id":1552},"email","Email",[14,1555,1556,1557],{},"Maintainer contact: ",[78,1558,1560],{"href":1559},"mailto:contact@marcus-universe.de","contact@marcus-universe.de",[24,1562,341],{"id":340},[14,1564,1565,1566,1568,1569,1571,1572,414],{},"In the app, use ",[257,1567,347],{},". New builds also appear on the ",[78,1570,240],{"href":239}," and on ",[78,1573,246],{"href":1574,"rel":1575},"https:\u002F\u002Fgithub.com\u002Fmarcus-universe\u002FSoundNinja\u002Freleases",[99],[24,1577,1579],{"id":1578},"contribute","Contribute",[14,1581,1582,1583,1587,1588,414],{},"Pull requests are welcome. The app repo is ",[78,1584,1586],{"href":358,"rel":1585},[99],"github.com\u002Fmarcus-universe\u002FSoundNinja",". The project is licensed under ",[78,1589,100],{"href":97,"rel":1590},[99],[24,1592,1594],{"id":1593},"legal","Legal",[14,1596,1597,1598,414],{},"Imprint and contact details: ",[78,1599,1601],{"href":1600},"\u002Fimpressum","Impressum",{"title":128,"searchDepth":129,"depth":129,"links":1603},[1604,1605,1606,1607,1608],{"id":1530,"depth":129,"text":1531},{"id":1552,"depth":129,"text":1553},{"id":340,"depth":129,"text":341},{"id":1578,"depth":129,"text":1579},{"id":1593,"depth":129,"text":1594},"Where to get help and report bugs.",{},8,"\u002Fsupport",{"title":1519,"description":1609},"jRExoghmWgAfTmnmgqLhtQedAnIjqFIbv0_OahYrhTc",1792346514686]