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