{"id":18927437,"url":"https://github.com/pygame/parrotjoy","last_synced_at":"2025-07-29T13:10:17.862Z","repository":{"id":57714687,"uuid":"187103967","full_name":"pygame/parrotjoy","owner":"pygame","description":"🦜🎮 parrotjoy is a musical machine that talks back. An audio looper, and an audio reactive video synth controllable with joy pads and dance mats. No parrots were harmed in the making of this software.","archived":false,"fork":false,"pushed_at":"2022-12-17T14:05:22.000Z","size":1959,"stargazers_count":12,"open_issues_count":12,"forks_count":2,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-03-28T22:09:18.631Z","etag":null,"topics":["audio","looper","video-synth"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"lgpl-2.1","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/pygame.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-05-16T21:31:51.000Z","updated_at":"2025-03-19T03:47:05.000Z","dependencies_parsed_at":"2023-01-29T17:30:47.405Z","dependency_job_id":null,"html_url":"https://github.com/pygame/parrotjoy","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/pygame%2Fparrotjoy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pygame%2Fparrotjoy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pygame%2Fparrotjoy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pygame%2Fparrotjoy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pygame","download_url":"https://codeload.github.com/pygame/parrotjoy/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249080608,"owners_count":21209548,"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":["audio","looper","video-synth"],"created_at":"2024-11-08T11:19:10.653Z","updated_at":"2025-04-15T13:33:52.100Z","avatar_url":"https://github.com/pygame.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n# parrotjoy - a pygame 2 project.\n\nFor making music, and visuals. [https://github.com/pygame/parrotjoy](https://github.com/pygame/parrotjoy)\n\n![parrot joy](docs/parrotjoy-logo.png?raw=true \"parrotjoy\")\n\n\n\n\n## Get started.\n\n### Installation\n\n```\npython3 -m venv venv\n. ./venv/bin/activate\npip install -r requirements.dev.txt\n\nparrotjoy\n\n```\n\n### Joypad controller instructions\n\n\nThere are 4 audio tracks.\nThe first two tracks\n\nPressing the numbered buttons (1,2,3,4) in combination with `modifier` ones.\n\n- R1 ) track.start_new_next\n- R2 ) track.add_to_next\n- L1 ) track.erase\n\nIf recording, track.finish()\nelse:         track.play()\n\n\n#### Trimming with analog joy sticks.\n\nThe analog controllers can be used to trim a track.\nThis is useful if you record too much sound, or you want to line it up with other parts.\n\n- Left stick trims the start of the track. Tap the left stick to the right to have less of the sound from the beginning.\n\n- Right stick is for trimming the end of the track.\n\n\n### Keyboard control.\n\n- `s`, start recording a new track\n- `S`, record over the top of an existing track\n- `f`, finish recording track.\n\n- `p`, play\n\n- `w`, trim the START of the sound. Get MORE sound on LEFT of sound.\n- `e`, trim the START of the sound. Get LESS sound on LEFT of sound.\n\n- `r`, trim the END of the sound. Get LESS sound on RIGHT of sound.\n- `t`, trim the END of the sound. Get MORE sound on RIGHT of sound.\n\n- `space`, adjust the BPM timer. Tap it in time until the BPM is as you like.\n\n\n- '0', use Looper scene.\n- '9', use VideySynth scene.\n- '8', strawberries.\n\n\n### Running tests.\n\nTests can be found in the tests/ folder.\n\nType `pytest`.\nOr run `python -m tox`\n\nTests are run on mac, linux, windows when there is a pull request made.\n\n### releasing\n\nReleasing is tested with python3.7(not python2 or any other version).\n\nTo the python package index (pypi).\n```\nrm -rf dist/*\npython setup.py sdist bdist_wheel\ntwine upload dist/*\n```\n\nOn windows:\n```\npython setup.py bdist_msi\ndir build/*.msi\n```\n\nOn mac:\n```\npython setup.py bdist_dmg\nls build/*.dmg\n```\n\n\n## Licenses\n\n#### Code license\n\nLicense for code will be the same as the pygame license (LGPL).\n\nCheck the licenses for the dependencies.\n\n## parrotjoy uses\n\nmany parts made by others...\n\n- [pygame](https://pygame.org/)\n- [python](https://python.org/)\n- [aubio](https://aubio.org/)\n- [libsdl](https://libsdl.org/)\n- ... numpy, opencv-python, pytest, cxfreeze\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpygame%2Fparrotjoy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpygame%2Fparrotjoy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpygame%2Fparrotjoy/lists"}