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