Backups

Custom Soundboard lets you create backups of your soundboards so you can share them with other people, use them on another device, or simply to back them up somewhere.

Backup types

When developing the format used for backups – and hence, for exposing them to the outside – I wanted to use existing standards instead of creating anything proprietary. As a result, Custom Soundboard only uses .xml and .zip files.

These are referred to as configuration backups and full backups respectively throughout this documentation.

Configuration backups

Configuration backups are .xml files that contain the configuration parameters of the soundboard they’re created for. This includes things like the soundboard’s names, its configured layout, colors, and more. The file also includes absolute paths to the files that are used by the soundboard, like recorded or imported audio files and thumbnails.

Importing such a backup on another device usually doesn’t make sense for two reasons.

  1. The absolute paths referenced by the backup are typically different on different devices.
  2. The backup is just a single file that does not include the actual files used by the soundboard.
If you want to know more about the format this file uses, see this.

Full backups

Full backups are .zip files that contain all the files required for your soundboard to work. This includes a configuration backup as well as all files it references, like audio files and thumbnails.

This can be imported on another device without requiring any pre-existing files or configuration.

If you want to know more about the format this file uses, see this.

Creating backups

Open a soundboard

To create a backup, you first need to open the soundboard you want to back up by tapping its card on the start screen of the app.

A device frame around the screenshot The app's welcome screen with a soundboard The app's welcome screen with a soundboard
A device frame around the screenshot A soundboard with no sounds listed A soundboard with no sounds listed
Tap one of your soundboards to open it

Open the backup dialog via the options menu

Open the options menu by tapping the three dots in the top-right corner of the soundboard screen and tap “Create backup”.

A device frame around the screenshot A soundboard with the "More options" button selected A soundboard with the "More options" button selected
A device frame around the screenshot The soundboard options menu with the "Create backup" option highlighted The soundboard options menu with the "Create backup" option highlighted
Open the options menu and choose "Create backup"

Select the backup type

Select the type of backup you want to create. The available options are configuration backups and full backups. After that, tap “Create”. You will then be prompted to choose a location you want the backup to be saved to. Choose something that suits your needs (the Downloads folder is usually a good choice) and wait for the backup to completed. The app will show you a message when it’s done creating your backup.

A device frame around the screenshot A dialog to select the type of backup to create A dialog to select the type of backup to create
Choose the backup type and tap "Create"

Importing backups

If you haven’t added any soundboards to the app yet, you can skip the full import process described below. Simply tap the “Import an existing soundboard” button on the welcome screen as can be seen in the screenshot. This will open a file picker that prompts you for a .xml or a .zip file.

A device frame around the screenshot The app's welcome screen with the backup import option highlighted The app's welcome screen with the backup import option highlighted
Tap "Import an existing soundboard" to import a backup

If you’ve already added soundboards to the app, the button on the welcome screen isn’t available anymore. Follow the steps below to import a soundboard.

Open the app’s settings

Since importing a backup isn’t specific to any one soundboard, the option is not found within a soundboard. Instead, you’ll need to open the settings by tapping the three dots in the top-right corner and selecting “Settings”.

A device frame around the screenshot The app's start screen with the "More options" button highlighted The app's start screen with the "More options" button highlighted
A device frame around the screenshot The options menu with the "Settings" option highlighted The options menu with the "Settings" option highlighted
Use the menu to open the app's settings

Navigate to “Files and backups”

Go to the “Files and backups” category within the settings.

A device frame around the screenshot The app's settings with the "Files and backups" category highlighted The app's settings with the "Files and backups" category highlighted
A device frame around the screenshot The "Files and backups" settings page The "Files and backups" settings page
Go to "Files and backups" in the app's settings

Import your backup

Tap the “Import soundboard” option. This will open a file picker that prompts you to select a .zip or an .xml file.

