Git Product home page Git Product logo

libgamemusic's Introduction

Camoto: Classic-game Modding Tools
Copyright 2010-2015 Adam Nielsen <[email protected]>
http://www.shikadi.net/camoto/

Camoto is a collection of utilities for editing (modding) "classic games",
those from the early to mid 1990s running under DOS.

This is libgamemusic, one component of the Camoto suite.  libgamemusic is a
library that can read and write many different music file formats, with a focus
on formats used by DOS games.

The library exposes each file format as a long list of "events", such as
note-on, tempo change, pitch bend, and so on.  This event list can then be
manipulated if required, and then written out to a music file in the same or
another format.

An instrument list is also provided, which allows manipulation of each
instrument used in the song.  Current instrument types are General MIDI (patch
numbers), OPL register values (used by Adlib songs) and sampled instruments
(as used by mod/tracker formats.)

File formats from the following games are supported:

  * Bio Menace (.imf)
  * Blake Stone (.wlf)
  * Commander Keen (.imf)
  * Cosmo's Cosmic Adventures (.imf)
  * Dark Ages (.mid, with OPL patches in sysex events) [read only]
  * Doofus (.bsa)
  * Doom (.mus)
  * Drum Blaster (early .cmf)
  * Duke Nukem II (.imf)
  * God of Thunder (song*, *song)
  * Heretic (.mus)
  * Jill of the Jungle (.cmf)
  * Kiloblaster (.cmf)
  * Major Stryker (.wlf)
  * Math Rescue (.cmf)
  * Monster Bash (.imf)
  * Operation Body Count (.wlf)
  * Raptor (.mus, alt tempo)
  * Scud Atak (.cmf)
  * Solar Winds (.cmf)
  * Traffic Department 2192 (.cmf)
  * Trugg (.dsm)
  * Vinyl Goddess From Mars (.mus/.tim) [read only]
  * Wacky Wheels (.klm) [partial]
  * Wolfenstein 3-D (.wlf)
  * Word Rescue (.cmf)
  * Xargon (.cmf)
  * Zone 66 CDFM (.670)

These auxiliary file formats have also been implemented:

  * DOSBox raw OPL (.dro, v1 and v2)
  * Instrument Bank (.ibk)
  * RDOS raw OPL (.raw)
  * ScreamTracker 3 (.s3m)
  * Type-0/single-track MIDI (.mid)
  * AdLib Instrument (.ins)

Many more formats are planned.

The library is compiled and installed in the usual way:

  ./configure && make
  sudo make install
  sudo ldconfig

You will need libgamecommon installed first.  If you downloaded the git
release, run ./autogen.sh before the commands above.  You can also run
"make check" to compile and run the tests.

This distribution includes an example program "gamemus" which serves as both
a command-line interface to the library as well as an example of how to use
the library.  This program is installed as part of the "make install" process.
See "man gamemus" for full details.

All supported file formats are fully documented on the ModdingWiki - see:

 * http://www.shikadi.net/moddingwiki/Category:Music_formats

This library is released under the GPLv3 license.

libgamemusic's People

Contributors

drmccoy avatar malvineous avatar

Stargazers

 avatar

Watchers

 avatar

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.