{"id":17329907,"url":"https://github.com/isaacbrodsky/cdgdeck","last_synced_at":"2025-08-15T18:45:02.330Z","repository":{"id":56423607,"uuid":"219330631","full_name":"isaacbrodsky/cdgdeck","owner":"isaacbrodsky","description":"Player for CD+G (Compact Disc + Graphics) subcode tracks, tested against a variety of discs","archived":false,"fork":false,"pushed_at":"2020-11-09T01:20:57.000Z","size":160,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-27T05:43:47.369Z","etag":null,"topics":["cd","cdg","cdgraphics","karaoke"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/isaacbrodsky.png","metadata":{"files":{"readme":"README.MD","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2019-11-03T16:29:31.000Z","updated_at":"2023-03-14T05:28:45.000Z","dependencies_parsed_at":"2022-08-15T18:20:59.621Z","dependency_job_id":null,"html_url":"https://github.com/isaacbrodsky/cdgdeck","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/isaacbrodsky/cdgdeck","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/isaacbrodsky%2Fcdgdeck","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/isaacbrodsky%2Fcdgdeck/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/isaacbrodsky%2Fcdgdeck/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/isaacbrodsky%2Fcdgdeck/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/isaacbrodsky","download_url":"https://codeload.github.com/isaacbrodsky/cdgdeck/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/isaacbrodsky%2Fcdgdeck/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":270616222,"owners_count":24617107,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-15T02:00:12.559Z","response_time":110,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cd","cdg","cdgraphics","karaoke"],"created_at":"2024-10-15T14:49:45.435Z","updated_at":"2025-08-15T18:45:02.256Z","avatar_url":"https://github.com/isaacbrodsky.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# CD+G Deck\n\nCD+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).\n\nThis 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.\n\nThis 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.\n\n# Building\n\nInstall [vcpkg](github.com/microsoft/vcpkg/) for dependency management. You must also need CMake and a C++ compiler.\n\n## vcpkg setup instructions\n\nInstall the following:\n\n```\nsdl2 sdl2-mixer sdl2-ttf libpng zlib fltk\n```\n\nNote, fltk may need static linking.\n\nOptional decoders:\n\n```\nsdl2-mixer[libflac] sdl2-mixer[mpg123] sdl2-mixer[libvorbis] --recurse\n```\n\n## Build\n\nReplace `$VCPKG_ROOT` with where you installed vcpkg.\n\n```\nmkdir build\ncd build\ncmake -DCMAKE_TOOLCHAIN_FILE=$VCPKG_ROOT/scripts/buildsystems/vcpkg.cmake ..\nmake\n```\n\n# History\n\nThis 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 \nartistically 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.\n\nI 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.\n\nThe code was somewhat updated in 2020 to use SDL2 and published.\n\n# License\n\n[BSD License](./LICENSE.txt)\n\nCopyright 2020 Isaac Brodsky\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fisaacbrodsky%2Fcdgdeck","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fisaacbrodsky%2Fcdgdeck","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fisaacbrodsky%2Fcdgdeck/lists"}