RustyKaraoke: Difference between revisions
No edit summary |
No edit summary |
||
Line 6: | Line 6: | ||
RustyKaraoke was primarily created to support the various Thai karaoke formats (NCN, EMK), but with planned support for other formats including Video with ASS subtitles, MP3/CD+G and more. | |||
RustyKaraoke was primarily created to support the various Thai karaoke formats ([[NCN (Karaoke Format)|NCN]], [[EMK (Karaoke Format)|EMK]]), but with planned support for other formats including Video with ASS subtitles, MP3/CD+G and more. | |||
Various reverse-engineering efforts were made to dissect the proprietary Karaoke formats. | Various reverse-engineering efforts were made to dissect the proprietary Karaoke formats. | ||
== eXtreme Karaoke MIDI Archive (.emk)== | |||
== eXtreme Karaoke MIDI Archive (.emk) == | |||
EMK files are simply an archive of the NCN format, compressed into one single file. | EMK files are simply an archive of the NCN format, compressed into one single file. | ||
An EMK file contains the following data: | An EMK file contains the following data: | ||
* EMK Header (extra metadata) | *EMK Header (extra metadata) | ||
* NCN Lyrics | *NCN Lyrics | ||
* NCN Cursor | *NCN Cursor | ||
* MIDI | *MIDI | ||
All EMK files are XOR encrypted with the magic key <code>AFF24C9CE9EA994</code>, which when decrypted becomes a DEFLATE stream of an archive with 4 chunks containing these files. | All EMK files are XOR encrypted with the magic key <code>AFF24C9CE9EA994</code>, which when decrypted becomes a DEFLATE stream of an archive with 4 chunks containing these files. | ||
Once extracted, it can be played like a normal NCN file, with extra metadata in the headers. | Once extracted, it can be played like a normal NCN file, with extra metadata in the headers. |
Revision as of 02:18, 29 November 2022
RustyKaraoke is an attempt to create a universal karaoke player in the Rust programming language by Cappy Ishihara after encountering various frutstrations with various proprietary Thai karaoke software (Nick Karaoke, eXtreme Karaoke), while development on its open-source alternative HandyKaraoke was stagnant.
RustyKaraoke was primarily created to support the various Thai karaoke formats (NCN, EMK), but with planned support for other formats including Video with ASS subtitles, MP3/CD+G and more.
Various reverse-engineering efforts were made to dissect the proprietary Karaoke formats.
eXtreme Karaoke MIDI Archive (.emk)
EMK files are simply an archive of the NCN format, compressed into one single file.
An EMK file contains the following data:
- EMK Header (extra metadata)
- NCN Lyrics
- NCN Cursor
- MIDI
All EMK files are XOR encrypted with the magic key AFF24C9CE9EA994
, which when decrypted becomes a DEFLATE stream of an archive with 4 chunks containing these files.
Once extracted, it can be played like a normal NCN file, with extra metadata in the headers.