Metadata-Version: 2.1
Name: deflemask-preset-viewer
Version: 0.2.4
Summary: Reads and outputs FM parameters contained within DefleMask's DMP files as well as libOPNMIDI WOPN files
Home-page: https://github.com/rhargreaves/deflemask-preset-viewer
Author: Robert Hargreaves
Author-email: python-package@roberthargreaves.net
License: UNKNOWN
Description: # DefleMask Preset Viewer [![CircleCI](https://circleci.com/gh/rhargreaves/deflemask-preset-viewer.svg?style=svg)](https://circleci.com/gh/rhargreaves/deflemask-preset-viewer) [![PyPI version](https://badge.fury.io/py/deflemask-preset-viewer.svg)](https://badge.fury.io/py/deflemask-preset-viewer)
        
        Reads Deflemask preset files (DMP) and displays the stored parameters. Also supports dumping of bank and instrument data of [WOPN files](https://github.com/Wohlstand/libOPNMIDI/blob/master/fm_banks/wopn%20specification.txt) as used by [libOPNMIDI](https://github.com/Wohlstand/libOPNMIDI)
        
        ## Supported Formats
        
        - DefleMask preset versions 8 and 11
        - WOPN versions 1 and 2
        
        ## Installation
        
        ```
        $ pip3 install deflemask-preset-viewer
        ```
        
        ## Usage
        
        ### Output Parameters to Console
        
        #### DMP files
        
        ```sh
        $ deflemask-preset-viewer deflemask_preset_viewer/tests/data/sample.dmp
        Version    8       FM       Unknown
        Algorithm  3       LFO FMS  0
        Feedback   0       LFO AMS  0
        ------------------------------------------------------------
        Parameter  Op 1    Op 2    Op 3    Op 4
        ------------------------------------------------------------
        MUL        14      1       0       0
        TL         39      24      24      19
        AR         31      31      31      31
        D1R        15      14      9       9
        D1L        14      14      14      14
        RR         15      15      15      15
        AM         0       0       0       0
        RS         2       0       0       0
        DT1        3       3       3       3
        D2R        0       0       0       0
        SSG        0       0       0       0
        ```
        
        #### WOPN files
        
        ```sh
        $ deflemask-preset-viewer deflemask_preset_viewer/tests/data/sample.wopn
        WOPN
        M_Banks    2
        P_Banks    5
        LFO       On
        LFO Freq   1
        ============================================================
        M. Bank       0    Standard :3
        ============================================================
        ============================================================
        Instrument    0    * GrandPiano
        ============================================================
        Algorithm  2       LFO FMS  0
        Feedback   0       LFO AMS  0
        ------------------------------------------------------------
        Parameter  Op 1    Op 2    Op 3    Op 4
        ------------------------------------------------------------
        MUL        1       4       2       1
        TL         39      36      4       2
        AR         26      24      31      27
        D1R        7       9       23      4
        D1L        7       6       9       10
        RR         1       7       1       6
        AM         0       0       0       0
        RS         1       1       3       2
        DT1        0       6       7       3
        D2R        4       9       15      4
        SSG        0       0       0       0
        ============================================================
        Instrument    1    * BrightPiano
        ============================================================
        Algorithm  5       LFO FMS  0
        Feedback   7       LFO AMS  0
        ------------------------------------------------------------
        ...
        ```
        
        ### Output as C Code
        
        It can also generate C code for inclusion in the [Mega Drive MIDI Interface](https://github.com/rhargreaves/mega-drive-midi-interface) project. Specify `-c` to output parameters in this way:
        
        #### DMP files
        
        ```sh
        $ deflemask-preset-viewer deflemask_preset_viewer/tests/data/sample.dmp -c
        static const Channel SAMPLE = { 3, 0, 3, 0, 0, 0, 0,
            { 14, 3, 31, 2, 15, 0, 14, 0, 15, 39, 0 },
            { 1, 3, 31, 0, 14, 0, 14, 0, 15, 24, 0 },
            { 0, 3, 31, 0, 9, 0, 14, 0, 15, 24, 0 },
            { 0, 3, 31, 0, 9, 0, 14, 0, 15, 19, 0 } };
        ```
        
        #### WOPN files
        
        ```sh
        $ deflemask-preset-viewer deflemask_preset_viewer/tests/data/sample.wopn -c
        static const Channel M_BANK_0_INST_0_GRANDPIANO = { 2, 0, 3, 0, 0, 0, 0, {
            { 1, 0, 26, 1, 7, 0, 7, 4, 1, 39, 0 },
            { 4, 6, 24, 1, 9, 0, 6, 9, 7, 36, 0 },
            { 2, 7, 31, 3, 23, 0, 9, 15, 1, 4, 0 },
            { 1, 3, 27, 2, 4, 0, 10, 4, 6, 2, 0 } } };
        
        static const Channel M_BANK_0_INST_1_BRIGHTPIANO = { 5, 7, 3, 0, 0, 0, 0, {
            { 4, 2, 27, 1, 9, 0, 11, 5, 6, 33, 0 },
            { 4, 5, 27, 1, 9, 0, 7, 9, 7, 18, 0 },
            { 1, 2, 27, 1, 5, 1, 10, 5, 6, 8, 0 },
            { 6, 5, 27, 1, 9, 0, 3, 8, 7, 9, 0 } } };
        
        ...
        static const Channel M_BANK_0_INST_127_GUNSHOT = { 5, 7, 3, 0, 1, 0, 0, {
            { 3, 3, 31, 0, 3, 0, 15, 17, 5, 4, 0 },
            { 1, 0, 31, 0, 20, 0, 15, 20, 8, 0, 0 },
            { 1, 0, 31, 0, 15, 0, 15, 31, 8, 0, 0 },
            { 1, 0, 31, 0, 15, 0, 15, 16, 11, 0, 0 } } };
        
        static const Channel M_BANK_0[] = {
            M_BANK_0_INST_0_GRANDPIANO,
            M_BANK_0_INST_1_BRIGHTPIANO,
        ...
            M_BANK_0_INST_127_GUNSHOT
        };
        ```
        
        ## Build & Test
        
        ```sh
        $ make test
        ```
        
        ## Credits
        
        - This project includes FM samples in its automated tests by [Wohlstand](https://github.com/Wohlstand/libOPNMIDI/commits?author=Wohlstand).
        
Platform: UNKNOWN
Classifier: Programming Language :: Python :: 3.7
Classifier: Topic :: Multimedia :: Sound/Audio
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Description-Content-Type: text/markdown
