Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/isaacbrodsky/cdgdeck
Player for CD+G (Compact Disc + Graphics) subcode tracks, tested against a variety of discs
https://github.com/isaacbrodsky/cdgdeck
cd cdg cdgraphics karaoke
Last synced: 24 days ago
JSON representation
Player for CD+G (Compact Disc + Graphics) subcode tracks, tested against a variety of discs
- Host: GitHub
- URL: https://github.com/isaacbrodsky/cdgdeck
- Owner: isaacbrodsky
- License: bsd-3-clause
- Created: 2019-11-03T16:29:31.000Z (about 5 years ago)
- Default Branch: master
- Last Pushed: 2020-11-09T01:20:57.000Z (almost 4 years ago)
- Last Synced: 2023-02-26T18:02:39.855Z (over 1 year ago)
- Topics: cd, cdg, cdgraphics, karaoke
- Language: C++
- Homepage:
- Size: 156 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.MD
- License: LICENSE.txt
Awesome Lists containing this project
README
# CD+G Deck
CD+G Deck is an application for playing Compact Disc Graphics. In the later 80's, the CD+G format was introduced to embed low bitrate graphics tracks in audio CDs, using the discs' "subcode" fields. A limited selection of CDs have these elaborate but low bitrate graphics tracks embedded in them. You can learn more about CD+G at the [CD+G Museum](http://www.cdplusg.com/cdplusg/Main.html).
This happened contemporaneously with CD Video (not to be confused with Video CD), and a few years before the Philips CD-i. After this initial commercial push, CD+G retreated from public view with the exception of karaoke CDs, which have made continued use of the format. There was also a CD+EG (Compact Disc Extended Graphics) format, but I am not aware of any discs using this standard ever being made. The Sega Saturn may have a reference decoder for the CD+EG format.
This application is focused on playing subcode tracks (doesn't support reading the CD directly) of discs from the CD+G launch. These older discs use more of the features of the CD+G system, including features rarely seen on karaoke CDs, and have the most interesting graphics.
# Building
Install [vcpkg](github.com/microsoft/vcpkg/) for dependency management. You must also need CMake and a C++ compiler.
## vcpkg setup instructions
Install the following:
```
sdl2 sdl2-mixer sdl2-ttf libpng zlib fltk
```Note, fltk may need static linking.
Optional decoders:
```
sdl2-mixer[libflac] sdl2-mixer[mpg123] sdl2-mixer[libvorbis] --recurse
```## Build
Replace `$VCPKG_ROOT` with where you installed vcpkg.
```
mkdir build
cd build
cmake -DCMAKE_TOOLCHAIN_FILE=$VCPKG_ROOT/scripts/buildsystems/vcpkg.cmake ..
make
```# History
This code was originally written around 2012-2013. It was mainly tested against *Information Society* (the disc I originally learned about CD+G from), and then later against Jimi Hendrix Experience' *Smash Hits* (probably one of the most technically and
artistically developed CD+G discs.) I tested against a few karaoke CDs, and Lou Reed's *New York*, which may be one of the few discs that uses alternate CD+G channels for translated lyrics.I think this application is one of the most correct open source CD+G implementations available. Compare to VLC, which as of writing does not play *Smash Hits* correctly because of an incorrect implementation of `BORDERPRESET`. This seems to be a common error without having seen a disc that scrolls graphics into view.
The code was somewhat updated in 2020 to use SDL2 and published.
# License
[BSD License](./LICENSE.txt)
Copyright 2020 Isaac Brodsky