You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Simon Bruder 06eda30017
Add doctests to tarpaulin run types
3 years ago
src Simplify getting the audio data 3 years ago
.gitignore Add tarpaulin config 3 years ago
Cargo.lock Refactor osu beatmap 3 years ago
Cargo.toml Refactor osu beatmap 3 years ago
LICENSE-APACHE Relicense under dual MIT or Apache 3 years ago
LICENSE-MIT Relicense under dual MIT or Apache 3 years ago Relicense under dual MIT or Apache 3 years ago Initial commit 3 years ago
rustfmt.toml Add rustfmt.toml 3 years ago
tarpaulin.toml Add doctests to tarpaulin run types 3 years ago


BRD is a tool for working with Dance Dance Revolution related data. For currently supported features, see the Modes section.


Currently this is not published as a crate so you either have to clone the repository manually and run cargo build --release or you can use cargo install --git to install the binary without cloning.



This converts DDR step charts (.ssq files) and the corresponding audio (from .xwb files) to osu beatmaps (in an .osz container).

Basic usage:

brd ddr2osu -s file.ssq -x file.xwb -o file.osz --title "Song Title" --artist "Song Artist"
# use musicdb from DDR A
brd ddr2osu -s file.ssq -x file.xwb -o file.osz -m startup.arc

To learn more about supported options run brd ddr2osu --help

Known Problems

  • Since osu!mania does not support shock arrows, it either ignores them or (by default) replaces them with a two-key combination (↑↓ or ←→); you can change this with the (--shock-action option)
  • Known problems listed for unxwb (for wave banks without entry names having 2 entries, which often are preview and full song, the longest one is used by default).


This batch converts songs from a musicdb (and therefore currently only supports DDR A).

Basic usage (the ssq directory includes step charts and the xwb directory includes wave banks):

brd ddr2osu-batch -m startup.arc -o out -s ssq -x xwb --source "Dance Dance Revolution A"

Batch conversion for older versions is possible with the included shell script (usage guide at the top of the script).


This can list and extract sounds from XWB wave banks.

Basic Usage:

brd unxwb file.xwb
brd unxwb -l file.xwb

Known Problems

  • It only supports sounds in ADPCM format. If you want to extract sounds that are stored in other formats, you can use Luigi Auriemmas unxwb (Ctrl+F unxwb).
  • For wave banks without name entries it does not yet offer the option to read the names from XSB files and currently generates the names from the index in the file (starting from 0).


This can list and extract files from DDR A ARC archives. It extracts the contents into the current directory.

Basic Usage:

brd unarc file.arc
brd unarc -l file.arc


This lists all entries from musicdb.xml or startup.arc files (only DDR A is supported).

About this project

This is my first rust project. Dont expect too much from the code in terms of quality, robustness or idiomacity (especially regarding error handling). There currently are no tests for the actual functionality.

Large portions of this tool would not have been possible without the following resources:


This project is licensed under either of

at your option.

This project is not affiliated with ppy or Konami.