{"id":27695254,"url":"https://github.com/phultquist/frame","last_synced_at":"2026-03-07T04:03:13.001Z","repository":{"id":37219918,"uuid":"281244196","full_name":"phultquist/frame","owner":"phultquist","description":"A Beautiful Display of Music","archived":false,"fork":false,"pushed_at":"2025-12-04T05:16:19.000Z","size":42167,"stargazers_count":9,"open_issues_count":24,"forks_count":0,"subscribers_count":2,"default_branch":"spotify-listener","last_synced_at":"2025-12-07T10:39:23.749Z","etag":null,"topics":["python","python3","raspberry-pi","react"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/phultquist.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2020-07-20T23:08:49.000Z","updated_at":"2025-12-04T05:16:22.000Z","dependencies_parsed_at":"2025-10-13T16:41:07.414Z","dependency_job_id":"6f55ce2f-c334-43de-aaa7-82ba581edaac","html_url":"https://github.com/phultquist/frame","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/phultquist/frame","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/phultquist%2Fframe","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/phultquist%2Fframe/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/phultquist%2Fframe/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/phultquist%2Fframe/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/phultquist","download_url":"https://codeload.github.com/phultquist/frame/tar.gz/refs/heads/spotify-listener","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/phultquist%2Fframe/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30207393,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-07T03:24:23.086Z","status":"ssl_error","status_checked_at":"2026-03-07T03:23:11.444Z","response_time":53,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["python","python3","raspberry-pi","react"],"created_at":"2025-04-25T14:18:47.433Z","updated_at":"2026-03-07T04:03:07.983Z","avatar_url":"https://github.com/phultquist.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# [Frame](https://patrick.app/project/frame)\nA Summer of Making Project by Addison and Patrick. \n![1d318fd0c7d2752428f7d16fac4e24e8edbbd3c5-750x1246](https://user-images.githubusercontent.com/46694203/173881306-22dbde9e-0080-431c-b2c3-8a92593f4726.jpg)\n\n\n**Funded by GitHub through Hack Club.**\n\n### A Note About the Code\nAs of right now, the code contains both NodeJS files and Python files. Since I'm better in JS, I started by writing most in JS then switched to Python.\n\nThe `./testscripts/` folder contains most individual components of the application to be tested all at once. It is no longer maintained.\n\nThe `./nodetest/` folder is for the initial testing of the Audd.io API. It is no longer maintained.\n\n## Some milestones\n\n\u003eDue to the data wire from the Raspberry Pi to the led strip acting as an antenna, and producing random, glitchy, flashing patterns, we decided to replace the  data line as well as the common ground wire with a shielded wire taken from a scrap usb cable, which completely eliminated the display errors, even with a slightly longer wire from the pi to the led strip.\n\n\u003eTo adjust for bad colors in the display at some point, we used LED non-linearity compensation with a power vs intensity curve. We used the best tool ever for this: Desmos! [Here's](https://www.desmos.com/calculator/maqayzhvgg) the link to the graph.\n\n## About\nThis is a repository dedicated to the smart album cover display. \n\nRunning on a Raspberry Pi, this recognizes the live music playing and displays it on a 16x16 grid made with LED strips.\n\n### Usage\nCreate an Audd.io API Key and place it in `./key`. You can use \"test\" as the key for up to 10 instances.\n\nAfter installing all packages, run the following commmand:\n```bash\n$ python3 run.py\n```\nIf that causes a permissions error, run\n```bash\n$ sudo python3 run.py\n```\n\nTo set brightness 10%, run\n```bash\n$ python3 run.py 10\n```\n\nTo run in testing mode (no screen), run\n```bash\n$ python3 run.py test\n```\n\n### The Software \n\nPython script records live audio, then uses the [audd.io](https://audd.io) service for music recognition.\n\nThen sets the pixels to whatever the album cover receives.\n\nNote: `authentication.py` doesn't do anything useful... yet!\n\n### The Hardware\n\n\u003c!-- ![Top](assets/top.jpg) --\u003e\n\u003c!-- ![LED](assets/led.jpg) --\u003e\n\nSee more at [The Lab](https://thelab.gallery/user/AddisonHenikoff)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fphultquist%2Fframe","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fphultquist%2Fframe","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fphultquist%2Fframe/lists"}