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