日本語

The pioneering Black MIDI player

Make MIDI videos at lightning speed with Ultralight MIDIPlayer. THE MIDI player for experts.

Stable framerate

UMP uses a original, unbelievably fast rendering technology, focused solely on displaying falling notes. Combined with offloading or even removing some effects and audio, UMP achieved the most stable framerate, ever.

Ultra-lightweight beyond playback

9.1x faster MIDI loading

UMP: 3.6s
Kiva: 9.7s
PFA: 33s
(baseline)

2.7x less memory usage

UMP: 2224MiB
Kiva: 2794MiB
PFA: 6196MiB
(baseline)
Those comparisons are just for reference. Test conducted on a PC with Intel Core i5-7500 CPU (4-core 3.4GHz)
UMPがMIDIファイルを読み込んでいる画面

Render to smooth video

Still lags? Lazy to record? No problem. Create "No-lag" video of any MIDI, efficiently in background. Note counter included!

The "Render to Video" dialog

Customize

Change appearance by using resourcepacks to make your videos look more original. 3 included sample packs may come helpful.

The "Resourcepacks" dialog

Things to know before downloading

For Experts

UMP primarily targets Black MIDI creators and experts, not everyone. Use at your own responsibility.

See alternatives to UMP

Ultralight Not Guaranteed

UMP comes with no warranty. Also, CPU speed heavily impacts UMP performance. 2GHz or faster, multi-core CPU is recommended.

Different WinMM Patch Method

The process of applying WinMM patch is a little different from other MIDI players. This patch is almost a must for Windows 10 and later. See the manual for details.

Please also have a look at some of Frequently Asked Questions and Quick Start :)

Download UMP

Tested on Windows 10, 11, Mac OS X and macOS Monterey. Requires Java 8 or later. Should work on any desktop OS. Mobile OS not supported!

Latest Version (Dev Version)

1.6.2

release
Download Latest698KiB
Stable Version

1.5.1

release
Previous version of UMP to try if you're having serious problem with latest version. No longer supported!
Download Stable639KiB

Language Files

UMP is available in Japanese and English, and other languages translated by volunteers can be added. To add one, place the language file in the lang/ folder.

Get language files or help translate UMP

Contact

If you need help, first look at the manual, which contains all kinds of information about UMP!

The UMP Manual

If you have suggestions or bug reports, or want to say hi to us, join the UMP users Discord server!

Recent Changes

1.6.x The "MIDI Player" Update

Announcement: Community-made languages are now distributed separately

>>> Get language files here <<<

In 1.5 I bundled a community-made translation, but now I'm not doing that. This is because languages other than Japanese and English are gradually translated by volunteers, and waiting for all languages would cause a tremendous delay in UMP updates. (they translate for free so no complaints though). All language files are available in the link above. Consider helping us translate UMP if you have some time!

Compatibility

  • Config version is now 2. Config from UMP 1.0~1.5.x will be converted automatically. Remember to make a backup if you plan to continue using old version of UMP as well.
  • Config and language files are now loaded from subfolders. Files will be automatically moved on first launch.
  • For translators: Custom formatting in translations no longer works. Translators are encouraged to change all format specifiers to either %s or %1$s. Anything other than these 2 such as %,d are now treated as %s.

Changes in 1.6.2

  • Hotfix: unable to switch renderer.

Changes in 1.6.1

  • Basic MIDI Diagnosis now has a new warning.
  • Added save button to error dianog and debug information dialog, so you can quickly attach them when you report bugs.
  • Fixed: some note colors in resource packs were skipped.
  • Fixed: switching renderer while playing caused an unexpected error in very rare cases.
  • Fixed: FPS limit stops working for a while after video render or other CPU intensive work.
  • Fixed: untranslated button in out of memory dialog.

It's time for the moment you've been waiting for

  • Pause works. Yes.
  • Better audio. It's still far from perfect, but UMP will now at least attempt to play more MIDI events. Can be turned off in config.
  • Renderers uses GPU. Enjoy your extra digit in framerate.

It's time for the changes you've requested

  • NPS and overlapped notes in black MIDI diagnosis now shows graph when clicked.
  • Playing something will now close all alerts (the things that appears when restarting renderer).
  • Added an option to show MIDI length in some info overlays.
  • The time and tick displayed in info overlays no longer exceed the length of MIDI.

It's time for improvements

  • You can now drop a folder on UMP window to load first file in it.
  • Added screenshot.
  • Added [All Supported Files] to [Open] dialog.
  • File types in [Open] dialog are now translatable.
  • You can now override all encoder arguments in video render.
  • Play without Render dialog finally looks acceptable now.
  • Basic diagnosis has new warning that tells you if the file has extra data.
  • Black MIDI diagnosis might be faster now.
  • Render interval dialog now shows setting for same speed on other players.
  • Added an option to show memory usage while loading MIDI.
  • Changing info overlay type no longer changes position.
  • Redesigned the update check dialog.
  • ffmpeg location and resourcepack folder are now saved in config!
  • In welcome window, last used synth will be selected by default.
  • Added --no-april command-line option to prevent special features from being enabled during April 1st and April 3rd JST.
  • Slightly improved English translations.
  • UMP now has new (placeholder) icon. Still looking for something better.

