Coder Social home page Coder Social logo

vgmstream

This is vgmstream, a library for playing streamed (prerecorded) video game audio.

Some of vgmstream's features:

  • Hundreds of video game music formats and codecs, from typical game engine files to obscure single-game codecs, aiming for high accuracy and compatibility.
  • Support for looped BGM, using file's internal metadata for smooth transitions, with accurate sample counts.
  • Subsongs, playing a format's multiple internal songs separately.
  • Many types of companion files (data split into multiple files) and custom containers.
  • Encryption keys, internal stream names, and many other unusual cases found in game audio.
  • TXTH function, to add external support for extra formats, including raw audio in many forms.
  • TXTP function, for real-time and per-file config, like forced looping, removing channels, playing certain subsong, or fusing multiple files into a single one.
  • Simple external tagging via .m3u files.
  • Plugins are available for various media player software and operating systems.

The main development repository: https://github.com/vgmstream/vgmstream/

Automated builds with the latest changes: https://vgmstream.org (https://github.com/vgmstream/vgmstream-releases/releases/tag/nightly)

Common releases: https://github.com/vgmstream/vgmstream/releases

Help can be found here: https://www.hcs64.com/

More documentation: https://github.com/vgmstream/vgmstream/tree/master/doc

Getting vgmstream

There are multiple end-user components:

The main library (plain vgmstream) is the code that handles the internal conversion, while the above components are what you use to get sound.

If you want to convert game audio to .wav, try getting vgmstream-cli (see below) then drag-and-drop one or more files to the executable (support may vary per O.S. or distro). This should create (file.extension).wav, if the format is supported. More user-friendly would be installing a player like foobar2000 (for Windows) or Audacious (for Linux) and the vgmstream plugin. Then you can directly listen your files and set options like infinite looping, or convert to .wav with the player's options (also easier if your file has multiple "subsongs").

See components in the usage guide for full install instructions and explanations. The aim is feature parity, but there are a few differences between them due to missing parts on vgmstream's side or lack of support in the player.

Note that vgmstream cannot encode (convert from .wav to a video game format), it only decodes (plays game audio).

Windows

Get the latest prebuilt binaries (CLI/plugins/etc) on our website:

Or the less frequent "official" releases on GitHub:

The foobar2000 component is also available on https://www.foobar2000.org based on current release.

If the above links fail, you may also try the alternative versions built by bnnm:

You may compile from source as well, see the build guide.

Linux

A prebuilt CLI binary is available. It's statically linked and should work on systems running Linux kernel v3.2 and above:

Building from source will also give you vgmstream.so (Audacious plugin), and vgmstream123 (command-line player).

When building, many extra components have to be installed or compiled separately, which the build guide describes in detail. For a quick build on Debian and Ubuntu-style distributions run ./make-build-cmake.sh. The script will need to install various dependencies, so you may prefer to copy commands and run them manually.

macOS

A prebuilt CLI binary is available as well:

Otherwise follow the build guide.

More info

Enjoy! hcs

vgmstream's Projects

vgmstream icon vgmstream

vgmstream - A library for playback of various streamed audio formats used in video games.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.