Disk

festivald saves all of its files within various "User OS" directories, owned by the user running it.

You can list all the PATHs on your system with:

./festivald --path

And delete them with with:

./festivald --delete

festivald saves everything into daemon/ because other Festival frontends also use the same festival project directory, e.g:

~/.local/share/festival/
  ├─ gui/
  ├─ daemon/
  ├─ cli/

Cache

Where festivald's cache data is saved (REST ZIP cache, etc).

PlatformValueExample
Windows{FOLDERID_LocalAppData}\Festival\cache\daemonC:\Users\Alice\AppData\Local\Festival\cache\daemon
macOS$HOME/Library/Caches/Festival/daemon/Users/Alice/Library/Caches/Festival/daemon
Linux$HOME/.cache/festival/daemon/home/alice/.cache/festival/daemon

The Cache sub-directories/files, and their purpose:

├─ daemon/
   │
   ├─ zip/ # Cached ZIP files
      │
      ├─ collection/ # Cached `Collection` ZIPs, created by the `/collection` REST endpoint
      │  │
      │  ├─ tmp/     # Temporary, un-finished ZIP files
      │
      ├─ playlist/   # Cached `Playlist` ZIPs, created by the `/playlist/*` REST endpoints
      │  │
      │  ├─ tmp/
      │
      ├─ artist/     # Cached `Artist` ZIPs, created by the `*_artist` REST endpoints
      │  │
      │  ├─ tmp/
      │
      ├─ album/      # Cached `Artist` ZIPs, created by the `*_album` REST endpoints
      │  │
      │  ├─ tmp/
      │
      ├─ art/        # Cached `Artist` ZIPs, created by the `art_*` REST endpoints
      │  │
      │  ├─ tmp/

Config

Where festivald's configuration files are saved.

PlatformValueExample
Windows{FOLDERID_RoamingAppData}\Festival\config\daemonC:\Users\Alice\AppData\Roaming\Festival\config\daemon
macOS$HOME/Library/Application Support/Festival/daemon/Users/Alice/Library/Application Support/Festival/daemon
Linux$HOME/.config/festival/daemon/home/alice/.config/festival/daemon

The Config sub-directories/files, and their purpose:

├─ daemon/
   │
   ├─ festivald.toml # Config file used by `festivald`

Data

Where festivald's main data is saved (the Collection, audio state, etc).

PlatformValueExample
Windows{FOLDERID_RoamingAppData}\Festival\data\daemonC:\Users\Alice\AppData\Roaming\Festival\data\daemon
macOS$HOME/Library/Application Support/Festival/daemon/Users/Alice/Library/Application Support/Festival/daemon
Linux$HOME/.local/share/festival/daemon/home/alice/.local/share/festival/daemon

The Data sub-directories/files, and their purpose:

├─ daemon/
   │
   ├─ state/
   │  ├─ audio.bin      # Audio state, e.g: elapsed time, current song.
   │  ├─ collection.bin # The main music `Collection`, holds metadata and PATHs to audio files.
   │  ├─ playlists.bin  # The `Playlists` database, holds all playlist data
   │
   ├─ txt/
   │  ├─ crash.txt  # Crash/panic data. Useful for bug reports.
   │  ├─ perf.json  # Collection creation performance timings, in JSON.
   │
   ├─ docs/ # The static documentations files served by `festivald`
   │
   ├─ image/ # Full-sized, un-changed `Album` art
   │
   ├─ signal/ # This is how `festivald` communicates with an existing one
              # (e.g `festivald signal --play`), via filesystem-based signals.
              # `festivald signal --play` quite literally just creates an empty
              # file inside this folder called `play`.