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