https://github.com/ic-scm/openrevolution
C/C++ BRSTM and other format tools
https://github.com/ic-scm/openrevolution
adpcm audio-files audio-files-conversion audio-formats audio-player bcstm bcwav bfstm bfwav brstm bwav converter dspadpcm encoder idsp player rtaudio smash-custom-music wav
Last synced: 14 days ago
JSON representation
C/C++ BRSTM and other format tools
- Host: GitHub
- URL: https://github.com/ic-scm/openrevolution
- Owner: ic-scm
- License: gpl-3.0
- Created: 2019-10-30T19:45:18.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2026-04-14T20:46:29.000Z (3 months ago)
- Last Synced: 2026-06-22T09:37:52.982Z (14 days ago)
- Topics: adpcm, audio-files, audio-files-conversion, audio-formats, audio-player, bcstm, bcwav, bfstm, bfwav, brstm, bwav, converter, dspadpcm, encoder, idsp, player, rtaudio, smash-custom-music, wav
- Language: C++
- Homepage:
- Size: 436 KB
- Stars: 62
- Watchers: 5
- Forks: 6
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# OpenRevolution
C++ BRSTM tools
Decode, encode, play and convert BRSTM files and other Nintendo audio formats.
Supports lossless conversion between supported formats and up to 8 tracks/16 channels.
## Audio formats
| Format | Read | Write |
|:------------ |:-------------------:|:-------------------:|
| BRSTM | Yes | Yes |
| BCSTM | Yes | Yes |
| BFSTM | Yes | Yes |
| BWAV | Yes | Yes |
| BCWAV | Yes | Yes |
| BFWAV | Yes | Yes |
| IDSP | Yes | No |
## Usage
Compile everything by running build.sh or using another compiler with the correct options.
**Windows**: A Windows build of version 2.7.0 is available [here](https://github.com/ic-scm/openrevolution/releases/download/v2.7.0/brstm_converter_2.7.0_windows.zip). You may experience a bug when converting files - please read the attached PDF file. Please note that this build only includes the brstm_converter program, it does not include the brstm_rt audio player.
**MacOS**: Install with Homebrew through [freeapp2014/stuff](https://github.com/FreeApp2014/homebrew-stuff) (instructions in repository).
**Arch Linux**: Install [openrevolution-git](https://aur.archlinux.org/packages/openrevolution-git/) from AUR.
Dependencies for library:
- None
Dependencies for converter (brstm_converter)
- ffmpeg (optional) - Audio manipulation with the --ffmpeg option
Dependencies for player (brstm_rt)
- librtaudio (version 6.x.x) - Audio output
- unistd.h and termios.h
- POSIX Threads
Usage guides:
- [src/](/src): Command line tools
- [src/rt_player](/src/rt_player): RtAudio command line player
- [src/lib](/src/lib) Library documentation
## Thanks to
- [WiiBrew](https://wiibrew.org/wiki/BRSTM_file): BRSTM file structure reference
- [kenrick95/nikku](https://github.com/kenrick95/nikku) and [BrawlLib](https://github.com/libertyernie/brawltools): DSPADPCM decoder reference
- [jackoalan/gc-dspadpcm-encode](https://github.com/jackoalan/gc-dspadpcm-encode): DSPADPCM encoder
- [gota7](https://gota7.github.io/Citric-Composer/specs/binaryWav.html): BWAV file structure reference
- [mk8.tockdom.com](http://mk8.tockdom.com/wiki/Main_Page) ([\[1\]](http://mk8.tockdom.com/wiki/BFSTM_\(File_Format\))[\[2\]](http://mk8.tockdom.com/wiki/BFWAV_\(File_Format\))) and [3dbrew.org](https://www.3dbrew.org/wiki/Main_Page) ([\[1\]](https://www.3dbrew.org/wiki/BCSTM)[\[2\]](https://www.3dbrew.org/wiki/BCWAV)): BCSTM, BFSTM, BCWAV, BFWAV file structure references
- [FreeApp2014](https://github.com/FreeApp2014): Windows brstm_converter builds, and macOS homebrew tap
- [Gianmarco Gargiulo](https://gianmarco.ga/): Icon/Logo
- [RtAudio](https://github.com/thestk/rtaudio): RtAudio library
## Planned features
- GUI program
- Support for more file formats
- Multithreaded encoding