Giter Site home page Giter Site logo

minerscale / dmf2esf Goto Github PK

View Code? Open in Web Editor NEW

This project forked from bigevilcorporation/dmf2esf

0.0 2.0 0.0 7.49 MB

Converts Deflemask DMF modules to ESF files for use with Echo sound driver. Ported to linux!

License: GNU General Public License v2.0

C++ 0.92% C 92.41% Objective-C 6.61% Makefile 0.06%

dmf2esf's Introduction

NOTE: This hasn't been changed since the fork, disregard almost everything until I write a replacement :)

  • Matt

Converts Deflemask DMF modules to Echo Stream Format.

=====================================================

Usage

Ini mode:

./dmf2esf <options> input.ini

Individual file mode:

./dmf2esf <options> input.dmf output.esf

Options:

  • -i - Extracts FM instruments from the DMF file and outputs them to stdout. The output is designed to work with an ASM macro.

    I recommend piping the output to a file for easier copy-pasting.

  • -a - Output ESF data as ASM. Can be used to further tweak the module after conversion.

  • -e - Output ESF data optimized for EchoEX. Work in progress.

Ini mode:

The recommended way to convert files. Here's an example:

[0]                 ; File id. You can convert many files at once with the ini
                    ; mode.
input  = input.dmf  ; Input file
output = output.esf ; Output file

ins_00 = 0x0a       ; Instrument conversion table.
ins_01 = 0x0b    ; <- Here, DMF instrument 01 is converted to ESF instrument 0b
ins_02 = 0x0c       ; Using this, you can have multiple tracks use the same
ins_03 = 0x0d       ; instrument table.
ins_04 = 0x0e
ins_05 = 0x0f
ins_06 = 0x10
ins_07 = 0x07

pcm_c  = 0x09       ; Sample conversion table. First letter is the tone letter,
pcm_cs = 0x08       ; sharps are marked with 's'. Example:
                    ; pcm_c, pcm_cs, pcm_d, pcm_ds, etc.

[1]                 ; Next file.
input  = blah.dmf
...

Supported Effects

  • 8xx Set panning

  • Bxx Position jump (Only backwards jumps are supported, and only one per module)

  • Dxx Pattern break (Make sure not to include any position jumps in the skipped area)

  • 17xx DAC enable

  • 20xx PSG noise mode

Effects that will not work with vanilla Echo

Could be implemented in Echo-EX later.

  • 1xxx effects that modify instrument parameters.

Notes

Echo handles volume changes in a different way to Deflemask.

While Deflemask will decrease the total level for all operators, Echo will only decrease the total level for the final operator(s) using the current algorithm.

How to build

Use codeblocks to build. Remember to clean the project before building a new version or for another platform.

Tested to work on Windows 7 (with MinGW) and on Linux Mint 16.

Should only require GCC, the C library and STL. Using another compiler will probably work (with a few edits, maybe) but it's untested.

Credits

  • Programming: ctr

  • Echo sound driver: Sik

  • xm2esf (which this project is inspired by and has stolen code from): Oerg866

Libraries

  • miniz: Rich Geldreich

  • inih: Brush Technology

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.