2008-12-06, 04:04
I have completed karaoke port to SDL, waiting in Trac (#5439). Since we have it now, it's time to think about other useful features for karaoke, which would help users to enjoy it even more. Being a karaoke fan myself, I'd propose the following list I'd like to work on:
Adding kar format support. It seems to be not really important for English karaoke as most of it seems to be in CD-G. However for non-English karaoke it is still important - for example, there is almost no Russian karaoke in CD-G. I wonder how important it is for other languages as well; would be nice to get some feedback since parsing .kar lyrics is language-specific.
Most likely the playing code should be done in paplayer, and lyrics printing should be done like in Cdg.h. Maybe in another file, as I'd like to have a single "base" karaoke text renderer to avoid changing GUIVisualusation.cpp all the time adding new Render() calls. I would base the player code on timidity++ code (GPL), which takes care of MID->WAV conversion, and then process the resulted WAV further to the audio chain. The lyrics printing will require a separate .kar parsing, but except being language-dependend (and not in utf-8) there are little problems.
Adding song numeric selector. It would be very nice to have some kind of "ID" assigned to the songs which have lyrics, and to be able to select a song by using some hotkey to popup the window, and enter the song number. This would allow the people to pring the list of songs on a piece of paper together with song numbers, and make song selection much faster. Unfortunately I know little about the UI handling code, so I would be thankful for any suggestions where to look in the source code.
Adding a Karaoke-specific visualisation plugin which plays videos as background. On karaoke machines there is usually some video on background. The plugin could just play random videos from a specific folder, and display them without background. To simplify the task the plugin will support only one format which is easy to parse and CPU-friendly to play, like MPEG1 or 2, with no sound. The plugin will NOT support any video type. This video playing supposed to be for visualisation only.
Your thoughts?
Adding kar format support. It seems to be not really important for English karaoke as most of it seems to be in CD-G. However for non-English karaoke it is still important - for example, there is almost no Russian karaoke in CD-G. I wonder how important it is for other languages as well; would be nice to get some feedback since parsing .kar lyrics is language-specific.
Most likely the playing code should be done in paplayer, and lyrics printing should be done like in Cdg.h. Maybe in another file, as I'd like to have a single "base" karaoke text renderer to avoid changing GUIVisualusation.cpp all the time adding new Render() calls. I would base the player code on timidity++ code (GPL), which takes care of MID->WAV conversion, and then process the resulted WAV further to the audio chain. The lyrics printing will require a separate .kar parsing, but except being language-dependend (and not in utf-8) there are little problems.
Adding song numeric selector. It would be very nice to have some kind of "ID" assigned to the songs which have lyrics, and to be able to select a song by using some hotkey to popup the window, and enter the song number. This would allow the people to pring the list of songs on a piece of paper together with song numbers, and make song selection much faster. Unfortunately I know little about the UI handling code, so I would be thankful for any suggestions where to look in the source code.
Adding a Karaoke-specific visualisation plugin which plays videos as background. On karaoke machines there is usually some video on background. The plugin could just play random videos from a specific folder, and display them without background. To simplify the task the plugin will support only one format which is easy to parse and CPU-friendly to play, like MPEG1 or 2, with no sound. The plugin will NOT support any video type. This video playing supposed to be for visualisation only.
Your thoughts?