{"id":15145297,"url":"https://github.com/anfractuosity/musicplayer","last_synced_at":"2025-09-04T16:51:01.398Z","repository":{"id":149713910,"uuid":"53129767","full_name":"anfractuosity/musicplayer","owner":"anfractuosity","description":"Play audio files (.wav) via the system bus of your computer and pickup with an AM radio.  See youtube link for example.","archived":false,"fork":false,"pushed_at":"2023-09-05T19:45:57.000Z","size":9,"stargazers_count":52,"open_issues_count":0,"forks_count":2,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-08-13T01:48:09.343Z","etag":null,"topics":["am","audio","exfiltration","musicplayer","pdm","radio","rf","system-bus"],"latest_commit_sha":null,"homepage":"https://www.youtube.com/watch?v=KH9yb1qFKDY","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/anfractuosity.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2016-03-04T11:06:39.000Z","updated_at":"2025-08-11T16:04:55.000Z","dependencies_parsed_at":"2025-02-09T01:30:54.660Z","dependency_job_id":null,"html_url":"https://github.com/anfractuosity/musicplayer","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/anfractuosity/musicplayer","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anfractuosity%2Fmusicplayer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anfractuosity%2Fmusicplayer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anfractuosity%2Fmusicplayer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anfractuosity%2Fmusicplayer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/anfractuosity","download_url":"https://codeload.github.com/anfractuosity/musicplayer/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anfractuosity%2Fmusicplayer/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":273641595,"owners_count":25142246,"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-09-04T02:00:08.968Z","response_time":61,"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":["am","audio","exfiltration","musicplayer","pdm","radio","rf","system-bus"],"created_at":"2024-09-26T11:22:49.427Z","updated_at":"2025-09-04T16:51:01.342Z","avatar_url":"https://github.com/anfractuosity.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# musicplayer\n\nPlay .wav audio file via system bus. \n\nBased on the work of https://github.com/fulldecent/system-bus-radio\n\nWe make use of Pulse Density Modulation (PDM) (see https://en.wikipedia.org/wiki/Pulse-density_modulation for more\ninformation).  The Pulse Code Modulation (PCM) data from a .wav file is converted to a PDM bit stream.  \n\nEach PDM bit, is output at the same sample rate as the audio.  If we see a bit with a value of 1, we make use of the\n_mm_stream_si128 instructions, otherwise we simply use a busy-wait loop.  We perform each of these operations for a duration\nof 1/samplerate seconds.\n\nYou simply use sox to convert your audio to a high sample rate such as 1MHz, as seen below (This\nhigh rate is necessary for PDM).\n\n```\nmake\nsox in.wav -r 1000000 out.wav\n./musicplayer out.wav\n```\n\n### Requirements\n\n* Sox\n* libsndfile - http://www.mega-nerd.com/libsndfile/\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fanfractuosity%2Fmusicplayer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fanfractuosity%2Fmusicplayer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fanfractuosity%2Fmusicplayer/lists"}