A device frame around the screenshot A settings screen with the "Import soundboard" button highlighted A settings screen with the "Import soundboard" button highlighted
A device frame around the screenshot A file picker for importing a soundboard A file picker for importing a soundboard
Tap "Import soundboard" and select your backup

The backup format

As described before, Custom Soundboard stores the main soundboard information in .xml files. You can see an example of such a file below.

When you create a full backup, the app creates a .zip file. You can also see an example of the format of such a backup below.

Configuration backups

Configuration backups follow a relatively simple format. However, this format changes once in a while. You can see the version the app used when creating your backup in the version attribute of the root soundboard tag. These versions are backwards-compatible. This means you can import older backups in newer versions of the app. However, you can’t import a newer backup in an older version of the app.

Because the app uses XML for backups, you can open them up, look at the format, and change the files so you’re happy with them. This allows for really advanced use cases like automation of soundboard creation, or advanced batch editing.

When modifying the backup files, expect some janky behavior or crashes in the app. This isn’t a well-tested use case. Also, there’s no guarantee for the stability of the format shown here.

When looking through the format, you may notice a couple things that look odd. For example, each sound contains a list of sources. There’s also the empty <main/> tag in each soundboard’s configuration. These parts mostly show features that aren’t yet implemented or are planned for future versions of the app. While the format may change at all points, these are places that are especially likely to change.

Example

soundboard.xml
<?xml version="1.0" encoding="UTF-8"?>
<soundboard name="Example" position="0" id="475a031cc00931101d23debbbd2a64c529339697baa0e99b09f74b83a3664d69" creationTimeMillis="1644413820000" version="9" type="ZIP">
    <configuration>
        <main/>
        <portrait consistentSoundSize="false" maxNameLength="30" soundsPerRow="3"/>
        <landscape consistentSoundSize="false" maxNameLength="30" soundsPerRow="5"/>
    </configuration>
    <sounds>
        <sound name="Example sound" creationTimeMillis="1644413840000" id="3e54332ef32d15a04d5c50d286099a186a4fe859c6c5195778b25139c409e428" position="0">
            <sources>
                <source type="FILE" path="content://me.maagk.johannes.customsoundboard.me.maagk.johannes.customsoundboard.provider/files/475a031cc00931101d23debbbd2a64c529339697baa0e99b09f74b83a3664d69/recorded/09_02_2022_13_37_15.mp3" volume="1.0">
                    <fadeOptions fadeIn="false" fadeInOnPlay="false" fadeInTime="0" fadeOut="false" fadeOutOnPause="false" fadeOutOnStop="false" fadeOutTime="0"/>
                    <loopOptions count="0" space="0"/>
                    <timeOptions startTime="1250" stopTime="0"/>
                </source>
            </sources>
            <color code=""/>
            <thumbnail path=""/>
        </sound>
    </sounds>
</soundboard>

Full backups

Full backups follow a really simple format. They are a single .zip file that contains the following entries:

  • <soundboard name>.xml

The configuration backup for the soundboard.

  • sounds/

A directory containing all the audio files for the sounds added to the soundboard.

The files are named using their corresponding sound’s ID (id attribute in each sound tag) instead of their visible name and don’t carry a file extension.

  • thumbnails/

A directory containing all thumbnails associated with the sounds added to the soundboard.

The files are named using their corresponding sound’s ID (id attribute in each sound tag) instead of their visible name and don’t carry a file extension.

This entry is only present when the soundboard contains at least one thumbnail.

Example

    • <soundboard name>.xml
      • 3e54332ef32d15a04d5c50d286099a186a4fe859c6c5195778b25139c409e428
      • b379138d90103110001943e89966931395e694f269c5979cb8e0fc7b1163fa93
      • 86aa9258f2520cdf140f8c31abdd8f9afc0bb353260bcaa2118514ad8c1d30c1
      • b379138d90103110001943e89966931395e694f269c5979cb8e0fc7b1163fa93
  • Last updated on