{"id":47352111,"url":"https://github.com/jesse-stewart/octotrackpy","last_synced_at":"2026-03-18T00:30:20.170Z","repository":{"id":238876991,"uuid":"797799836","full_name":"jesse-stewart/octotrackpy","owner":"jesse-stewart","description":"Octophonic 8 Track Player for DAC8x","archived":false,"fork":false,"pushed_at":"2024-05-08T15:32:12.000Z","size":11,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-05-09T17:10:08.950Z","etag":null,"topics":["dac8x","dub","hifiberry","pyaudio","python","reggae"],"latest_commit_sha":null,"homepage":"","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/jesse-stewart.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":"2024-05-08T14:39:06.000Z","updated_at":"2024-05-08T15:32:16.000Z","dependencies_parsed_at":"2024-05-08T17:13:43.625Z","dependency_job_id":"cb3b52ae-9057-4b46-86c3-27a154a62aaf","html_url":"https://github.com/jesse-stewart/octotrackpy","commit_stats":null,"previous_names":["jesse-stewart/octotrackpy"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/jesse-stewart/octotrackpy","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jesse-stewart%2Foctotrackpy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jesse-stewart%2Foctotrackpy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jesse-stewart%2Foctotrackpy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jesse-stewart%2Foctotrackpy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jesse-stewart","download_url":"https://codeload.github.com/jesse-stewart/octotrackpy/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jesse-stewart%2Foctotrackpy/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30637043,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-18T00:09:27.587Z","status":"ssl_error","status_checked_at":"2026-03-18T00:09:26.123Z","response_time":56,"last_error":"SSL_read: 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":["dac8x","dub","hifiberry","pyaudio","python","reggae"],"created_at":"2026-03-18T00:30:19.627Z","updated_at":"2026-03-18T00:30:20.153Z","avatar_url":"https://github.com/jesse-stewart.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"```\n█▀▀▀█ █▀▀█ ▀▀█▀▀ █▀▀▀█ █▀▀█ █  █ █▀▀▀█ █▄  █ ▀█▀ █▀▀█ \n█   █ █      █   █   █ █▄▄█ █▀▀█ █   █ █ █ █  █  █    \n█▄▄▄█ █▄▄█   █   █▄▄▄█ █    █  █ █▄▄▄█ █  ▀█ ▄█▄ █▄▄█ \n\n███ ▀▄▀   ▄▀█ █ █ █▀▄ █ █▀█   █▀█ █   ▄▀█ █▄█ █▀▀ █▀█ \n█▄█ █ █   █▀█ █▄█ █▄▀ █ █▄█   █▀▀ █▄▄ █▀█  █  ██▄ █▀▄ \n\nv0.1 Alpha\n```\n\n## Setup\n\n\nThis is an 8 Track audio player written in Python for the [HifiBerry DAC8](https://www.hifiberry.com/shop/boards/hifiberry-dac8x/). I don't write Python often, so this is not very good and it barely works.\n\nYou will need to setup a virtual environment to run the code. You can do this by running the following commands:\n\n```bash\npython3 -m venv venv\nsource venv/bin/activate\npip install -r requirements.txt\n```\n\n## Audio Files\n\nCreate a directory to place the tracks you want to play. In this example we will use the directory `tracks`. You can use any folder you wqnt. You can use the following command:\n\n```bash\nmkdir tracks\n```\n\nPlace your multi-track audio files in the directory you created in the previous step. Place each song in a separate folder. The code will play the songs/tracks in the order they are listed in the directory. If more than 8 tracks are present, the code will only play the first 8 tracks.\n\n```\ntracks\n├── 01_Dangerous_Match_One\n│   └── 01_drums.wav\n│   └── 02_bass.wav\n│   └── 03_gtar.wav\n│   └── 04_gtar2.wav\n│   └── 05_keys.wav\n│   └── 06_horns.wav\n│   └── 07_vox.wav\n│   └── 08_vox2.wav\n├── track2\n│   └── track1.wav\n│   └── track2.wav\n│   └── track3.wav\n│   ...\n```\n\n## Roll it\n\nTo run the code, you can use the following command.\nReplace `./tracks` with the directory you created in the previous step.\nAudio files are automatically converted to 16-bit 44.1kHz WAV files. This may take some time depending on how many tracks you have.\n\n```bash\nsudo ./venv/bin/python3 ./player.py ./tracks\n```\n\nThe code will start playing the tracks in the directory `tracks`. You can stop the code by pressing `Ctrl+C`.\n\n```\nControls:\nSpace: Play/Pause\nN: Next track\nP: Previous track\n```\n\n## Clearing Temp Audio Files\n\nThe code will create temporary audio files in the `/tmp` directory. These files are not deleted when the code is stopped. You can delete these files by running the following command:\n\n```bash\nsudo ./venv/bin/python3 ./clear_files.py\n```\n\n## Issues\n\nSometimes existing temp files cause clicks and pops in the audio playback. I have no idea why. I usually just clear ahd temp files and restart the code.\n\n## Goals\n\nThis really should be written in Rust, but I'm not smart enough to do it.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjesse-stewart%2Foctotrackpy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjesse-stewart%2Foctotrackpy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjesse-stewart%2Foctotrackpy/lists"}