When I had the idea to make karaoke videos for my backing tracks I could not find software that met my requirements. It had to be possible to show up to 10 different parts simultaneously on screen and ideally there should be a way to synchronize the syllables exactly with the tempo track of the music. With some effort I was able to create such a program myself. Below is a screenshot of my program at work. It looks clunky, but it does the job quite nicely and I can customize it as much as I want.
When I'm satisfied with the music, I export it as an mp3 along with the tempo track. I then have to prepare a text file with the lyrics for each part, clearly separating the syllables. When that is done, I play the music and tap along with the space bar to indicate when each syllable is sung. After that, I have to adjust the timing of each syllable manually to match the tempo track exactly.
The last stage is to generate the video. Previously I captured the video by playing it on an HD screen, but for La Traviata I have created a new program in Python 3 that generates each frame individually at an ultra HD resolution of 13440 x 7560 pixels. The frames are then downsampled to HD (1920 x 1080 pixels) and sequenced at 60 frames per second. This gives a smoother and better anti-aliased result than with the old method.
Then I make a short description of the video and upload everything to YouTube with a scheduled release on the 28th of the month. That's it!