π±ππ±: Tabletop Audio Tool
An easy, lightweight tabletop audio tool for creating soundscapes and mixing audio while running tabletop RPGs. For Windows, macOS, and Linux.
About
π±ππ± is a lightweight desktop app that makes it easy to create soundscapes for your tabletop games by importing map images and audio files of your choice!
β οΈ
tat is currently only available to backers of the Warped Beyond Recognition & The Blades Of Gixa Kickstarters, and paid members of this site at the Expert and Companion tiers. A public release is coming eventually, after some more testing and development.
Videos
Learn all about how tat works with these showcase videos:
Changelog
v0.5.6: translation tools (2025-10-01)
- Added debug mode updates for translators.
- Added custom language setting for translators.
- Removed some console chatter and warnings.
v0.5.4: overhaul (2025-09-18)
- Rewrite of the audio system.
- Removed all audio libraries/dependencies (Howler and others).
- Re-implemented audio system with native WebAudio API, allowing for much more control over audio + seamless looping.
- Rewrite of the canvas system.
- Removed all canvas libraries/dependencies (Leaflet and others).
- Re-implemented an infinite canvas with a native
<canvas>element and re-implemented shape drawing, shape controls, & collision detection, allowing for much more control over canvas manipulation and visuals. - Upgraded to Svelte 5 and Sveltekit 2.
- Sound triggers. Each sound now has a trigger type, which determines when the sound plays, pauses, and/or restarts.
- Manual: Play/pause by clicking a button. (default).
- Play On Enter: Plays when the listener touches the emitter. Reverts to manual when triggered. Only available if the listener is not currently touching the trigger. Not available for Global sounds.
- Restart On Enter: Plays from beginning when the listener touches the emitter. Reverts to manual when triggered. Only available if the listener is not currently touching the trigger. Not available for Global sounds.
- Play Inside: Plays only while the listener is touching the emitter. Not available for Global sounds.
- Restart Inside: Plays from beginning when the listener touches the emitter, and plays only while the listener is touching the emitter. Not available for Global sounds.
- Timer: Set a timer, from
00:00:01β99:59:59. Plays when the timer reaches 00:00:00, then the timer resets. - Looping Toggle: Toggle whether the sound loops infinitely or plays once. Note: In Timer trigger mode, this instead loops the timer, not the audio directly.
- Better image scaling, now with the ability to flip images on X and Y axes and use proportional scaling on flipped images.
- Adaptive canvas grid changes based on zoom level, with coordinate numbers on grid lines.
- Improved canvas object ordering. Clicking a canvas object still selects the object, but no longer automatically raises it to the top of the order. You can instead right-click the image and select "bring to front" or "send to back", or drag and drop the object in its list on the media panel to reorder.
- Themes. Switch between themes in the Settings menu.Currently there are 3 built-in themes (more to come):
- Dark (default)
- Light
- Warped Beyond Recognition
- Context menus. Right-click on the canvas to get a context menu:
- Canvas menu: Shows the coordinates at the clicked point.
- Listener menu: Click the name to center the view on the listener. Shows the coordinates of the listener, and if they are not at the origin, you can re-center the listener and the view on the origin.
- Object menu: Click the object name to select/deselect the object. Click "Bring to front" to raise the object to the top of the order, or "Send to back" to lower it to the bottom.
- Localization support. There are no languages besides English yet, but the app can now support them. Check out the "Translation" section below if you'd be interested in doing a translation!
- Projects now save and load listener and view positions.
- Global image opacity control to match the global audio volume control.
- Improved Settings menu layout & design.
- About menu fixes. Updated some links, and the app version is now fetched properly.
- Signed macOS builds: Your computer will no longer claim the app is broken!
- Native OS menus (File, etc.) only show up on macOS, so they don't mess up the app window.
- UI Scrolling for volume, etc. should now be more consistent across platforms (you can still adjust sensitivity in the Settings menu).
- Much more help text across the app.
- Removed overscroll bounce affecting entire app.
- Added capital letters.
- Now only using Tabler icons for a more consistent visual look. (A few are modified slightly.)
- Basic debug display: Show/hide with backtick
`. Shows some debug information and draws some extra widgets.
v0.4.1: drag-and-drop (2024-12-22)
- added drag-and-drop support for media files
- fixed maximize button
v0.3.0: upgrades & tweaks (2024-12-19)
- upgraded wrapper to tauri 2
- added UI scroll sensitivity setting
- updated social media links on about page
- reset to default user settings now works properly
- added show/hide toggles for images and sounds
- nicer look for polygon middle anchors
v0.2.0: better for streaming (2024-01-29)
- settings option to hide window contents from stream
- fix for sometimes broken map at startup
- opening settings or about menu now closes other menus
- changelog corrections
v0.1.0: initial alpha release to kickstarter backers (2024-01-25)
- create projects
- save (+save as) projects: copies media files to folder, deletes unused media, writes project json
- open projects
- import images and sounds(supported image filetypes:
.png,.gif,.jpg,.jpeg,.webp. supported audio filetypes:.wav,.m4a,.mp3,.ogg,.flac) - move images and sounds
- resize images and sounds
- proportionally resize images
- move the sound listener pin
- select images and sounds
- delete selected images and sounds
- lock and unlock images and sounds to prevent editing/moving
- "about" menu
- title bar layout adjusts to window size
- confirm on exit when there are unsaved changes
- localizable text
- help text on hover in collapsible help bar
- map zoom in and out
- recenter on listener
- sidebar ui lists sounds and images in stacking order
- duplicate sounds and images
- adjust opacity of images
- adjust volume of sounds
- adjust global volume
- sound type - local: emanates from a point with falloff
- sound type - area: constant volume within a polygon
- sound type - global: audible everywhere
- change sound type: cycle between local, area, and global
- mute/unmute sounds
- solo/unsolo sounds
- pause/play sounds
- interactive sound playback display
- move listener with WASD
- user settings: reverse scroll direction, listener movement speed, default to proportional image scaling