UltraStar-Deluxe / Play

Free and open source singing game with song editor for desktop, mobile, and smart TV

Home Page:https://ultrastar-play.com

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Import MIDI file with lyrics events (aka. KAR file)

achimmihca opened this issue · comments

Actual behaviour

UltraStar Play at the moment only supports the UltraStar format.

There are other karaoke formats, notably MIDI files with added lyrics.
These MIDI files typically use the KAR file extension (example file on GitHub).

Another karaoke file format seems to be KFN, which is used by Karafun. However, I don't think that these files are freely available. So I don't think USPlay would benefit from supporting them.

Expected behaviour

Import KAR file in song editor

UltraStar Deluxe had a feature to convert MIDI / KAR files to the UltraStar format.
Similarly, USPlay could improve the MIDI import in the song editor to import MIDI / KAR files with lyrics.

Implicitly convert KAR file without manual import

If the MIDI import with lyrics works then a next step could be to do an implicit conversion for KAR files

  • include KAR files during song scan
  • implicitly create SongMeta and Voices from KAR file, such that these can be played like other songs.
  • play MIDI file like other audio files
    • out of scope

Question

I don't know if MIDI / KAR files are widespread.
Do people still use MIDI / KAR files today?

commented

As far as I know, there was almost no usage of the midi importer in usdx. The results are almost unusable or sometimes it is even more work to edit them to be of good quality than just starting all over with UltraStar Creator or similar tool.
Human singers are not exact machines. They don't start/stop singing exactly at the beat borders, they don't exactly hit the pitches of the instrumental tracks and don't always stick to the intended lyrics.

Human singers are not exact machines. They don't start/stop singing exactly at the beat borders, they don't exactly hit the pitches of the instrumental tracks and don't always stick to the intended lyrics.

This statment is independent of the song format.

A KAR file is a MIDI file with dedicated timing events for the lyrics (example file on GitHub).
The timing of the lyrics can be done as good or bad as any UltraStar song.

Import KAR file in song editor

The song editor of UltraStar Play can already import MIDI files.
I think it makes sense to extend this import to consider the dedicated lyrics events in a MIDI / KAR file.

I will try to implement this if it is easy.

Implicitly convert KAR file without manual import

Karafun can play local KAR files.

Similarly, UltraStar Play could implicitly convert KAR files to the UltraStar format. This would allow users to play KAR files without using the song editor.

But I am unsure if this is worth the effort because I don't know if people are actually using KAR files that much.

Similarly, UltraStar Play could implicitly convert KAR files to the UltraStar format. This would allow users to play KAR files without using the song editor.

This would require to play MIDI files, which is out of scope.

Thus, I will only try to improve the MIDI import to consider lyrics timing events.

This page has a collection of KAR files: http://www.karaokeden.com/ita/karaoke/browse/German-2
So there are at least some KAR files out there

There are also commercial and free databases with high quality midi files with lyrics.

This could provide a wealth of songs. Thus, importing MIDI files with lyrics is a higher priority now.

What is needed in the MIDI file importer is a way to select which channel should be imported. Typically the vocals are placed on a dedicated channel.

BTW: In case you want to check out the MIDI files, I am using http://midieditor.org (free and open source) to open and edit MIDI files.

This would require to play MIDI files, which is out of scope.

I have to correct myself. It is not out of scope because CSharpSynth can do it already.
What is needed is mostly to include the missing files of the general midi sound bank.

I guess the song editor could also be improved to play multiple MIDI notes at once.

Thus, I will only try to improve the MIDI import to consider lyrics timing events.

I found the timing events in the data structure. A quick prototype already imports MIDI with lyrics quite nicely.

Similarly, UltraStar Play could implicitly convert KAR files to the UltraStar format. This would allow users to play KAR files without using the song editor.

This has been implemented for the Steam release.

The Steam release improves MIDI support also in other places. The goal is to have MIDI as usable alternative to the UltraStar format, at least for classic karaoke.