Latest MegaDrum firmware version

Discussions related to MegaDrum Hardware

Latest MegaDrum firmware version

Postby dmitri » Tue Jan 26, 2010 11:17 pm

Latest all-in-one archive of MegaDrum firmware:
megadrum_20230605.zip

Previous version:
megadrum_20220530.zip

The last version with 56 inputs support in Atmega644:
megadrum_20160529.zip


Before the firmware upgrade, make sure you save all config presets (saved into Config Slots in MegaDrum EEPROM) are saved (backed up) externally with MegaDrum Manager FX to files on your computer. Configs saved into EEPROM slots are not guaranteed to load properly after a firmware upgrade.

Don't try to load this firmware into MegaDrum with a non-protected bootloader, it won't work!!
See http://www.megadrum.info/forums/viewtop ... f=3&t=1251 for details.


All firmware files in the archive after version 20110410 have the following naming scheme:
megadrumppp_nn_yyyymmdd.bin
where
ppp - MCU type. STM32a - for STM32F103RBT6, STM32b - for STM32F103RCT6, STM32d - for STM32F205RCT6, STM32e - for STM32F205LITE, STM32f - for STM32F446, STM32g - for GD32F405, 644 - for Atmega644, 1284 - for Atmega1284
nn - Maximum number of inputs for the firmware.
yyyymmdd - date(version) of the firmware.

Use mdfwupdate utility to load the firmware into MegaDrum.

See changes before 2010 in History of MegaDrum firmware versions

Changes in version 20230605:

1. STM32: Added firmware for STM32F446 (STM32f) and GD32F405 (STM32g) based MegaDrums. I started using these MCUs in MegaDrum modules and kits some time ago due to chips shortage having negative effect on STM32F205 chips availability. Functionaly MegaDrums based on these MCUs are identical to STM32F205 based MegaDrums (though a bit faster). I will be using any of STM32F205, STM32F446, GD32F405 MCUs in MegaDrum modules and kits based on chips availability.
2. STM32: Some compilation optimization. Should have no visible effect on anything.

Changes in version 20220530:

1. STM32F205: Added support for a version of 2.4" LCDs which have display turned 90 degree compared to common versions of 2.4" LCDs.
2. Fixing a bug with Aftertouch Off not sent in certain edge cases - with very low Threshold (on the verge of autotriggering) on head/bow and doing quick hitting on bow while pressing and releasing the edge switch.

Changes in version 20220503:

1. STM32F205: Fixed a bug where when changing AltSamplingAlg with front Controls/Menu it would cause MegaDrum to stop responding to signals on inputs.

Changes in version 20211214:

1. Reduced blocking ADC and MIDI after sysex config from 300ms to 50ms.
2. ADC and MIDI blocked for ~50ms after receiving sysex config now only if Switch/Piezo Type was changed. All other config changes are without temp ADC and MIDI block.
3. Fix for unintended MIDI messages right after receiving sysex config
4. Fix for a bug where edge/rim gets stuck in 3rd zone Note after Piezo->Switch->Piezo change with certain Threshold levels when it is done over MIDI/UART and from front Menu
5. Better handling of dampened hits to prevent aftertouch on/off while the switch is pressed and cymbal is hit.
6. Fixed a bug which caused rim to be stuck in 3rd zone state on piezo/switch pads/cymbals with some settings combinations.
7. Made a correction to eliminate false crosstick when midPointWidth is set to 0 and head and rim velocities are exactly equal.
8. Improved dual piezo/piezo triggering algorithm and MidPoint/MidPointWidth settings adjustments.
9. Disabled crosstick detection for very light hits (sum of head/rim velocities < 32) as too much velocity variation makes crosstick detection unreliable for light hits.
10. Only if you want to know:) Firmware compilation migration from GCC 4.9 to GCC 10.3

Changes in version 20210520:
1. SMT32: Fixed a bug with incorrect use of odd Retrigger values for disabling false triggering suppression
2. Implemented a workaround for edge->bell switches crosstalk for some types of 3 zone cymbals.
3. STM32: Fixed a corruption by Note On/Off MIDI of Sysex out MIDI generated when Pads levels or Pedal levels are update with Pads or Pedal Auto levels enabled.

Changes in version 20200331:
1. SMT32: Added support for per input rolls smoothing. Disabled by default and can be set to 1 (lightest smoothing), 2 or 3 (strongest smoothing). When set to 1, 2 or 3 the MIDI Note On levels will be smoothed if hits from the same input come within Note Off Delay. Ignored on Atmega. Requires MDMFX 20200331 version or newer.
2. STM32: Added support for per input extra false triggering suppression. Disabled by default. Can be enabled for some pads/cymbals with very long inconsistent after hit vibration but it will negatively affect pressrolls and very fast rolls. Ignored on Atmega. Requires MDMFX 20200331 version or newer.
3. On 3 zone cymbals Aftertouch On/Off are not sent for Dampened Notes.
4. Added support for reading current raw Pedal level by MDMFX. Requires MDMFX 20200331 version or newer.
5. Some bugs fixes for Alt and Pressroll Notes which could cause problems with MDMFX communication.

Changes in version 20191110:
1. Fixed a bug where ADC stops after loading a config from EEPROM using front panel controls
2. STM32F205: fixed a bug with corrupted Big VU meter on TFT LCDs caused by race condition
3. Last loaded config number is now saved when exiting Menu or when 'Globals saved' was shown. This will make the last loaded config to auto load if AutoloadConf is set to Yes.
4. Chicks are sent immediately without waiting for Chick Delay. I was advised that a splash coming close after a chick will mask the chick sounds anyway.

Changes in version 20190602:
1. STM32: Fixed a bug with MIDI Thru where incoming MIDI over standard MIDI port would cause MegaDrum to stop processing trigger inputs for ~0.25s.

