Skip to content

Audio Library ​

Grimoire browses ambient tracks, soundscapes, music, and sound effects alongside your books, maps, and tokens, with in-browser playback and a persistent player that keeps playing while you navigate. Short sounds get a soundboard of their own, playing over the queue rather than interrupting it.

Folder layout ​

Add an audio/ folder at the root of your library, organized by category or creator:

audio/
└── Ambient/                ← shown as a group header in the audio library
    ├── cover.jpg           ← optional folder artwork (cover.* or folder.*)
    └── tavern-night.mp3

The folder name is used as a group header, exactly like maps and tokens.

Supported formats ​

.mp3, .ogg, .opus, .flac, .wav, .m4a, .m4b, .aac

On scan, Grimoire reads each track's embedded duration, title / artist / album, and track / disc number tags.

Track names and order ​

Each track in the audio list is named by its tags rather than its filename: the track number and title (03 · Die Sümpfe Harodiens), with the artist, album, and duration beneath. A file with no title tag shows its filename without the extension, and one with no artist or album shows its size in their place.

The audio library opens in Track order: within each folder, tracks are sorted by disc number, then track number, then name - so an album plays in order however its files are named. Untagged files sort by name, ahead of any numbered tracks in the same folder. Pick another order from the sort menu, or Track to return to album order.

Tracks added before Grimoire read track numbers pick them up on the next library scan.

Audiobooks ​

Audiobooks that come with a TTRPG product, such as an adventure path read aloud, are usually .m4b files. Drop them into audio/ like any other track and they play in the same player, with their embedded cover art and seeking through even a many-hour file.

If the file carries chapter markers, the player shows the chapter you are in under the title, and a chapters button lists them all. Pick one to jump straight to it. Chapter markers are read from .m4b/.m4a files (both the QuickTime and Nero layouts) and from MP3 chapter tags.

Not an audiobook app

Grimoire plays audiobooks; it does not remember where each user stopped or sync progress between devices. If that is what you are after, Audiobookshelf does it well and can point at the same files.

Artwork ​

For a track's artwork, Grimoire uses, in order:

  1. A cover.* or folder.* image in the track's folder, if present.
  2. The track's embedded album art.

Global audio player ​

Playback happens in a persistent pop-out player that keeps playing while you move around the app. Build a local queue by:

  • Playing a whole folder at once
  • Queueing tracks one at a time with Play Next — which turns into a check once a track is in the queue, so a glance tells you what you have already lined up
  • Having a GM play a campaign resource group
  • Playing all the audio embedded in a campaign wiki note (a note with several tracks plays as a playlist via Play all)

Expand the player to see and reorder upcoming tracks, with a repeat-current-track toggle. Once a queue is the way you want it, the save button in the queue header keeps it as a named playlist — see Saved playlists and soundboards.

Soundboard ​

The player queue suits long tracks — ambience, music, a scene's backing loop. Short sounds want something different: a door slam or a thunderclap needs to fire now, over whatever is already playing, without disturbing it. That is the soundboard.

Any track can go to either destination. The Add to soundboard button sits next to Play Next on audio rows and on a track's detail page, and multi-select adds a whole selection at once — select the tracks you want, then Add to Soundboard in the action bar at the bottom.

Each sound gets its own button in a grid. Tapping one plays it over the queue and over other pads, so several can overlap; tapping a pad that is already sounding restarts it. Every pad has its own loop toggle in its corner, and the panel's stop button silences everything at once.

Moving and shaping the board ​

The panel starts in the bottom-right corner and can be dragged anywhere on the page by its title bar. Its position, its pads, and its grid size are remembered — the board is still there after you navigate away, and after a restart.

The configure button (the gear) opens everything that changes the board's shape:

  • Grid size — anywhere from 1 to 8 columns by 1 to 15 rows. A 5×5 square, a 3×8 block, a single column of 15 down the side of the screen: whatever suits your table. More pads than the grid shows simply scroll.
  • Rearranging — drag pads into the order you want them.
  • Removing — each pad gets an × to take it off the board, and Clear board empties it in one go.

Nothing destructive sits on a live pad

Remove and clear appear only while you are configuring the board. Mid-session, a pad is just a pad — there is no delete button next to the sound you are reaching for.

Closing the panel leaves a small button in the corner to bring it back.

The board you are working on is stored in your browser, on the machine you built it on: it survives a reload and a restart, but it does not by itself follow you to another device. To keep a board for good — and to reach it from anywhere — save it as a named soundboard, below.

Saved playlists and soundboards ​

The queue and the soundboard are each a single, live thing: one queue, one board. That is fine while you are running a scene, and awkward everywhere else. A tavern board built for tonight has to be torn down to make room for the boss fight, and building the tavern again next session means starting over.

Saving fixes that. Both the player queue and the soundboard have a save button — in the queue header, and in the soundboard's title bar — which asks for a name and keeps what is currently loaded:

  • For a playlist, the tracks and their order.
  • For a soundboard, the pads, their order, each pad's loop setting, and the grid size.

Saved sets are stored on the server against your account, not in the browser, so a board built at home is waiting for you at the table, on whatever device you bring.

Loading one back ​

The Saved sets button on the Audio page lists everything you have kept — playlists and soundboards together, each with its track or pad count. From there you can:

  • Load a set into the live player or board.
  • Add a playlist to the queue instead of replacing it, so the next scene lines up behind the track that is still playing.
  • Rename or delete a set.

Loading replaces what is currently loaded, so if there is something there to lose, Grimoire asks first.

Saving over a name updates that set

Re-saving under a name you have already used updates that set rather than leaving you with two called "Tavern". A playlist and a soundboard may share a name, though — a "Tavern" of each is a perfectly reasonable pair.

When tracks go missing ​

A saved set points at tracks in your library rather than keeping its own copy of them. Two things follow from that:

  • Retitle a track in the library and the new title shows up everywhere it is saved.
  • Remove a track from the library and the sets referencing it still load — the missing entries are skipped, and Grimoire tells you how many it left out.

So a set built a year ago still works after a library reshuffle, rather than failing or leaving you with dead pads.

Saved sets are yours alone

A saved playlist or soundboard belongs to the account that made it. There is no way to hand one to another user or attach it to a campaign yet.

Tagging ​

Drop a tags.json file into any audio/ folder or subfolder to auto-apply tags on scan, just like maps and tokens. See Tags.

Audio tracks are matched in global search by filename, folder path, and tag. See Search.

Released under the GNU GPL v3.0 License.