Skip to content

Releases: rhargreaves/mega-drive-midi-interface

v1.28

05 Jun 16:40
Compare
Choose a tag to compare

Features

Dump channel parameters from MDMI & new CLI tool

You can now dump current FM channel parameters from the interface to a PC. See docs. The new mdmi-cli tool can be used to save this dump as DMP or TFI file.

v1.27

05 Jun 15:08
Compare
Choose a tag to compare

Features

Dump preset from MDMI & new CLI tool

You can now dump presets from the interface to a PC. See docs. The new mdmi-cli tool can be used to save this dump as DMP or TFI file. The tool can also load presets from TFI, DMP and WOPN files.

Full Changelog: v1.26...v1.27

Breaking Changes

  • MIDI program numbers in the UI will now be 0-127 rather than 1-128.

v1.26

25 May 23:36
Compare
Choose a tag to compare

Features

Support for loading & storing of user FM presets

  • Load an FM instrument via SysEx, overwriting a specific MIDI program
  • Save a specific MIDI channel's FM parameters to a MIDI program via CC 87
  • Ability to retrieve a custom user FM preset via MIDI program change (user presets overwrite built-in presets)
  • Clear FM preset via SysEx (restores original MIDI program)
  • Clear all FM presets via SysEx

See the docs for more info.

A maximum of 128 custom user presets are supported.

In addition to being stored in-memory, user presets will also persist to SRAM on the Everdrive X7 & PRO. Stored presets are re-loaded into memory from SRAM when the interface is started (or upon a MIDI reset system event). Currently only the Everdrive X7 & PRO models are supported. Support for additional models could be added on request, but I only have those cartridges to hand! SRAM is not supported on the MegaWiFi ROM.

Future Enhancements

  • A tool to load in DefleMask, WOPN & TFI instrument files over SysEx will be provided at some point.
  • The ability to download and save FM channel parameters/instruments over SysEx to a PC will be added in future.

Note

Breaking change: Note that in order to support the new presets feature, the structure for defining FM presets in code has changed from FmChannel to FmPreset. This new structure is specifically designed for instrument definition only, thus does not contain things like freqNum, octave and stereo which confused folks before. The deflemask-preset-viewer tool has been updated accordingly.

Full Changelog: v1.25...v1.26

v1.25

20 May 21:33
Compare
Choose a tag to compare

Features

  • Pitch Bend Sensitivity can now be set by setting the relevant RPN CCs and setting the data entry MSB and/or LSB via data entry CCs, where the MSB is the number of semitones and LSB is the number of cents. For example, to set the range to be +/- 4 semitones, send the following CC messages:
CC 101 0
CC 100 0
CC 6 4
CC 38 0

See the MIDI specification for more info.

Fixes

  • MegaWiFi: UI now updates during initialisation
  • MegaWiFi: LTO is now enabled for this build which should give it reasonable performance improvements inline with the standard ROM

Full Changelog: v1.24...v1.25

v1.24

13 May 21:57
Compare
Choose a tag to compare

Features

  • Very basic DAC support enabled using CC 78. Route MIDI channel 10 to FM Channel 6 to play the included drum set samples. There is no dynamic/intelligent routing supported with the DAC at present. It's really just a POC at this point. PCM samples are defined in src/pcm_sample.c and res/samples.res. They are downloaded from rhargreaves/mega-drive-pcm-samples automatically as part of the build process.
  • Added a set of user preferences (set in src/user_prefs.h) giving the ability to:
    • Use a specific mapping mode on startup (e.g. static, dynamic etc)
    • Set a sequence of MIDI messages to be automatically applied on startup (e.g. to automatically set some CCs, or route channels as you see fit)

Fixes

  • Fixed: An FM channel which formerly played percussion from MIDI channel 10 would sometimes keep the percussion preset when it was re-used to playing normal instruments.

A lot of code refactoring and general housekeeping in this release to try and keep the project manageable!

Full Changelog: v1.23...v1.24

v1.23

27 Jul 21:43
Compare
Choose a tag to compare

Functionality

  • Added ability to fine tune individual MIDI channels (CC 85). This can be used to generate unison/chorus effects when notes are mirrored across multiple channels.
  • Made maximum portamento time (CC value 127) even longer.

Full Changelog: v1.22...v1.23

v1.22

27 Jul 18:11
Compare
Choose a tag to compare

Functionality

  • Display "Mute" instead of blank space when channel panning/stereo is set to neither left nor right speakers.
  • Adds portamento which can be used in static/monophonic mode. Enable with CC 65. Set portamento time with CC 5. Functions as a legato-style portamento. Works for FM, PSG and ch 3 special mode channels. (see MIDI CCs & Events)
  • PSG envelope shifting is now pitch correct (previously was an estimation which was only really accurate for the middle notes).

Other

  • Upgrades SGDK to v2.0.0

Full Changelog: v1.21...v1.22

v1.21

17 Jul 14:53
Compare
Choose a tag to compare
  • Fix: Percussion notes incorrectly used the stereo value from their presets rather than the pan value of the MIDI channel. The preset value is now ignored and the MIDI channel pan is now respected (thanks @KPY7030P!)
  • Implemented a proper note priority algorithm. In static/monophonic mode, per channel, the last note played is prioritised. Up to 10 notes are remembered and played in a LIFO order. This allows you to play 'hammer' effects by using multiple keys. FM envelopes are not retriggered as part of playing a falling back to a note. If more than 10 notes are currently "on", additional notes are dropped. The note priority algorithm does not apply in dynamic/polyphonic mode.
  • Show UI before waiting for MegaWiFi to initialise. Previously it would just show a blank screen.
  • Local builds now use the git commit hash as the version number in the top right corner of the screen.

Full Changelog: v1.20...v1.21

v1.20

01 Jul 14:04
Compare
Choose a tag to compare
  • Adds ability to write directly to the registers of the YM2612 chip using SysEx. For example - to write note on to FM channel 0 - (Reg 0x28, Data 0xF0) - send SysEx 00 22 77 08 02 08 0F 00. Can be used to use YM2612 features not currently mapped to a MIDI CC or other construct. See Configuration & Advanced Operations

The MegaWiFi ROM in this release crashes on startup. Download the v1.20a release instead!

v1.20a

01 Jul 17:51
Compare
Choose a tag to compare
  • Fix MegaWiFi ROM crashing on startup.