It's time for tweaks

  • Fixed a visual issue where progress bar in multithreaded MIDI loading wasn't moving.
  • Track color events (non-MIDI-standard) are now loaded as RGBA instead of ARGB.
  • Fixed a bug where time remaining of Diagnosis was wrong.
  • Fixed a bug where [Hide] info overlay was reset to [Default] when restarted.
  • Config in error report is no longer sorted in alphabetical order.
  • Updated batch file as always.

1.5.x - The "Clean" Update

For complete changelog, see changelog-dev.md file included in dev versions.

Not all changes are listed here, because I've made too many...

Compatibility things and translation info...

  • Values you can use in config updateChecker.branch has changed from RELEASE and BETA to stable and development.
  • In translation files, key for language name has changed from lang to _lang. Read .diff file included for all changes in translastions.
  • In translation files, \n now break lines in some translations where you had to use HTML.
  • Translation files can now have name of fonts that can display its language, in comma-separated form.

1.5.1 changes...

  • [Stop and Unload] now clears screen and resets most part of info overlay.
  • Added partial support for track color events (non-MIDI-standard).
  • Basic Diagnosis now displays tempo and duration before throwing "Huge Track" error.
  • Tweaked translations.
  • Fixed a bug where "hours" in "hours:minutes:seconds" duration format was actually 10 hours.

made cool stuff...

  • Added Chinese translation. Please correct if you find any mistakes (You can find link to translation page in Discord server). Traditional Chinese coming soon...
  • Supported loading zip file containing MIDI file. I still recommend unzipping though, because it seems not all zip files are supported by the library.
  • Added HorizontalMIDIRenderer, which moves notes from right to left.
  • Added Basic Info Only overlay. The note sign before tempo is ♩(U+2669) by the way.
  • Info Overlays can be moved now.
  • Added link to ffmpeg in Video Render dialog.
  • Added MOV to Video Render. I didn't know After Effects can't open some AVI and now my After Effects is expired...
  • You can now choose video file name!!!!!!!!!!!!!!!
  • Double-clicking preview in Video Render shows resizable big preview window.
  • Added [View] -> [Quick Resize] for easily resizing window to common resolutions.
  • Added font dialog ([Options] -> [Font]) to change UMP font without directly editing config.
  • Added language dialog ([Options] -> [Language]) to change UMP language without directly editing config.
  • Added keyboard control to welcome window. Arrow keys and Tab key to select language and synth, then Enter key to press [Next] button.
  • Welcome window will now display a loading animation while, well, loading, instead of showing main window that doesn't render for several seconds.
  • Added keyboard shortcuts:
    • About UMP (F1)

cleaned some stuff...

  • Adjusted black key position in default renderers.
  • Made Video Render dialog don't show time remaining while progress is 0%.
  • Fixed a visual issue with video render progress bar when using single-threaded MIDI loader.
  • Fixed a visual issue, where video render speed could very rarely go negative.
  • Cleaned resource pack dialog a lot:
    • It now shows broken pack, instead of stopping loading.
    • Added separator (aka divider) lines to pack list.
    • Render interval of pack preview renderer is now fixed.
    • Added dense notes to preview.
    • Cleaned confirmation dialog that shows before selecting incompatible resource pack.
  • Made font list in [Font] dialog scrolls when [Preview] button is clicked.
  • Changed catchphrase in [About UMP] dialog.
  • Cleaned error dialog and error report. Error report is now hidden by default, so it won't scare you anymore.
  • Improved translations and changed capitalization to title-style. But my English still sucks.
  • Fixed a visual issue where hovering on menu bar right after resizing window made menu bar to disappear.
  • Fixed a visual issue where you could select multiple languages and synthesizers in the welcome window.
  • And couple of tweaks and small fixes.

fixed... uh... things...

  • Multi-threaded MIDI loader now loads tracks always in correct order!
  • Somehow everyone is breaking UMP with infinity tempo so blocked it.
  • Fixed a bug where you couldn't play when synth isn't set and config midi.usePlayThread is false.
  • Fixed a bug where play speed was limited by lowest of 10% although speed dialog slider could go down to 1%. It's suprising that this bug existed since 1.2.
  • Fixed a bug where some ghost notes from previous MIDI was displayed.
  • NPS in info overlay is now as accurate as Black MIDI Diagnosis.
  • Fixed a bug where speed limit in video render was reset when starting render for 2nd time without closing the dialog.
  • Fixed a bug where final results of the MIDI Diagnosis wasn't displayed very very rarely.
  • Welcome window now has an option to backup config if loading fails. Previously there was option to keep or reset config, but keep option had almost no effect.
  • Options in config.yml are no longer sorted in alphabetical order.

