I thought I’d take the opportunity to share a Bash script I made to automate ripping music off CUE/BIN files. It splits BINs into separate files, so it’s 1 file per track, and strips pregap data, encodes audio tracks to FLAC or Ogg Vorbis, and it also generates new CUE sheets.

Link to the script:

https://github.com/linux4ever07/scripts/blob/main/cuebin_extract.sh

The idea came to me some years ago when I noticed that GOG packaged some of their games in a dumb way. It was specifically DOS games (bundled with DOSBox) that had CD audio. They would include the original BIN file, but with a modified CUE sheet that would not let you access the high quality CD audio. On top of that, they included Ogg Vorbis tracks, wasting HDD space for no reason by effectively storing the music twice, but only letting you access the lower quality Vorbis tracks. So, I thought, why not just split the BIN, encode the audio tracks to FLAC, and that way you both get better audio quality and also use less HDD space. DOSBox supports CUE sheets that list FLAC, Ogg Vorbis and even Opus tracks.

I took inspiration from ‘bchunk’, which is a program that does something similar. However, bchunk converts data tracks to ISO files, which is not what I wanted. I wanted to keep the original tracks completely untouched, so my script will copy data tracks as normal BIN files. bchunk also can’t encode audio tracks to FLAC or Ogg Vorbis, but it will produce uncompressed WAV files. And bchunk doesn’t produce new CUE sheets for the created files.

I also use the script to extract the OST from random games. I put together a playlist with some of my favorite retro video game music that I extracted using the script:

https://www.youtube.com/watch?v=nHI7ghR6XX4

There’s other uses for the script, such as splitting BINs in general. For example, many BeOS / ZETA disc images contain boot floppies as the first track, and once you split the BIN you can access the boot floppy image. And you can create frankenstein disc images by exchanging tracks between different disc images.

The script is made for Linux, but should work on macOS / FreeBSD as well if you have a recent version of Bash installed, as well as ffmpeg, flac and oggenc.

  • rjek
    link
    fedilink
    arrow-up
    4
    arrow-down
    3
    ·
    7 months ago

    Why not just use cdparanoia with the original CD?

    • linux4ever07@lemmy.mlOP
      link
      fedilink
      arrow-up
      8
      ·
      7 months ago

      If you have the original disc, then yeah. The script is more meant for when you get CUE/BINs online, such as Redump disc images for example.

      • rjek
        link
        fedilink
        arrow-up
        2
        arrow-down
        22
        ·
        7 months ago

        Then then why not buy the CD?

        • linux4ever07@lemmy.mlOP
          link
          fedilink
          arrow-up
          15
          ·
          7 months ago

          Many older games are not sold physically anymore, and getting them on the second hand market can be pretty expensive depending on how rare they are.

        • Ohh@lemmy.ml
          link
          fedilink
          arrow-up
          5
          ·
          7 months ago

          I am not sure this script will help. But I actually have a lot of cue/bin files from back when I ripped my cd collection. If I remember correctly, I played them through mediamonkey (ape files) or foobar. Windows user then… Most CD’s are either lost or in the back of the attic somewhere. I consider the files dead, but havent deleted them yet. I use plex which can’t play cue/bin files. This script might make my old cd collection come alive again…

          • linux4ever07@lemmy.mlOP
            link
            fedilink
            arrow-up
            3
            ·
            7 months ago

            If they are CUE/BIN files the script will be able to handle them all without a problem. My advice is to use the ‘-flac’ argument when running the script, so you get lossless copies. But you should double-check the resulting CUE sheet, after processing each album. See if any of the pregaps are longer than a few seconds, cause in rare cases there’s hidden bonus tracks in the pregaps. If that’s the case, you can extract the pregaps separately with the ‘-pregaps’ argument. Good luck!

        • rjek
          link
          fedilink
          arrow-up
          2
          arrow-down
          16
          ·
          7 months ago

          I ask because that repo says “The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.” and yet it exists only to abuse other people’s creative rights.

          • fenndev@leminal.space
            link
            fedilink
            English
            arrow-up
            13
            arrow-down
            1
            ·
            7 months ago

            It is not an abuse of anyone’s creative rights to the convert music from a game you legally own to a different format.

          • linux4ever07@lemmy.mlOP
            link
            fedilink
            arrow-up
            11
            ·
            7 months ago

            Another thing to think about is that CD is a dying format, and the way those old CD-based games are going to be preserved long-term is in the form of disc images stored on HDDs.

          • gaylord_fartmaster@lemmy.world
            link
            fedilink
            arrow-up
            9
            ·
            7 months ago

            I’m sure the artists behind the music for the 20+ year old games this could be used for are really feeling the pain of their creative rights being abused from people trying to still enjoy their art after all this time, you wet blanket.