{"id":30662649,"url":"https://github.com/2xaa/genmdm-editor","last_synced_at":"2025-08-31T16:49:55.956Z","repository":{"id":37182247,"uuid":"252677215","full_name":"2xAA/genmdm-editor","owner":"2xAA","description":"A web-based interface for genMDM and Mega Drive MIDI Interface, MIDI controllers for the Sega Mega Drive/Genesis.","archived":false,"fork":false,"pushed_at":"2025-05-05T17:53:50.000Z","size":3042,"stargazers_count":40,"open_issues_count":16,"forks_count":6,"subscribers_count":4,"default_branch":"next","last_synced_at":"2025-05-05T19:01:14.019Z","etag":null,"topics":["genmdm","midi","sega-genesis","sega-mega-drive","ym2612"],"latest_commit_sha":null,"homepage":"https://2xaa.github.io/genmdm-editor/","language":"Vue","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/2xAA.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null},"funding":{"github":"2xAA","custom":["https://www.paypal.me/2xAA"]}},"created_at":"2020-04-03T08:39:22.000Z","updated_at":"2025-05-05T17:53:35.000Z","dependencies_parsed_at":"2025-05-05T18:55:00.345Z","dependency_job_id":"3773ccd5-dbc1-46f4-861d-6ed9dbc052ab","html_url":"https://github.com/2xAA/genmdm-editor","commit_stats":null,"previous_names":[],"tags_count":32,"template":false,"template_full_name":null,"purl":"pkg:github/2xAA/genmdm-editor","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/2xAA%2Fgenmdm-editor","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/2xAA%2Fgenmdm-editor/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/2xAA%2Fgenmdm-editor/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/2xAA%2Fgenmdm-editor/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/2xAA","download_url":"https://codeload.github.com/2xAA/genmdm-editor/tar.gz/refs/heads/next","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/2xAA%2Fgenmdm-editor/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":273010975,"owners_count":25030369,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-31T02:00:09.071Z","response_time":79,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["genmdm","midi","sega-genesis","sega-mega-drive","ym2612"],"created_at":"2025-08-31T16:49:55.060Z","updated_at":"2025-08-31T16:49:55.951Z","avatar_url":"https://github.com/2xAA.png","language":"Vue","funding_links":["https://github.com/sponsors/2xAA","https://www.paypal.me/2xAA","https://paypal.me/2xAA"],"categories":[],"sub_categories":[],"readme":"\u003ch1 align=\"center\"\u003egenMDM Editor\u003c/h1\u003e\n\u003cp align=\"center\"\u003e\u003cimg alt=\"genmdm-editor logo\" src=\"https://github.com/2xAA/genmdm-editor/raw/main/build/icon.png\" width=\"256\" /\u003e\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://github.com/2xAA/genmdm-editor/graphs/commit-activity\" target=\"_blank\"\u003e\n    \u003cimg alt=\"Maintenance\" src=\"https://img.shields.io/badge/Maintained%3F-yes-green.svg\" /\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://github.com/2xAA/genmdm-editor/blob/main/LICENSE\" target=\"_blank\"\u003e\n    \u003cimg alt=\"License: MIT\" src=\"https://img.shields.io/github/license/2xAA/genmdm-editor\" /\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\u003cp align=\"center\"\u003e\ngenMDM editor is a GUI for \u003ca href=\"https://catskullelectronics.com/products/genmdm\" target=\"_blank\"\u003egenMDM\u003c/a\u003e, a MIDI controller for the Sega Mega Drive and Genesis.\u003cbr\u003e\nAlso fully compatible with \u003ca href=\"https://github.com/rhargreaves/mega-drive-midi-interface\" target=\"_blank\"\u003eMega Drive MIDI Interface\u003c/a\u003e.\n\u003c/p\u003e\n\n\u003cdiv align=\"center\"\u003e\n  \u003cvideo src=\"https://user-images.githubusercontent.com/554219/232328348-34175e38-a6a9-43a4-8781-14f210814465.mp4\"\u003e\u003c/video\u003e\n\u003c/div\u003e\n\n## About genMDM Editor\n\ngenMDM Editor is a desktop executable and a webpage.\n\nThe webpage works in Firefox (starting at Firefox version 99) and Chromuim based browsers.\nChromium based browsers include Google Chrome, Opera, Brave and Microsoft Edge.\n\nUsing genMDM Editor on iOS/iPadOS is possible using Web MIDI Browser, found here: [apps.apple.com/app/web-midi-browser](https://apps.apple.com/app/web-midi-browser/id953846217)\n\ngenMDM Editor is compatible with both the GenMDM, by little-scale, and the MDMI (Mega Drive MIDI Interface), by Robert Hargreaves.\nThis Readme will refer to both interfaces as **\"your Sega\"**, for convinience.\n\n## Getting Started\n\nRead this README!\n\nIf you have any questions that aren't covered in the linked YouTube video below or this README, please start a discussion at [genmdm-editor/discussions](https://github.com/2xAA/genmdm-editor/discussions).\n\n## Contributing\n\nContributions, issues and feature requests are welcome!\n\nFeel free to check [issues page](https://github.com/2xAA/genmdm-editor/issues).\n\n## Support this project\n\nGive a ⭐️ if this project helped you!\n\nConsider sponsoring me on GitHub or PayPal: [github.com/sponsors/2xAA](https://github.com/sponsors/2xAA) / [paypal.me/2xAA](https://paypal.me/2xAA).\n\n## Using genMDM Editor\n\n### Quickstart\n\nCheck out the overview video on how to use the editor: [youtu.be/btzQHaF8cU4](https://youtu.be/btzQHaF8cU4)\n\n### Getting genMDM Editor\n\n#### Desktop\n\nDownload the latest desktop release at [genmdm-editor/releases/latest](https://github.com/2xAA/genmdm-editor/releases/latest).\n\n#### Web\n\nNavigate to [2xaa.github.io/genmdm-editor](https://2xaa.github.io/genmdm-editor).\n\n### Mega Drive MIDI Interface Compatibility\n\nIf using MDMI (Mega Drive MIDI Interface), ensure the **\"MDMI Compatibility\"** option is turned on _after_ connecting the MDMI.\nThe option sends a SysEx message to MDMI to invert the operator's Total Levels, as GenMDM does.\n\nWith the **\"MDMI Compatibility\"** option turned on, changing channels in the editor informs MDMI to show the channel's settings on the video output.\nMore information: [mega-drive-midi-interface/wiki/UI-Features](https://github.com/rhargreaves/mega-drive-midi-interface/wiki/UI-Features#displaying-current-fm-channel-parameters)\n\n### File Formats\n\n#### `.genm` Format\n\nThe genMDM Editor was build around the `.genm` file format, which can hold 128 GenMDM instruments.\nEach instrument in the `.genm` file can store every parameter of the GenMDM instrument.\n\nThe `.genm` format does not include any of the editor settings, the global settings or the DAC Control settings.\n\nMore information: [little-scale.blogspot.com/genm-file-format](http://little-scale.blogspot.com/2013/02/genm-file-format-genmdm-instrument.html)\n\n##### `.genm` load/save\n\nPressing the **\"LOAD GENM\"** button will open a file browser to choose a `.genm` file to load.\nLoading a `.genm` file will overwrite the current patches in the editor. It will not load anything to the current channel.\n\nPressing the **\"SAVE GENM\"** button will open a file browser to choose where to save a `.genm` file containing all the patches in the editor's patch list.\n\n#### Instrument Files\n\ngenMDM Editor can import and export `.tfi`, `.dmp` and `.y12` formats using their corresponding **\"IMPORT\"** and **\"EXPORT\"** buttons.\n\nThe **\"IMPORT\"** buttons will open a file browser to load an instrument to the current channel - it does not write to the patch slot.\n\nThe **\"EXPORT\"** buttons will open a file browser to save the current channel's parameters to the selected instrument file format - it does not read from the patch slot.\n\n| Format | Information                                                                                                                                                                                         | Pitfalls                                                     |\n| ------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------ |\n| `.dmp` | `.dmp` is Deflemask's instrument format. It's a multi-system format, so not all patches can be imported into genMDM Editor - only those which were saved from the Sega Genesis system in Deflemask. | Doesn't hold the stereo configuration option.                |\n| `.tfi` | `.tfi` is TFM Music Maker's instrument format.                                                                                                                                                      | Doesn't hold AM or FM LFO parameters or stereo configuation. |\n| `.y12` | `.y12` is a format for storing YM2612 FM preset data, similar to `.tfi`                                                                                                                             | Doesn't hold AM or FM LFO parameters or stereo configuation. |\n\n#### `.ged` format\n\nThis is a format for the genMDM Editor's internal state. It uses [`compress-json`](https://github.com/beenotung/compress-json) to serialise the internal state to a file.\nIt contains the entire application state, including patches and editor settings.\n\n### State\n\nNeither GenMDM or MDMI save their session state when powered off, but genMDM Editor does.\n\n#### Autosave\n\ngenMDM Editor saves your editor state automatically, so if your Sega loses power, crashes, etc., your state can be restored by plugging in your Sega, selecting it in the MIDI Output dropdown and pressing the **\"Send State\"** button.\n\n#### Load/Save\n\ngenMDM Editor's state can be saved to a file at any time by pressing the **\"Save State\"** button.\n\nThe `.ged` files can be loaded back into the editor with the **\"Load State\"** button. Loading a `.ged` file will overwrite the editor's autosaved state immediately.\nIf you want to sync this state to your Sega, press the **\"Send State\"** button.\n\n### MIDI\n\n#### MIDI CC\n\nThe genMDM Editor UI reacts to incoming MIDI CC messages. It is recommended to route all MIDI messages to the Sega through genMDM Editor to keep the UI in sync.\n\nFind GenMDM's MIDI CC parameters here:\n[little-scale.com/GENMDM/GENMDM_102/GENMDM_102.txt](https://web.archive.org/web/20210205134907/http://little-scale.com/GENMDM/GENMDM_102/GENMDM_102.txt) (102 version linked, which is the version catskull used in their production runs)\n\nFind MDMI's MIDI CC parameters here:\n\n- [mega-drive-midi-interface/wiki/Common-MIDI-CCs-\u0026-Events](https://github.com/rhargreaves/mega-drive-midi-interface/wiki/Common-MIDI-CCs-\u0026-Events)\n- [mega-drive-midi-interface/wiki/FM-Parameter-CCs](https://github.com/rhargreaves/mega-drive-midi-interface/wiki/FM-Parameter-CCs)\n\n#### Voice Configuration\n\nThe voice configuration dialog can be accessed by the **\"VOICE CONFIGURATION\"** button in the **\"EDITOR SETTINGS\"** section.\n\nThis dialog's features adapt to whether GenMDM is being used or MDMI.\nPlease read below which features are available for which platforms.\n\n##### Voice Groups\n\ngenMDM Editor can group the 6 FM channels in up to 3 groups. Groups are only available for **\"POLY\"** and **\"UNI\"** (unison) modes.\n\nGroups can only contain channels set to the same mode. You cannot mix **\"MONO\"**, **\"POLY\"** and **\"UNI\"** in the same voice group.\n\nIf a channel is in a group, notes and CC values are also sent to that channel will also be sent to the channels in its group. If you change any channel parameters in the editor, those changes are made across all the channels in the group.\n\n##### Mono\n\nIf a channel is set to **\"MONO\"** it may not be in a group.\n\n##### Polyphony\n\nGenMDM does not support polyphony, though MDMI has its own polyphony the editor currently does not use this.\n\nExample setup: Channels 1, 2 and 6 are in group 1 and are all set to **\"POLY\"** mode. I play a 3 note chord and the notes are spread across channels 1, 2 and 6, leaving channels 3, 4 and 5 free to do something else.\n\n##### Unison\n\nExample setup: Channels 4 and 5 are in group 2 and are all set to **\"UNI**\" mode. I load a patch into channel 4 and the same is loaded into channel 5. I play a single note and both channels play the same sound at the same time.\n\n##### Detune\n\nThis feature is only available for MDMI. See CC 85 in MDMI's docs here: [mega-drive-midi-interface/wiki/MIDI-CCs-\u0026-Events](https://github.com/rhargreaves/mega-drive-midi-interface/wiki/MIDI-CCs-\u0026-Events).\n\nDetune is especially useful for unison voice modes, to create chorus effects.\n\nExample setup: Channels 4 and 5 are in group 2 and are all set to **\"UNI**\" mode. I load a patch into channel 4 and the same is loaded into channel 5.  \nDetune on channel 4 is set to 41 and channel 5 is set to 79. I play a single note and both channels play the same note, however since they are playing the same sound but slightly detuned a phasing/chorus effect is produced.\n\n##### Portamento\n\nThis feature is only available for MDMI. See CC 65 in MDMI's docs here: [mega-drive-midi-interface/wiki/MIDI-CCs-\u0026-Events](https://github.com/rhargreaves/mega-drive-midi-interface/wiki/MIDI-CCs-\u0026-Events).\n\nPortamento can be toggled On or Off for each channel. Once it is on for a channel, the **\"PORTA. TIME\"** dial below controls the length of the note glide.\n\nThis feature works best for **\"UNI\"** or **\"MONO\"** channels.\n\n## Project development setup\n\n```\nyarn\n```\n\n### Compiles and hot-reloads for development in the browser\n\n```\nyarn dev:browser\n```\n\n### Builds for browser release\n\n```\nyarn build:browser\n```\n\n### Compiles and hot-reloads for development with [Electron](https://www.electronjs.org)\n\n```\nyarn dev\n```\n\n### Builds for electron release\n\n```\nyarn build\n```\n\n## License\n\nCopyright © 2024 [2xAA](https://github.com/2xAA).\n\nThis project is [MIT](https://github.com/2xAA/genmdm-editor/blob/main/LICENSE) licensed.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F2xaa%2Fgenmdm-editor","html_url":"https://awesome.ecosyste.ms/projects/github.com%2F2xaa%2Fgenmdm-editor","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F2xaa%2Fgenmdm-editor/lists"}