few more stuff...

  • Added special window title that shows on UMP birthday. UMP now has 4 special window titles in total.
  • Refactored a lot of code. Really. It's 1530 lines deleted and astonishing 3627 lines added since 1.4.1!
  • Tweaked console log but nobody cares.
  • Updated batch file again but nobody cares.

1.4 - The "Small but Big" Update

1.4.1 Stuff!

  • Menu bar and shortcut keys are now available in pseudo-fullscreen. To show the menu bar, just move cursor up.
  • Changed [Open config.yml] to [Open UMP folder].
  • You can now see tempo in MIDI Diagnosis (basic).
  • All renderers now continue rendering for 1 second after end of MIDI.
  • Tweaked overlays a bit.
  • Improved compatibility on few old OSes and Linux. Hopefully.
  • Fixed blank [Files of type] in file chooser dialog for ffmpeg.
  • I did my 3rd attempt on fixing a problem where notes looked strange on extremely low render interval.
  • Updated batch file.

New stuff!

  • New Diagnosis. You can now see how much extra memory will be needed to load MIDI.
  • Renamed [Save to mp4] to [Render to Video]. You can now create AVI file.
  • New Config. Some options are now saved. Finally.

Interface stuff!

  • [Count Notes & MIDI diagnosis] is now more user-friendly.
  • Added speed limit to [Render to Video] dialog.
  • Added preview to [Resourcepacks] dialog.
  • [About UMP] dialog now looks so much better.

Changed stuff!

  • [Render to Video] dialog now automatically selects ffmpeg.exe in the UMP folder if exists.
  • You can now remove graph from [MIDI Thread Desync] overlay.
  • More shortcut keys!
  • You can now change UI font in config.

Improved stuff!

  • Diagnosis no longer stops on huge MIDI.
  • Max resolution is now 4096x2160.

Warning stuff!

  • Transparent background AVI is so dangerous that it may instantly turn your videos terrible. Follow the directions for dosage and use carefully.
New Diagnosis

1.3 - The "Make good videos guys" Update

Get excited by new feature, guys

  • Resource packs - New look. New feel.

Make editing easy, guys

  • Show info mode - Trying MIDITrail style :)
  • Info scaling - I was wondering why everyone isn't using built-in info renderer, and I guessed it could be because it doesn't look cool and it's too small. not intended to compete with keppy though. Save time and effort of extra recording and editing!
  • FPS Counter mode - you can now hide graph but keep numbers visible.
  • FPS limit - Come on Thread.sleep, why are you so mean.

Make videos in light speed, guys

  • +140% idle playback FPS - I didn't typo here - Cleaning the code (which I never expected to increase performance) boosted FPS by hundreds.
  • +58.2% mp4 save speed - 1.2.2 code was wrong, fixed it. Enjoy the true blazing fast and 100% CPU usage.
  • Multithreaded MIDI Loader - Could be awesome for PCs with many slow CPU cores. Enable in config.
  • MIDI Thread - better FPS on higher NPS. Maybe.

Make quality content, guys

  • Greenish mp4 fix - Hopefully.
  • Text antialias on mp4 - It was missing for a long long time. I finally noticed.
  • 4K - Resolution limit is now officially up to 3840x2160.
  • Resolution option in mp4 save - No need to make window huge just for 4K mp4.

There's more changes, guys

  • Welcome window with smoooooth animation - with language select if config.yml doesn't exist. No need to close the app once anymore, just to generate default config.
  • Best note counter + MIDI Diagnosis - Count notes and find problems of any MIDI files in less than 1MB memory.
  • Pseudo-fullscreen.
  • FPS Counter now shows frames of last second, instead of average of last 200 frames.
  • It tries to change UI font to Yu Gothic UI on Windows 10. I just wanted antialias on CJK characters.
  • Bit more support for OSX. better menu bar, "About" and "Quit" handling (⌘+Q is now safe, finally).
  • And of course, tweaks and bugfixes.
  • Secret feature has been removed. Looking for new ideas.

This is the last section, guys

  • New License. Don't worry, it's still short. even 2 lines shorter now.
  • Skin compatibility: No. Please switch to Resourcepack.
  • Language changes: So many. See diff file included in zip.
Diagnosing MIDI that UMP can't play

Planning updates

  • Add animation a tiny bit.
  • Make an icon.
UMP Roadmap

Videos

This one is very old now, but thanks for amazing 10,000 views anyway :)

Credit

inserted by FC2 system