Support multi-track drifting. Err, multiple lyrics
I'm not reopening #162 (closed) as it was a pretty broad issue. @Jaerdoster thought it would take quite a bit of effort : I think he's right. While doing this for multiple audio tracks is going to be time-consuming, there already has been cases in the Karaoke Base where we could potentially have multiple subfiles for the same karaoke song.
Here are some use cases :
- romanji ass files and japanese ass files
- parody ass files (like the recent Hisone to Masotan ending with France Gall's lyrics in katakana, proudly timed by @lua )
- lyrics with FX versus lyrics without FX. While we try to keep FX to a bare minimum in karaoke files (to keep readability from afar) some people might like to have a FX version if we have one.
I think this validates the idea that we could need a way to switch lyrics.
My main concern isn't how to store and access these : that part is pretty easy. I'll explain how.
We'd need to rework the .kara file format (I heard you in the back say AGAIN!?)
Right now it's a .ini -like format
mediafile=kara.mp4
subfile=kara.ass
...
Having multiple files and objects isn't easy with .ini files.
A JSON or YAML could work much better. Example with JSON :
{
"metadata": {
"singer": "Someone",
"year": 2023,
"title": "POWER",
"series": "Gundam XYZ"
},
"media": {
"file": "kara.mp4",
"gain": -2.3,
"size": 1234576889
}
"lyrics": [
{
"default": true,
"file": "kara.ass",
"name": "Romanji",
"author": "Axel",
"checksum": null
},
{
"file": "kara2.ass",
"name": "Romanji w/ parody effects",
"author": "Bakaclub",
"checksum": null
},
{
"file": "kara3.ass",
"name": "Japanese lyrics",
"author": "Rukawa",
"checksum": null
}
]
}
We need to carefully think which other data we'd need on a sub, but the main idea is here.
My main concern is interface wise, and we need @Ziassan 's opinion on this :
- How does a user select which lyrics to use?
- The admin needs a way to switch lyrics on the fly (dropdown menu in player's controls?)
- The admin needs a way to switch lyrics on a song already in the playlist
- When adding multiple songs, the default lyrics would be selected.
- How to easily display which lyrics are used if not the default ones?
- Do we allow admins to select which kind of lyrics are used by default (Romanji, Romanji with FX, Japanese? we'd need fixed types.)
Am I missing anything else?
/discuss