Extract audio and cue sheet from an NRG audio CD image.
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.
Matteo Cypriani e801140625 Handle 2448-byte sectors
Handle images that have 2448-byte sectors, i.e. 2352 audio bytes + 96
sub-channel bytes.
7 years ago
src Handle 2448-byte sectors 7 years ago
tests Add minimalistic integration tests 7 years ago
.gitignore Add .gitignore 7 years ago
COPYING Add copyright & license 7 years ago
Cargo.lock Cue sheet display working 7 years ago
Cargo.toml Add copyright & license 7 years ago
README.md Add README.md 7 years ago


NRGrip - extract audio track and cue sheet from an NRG audio CD image

This program works on a Nero Burning ROM's NRG image of an audio CD and is able to:

  • read and display its metadata;

  • extract the cue sheet;

  • extract the raw audio tracks as one single file, which can then be encoded by the user to a more convenient audio format such as FLAC, and possibly split according to the cue sheet.

For now, only NRG v2 is handled (not NRG v1), and not all of the metadata chunks are decoded. If you have interest in adding support for additional chunks or formats and have a test image handy, please contact the author or open a ticket. In particular, it would be interesting to support ISRC/CD-Text; handling of multisession and hybrid (audio and data) discs would also be a nice feature.

NRGrip is licensed under the terms of the Expat (MIT) license. See the COPYING file.


NRGrip is written in Rust. Make sure Cargo is installed on your system, then:

cargo build --release
cargo install


At the moment, NRGrip doesn't take any options, you just invoke it with the name of an NRG image:

nrgrip image.nrg

The cue sheet will be extracted as image.cue, and the audio data as image.raw.

To play the extracted raw audio data, you may use aplay, from the ALSA utils (you can also do that directly on the NRG file):

aplay -f cd image.raw

To encode the raw audio data to FLAC (and embed the cue sheet in it):

flac --endian=little --sign=signed --channels=2 --bps=16 \
  --sample-rate=44100 --cuesheet=image.cue image.raw

To split the FLAC file according to the cue sheet, you may use, cuetools and shntool:

cuebreakpoints image.cue | shnsplit -o flac image.flac

Or mp3splt:

mp3splt -c image.cue image.flac