Looking at your MIDI file using this tool: https://colxi.info/midi-parser-js/test/test-es6-import.html
It looks like most the lyric events ("metaType": 5
) are being encoded with a non-zero “deltaTime” value, meaning there is time between the actual start of the note and when the lyric starts, and in some cases they occur shortly before their respective note.
For example, I see a couple instances of two lyric events immediately adjacent to another, which seems like it would cause issues for SynthV Studio.
...
{
"deltaTime": 0,
"type": 9,
"channel": 1,
"data": [
68,
75
]
},
{
"deltaTime": 3,
"type": 255,
"metaType": 5,
"data": "and "
},
{
"deltaTime": 720,
"type": 255,
"metaType": 5,
"data": "again "
},
{
"deltaTime": 45,
"type": 8,
"channel": 1,
"data": [
68,
0
]
},
...
I don’t know if this is “normal” for MIDI encoding or not, this is my first time really digging into the file encoding, but it could be part of what’s causing the inconsistent behavior since the lyric events aren’t strictly associated with a note.
You can look for yourself, but if I were to guess this behavior is caused by the notation software not maintaining any association between notes lyrics, which is distinctly different from SVP format where the lyric is embedded as part of the note.
MIDI file specifications, as presented by the maker of the above tool: MIDI File Format Specifications · colxi/midi-parser-js Wiki · GitHub
This expresses things in hexadecimal and includes a lot of extra information, so here are the relevant bits:
Delta-Times
The event delta time is defined by a variable-length value. It determines when an event should be played relative to the track’s last event. A delta time of 0 means that it should play simultaneously with the last event.
-
"type": 9
is the start of a note (“Note On” event)
-
"type": 8
is the end of a note (“Note Off” event)
- The
data
for Note On/Off is expressed as the MIDI pitch followed by the velocity (0 velocity for “off”)
-
"metaType": 5
is a lyric event