An open API service indexing awesome lists of open source software.

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

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