{"id":16246486,"url":"https://github.com/perlun/modplay","last_synced_at":"2025-04-08T11:45:25.189Z","repository":{"id":74958263,"uuid":"595288596","full_name":"perlun/modplay","owner":"perlun","description":"Simple modplayer with Raspberry Pi visualization support","archived":false,"fork":false,"pushed_at":"2023-02-01T21:46:16.000Z","size":6,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-02-14T07:48:47.595Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","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/perlun.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":"2023-01-30T19:28:34.000Z","updated_at":"2023-01-30T19:28:51.000Z","dependencies_parsed_at":null,"dependency_job_id":"ba84b5a5-b032-4b5c-9765-243875b23043","html_url":"https://github.com/perlun/modplay","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/perlun%2Fmodplay","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/perlun%2Fmodplay/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/perlun%2Fmodplay/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/perlun%2Fmodplay/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/perlun","download_url":"https://codeload.github.com/perlun/modplay/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247838416,"owners_count":21004575,"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","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":[],"created_at":"2024-10-10T14:31:24.643Z","updated_at":"2025-04-08T11:45:25.156Z","avatar_url":"https://github.com/perlun.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"## modplay\n\nSimple tool for playing `.mod` files (and some other formats) with GPIO-based\nvisualization for Raspberry Pi.\n\nDoes not work on platforms where `RPi.GPIO` is not supported\n\n### What it looks like in action\n\n(YouTube link. Module played is [`axelf_8.mod`](https://modarchive.org/index.php?request=view_by_moduleid\u0026query=34469) by Scott Wilkins. Thank you!)\n\n[![Modplayer with 8-channel Raspberry Pi LED visualization](https://img.youtube.com/vi/3TEI_KRq3IY/maxresdefault.jpg)](https://www.youtube.com/watch?v=3TEI_KRq3IY)\n\n### Requirements\n\n(Tested on Debian bookworm, i.e. not Raspbian, but should be fine there as\nwell.)\n\n```bash\n$ apt-get install python3-pip\n$ pip install miniaudio libxmplite\n```\n\n### Use\n\n`sudo` is unfortunately required for `/dev/kmem` access, needed by `RPi.GPIO`.\n\n```bash\n$ sudo ./modplay \u003cfile\u003e\n```\n\n### GPIO wireout\n\nOnly 8 channels are currently supported; it feels a bit exaggerated to connect\nmore GPIO pins than that to your breadboard. :) Theoretically, it should be\npossible to extend this to a theoretical maximum of 28 channels, if I count the\nnumber of GPIO pins correctly on https://pinout.xyz/\n\nRemember to connect a suitable ground pin, e.g. GPIO pin 6, to the other\n(positive) side of the breadboard, and **remember to use resistors**. You may\notherwise break both your LEDs and the components in your RPi.\n\n- Channel 0: GPIO 18 (pin 12)\n- Channel 1: GPIO 23 (pin 16)\n- Channel 2: GPIO 24 (pin 18)\n- Channel 3: GPIO 25 (pin 22)\n- Channel 4: GPIO 8 (pin 24)\n- Channel 5: GPIO 7 (pin 26)\n- Channel 6: GPIO 1 (pin 28)\n- Channel 7: GPIO 12 (pin 32)\n\n### License (zlib license)\n\nCopyright (c) 2023 Per Lundberg\n\nThis software is provided 'as-is', without any express or implied\nwarranty. In no event will the authors be held liable for any damages\narising from the use of this software.\n\nPermission is granted to anyone to use this software for any purpose,\nincluding commercial applications, and to alter it and redistribute it\nfreely, subject to the following restrictions:\n\n1. The origin of this software must not be misrepresented; you must not\n   claim that you wrote the original software. If you use this software\n   in a product, an acknowledgment in the product documentation would be\n   appreciated but is not required.\n2. Altered source versions must be plainly marked as such, and must not be\n   misrepresented as being the original software.\n3. This notice may not be removed or altered from any source distribution.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fperlun%2Fmodplay","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fperlun%2Fmodplay","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fperlun%2Fmodplay/lists"}