The UMP Manual
14th edition for 1.6
Match 27, 2023
Basics, tips, and answers for recently asked questions. You can now find right section by purpose. Suggestions will be appreciated at UMP Discord server! My English sucks. Really. Please correct.
What is UMP?
UMP (Ultralight MIDIPlayer, 超軽量MIDIプレイヤー, [tʃoːkeirjoː.midi.pureijaː]*1) is literally ultra lightweight (hopefully) and versatile MIDI player to help making MIDI videos, featuring no-lag video rendering, note counter, clean GUI and more.
Quick Start
1. Get a Decent PC
UMP should run smoothly on a PC with:
- Multi-core, 2GHz or faster CPU
- A graphics card
- 1GB or more free memory
- Any desktop OS
2. Install Java
Download the installer from Java download page and run it.
Install Java that works best for your computer. Some examples: for 64-bit Windows, choose the one that is clearly marked 64-bit; for Apple Silicon Macs, choose the aarch64 version. Chosing wrong Java may impact performance.
3. Get MIDI Synth Working
You'll need a MIDI synth and a soundfont to hear MIDIs.
For synth we recommend OmniMIDI, a high performance synth for professionals. You might want to avoid using synths bundled with Java such as Gervill, as those are not suitable for Black MIDIs.
You can find a ton of soundfonts on internet. Grab some and configure your synth. (Not covered in this manual, see your synth's documentation)
4. Start UMP!
Download UMP from the main page and unzip it to empty folder.
On Windows, open MIDIPlayer.bat
and enjoy.
On other OS, type this command in terminal:
$ java -jar MIDIPlayer.jar
Select the synth you've installed and you're good to go!
5. Play a MIDI
Select [File] -> [Open] in the menu bar or drop a .mid
file.
You can also drop a .zip
archive or a folder. In that case, UMP will load the first .mid
file in it.
6. Next Steps
- If you're on Windows 10 or later, don't forget to patch Java. It may dramatically improve Black MIDI performance.
- Know how to change how much memory UMP can use, so you can open larger MIDIs.
- Explore and play around with the menu bar.
- Have a look at Config and how to write it. There are few hidden settings in config.
- By the way we also have some Tutorials.
9. Uninstall
Delete UMP folder. Easy!
The UMP Launcher
The UMP Launcher is a simple batch file (MIDIPlayer.bat
) to start UMP on Windows. The UMP Launcher can be edited in text editor for customization.
Options
Options starts at line 5. Option name and value is separated by =
with no spaces around.
set INITIAL_MEMORY=2G
set MAX_MEMORY=2G
set JVM_ARGS=-XX:+UseG1GC
set UMP_OPTIONS=
set PAUSE_AFTER_EXIT=false
set CRASH_ON_OUT_OF_MEMORY=true
INITIAL_MEMORY
- Default:
2G
Initial amount of memory UMP can use. Increase this to open larger MIDI files.
MAX_MEMORY
- Default:
2G
Maximum amount of memory UMP can use. Increase this to open larger MIDI files.
JVM_ARGS
- Default:
-XX:+UseG1GC
Additional JVM arguments, separated by space.
UMP_OPTIONS
- Default: (none)
Additional UMP options, separated by space.
PAUSE_AFTER_EXIT
- Default:
false
If set to
true
, the Launcher window will stay open until any key is pressed. When UMP is closed abnormally, window stays open regardless of this option.
CRASH_ON_OUT_OF_MEMORY
- Default:
true
If set to
true
, a JVM argument-XX:+ExitOnOutOfMemoryError
will be added, which makes UMP crash immediately when running out of memory. When set to other value, you might be able to save config and gracefully exit as UMP stays open.
Command Line Usage
Syntax
java [JVM options] -jar MIDIPlayer.jar [UMP options] [[--] <MIDI file>]
JVM Options
JVM options are not part of UMP and we'll only cover the most commonly used options. Run java -help
for more information.
- -Xms<size>, -Xmx<size>
-
Example:
-Xms1560M -Xmx8G
(1.5GB initial, 8GB max)Initial and maximum amount of memory that program (UMP) can use. Size can have letter M or G at the end for megabytes or gigabytes. Increase this to open larger MIDI files.
- -XX:+UseG1GC
-
Example:
-XX:+UseG1GC
Use Garbage first garbage collector (G1GC), which is probably the fastest. For more info about GC, ask Wikipedia Senpai.
UMP Options
- --no-april
- Prevent special features from being enabled during April 1st and April 3rd JST.
- -h, --help
- Display command line usage and exit.
- --version
- Display UMP version and exit.
- [--] <MIDI file>
- Play MIDI file when UMP is ready. Path can be prefixed with
--
to separate it from options when necessary.
Renderers
DefaultMIDIRenderer
It's default...
TickBasedDefaultMIDIRenderer
It's default... but render interval changes according to tempo. 120 BPM makes 1x note speed.
KeyMIDIRenderer
Only displays keys pressed for each MIDI channel in single color. It doesn't use textures but color information from resource pack.
HorizontalMIDIRenderer
Displays notes in single color and moves from right to left. Pressed notes glows. It doesn't use textures but color information from resource pack.
HexMIDIRenderer
Simulates and displays the MIDI file content with all notes and tempo events in original MIDI merged into one track. Text color is automatically set to white in video render or if background is dark. It doesn't use resource packs at all. Monospace font required.
Render to Video
FFmpeg
You need FFmpeg executable to create a video. Go to FFmpeg website and download the package (not source code).
ffmpeg.exe
in the UMP folder, UMP will automatically selcet it for you.Video Types and Codecs
- AVIUtl requires third-party input plugin.
- QuickTime Player automatically converts most types. Only converted version can be previewed in Quick Look.
- After Effects CC may automatically install codecs required to open some types.
Video | Programs | ||||||
---|---|---|---|---|---|---|---|
Type | Codec | Transparency | Windows | OSX | After Effects CC | ||
Movie & TV | Media Player | AVIUtl | QuickTime Player | ||||
mp4 | x264 | ✔ | ✔ | ✔ | ✔ | ✔ | |
x265 | ✔ | ✔ | ✔ | ✔ | |||
mov | png | ✔ | ✔ | ✔ | ✔ | ||
qtrle | ✔ | ✔ | ✔ | ||||
avi | png | ✔ | ✔ |
Presets
ultrafast
superfast
veryfast
faster
fast
medium
slow
slower
veryslow
placebo
The upper in the list, the faster the encoding and the larger the video file. placebo
seems to be not so much effective.
Increase mp4 Quality
Without changing any options, bitrate of the video is set automatically (200kbps?). If the video looks strange, try setting bitrate in advanced options. My recommendation is VBR with CRF of 20 or smaller.
Diagnose MIDI
"Count notes & MIDI diagnosis" allows you to count notes and find problems of MIDI files in less memory. If UMP can't play some MIDIs, use this to diagnose the file before contacting, as 99% is problem in file, not UMP.
Name | Notes |
---|---|
File Size | Binary prefix (1KiB is 1024B not 1000B, 1MiB is 1024KiB) |
Resolution | PPQN |
Tracks | |
Notes | |
Memory to Open | Value will change even on same MIDI depending on config midi.loaderThreads |
Length | |
Tempo | Can show range ("minimum tempo~maximum tempo") |
Moment Max NPS | May not be correct :( |
Overlapped Notes |
YAML
YAML is a data serialization language used in UMP for saving some data to files. YAML is basically a collection of colon-separated key-value set.
Fun fact: YAML is a recursive acronym standing for "YAML Ain't Markup Language".
Data Type Legend
- String
-
Example:
"Hello, World!"
A text. Recommended to surround with
"
or'
, but not always necessary. - Integer
-
Example:
77
,0x4d
A number with no decimals.
- Float
-
A number. Decimals can be used.
- Color
-
Example:
0xffb900
(yellow),0xffffff
(white)A string or an integer representing hexadecimal RGB Color.
- Boolean
-
Only
true
(Yes) orfalse
(No).
Remarks
- UMP uses YAML version 1.1.
- In YAML, only spaces can be used for indentation. Check your text editor's settings to not use tabs.
Config
Some UMP settings can be changed by editing config.yml
in UMP folder.
Sample
version: 2
language: ja
midi:
loaderThreads: 0
loadNotesOnly: false
usePlayThread: true
render:
width: 1280
height: 720
fpsLimit: 120
renderInterval: 5.0
background: 0xc0c0c0
usePFAColors: false
resourcePack: null
font: Monospaced
overlay:
opaque: false
info:
scale: 1.0
type: DEFAULT
position: TOP_RIGHT
showDuration: false
fps:
type: SHOW_ALL
desync:
type: SHOW_NUMBERS
loading:
showMemoryUsage: false
ui:
font: Yu Gothic UI
files:
midi: null
ffmpeg: null
resourcePacks: null
updateChecker:
checkOnStartup: true
branch: development
version
- Type: Integer
- Default:
2
Config version. Do not change!
language
- Type: String
- Default:
"ja"
UI language. Can be Japanese(ja
), English(en
), or name of language files in the UMP folder.
See also: Translation
midi.loaderThreads
- Type: Integer
- Default:
0
Number of threads to use for loading MIDI. When set to 0 or less, UMP will use as many threads as possible.
midi.loadNotesOnly
- Type: Boolean
- Default:
false
When set to true
, Only notes in MIDI files will be loaded and played. Anything else such as instrumental change and pitch bend are ignored. UMP 1.5.1 and earlier worked this way.
When set to false
, some of MIDI events other than notes will also be loaded and played. Although not perfect, some MIDI files will sound better.
midi.usePlayThread
- Type: Boolean
- Default:
true
When set to true
, rendering and MIDI will be processed in its own thread. Those threads don't wait for each other to mentain high framerate; audio may lag behind in extreme conditions.
When set to false
, rendering and MIDI will be processed alternately in the same thread. This negatively affects the framerate, but audio will never lag behind.
render.width
- Type: Integer
- Default:
1280
- Restriction:
128
min,4096
max
Screen width.
render.height
- Type: Integer
- Default:
720
- Restriction:
100
min,2160
max
Screen height.
render.fpsLimit
- Type: Integer
- Default:
100
Limits the framerate while playing. 0 or less means unlimited.
render.renderInterval
- Type: Float
- Default:
5.0
- Restriction:
0.01
min,20.0
max
The renderer's interval parameter. The smaller this value, the faster the notes move.
render.background
- Type: Color
- Default:
0xaaaaaa
Background color.
render.usePFAColors
- Type: Boolean
- Default:
false
When set to true
, UMP will load PFA settings file and render notes in same colors as PFA. If failed, all colors will be random.
render.resourcePack
- Type: String
- Default:
null
Name of resourcepack's file or folder to automatically load on startup. When set to null
or any non-existing file name, default resourcepack will be used.
Also see: Resourcepack
render.font
- Type: String
- Default:
"Monospaced"
Name of the font to use in overlays (not UI). Since Java is not that good on loading fonts, some might not work.
render.overlay.opaque
- Type: Boolean
- Default:
false
When set to true
, background color of all overlays will be opaque.
When set to false
, background color of all overlays will be semi-transparent.
render.overlay.info.type
- Type: String
- Default:
"DEFAULT"
- Restriction: see below
What to display in the info overlay. Only the following values are allowed, otherwise it will be reverted to the default value.
"HIDE"
"DEFAULT"
"MIDITRAIL"
(MIDITrail-ish)"BASICS"
(Basic info only)
render.overlay.info.position
- Type: String
- Default:
"TOP_RIGHT"
- Restriction: see below
Position of the info overlay. Only the following values are allowed, otherwise it will be reverted to the default value.
"TOP_LEFT"
"TOP_RIGHT"
"BOTTOM_LEFT"
"BOTTOM_RIGHT"
render.overlay.info.scale
- Type: Float
- Default:
1.0
- Restriction:
0.25
min,4.0
max
Scale of the info overlay.
render.overlay.info.showDuration
- Type: Boolean
- Default:
false
When set to true
, the time portion of the playback info overlay will also display the length of the MIDI currently playing (e.g. 27.4
→ 27.4/02:41.2
).
render.overlay.fps.type
- Type: String
- Default:
"SHOW_ALL"
- Restriction: see below
What to display in the FPS counter overlay. Only the following values are allowed, otherwise it will be reverted to the default value.
"HIDE"
"SHOW_NUMBERS"
"SHOW_ALL"
render.overlay.desync.type
- Type: String
- Default:
"SHOW_NUMBERS"
- Restriction: see below
What to display in the MIDI desync overlay. Only the following values are allowed, otherwise it will be reverted to the default value.
"HIDE"
"SHOW_NUMBERS"
"SHOW_ALL"
ui.font
- Type: String
- Default:
"Yu Gothic UI"
Name of font to use in UI(not overlay).
files.midi
- Type: String
- Default:
null
Location of last opened MIDI file.
files.ffmpeg
- Type: String
- Default:
null
Location of last opened ffmpeg executable.
files.resourcePacks
- Type: String
- Default:
null
Resourcepacks folder.
The folder where you put your resource packs. null
means resourcepacks/
folder inside the UMP folder. Changing this allows you to share resourcepacks between multiple instances of UMP.
updateChecker.checkOnStartup
- Type: Boolean
- Default:
true
When set to true
, UMP will check for new version of UMP automatically.
updateChecker.branch
- Type: String
- Default:
"development"
Type of version to check for.
"development"
: Development (latest) version"stable"
: Stable version
Resourcepack
Resourcepack (or "Pack") is folder or zip file containing following PNG images and pack.yml
file. Some images should be grayscale for better coloring results.
note
and noteEdge
should be 1 pixel high. Others can be any size. Images are resized without anti-aliasing for maximum performance.
pack.yml
Sample
format: 0
name: "Synthesia Note Colors"
version: 1.1.0
author: "PipiraMine"
description: "No random colors."
note:
loopColors: true
colors:
- 0x85f202
- 0x71aceb
- 0xf94b3b
- 0xe18de6
- 0xffec00
- 0xffa300
signature: null
format
- Type: Integer
- Default:
0
Pack format. Packs with this value not 0 will be displayed as incompatible.
name
- Type: String
- Default:
null
Name of the pack to show in pack list.
version
- Type: String
- Default:
null
Version of the pack to show in pack list. There's no rules for writing version.
author
- Type: String
- Default:
null
Name of author of the pack to show in pack list.
description
- Type: String
- Default:
null
Description of the pack to show in pack list.
note.loopColors
- Type: Boolean
- Default:
false
Whether note colors should be looped. If false
, Colors after using all will be random.
note.colors
- Type: Color[] or Map<Integer, Color>
Note color for each tracks. Use map to change specific track color(Note that track number starts from 0).
signature
- Type: String
- Default:
null
-
Signature to prove the pack is verified. Signature is manually issued by UMP devs.
Translation
UMP supports Japanese, English and Simplified Chinese by default. You can easily add translations by simply placing language files in UMP folder.
Language Format
# Syntax:
key=value
# Examples:
_lang=English
converter.speedLimit=Slow down render to %s%%
converter.speedLimit.unlimited=No render speed limit
converter.done=Finished rendering to:\n%s
- Key and value is separated by
=
. - Lines starting with
#
are ignored. - Some values can have line breaks by
\n
. %s
in values are replaced with data passed from UMP, and%%
with the literal%
character. You can also use%1$s
or%2$s
instead of%s
, which will be replaced with first data, second data, and so on.- Value for key
_lang
is used as language name. Make sure to set value for this. More info in next section.
Language Metadata
Metadata has key starting with _
to distinguish from UI translations.
_lang
Name of this language. Used in [Languages] dialog and welcome window.
_lang.xx
Name of this language in other language. Used in [Languages] dialog, next to language with file name same as xx
part.
_font
Name of suitable font to display this language. Multiple fonts can be specified using comma to support more OSes (don't put spaces around comma). First installed fonts in this list or default sans serif (if no fonts were installed) will be used.
_createdBy
Name of translators. Not yet used in UMP, but reserved for future use.
Tutorials
Index
Memory Allocation
- Related manual sections:
UMP runs on top of a program called JVM, which limits how much memory UMP can use. To open bigger MIDIs, you might need to change this limit, called Memory Allocation.
Limitations
Before you begin, check how much memory is available on your PC. Allocations larger than that have no benefit, and may prevent UMP from even starting.
If your PC is 32-bit, UMP will not start if you try to allocate more than 2GB. This is a physical limitation of 32-bit PCs, and we recommend that you get a new PC to allocate more.
If you have 32-bit Java, UMP will also not start if you attempt to allocate more than 2GB. However, unless your PC is 32-bit, you can remove this limitation by installing 64-bit Java (also see Quick Start).
How to check the amount of memory in your PC and whether your PC is 32-bit or not depends on the OS. We'll not cover them here; search online for more information.
Changing Memory Allocation in Launcher
- Open
MIDIPlayer.bat
in your favorite text editor. - Update values of launcher options
INITIAL_MEMORY
andMAX_MEMORY
to the new allocation. - Save file and restart UMP.
Changing Memory Allocation in Command Line
For those who don't use the Launcher, add the -Xms
and -Xmx
arguments between java
and -jar
as shown in the following example.
Getting Out of Memory
If you use the Launcher, UMP will immediately close itself when allocated memory is exausted. You can disable this behavior by changing Launcher option CRASH_ON_OUT_OF_MEMORY
to false
. However, since running out of memory is an unrecoverable error to any programs in general, UMP may be very unstable.
Apply WinMM Patch
MIDI performance on Windows 10 is terrible. Let's improve that drastically with WinMM patch.
Since UMP runs on a program called JVM, you need to patch JVM instead of UMP.
Find JVM
- Have UMP running.
-
Open Task Manager.
- If you see [More details] at bottom-left of the window, click it.
- In [Processes] tab, find a JVM process that is called "Java(TM) Platform SE binary" and shows UMP when expanded. Right click on it and select [Open file location].
- File explorer will open. Copy the path.
Patch with OmniMIDI
- Requirements:
- Open OmniMIDI Configurator as administrator and go [Tools] -> [Windows Multimedia Wrapper].
- Click [Patch an application].
-
In [Select an application to patch] dialog, go to the JVM folder and select
java.exe
. - Restart UMP.
- Done!
Patch Manually
- Requirements: Patch File
- Download
winmm32wrp.dll
(for 32-bit) orwinmm64wrp.dll
(for 64-bit) depending on architecture of your JVM. - Place the patch file into JVM folder. Administrator privilege may be required.
- Restart UMP.
- Done!
Change Note Colors
- Related manual sections:
Resourcepacks allows you to change color of notes.
- Check what track has the notes you want to change color. Skip all tracks with no notes, count from 0 and remember the number of that track.
-
Open
resourcepacks
folder (create if it doesn't exist) in UMP folder, create new folder with any name, create new file namedpack.yml
in that folder. -
Open
pack.yml
in text editor and write:format: 0 name: (Any name) version: 1.0 author: (Your name) description: (Short description) note: colors: (Track number): (Color you want)
Not to mention you don't need to use your real name.You can also use list if you want to change many colors from track 0:note: colors: - (Color 0) - (Color 1) - (Color 2)
- Save the file, return to UMP and go [Options] -> [Resourcepacks].
- Select your pack you just made, click [Done].
- Done!
Sync Sound to Screen
- Related manual sections:
- Close UMP.
- Open
config.yml
file in any text editor. - Look for
usePlayThread: true
, change it tousePlayThread: false
. - Save the file.
- Restart UMP.
Open AVI in AVIUtl
Japanese free video editing software AVIUtl can open UMP's AVI file by installing input plugin. This section in the manual is made for Japanese people and translated with no reason.
- Install L-SMASH Works to AVIUtl.
- Open Settings([ファイル] -> [環境設定] -> [入力プラグインの設定] -> [L-SMASH Works File Readerの設定]).
- Check [Libav+L-SMASH] and [LW-Libav] at the top.
- Restart AVIUtl or reopen project file.
- Make sure to check [アルファチャンネルを読み込む] for videos with transparent background.
April Features
UMP has special features that are only available during April 1st and April 3rd JST. UMP checks for current date when starting.
Spoilers warning!
2019 (Version 1.5 and later)
- Window title scrolls.
- Renderer PushingDefaultMIDIRenderer appears. During April 1st, this becomes the default renderer.
2020 (Version 1.6 β2 and later)
- Language select always appears in splash window. When some language is selected, the あああーあ・あーああ option appears.
- All features from 2019 also appears.
2021 (Version 1.6 β3 and later)
- The [Game] menu appears.
- All features from 2020 also appears.
2022 (Version 1.6 β4 and later)
- Option to accelerate the MIDI appears in [Play] menu.
- All features from 2021 also appears.
2023 (Version 1.6 and later)
- Loading a MIDI updates Windows.
- All features from 2022 also appears.
Frequently Asked Questions & Troubleshooting
Setting UMP Up
What do you mean by "for advanced users"?
UMP is designed to be familiar for Black MIDI experts or people who know how to use advanced programs.
UMP is not recommended if you:
- See (Black) MIDIs interesting and want to just jump in
- Recently got a PC
- Don't (want to) read wall of text
- Afraid of error texts
Also see the next question for alternative MIDI players.
Actually UMP should be easy to use as long as you read this manual though...
I've seen many newbies screaming around when UMP crash, while the log literally says it's just out of memory... Please don't do that.
What are alternatives?
Recommended MIDI players (Alternatives to UMP):
Player | Ease of use | Notes |
---|---|---|
MIDITrail | Easy | Has 3D notes and note count. |
Piano From Above (PFA) | Easy | King of MIDI player before UMP. |
Kiva | Intermediate | Best pick if you care performance the most. Sometimes faster than UMP. Doesn't need WinMM patch. |
Recommended MIDI renderers (Alternatives to UMP's Video Render):
Renderer | Ease of use | Notes |
---|---|---|
Zenith | Expert | A renderer from developer of Kiva. Has many options and customizations, thus slightly complex. Can also play MIDIs but don't expect performance. |
Recommended Synths (Alternatives to UMP's recommended synth OmniMIDI):
Synth | Ease of use | Notes |
---|---|---|
VirtualMIDISynth | Easy | Simple setup. |
Does it work on my phone/tablet?
No. Just buy a PC!!!
Does it work on Apple Silicon Mac?
Yes. Make sure to install Java for Apple Sillicon, or else UMP may run slower.
Does it work on Linux?
Yes. UMP should work on any desktop OS if Java 8 works.
Does it work on Java 9/10/11/12/13/14/15/16/17/18?
Probably. But remember that UMP is made on Java 8. If you encounter any issues, try Java 8 before reporting!
Does it work on Java 7?
No.
Using UMP
I can't hear anything
You're not using the synth correctly. Double-check the following:
- You have a MIDI synth
- MIDI synth is configured correctly (have soundfont, volume not 0%, output set to correct speaker, etc)
- You selected correct MIDI synth in UMP
If you have no idea what a synth or soundfont is, open your eyes and read Quick Start again.
Audio lags behind
It's a feature that allows audio to lag behind in order to mentain high framerate. You might want to do the following to maximize MIDI performance:
- Use OmniMIDI as MIDI synth. OmniMIDI is able to handle millions of notes per second without lagging if used correctly.
- Patch Java properly. Patching UMP files (e.g. MIDIPlayer.jar) is not possible and has no effect.
If audio still lags after all that, the MIDI you're playing could be too powerful for your PC. Upgrade your PC or wait for technology to advance.
You can also turn this feature off in exchange for lower framerate.
But it doesn't lag on other players...
Some MIDI players has a feature that completely skips notes to recover from audio lag. There are no plans to add that feature to UMP.
UMP sounds differently from other players
This is the best UMP can do without increasing memory usage. When making videos, audio should be generated separately using other programs such as KMC.
I can't open large MIDIs / It suddenly closes / It says 'out of memory'
UMP runs under a memory limit, and when the limit is reached, UMP will either close itself or start to glitch out. If you believe your PC has enough physical memory to load larger MIDI files, follow the Memory Allocation Tutorial to increase this limit.
It lags
Few ways to boost your FPS:
- Increase FPS limit or make it unlimited ([Options] -> [FPS Limit...])
- Use OmniMIDI as MIDI synth
- Patch Java properly
If none helps you, the MIDI you're playing is too powerful, or maybe UMP isn't good enough to run on your PC. I'm sorry. (try video render!)
I see random lag spikes
It's caused by Java cleaning memory (GC). Really hard to get rid of it completely. Video render are not affected by this.
If you're used to tune GC things, you can change JVM arguments by editing the Launcher yourself.
Rendering is not smooth when FPS limit is set
This is because UMP doesn't support VSync. Few workarounds I came up with:
- Keep this text visible in your browser window.
- Have any YouTube video visible in your browser window.
- Set FPS limit to multiple of your monitor's refresh rate. (60, 120, 144, etc)
UMP Features
Why doesn't UMP support some MIDI files other players can play?
Because those files are actually broken. There is no plan for supporting broken MIDI files. Ask MIDI authors for a fix.
Will you add PFA's red bar?
No. I'm leaving this difference so you can see it's not PFA in glance. I also hope you never add this.
Can notes be transparent? / Rounded corners?
No. Notes can't be transparent, even partially (like corners). UMP technology only works when notes are complete opaque.
Will you support 88/256 keys?
Not planned for now, since it'll make keys look not so good. Also you can't hear all 256 keys can you?
Will you add audio render?
Not planned as it is not the main focus of UMP. There are already a good tools for rendering audio, and even if I embed one of them in UMP, it probably won't save much time for video editing.
Others
Do I have to write credit?
No. But it'd be appreciated! Using credit overlay in video render is also a good way to credit.
Why Java?
Because it was my primary/only language at the time I started making UMP. Actually I recently did make prototype player in C++... so... maybe? (not sure if I can even finish it though)
How many notes can UMP load?
Up to 23,455,889,992,365 notes. A MIDI file with this much notes will be 127.9TiB in size, and UMP will use around 1PiB of memory to load!
Source code?
No. Code is private as long as I continue making updates (...or maybe private forever, me in future decides that). You are not allowed to decompile.
How can I donate?
I currently don't have any way to accept direct $$$. Also who on earth would ever donate to UMP?
If you're serious and in UMP Discord server you can throw me Nitro in DM
Extra: Some History Stuff
bruh ump is so dead
20191.5.1
Apr 29 20191.5
April 1 20191 Year
November 17th 20181.4.1
September 20181.4
July 20181.3
April 2018The make good videos guys update.
Discord server
February 11th 20181.2.2
December 20171.2.1
December 20171.2
December 2017The color boost update.
1.1
November 20171.0.1
November 20171
November 17th 2017First public version. Release announcement video acquired 620 views in first 7 days, which was incredible for tiny YT channel like me.
UMP 0
November 8th 2017First reveal. The beginning of my busy life.
MIDIPlayerTest
??? ~ July 2017First project to generate PFA-like image was started.
First MIDI Project
December 28th 2015Creation date of oldest file produced from my MIDI-related project.
- *1: I'm not sure that this IPA is correct.