Changes in version 20181218:
1. STM32F205/st7735: Fixed a bug which caused MegaDrum with st7735 based (1.8") LCDs to hang on startup.

Changes in version 20181031:
1. STM32F205: Fixed a bug in the Noise Filtering which caused it to hang with any of the inputs configured as Switch and if Noise Filter level is above 3 and AltSampling is disabled.

Changes in version 20181028:
1. STM32F205: Added support for signal noise filtering (NoiseFilter) with levels between 0 and 9. Default is set to 5. Level 0 corresponds to old default noise filtering. This setting is only effective on STM32F205 based MegaDrum. All other MegaDrum versions still have to be updated to this version for compatibility with the latest MDMFX fersion.

Changes in version 20180628:
1. Small enhancement to Sysex handling - it now blocks MIDI Out messages for ~400ms right after receiving a sysex message.

Changes in version 20180521:
1. Fixed a bug which might cause a hang when MegaDrum is sending a Sysex and triggers a short MIDI message at the same time.
2. Standard MIDI port handling optimization.

Changes in version 20180506:
1. STM32: Optimized MIDI processing to fix an issue with delayed second Note On when two inputs triggered within a few milliseconds.

Changes in version 20180408:
1. Fixed Chick velocity Curve not being applied with the standard (old) Pedal algorithm.
2. STM32: Implementing one byte MIDI messages in USB to allow one byte MIDI messages in MIDI Thru mode.

Changes in version 20180121:
1. STM32: Disabling many inputs was causing noticeable sensitivity change on enabled inputs. This firmware version fixes it.
2. Disabling first (Kick) input now really disables it.

Changes in version 20171221:
1. STM32: Implemented proper MIDI merge of MIDI data from standard MIDI input into USB MIDI output.

Changes in version 20171017:
1. Atmega1284: Fixed reported MCU version and maximum number of inputs.

Changes in version 20170628:
1. Disabled inputs in Default, Basic and Advanced Drum Maps are now disabled new setting to comply with the change in the previous firmware version.

Changes in version 20170622:
1. Disabling inputs is now done via a separate setting. Note 0 no longer is used for disabling inputs/3rd zones and can be used as a regular Note. Old MegaDrumManager will not support it. You have to use MegaDrumManagerFX which is in public testing right now but is 99.9% complete and is available in http://www.megadrum.info/forums/viewtop ... f=4&t=3218

Changes in version 20170503:
1. STM32F103: Fixed a bug with Sysex handling over USB.

Changes in version 20170501:
1. STM32: Improved Sysex handling over USB.

Changes in version 20170413:
1. Added support for 2 more HiHat pedal levels. This requires a new MDM version which also was published today.
2. STM32F205: Fixed a bug in USB which could cause MIDI messages loss under very rare conditions.
3. STM32: various code optimizations.

Changes in version 20170228:
1. STM32F205: Fixed MIDI speed which I broke in the previous release.
2. STM32F205/color LCDs: some corrections to color LCDs initialization to make it work with some ili9341 LCDs.

Changes in version 20170222:
1. When Alt Note or Pressroll Note are set to 0, instead of sending MIDI Note 0 it now sends main Note. This is done to avoid many confusions from users when setting these notes to 0 (Disabled) in MDM with expectation that it disables Alt or Pressroll Notes processing.

Changes in version 20160529:
1. Reduced HiHat triggering suppression right after a chick to make light HiHat hits right after chicks easier to trigger.

Changes in version 20160406:
1. STM32F205/ili9340: Fixed a bug which prevented Big VU meters from being shown when enabled.
2. STM32F205/color LCDs: Improved standard VU meters update speed.

Changes in version 20160404:
1. STM32F205/color LCDs: Fixed an issue where showing hit bars on graphical LCDs (mostly on 2.2" ili9340 LCD) was causing problems with fast/rolls triggering.
2. STM32F205/ili9340: The LCD is now at maximum brightness first 3 seconds after power up, just like on st7735 LCD.

Changes in version 20160303:
1. STM32F205: Added support for 2.2" ili9340 based color LCD.

Changes in version 20160127:
1. STM32F205/color LCD: Different ST7735 LCDs have different ranges of backlight. This firmware version now covers backlight level ranges for all types of ST7735. As a consequence, if the backlight (contrast) is set too low the LCD may appear black/not working after power up.
1. STM32F205/color LCD: To indicate that the LCD is ok, even if the configured backlight is too low, on power up the backlight is now set to maximum and after about 3s it is set to the configured level. After that you can set the backlight to a desired level.

Changes in version 20151207:
1. STM32F205: Corrected an issue in Alternative sampling algorithm which was causing too high MCU usage and prevented fast triggering.
2. STM32F205: Corrected Alternative sampling algorithm so that detected signals levels match Standard sampling algorithm more closely.
3. STM32: some more code clenaup/optimization.

Changes in version 20151203:

1. STM32F205/color LCD: thanks to ignotus's testing, corrected Quick Access (QA) mode with color LCD. When the mode is enabled and active, white QA is shown on the LCD. When the mode is enabled but inactive (after 10s of not touching controls) grey QA is shown on the LCD. When QA is disabled, QA is not shown.
2. STM32F205/color LCD: thanks to ignotus's suggestion, hit bars area now have a background to make the scale of bars (velocity) visible.
3. STM32F205/color LCD: Chokes (aftertouch) are now shown in the hit bars area.
4. Some code cleaning/optimization.

Changes in version 20151120:

1. STM32F205: Introduced support for ST7735 based 160x128 color LCD.
2. Many code optimizations/improvements.
3. STM32: switched to a new compiler with better code optimization.

Changes in version 20151104:

1. A fix to prevent Retrigger settings from being set below 1 from Sysex. The latest (20151104) MDM version also doesn't allow setting Retrigger below 1. In summary, Retrigger must never be 0 otherwise it may cause inputs triggering problems.

Changes in version 20151030:

1. Fixed a bug which caused occasional hangs on power up.

Changes in version 20151008:

1. STM32F205: Fixed a bug which prevented MIDI In port from working.

Changes in version 20150826:

1. STM32: Fixed initialization for some HD44780 LCDs for which STM32 RS/EN lines toggling is too fast.

Changes in version 20150411:

1. STM32F205: Fixed a bug introduced in 20150410 which caused MegaDrum to stop sampling inputs after saving a config.

Changes in version 20150410:

1. STM32F205: Fixed a bug which caused MegaDrum to hang if AltSamplingAlg is enabled.
2. Fixed a bug which caused a corruption of a config in slot 'n+1' after saving to a config slot 'n'

Changes in version 20150111:

1. Fixed a problem with 'Save to Slot' from MDM which would cause configs corruption when MaxInputs has been changed in MDM.


Changes in version 20150110:

1. STM32 based MegaDrum only. Added a new "MIDI2ForSySex" setting. When set to Yes the second USB MIDI Port will transmit only SySex messages. Default is No. This is implemented to prevent MIDI softs/synths listening on all MIDI ports from receiving the same Note On/Off messages twice.
2. STM32F205 based MegaDrum only. A fix to a bug with the new sampling algorithm and Roland 3way cymbals where Note 0 is sent for disabled and unused (second) head/bow inputs.

Changes in version 20141203:

1. Added support for Alterantive Sampling algorithm (AltSamplingAlg setting) on MegaDrum with the latest STM32F205RCT6 MCU. The new algorithm reduces digital noise and may allow to set Thresholds lower and as a result it may improve sensitivity. No changes for other MCU types.

Changes in version 20141022:

1. Fixed an issue with Pedal LevelsAuto which caused a slow down on Atmega644/1284 because MegaDrum was constantly trying to update pedal Low/High levels and as a result was sending config changes too often.

Changes in version 20141011:

1. Improved pedal CC Messages noise reduction algorithm.
2. When MegaDrum updates pad's HighLevel or pedal's LowLeve/HiLevel, it sends config with new values so that MDM would show current values.

Changes in version 20141006:

1. Note Off delay can now be lowered to 20ms
2. Due to reaching RAM limits, maximum number of inputs on Atmega644 version is now limited to 48.

Changes in version 20140920:

1. Implemented crosstalk suppression between inputs when Threshold is set very low (close to a threshold when it begins to auto-trigger without hits) regardless of MinScan on those inputs. This may allow to use lower Thresholds without increasing MinScan.
2. LCD handling optimization

Changes in version 20140809:

1. Fixed a bug in Atmega version with ROM access. The bug was causing Atmega version MegaDrum to load incorrect settings on startup and run very slow.
2. Some minor optimization.

Changes in version 20140629:

1. Implemented loading (Load ROM Kit, Load ROM Map) predefined Kits/Drum Maps intended for MegaDrum newcomers to get a quick start.
As of now there are 3 predefined kits/maps: Default, Basic and Advanced.
Basic and Advanced kits/maps are developed by Anders ( angr77) to match Addictive Drums MegaDrum map and Anders' reference Basic and Advanced kits. Anders will soon publish the description of these kits/maps.


Changes in version 20140518:

1. Another update to the chick/splash handling in the new pedal handling algorithm. To configure:
a. navigate to Pedal->MaxVlcty and press the pedal as fast as possible. Note the "raw" velocity value you see and set MaxVlcty just below this value. In my case it was around 900.
b. navigate to Pedal->MinVlcty and press the pedal as slow as you want it to be still registered as chick. Note the "raw" velocity value you see and set MinVlcty just above this value. In my case it was around 400.
c. navigate to Pedal->ChckDead and press the pedal as slow as you want it to be still registered as chick. Note the "raw" timer value you see and set ChckDead just above this value. In my case it was around 600.
d. navigate to ChkCrv and set it to Exp2C. You may of course use another Curve or create a custom Curve for chicks and I recommend to use Exp2C as a starting point for the custom chick Curve.
2. Soft Chicks now work in the new pedal handling algorithm.
3. Exit the Menu with a Splash now works in the new pedal handling algorithm.


Changes in version 20140517:

1. There was a typo where MaxVlcty was shown as MinVlcty. This version corrects it.

Changes in version 20140516:

1. Further work on the new pedal handling algorithm. Added 2 new settings: ChckDead and ChkCrv. Chick and splash handling in the new algorithm uses 4 settings:
MinVlcty
MaxVlcty
ChckDead
ChkCrv
When Pedal->New Algrthm" is set to Yes:
If you press/release your pedal longer then ChkDead time period then no chick/splash will be triggered. To find right setting for it, navigate to Pedal->ChkDead and see detected values for various press speeds.
If you press/release your pedal slower then MinVlcty but shorter than ChkDead then chick/splash will have velocity 1.
If you press/release your pedal faster then MaxVlcty then chick/splash will have velocity 127 if started from full open or below 127 if started from lower position.
If you press/release your pedal with a velocity between MinVlcty and MaxVlcty then chick/splash will have velocity between 127 and 1 depending on where the press started and the press velocity.
ChkCrv is obviously used to apply desired velocity Curve to chick/splash notes.
In my tests with my opto pedal controller I had MinVlcty around 10, MaxVlcty around 200 and ChkDead around 300. Best feel I had with S2Custom9 Curve.
This new algorithm is still under development but I will not make further changes until I have more (prompt) feedback on it.

Changes in version 20140507:

1. Added a new Pedal handling algorithm. It is enabled if you set "Pedal->New Algrthm" to Yes. When enabled, it also uses 2 additional Pedal paramaters: MinVelocity and MaxVelocity which play role in calculating chick and splash velocities. When you navigate to this 2 Pedal parameters you will also be able to see raw pedal press/release speed(velocity) when you do a chick.
If you press/release your pedal slower then MinVelocity then no chick/splash will be triggered.
If you press/release your pedal faster then MaxVelocity then chick/splash will have velocity 127/63/31 depending on where the press started relative to ShrtChckTh and LngChckTh levels.
If you press/release your pedal with a speed between MinVelocity and MaxVelocity then chick/splash will have velocity between 127/63/31 and 1 depending on where the press started relative to ShrtChckTh and LngChckTh levels.
In my tests with my opto pedal controller I had MinVelocity around 9 and Max Velocity around 100.
This new algorithm is still under development and any feedback on how it behaves is welcome.


Changes in version 20140417:

1. Added a new Misc setting "AltNoteChoking". When set to Yes, AltNote is used for cymbals choking instead of Aftertouch. For now you must use MegaDrum Menu to set this option until I add support for it in MDM and MegaDrumCommander.
2. Introduced HiHat cymbal false triggering suppression after chick/splash.

Changes in version 20140318:

1. Added support for disabling Bell choking on 3way Roland style cymbals: set MinScan to an even value to disable Bell choking.

Changes in version 20140302:

1. 3 zone Yamaha and 3way Roland style cymbals/pads: fixed a bug where after hitting bell or choking using the bell switch, the next bow hit still generated a bell note.
2. 3way Roland cymbals: fixed a bug where sometimes a Dampened note got stuck when hitting the edge switch.

Changes in version 20131111:

1. Added support for Custom Config names.
2. Added Sysex support to report maximum number of Config slots.
3. Added Sysex support to report currently loaded Config.
4. Added Sysex support to save current config into any available Config slot.
5. Added Sysex support to load config from any available Config slot.
6. Some internal data structure re-arrangement.
7. Fixed a few small bugs.
Please note, for proper interoperability with MDM, it requires a latest version of MDM.

Changes in version 20130901:

1. Added a ChickThrsh pedal setting. Chick threshold level is now configurable. As with ShrtChckTh and LngChckTh, it is measured against Pedal CC values so a value 127 corresponds to fully closed and a value 0 corresponds to fully open. By default it is set to 120.

Changes in version 20130612:

1. Made all Curves custom. All 16 Curves can now be modified.
2. Fixed incorrectly displayed curves names in Inputs settings, HiHat Pedal settings and Set All Curves.

Changes in version 20130405:

1. All ARM based MegaDrums now have AltEncoders set to YES and MaxInputs to 32 by default.
2. When you navigate in Menu to 'Save Config' or 'Load Config' it now shows currently active config (last saved or loaded config) in brackets.

Changes in version 20130210:

1. ARM based MegaDrum only. Fixed a bug which caused MegaDrum to display an input name in PositionalIn incorrectly if a custom named assigned to the input.
2. Some LCD handling clean up - all VU meters should now be correctly shown when exiting menu.

Changes in version 20130206:

1. Fixed reported MCU type on STM32b (STM32F103RCT6) based MegaDrum. If you have STM32b (STM32F103RCT6) based MegaDrum then you will have to upgrade to this version the "old way" booting into the bootloader with the LEFT button pressed while powering on.

Changes in version 20130121:

1. Added support for MCU type SysEx. It will be used in MDM and mdfwupdate to check MCU type and determine if MegaDrum supports firmware upgrade without buttons.

Changes in version 20121210:

1. Major improvement to HiHat pedal/controller handling for pedals with narrow signal range, e.g. Roland VH-11/12. Previous firmware versions produced unstable level readings for such pedal. I also added a functionality which will simplify setting pedals - now while in LowLevel or HiLevel it will show current "raw level" reading of a pedal's signal. You can use this "raw level" value as a guide to set LowLevel/HiLevel when the pedal is closed/open. Set LowLevel just below "raw level" when the pedal is 5%-10% open and set HiLevel just above "raw level" when the pedal is 90%-95% open. You may need to raise LowLevel / lower HiLevel slightly to make sure MegaDrum detects fully closed/open position.
2. RdcLvl now controls the level of stabilizing HiHat pedal position reading.

Changes in version 20121208:
Withdrawn.

Changes in version 20121203:

1. Some modifications to the main false triggering suppression algorithm to further improve fast rolls and double triggering suppression on mesh type pads. You will probably need to reduce Retrigger to below 5 and adjust DynTime/DynLevel slightly.

Changes in version 20121108:

1. Improvement to positional sensing detection reliability when PositionalLv is set to 2.

Changes in version 20120911:

1. Added a new configuration option in 'Miscellaneous settings' called 'TriggeredInCC'. When set to Yes and you hit a pad, MegaDrum will send a special MIDI CC message telling exactly which input was triggered. This is now being used in MDM to quickly switch between inputs configs. It will also be used in MDCommander a bit later.

Changes in version 20120826:

1. Fixed a bug which was causing MegaDrum to misbehave when using Custom pads names and navigating in the menu to PositionalIn.
2. Positional sensing: if a new positional hit is detected before note_off expired, use a previous position since the new position is incorrect due to distortion of a new signal by the decay of a previous signal

Changes in version 20120530:

1. Fixed a bug which prevented MegaDrum to switch to higher "MIDI Speed" (USB only 1/2/3) on power up when used with a newer PIC (since around March 2012) which supports upgradable PIC USB firmware.

Changes in version 20120415:

1. On Atmega1284 increased number of inputs which support positional sensing from 4 to 8. Now it can be enabled for inputs 4, 6, 8, 10, 12, 14, 16, and 18.
2. Some people reported Atmega crystal frequency is not detected correctly so I added an option to set Atmega crystal frequency manually. It can be set in the Firmware version menu display. It can be set to Auto, 12, 16, 20, 24 MHz. Default is Auto. When set to Auto it will show detected crystal frequency. If set to any manual frequency it will show star ('*') next to frequency. The value is saved in EEPROM after exiting from the menu.

Changes in version 20120303:

1. Replaced the 'Special' pad setting with a 'Function' setting. It can be set to 'Normal', 'PrgChg' or CutOff. Default is 'Normal'. When set to 'PrgChg' it behaves as when 'Special' was set to 'Yes' in previous versions. When set to 'CutOff' the 'ANote' setting changes it meaning to 'cut off' level - hits with velocities below level set in 'ANote' will not trigger Note On/Off messages.

Changes in version 20120218:

1. Fixed a bug which was preventing showing "Done"/"Failed" when saving/loading Configs/Drum Maps and showing "Working" when using "Set All EdgeSw" or "Set All BellSw".

Changes in version 20120122:

1. Added support for a "single encoder" operation mode. This mode is enabled/disabled by pressing keys LEFT and RIGHT simultaneously. When the "single encoder" operation mode is enabled the left encoder can be used both for navigating the menu and changing menu values. When the "single encoder" operation mode is disabled (default) the menu shows standard "filled up/down arrows" in the bottom rightmost LCD character block. When the "single encoder" operation mode is enabled the menu shows "empty left/right arrows" if the encoder is in the LEFT/RIGHT mode or "empty UP/DOWN arrows" if the encoder is in the UP/DOWN mode. When the "single encoder" operation mode is enabled switching between LEFT/RIGHT and UP/DOWN modes is toggled by pressing the left encoder's built-in button.

Changes in version 20111213:

1. People kept asking why the default Kick note (36) is shown as from octave 2. Well, the reason is that there are several different versions of mapping MIDI notes numbers to notes names. But to satisfy everybody I added an option, OctaveShift, which will shift octave numbers of all notes. By default it is set to 2 (maximum value). With the default OctaveShift the default Kick note (36) will still be shown as from octave 2.

Changes in version 20111127:

1. Fixed a bug where a Misc config sysex sent to MegaDrum could cause buffer overruns and eventually to MegaDrum misbehaving.

Changes in version 20111006:

1. Added support for setting MaxInputs over Sysex using MegaDrum Manager.
2. Added support for setting LCD contrast over Sysex using MegaDrum Manager.
3. Added a check of MaxInputs a config was saved with. If it is different from a current MaxInputs it will show 'Failed' instead of 'Done' when loading Config/DrumMap . This is done to prevent loading "garbage settings".

Changes in version 20110925:

1. Improvement of frequency detection.
2. Slight code optimization.

Changes in version 20110910:

1. Fixed a small bug which got into the previous release and was causing the menu to stay permanently on in some circumstances.

Changes in version 20110907:

1. Update visible settings values when updated over Sysex and if menu is shown.
2. Update pads' HighLevel values in the menu if the menu is shown and HighLevel is updated due to HiLvlAuto.
3. Update pedal's HiLevel/LowLevel values in the menu if the menu is shown and HiLevel/LowLevel are updated due to LevelsAuto.

Changes in version 20110816:

1. Added an option in HiHat pedal configuration: 'CC RdcLvl' - CC MIDI messages reduction level . If set above 0 it reduces amount of CC MIDI messages for pedal position changes. Can be set between 0 (default - no reduction) and 3 (maximum reduction).

Changes in version 20110731:

1. Fixed a bug where disabling the first (Kick) input by setting the note to 0 also was disabling the second (HiHatB) input.

Changes in version 20110719:

1. Number of Config and Drum Map slots in EEPROM was not calculated correctly on Atmega1284 based MegaDrum. This version fixes it.

Changes in version 20110717:

1. The (ultimate) fix for the same MIDI over USB bug (lagging one message behind).
2. CustomNamesEn setting received over SysEx didn't have an effect. This is fixed in this version.

Changes in version 20110716:

1. Fixed a bug where a too short start up delay sometimes caused miss-initialization of the PIC USB MCU which in turn caused MIDI messages over USB to "lag" one message which appeared as "reverse" Note On/Off messages. See http://www.megadrum.info/forums/viewtop ... f=3&t=1596 for details.

Changes in version 20110706:

1. QuickAccess function when set to Yes is now disabled until a HiHat pedal is pressed/depress quickly (splashed) 2 times. This is done to prevent disabling access to the menu if the pedal is not connected and the pedal levels are (auto) configured in such a way that MegaDrum thinks that the pedal is permanently pressed. In http://www.megadrum.info/forums/viewtop ... f=3&t=1637 you can see how this issue could exhibit itself.
2. Some correction to the pedal auto levels detection.
3. Some optimization to SysEx handling.

Changes in version 20110703:

1. A new main false triggering suppression algorithm. The main goal was to improve false triggering suppression without killing fast/press rolls. With the new algorithm the false triggering suppression works much better than the original and is easier to configure especially for mesh type pads. The old false triggering suppression is now AltFalseTrSupp. See http://www.megadrum.info/forums/viewtop ... f=3&t=1630 for details but bare in mind that in this topic the new algorithm was still activated when AltFalseTrSupp was set to Yes. I will updated the MegaDrum configuration shortly to reflect the changes.
2. Adjustment to MCU clock detection.

Changes in version 20110621:

1. Improvement to encoders/keys handling again.
2. Heavy code optimization meant to increase sampling rate and reduce latency variation. You may need to adjust slightly Retrigger, DynLevel, DynTime.
3. Sorry, but Atmega32/324 are dropped again - the firmware size grew to the point that it doesn't fit 32k any more.

Changes in version 20110602:

1. Re-enabled external EEPROM support which I accidentally disabled in the previous version for Atmega644.

Changes in version 20110601:

1. Added support for (editable) custom pads names. When selecting a name for input the last 32 (on Atmega1284), 16 (on Atmega644) or 2 (on Atmega32/324) names are custom names. These custom names can only be set/edited using Sysex, e.g. with the latest version of MegaDrumManager.
2. Added CustomNamesEn setting. When set to No (default) custom pads names cannot be used/saved. When set to Yes, custom pads names can be used and they can be save to EEPROM. With CustomNamesEn set to Yes, there are fewer slots for saving Configs/Drum Maps.

Changes in version 20110513:

1. Fixed a bug in the external EEPROM size detection algorithm which may cause MegaDrum to hang on start up if no external EEPROM is connected.

Changes in version 20110510:

1. Added support for external EEPROM for storing Configs/Drum Maps (Atmega644 and Atmega1284 only). See http://www.megadrum.info/forums/viewtop ... f=3&t=1592 for details. MegaDrum will automatically detect if an external EEPROM is connected, the size of the external EEPROM and will adjust the number of Configs/Drum Map slots available accordingly. This feature is not supported with Atmega32/324 due to Flash memory limit.

Changes in version 20110424:

1. Added support for switching to higher USB MIDI speeds. Switching to higher speeds will only work with a newer version (21/04/2011) of PIC USB MIDI firmware. Switching to higher USB MIDI speeds reduces latency by 0.5-1.5ms. The configuration option is called "MIDI Speed" and can be set to: "USB+MIDI", "USB only 1", "USB only 2", "USB only 3". "USB+MIDI" uses standard 31.25k MIDI speed and is compatible with older PIC USB MIDI firmware. "USB only 1", "USB only 2" and "USB only 3" switches the speed to 125k, 187.5k and 250k. Depending on the PCB and soldering quality and chips samples not all "USB only x" will work properly.
2. Sysex communication optimization.
3. Added firmware for Atmega1284. Atmega128 has twice more EEPROM space compared to Atmega644 for storing Configs/Drum Maps.

Changes in version 20110417:

1. Improved menu keys handling.
2. Optimization for better signal handling across the full range of the Latency setting.

Changes in version 20110415:

1. Fixed a bug where it would not save/load Configs/DrumMaps if MaxInputs is set below the maximum.

Changes in version 20110411:

1. Fixed a bug where it would not load Configs/DrumMaps properly.

Changes in version 20110410:

1. MegaDrum firmware now auto detects crystal's frequency.
2. Number of inputs is now configurable which allows to balance between number of inputs and the number of config/drum map slots in EEPROM. See http://www.megadrum.info/forums/viewtop ... f=3&t=1567 for details.

Changes in version 20110330:

1. Added "MIDIThru Enbld" option. By default MIDI Thru is disabled now to prevent creating accidental MIDI loops. See http://www.megadrum.info/forums/viewtop ... 046#p18046 for details.
2. This is the last firmware version which has the following naming scheme for the files in the archive:
megadrumppp_hh_yyyymmdd.bin for 22 inputs versions
megadrumppp_hh_32_yyyymmdd.bin for 32 inputs versions
megadrumppp_hh_48_yyyymmdd.bin for 48 inputs versions
megadrumppp_hh_56_yyyymmdd.bin for 56 inputs versions
where
ppp - AVR type. 32 - for Atmega32, 324 - for Atmega324(p), 644 - for Atmega644
hh - crystal clock in MHz. Atmega32 versions with a clock above 16MHz are overclocked, Atmega324(p)/644 versions with a clock above 20MHz are overclocked.
yyyymmdd - date(version) of the firmware.

Changes in version 20110316:

1. Added more inputs names.
2. Some minor code optimization.

Changes in version 20110216:

1. In the version 20101204 I introduced a bug in AltFalseTrSupp algorithm which was causing missing hits even with lowest DynLevel/DynTime values. This version fixes it.

Changes in version 20110207:

1. Added a 'Big VU Split' option. When both 'Big VU Meter' and 'Big VU Split' are enabled Head hits are shown in the top big VU meter, Rim hits are shown in the bottom big VU meter and the HiHat pedal position is not shown.
2. Removed 'MIDI Speed' option. It's been obsolete for a long time.

Changes in version 20101223:

1. Added support for custom inputs names. Every input can have a custom Name set from a predefined list of names. On Head/Bow inputs the custom name has cymbal 'H' shown at the end, on Head/Bow inputs the custom name has cymbal 'R' shown at the end.
2. Added support for Program Change. On a Rim/Edge of a Yamaha type pad, set Special to Yes. Pressing the edge switch will send MIDI Program Change messages on each press in the upwards direction between ANote and PNote values. Pressing the bell switch (if the edge and bell switches are wired as in a Yamaha style 3 zone cymbal and configured accordingly) will send MIDI Program Change messages on each press in the downwards direction between ANote and PNote values. Of course, it doesn't have to be a real Yamaha type 3 zone pad/cymbal, it just needs switches connected to the rim/edge input as in a Yamaha type 3 zone cymbal, i.e. one switch connected directly and the second switch connected over a 10k resistor. It will work with only one switch as well but it will only cycle in upwards direction going to a ANote value again after reaching PNote value. Sent kit (PC number + 1) is shown on the LCD when Program Change message is sent.

Changes in version 20101204:

1. More granular crosstalk suppression (XTalk). Number of levels increased from 4 to 8.
2. Number of crosstalk groups (XTalkGrp) increased from 4 to 8.
3. More granular dynamic false triggering suppression. Number of levels for DynLevel increased from 8 to 16 and number of levels for DynTime increased from 4 to 16 (between 0 and 60).

Changes in version 20101020:

1. Added a Master note (MNote and MBNote) menu configuration option to set all notes on an input simultaneously.

Changes in version 20101016:

1. Implemented alternating notes (see ANote and ABNote in the documentation)
2. Implemented dampened notes for hits on piezo/switch pads/cymbals when the edge switch is pressed (see DBNote in the documentation).
3. Implemented "pressroll" notes. (See PNote, PBNote and PressRoll Time in the documentation)
4. Optimized the HiHat pedal VU meter handling.
5. Modified the HiHat pedal LevelsAuto algorithm.
6. Optimized MIDI data handling algorithm.
7. General optimization.
8. Because of added new features Atmega32/324 for 32 and more inputs is no longer supported due to limited RAM/EEPROM space.
9. Because of added new features the current version of MCT (MegaDrum Config Tool) is not compatible with this firmware version.

Changes in version 20100827:

1. Fixed a serious bug (which was there since 20100126) which, for no apparent reason, could cause some random inputs to get stuck and not responding to hits and requiring power cycling.

Changes in version 20100801:

1. Added support for adjustable half open pedal levels.

Changes in version 20100702:

1. Ooops, in previous version positional sensing was not in fact working on CrushB and Tom1H. In this version positional sensing works on all 4 inputs (SnareH, RideB, CrushB and Tom1H).

Changes in version 20100701:

1. Made positional sensing available on 4 inputs: SnareH, RideH, CrushH and Tom1H.
2. Had to remove firmware versions for 40 inputs on Atmega32/324p. Not enough RAM on these MCUs for positional sensing on 4 inputs.

Changes in version 20100623:

1. Better handling of rotary encoders.

Changes in version 20100618:

1. Enable/disable HiHat pedal "soft chicks" now really works.

Changes in version 20100613:

1. Added support for two additional HiHat pedal position levels with dedicated Notes. The levels between open and closed now go like this:
    Open - notes are set on the HiHat cymbal input.
    SemiOpen - notes are set in BowSO/EdgeSO/BellSO.
    HalfOpen - notes are set in BowHO/EdgeHO/BellHO.
    SemiClosed - notes are set in BowSCL/EdgeSCL/BellSCL.
    Closed - notes are set in BowCL/EdgeCL/BellCL.
See http://www.megadrum.info/forums/viewtop ... f=3&t=1192 for discussion of this feature.

Changes in version 20100603:

1. Added an option to enable/disable HiHat pedal "soft chicks". See http://www.megadrum.info/forums/viewtop ... 72&p=14589 and http://www.megadrum.info/forums/viewtopic.php?f=3&t=716 for discussions of pros/cons of "soft chicks".
2. All firmware files are now encrypted.

Changes in version 20100516:

1. Added support for Positional Sensing on a SnareH input. It is still experimental, see http://www.megadrum.info/forums/viewtop ... f=3&t=1215 for details.
2. Some signal sampling improvements.

Changes in version 20100402:

1. More tuning to AltFalseTrSupp algorithm to work better with mesh head pads which have long after hit ringing.

Changes in version 20100324:

1. Improvement to AltFalseTrSupp algorithm for mesh head pads. It is not needed now to set MinScan high for such pads.
2. Improvement to head/rim separation for some types of dual piezo/piezo pads, e.g. Roland PD-125X.

Changes in version 20100313:

1. Added options for fine tuning Head/Rim/Crosstick separation: DualMidPoint and DualMidWidth. Both can be set between 0 and 15. The higher DualMidPoint the easier rim hits and harder head hits are and vice versa. The higher DualMidWidth the easier rim shots are and harder head/rim hits.
2. Fixed a bug where with QuickAccess enabled some combination of jumping to a pad and then navigating in the menu could lead to resets or hangs.

Changes in version 20100307:

1. Major re-work of the alternative false triggering suppression (AltFalseTrSupp=Yes) algorithm.

Changes in version 20100301:

1. Fixed a bug with 'pre-burst' which might have caused intermittent false triggering with maximum velocity. The bug was more evident with stm32.
2. Some adjustment to dual zone piezo/piezo pads handling to better separate zones for some types/brands of pads.
3. More modifications to AltFalseTrSupp algorithm.

Changes in version 20100212:

1. Added support for '2 pulses per detent' rotary encoders (AltEncoders setting).
2. Modified algorithm for the alternative false triggering suppression (AltFalseTrSupp)

Changes in version 20100126:

1. Small adjustment to Dynamic Threshold algorithm
2. Added signal 'pre-burst'. If signal on an input is higher then Threshold/2, MegaDrum starts a short burst. If the level doesn't reach Threshold, the burst is cancelled without producing a result. You can see an effect of the pre-burst if Latency set to an odd value - when a pad is hit lightly but not enough to exceed Threshold level the VU meter for the pad set to a maximum but no MIDI signal is sent and the LED stays off.
You do not have the required permissions to view the files attached to this post.
dmitri
Site Admin
 
Posts: 8706
Joined: Fri Aug 03, 2007 8:05 pm

Re: Latest MegaDrum firmware version

Postby Firelord » Wed Jan 27, 2010 12:25 pm

dmitri wrote:2. Added signal 'pre-burst'. If signal on an input is higher then Threshold/2, MegaDrum starts a short burst. If the level doesn't reach Threshold, the burst is cancelled without producing a result. You can see an effect of the pre-burst if Latency set to an odd value - when a pad is hit lightly but not enough to exceed Threshold level the VU meter for the pad set to a maximum but no MIDI signal is sent and the LED stays off.

Can you please explain this feature in more detail? What's the main idea behind it?
Firelord
 
Posts: 666
Joined: Wed Jun 10, 2009 7:50 pm
Location: Estonia

Re: Latest MegaDrum firmware version

Postby dmitri » Wed Jan 27, 2010 12:36 pm

The main idea is to improve triggering for very light hits. MegaDrum does sampling burtsts when it detects a signal above Threshold. It may not be good enough for light hits so this new features starts bursts even before Threshold reached. Be aware, that setting Threshold too low can cause constant pre-bursts, without you realising this, thus making triggering worse since MegaDrum will spend too much time on inputs which in fact don't go above Threshold. This is why I also added a possibility to see 'pre-bursts' if you set Latency to an odd number.
dmitri
Site Admin
 
Posts: 8706
Joined: Fri Aug 03, 2007 8:05 pm

Re: Latest MegaDrum firmware version

Postby anttipi » Mon Feb 22, 2010 10:16 pm

dmitri wrote:2. Added signal 'pre-burst'.


I'm just about to update the FW and if this feature does what I think it does, I'm very grateful for the inclusion! I've been struggling to get the threshold right for the hi-hat head - when I try to raise it, I start getting annoying 127 CC value hits occasionally even though hitting very lightly. So the pre-burst will eliminate this.

Please, correct me if I'm mistaken!
anttipi
 
Posts: 89
Joined: Sun Dec 06, 2009 3:10 am

Re: Latest MegaDrum firmware version

Postby Sabre » Thu Feb 25, 2010 7:53 pm

anttipi wrote:I'm just about to update the FW and if this feature does what I think it does, I'm very grateful for the inclusion! I've been struggling to get the threshold right for the hi-hat head - when I try to raise it, I start getting annoying 127 CC value hits occasionally even though hitting very lightly. So the pre-burst will eliminate this.

Please, correct me if I'm mistaken!

Please advise if it does what you think it does.
I've updated the firmware, but haven't tweaked any settings.
I'd be interested to know your findings on this.
Sabre
 
Posts: 29
Joined: Sat Oct 24, 2009 6:56 pm

Re: Latest MegaDrum firmware version

Postby anttipi » Fri Feb 26, 2010 1:04 am

Sabre wrote:Please advise if it does what you think it does.
I've updated the firmware, but haven't tweaked any settings.
I'd be interested to know your findings on this.


I will report back on this as soon as I'm done re-tweaking the settings for the new firmware (which will hopefully be this weekend)! I'm not sure yet.

In the meantime, I want to comment on the new algorithm for false triggering suppression: I don't know what exactly Dmitri has modified but it seems like a dramatic improvement with my DrumTec Diabolos! Previously, the minimum values I could use for the pads without getting any false triggering was something like dynamic level 3, retrigger 4, dynamic time 32. Now it seems I can easily use dynamic level 0, retrigger 1, dynamic time 8 with no false triggering! :o
anttipi
 
Posts: 89
Joined: Sun Dec 06, 2009 3:10 am

Re: Latest MegaDrum firmware version

Postby anttipi » Sat Feb 27, 2010 5:31 pm

Sabre wrote:Please advise if it does what you think it does.
I've updated the firmware, but haven't tweaked any settings.
I'd be interested to know your findings on this.


I just fiddled with the hi-hat settings and it seems like I understood this right. No sudden 127 jumps anymore when hitting lightly and raising the head threshold.

And as I wrote, the new false triggering suppression certainly seems to have reduced false triggering but I found out it's unusable to me as I can no longer do drum rolls with Alt False Triggring enabled. So now I leave it disabled with retrigger at 4, dynamic level 0 and dynamic time 32 which works fine.
anttipi
 
Posts: 89
Joined: Sun Dec 06, 2009 3:10 am

Re: Latest MegaDrum firmware version

Postby Firelord » Fri Apr 16, 2010 3:35 pm

Now for some bug reporting. I am using the latest version of firmware for MegaDrum 324P, 20_32_20100402.

1. When in menu and a signal is received from a pad, the signal VU meter will sometimes appear inside of the menu;
2. I don't know whether this is a firmware bug or not, but I sometimes get signal activity on random channels when I hit a single pad. It might have something to do with the 'signal pre-burst' feature. Anyway, my pad configuration hasn't changed in a while but I noticed this only recently.

I would also like to know what is the current situation with MegaDrum and MTC. The thing is, I've got problems with recording long drum sessions with MegaDrum. The strange part is that when I play, all notes are in time, however when I'm playing and recording in Nuendo, the resulting recording offset is huge (on the order of 250-1000 ms) and what's worse even this offset is not consistent and it changes over time.

Now it may be that I've got problems with MegaDrum/Nuendo settings. But I also own a simple MIDI-keyboard. It appears not to have this issue with recording.
Firelord
 
Posts: 666
Joined: Wed Jun 10, 2009 7:50 pm
Location: Estonia

Re: Latest MegaDrum firmware version

Postby dmitri » Tue Apr 20, 2010 4:48 pm

Firelord wrote:Now for some bug reporting. I am using the latest version of firmware for MegaDrum 324P, 20_32_20100402.

1. When in menu and a signal is received from a pad, the signal VU meter will sometimes appear inside of the menu;
2. I don't know whether this is a firmware bug or not, but I sometimes get signal activity on random channels when I hit a single pad. It might have something to do with the 'signal pre-burst' feature. Anyway, my pad configuration hasn't changed in a while but I noticed this only recently.


These two are both a result of a feature introduced some time ago:
Changes in version 20100126:
...
2. Added signal 'pre-burst'. If signal on an input is higher then Threshold/2, MegaDrum starts a short burst. If the level doesn't reach Threshold, the burst is cancelled without producing a result. You can see an effect of the pre-burst if Latency set to an odd value - when a pad is hit lightly but not enough to exceed Threshold level the VU meter for the pad set to a maximum but no MIDI signal is sent and the LED stays off.
dmitri
Site Admin
 
Posts: 8706
Joined: Fri Aug 03, 2007 8:05 pm

Re: Latest MegaDrum firmware version

Postby Firelord » Thu Apr 22, 2010 10:11 pm

Firelord wrote:Now it may be that I've got problems with MegaDrum/Nuendo settings. But I also own a simple MIDI-keyboard. It appears not to have this issue with recording.

Never mind this. I did have a similar problem with the MIDI keyboard.
Firelord
 
Posts: 666
Joined: Wed Jun 10, 2009 7:50 pm
Location: Estonia

Next

Return to MegaDrum Hardware

Who is online

Users browsing this forum: No registered users and 93 guests