FS#8376 - CDG Karaoke plugin

Attached to Project: Rockbox
Opened by Seth Cohn (sethcohn) - Thursday, 27 December 2007, 00:56 GMT
Task Type Feature Requests
Category Plugins
Status Closed
Assigned To No-one
Operating System All players
Severity Low
Priority Normal
Reported Version Daily build (which?)
Due in Version Undecided
Due Date Undecided
Percent Complete 0%
Votes 0
Private No


CDG+mp3 Karaoke is the Number 1 format in which Karaoke files are found online... Players exist on all platforms, including winamp plugins, etc... CD+G Karaoke discs are the standard, and CDG+mp3 is the ripped format that is commonly used.

The CDG spec is quite simple, only about 8 simple blitish commands,
and GPLed C code exists already, so this would be a relatively simple plugin that would ideally play the mp3 with the same name as the cdg file, as they are typically stored together. Blitting to the screen, scaled of course, is the only really functionality needed, and it's certainly lower bandwidth than mpeg, so all cpus should be able to handle it in a timely manner.

This would add a nearly full karaoke playback system to Rockbox...
The only possible lacking thing would be also recording the microphone for singing results for later playback, if desired, and that's a future dream item.

Original spec for CDG decoding:

GPLed c code which implements the above:
(This doesn't have mp3 decoding, making it perfect for a rockbox plugin... it's only the cdg playing)
This task depends upon

Closed by  Bj√∂rn Stenberg (zagor)

Reason for closing:  Fixed
Additional comments about closing:  Closing all feature requests.
Comment by Jonathan Gordon (jdgordon) - Thursday, 27 December 2007, 01:17 GMT
nice timing, I was tihnking about implementing something like this today...
are these files easy to get for not mainstream music? are there scripts to pull the files for your whole music collection?
Comment by Seth Cohn (sethcohn) - Thursday, 27 December 2007, 02:09 GMT
Since most of the CDGs are timed/tied to music-only versions of the songs, for karaoke purposes, the answer is really No, to both... but that's mostly because nobody has started a 'free' CDG library (yet) Since even basic lyric lookups websites are now under copyright infringment threats these days, none of the lyrics formats has really blossomed into the 'standard'. Even the lyric ID3 isn't widely used or well supported yet.

More info:
Search engines for original discs of Karaoke (if you own the disc, owning the CDG file must be legal, right?): (mostly midis and kar (yet another Karaoke format, but not well used)

Legal Custom-made CDGs:

Commercial CDG creator:

Winamp plugins for CDG playback:

Python CDG player and CDG ripper:
(also creates ogg+cdg)
Comment by Seth Cohn (sethcohn) - Thursday, 27 December 2007, 02:16 GMT
One more source for purchasing legal MP3+CDG:

and making CDGs from other formats (like lrc):

Comment by Seth Cohn (sethcohn) - Thursday, 27 December 2007, 02:26 GMT
I'd be remiss if I didn't also point out that if you google or p2p (bittorrent/irc/dc++/gnutella/etc) search for cdg or karaoke, you'll find lots of CDG content out there, with as much legality as when you download the mp3s themselves from similar sources.
Comment by Andy (am7146) - Wednesday, 13 February 2008, 15:02 GMT
Are you guys serious about doing this? I'd like to help. I'm a bit rusty on my C (it's been a few years). I took a look at the gpoke code

and it should be doable to port it over to use the rockbox frame buffers instead of the GP libraries. I haven't looked at the rockbox code so I'm not sure how we'd link the timing on the cdg playback to the MP3 playback.

What do you think. Anyone up to work with me on this?

Comment by Pedro (plosilva) - Sunday, 01 March 2009, 20:37 GMT
This feature would be a great plus to rockbox. Anyone working on this at all?

Best regards,