{"id":28521797,"url":"https://github.com/audiokit/controls","last_synced_at":"2025-09-06T04:45:35.657Z","repository":{"id":63904954,"uuid":"523910969","full_name":"AudioKit/Controls","owner":"AudioKit","description":"SwiftUI Knobs, Sliders, X-Y Pads, and more","archived":false,"fork":false,"pushed_at":"2024-09-12T06:33:06.000Z","size":277,"stargazers_count":143,"open_issues_count":1,"forks_count":26,"subscribers_count":12,"default_branch":"main","last_synced_at":"2025-08-09T12:31:29.400Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Swift","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/AudioKit.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},"funding":{"github":"AudioKit"}},"created_at":"2022-08-12T00:47:12.000Z","updated_at":"2025-08-07T03:09:20.000Z","dependencies_parsed_at":"2024-09-12T15:51:15.684Z","dependency_job_id":"a4f8a8f5-03ef-4434-9e2b-433df9cb75d1","html_url":"https://github.com/AudioKit/Controls","commit_stats":{"total_commits":109,"total_committers":7,"mean_commits":"15.571428571428571","dds":0.09174311926605505,"last_synced_commit":"4dd10370125af7f1e26d7a71b2c5929bb3c95087"},"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"purl":"pkg:github/AudioKit/Controls","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AudioKit%2FControls","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AudioKit%2FControls/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AudioKit%2FControls/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AudioKit%2FControls/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AudioKit","download_url":"https://codeload.github.com/AudioKit/Controls/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AudioKit%2FControls/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":273858866,"owners_count":25180771,"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-06T02:00:13.247Z","response_time":2576,"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":[],"created_at":"2025-06-09T08:14:09.371Z","updated_at":"2025-09-06T04:45:35.612Z","avatar_url":"https://github.com/AudioKit.png","language":"Swift","readme":"# Controls\n\n![controls](https://user-images.githubusercontent.com/13122/189456340-a5e263e7-c922-4deb-9504-e523a8aef821.png)\n\nUser interface elements including knobs, sliders, XYPads, and more, all built off the same generic controls.\n\n## Generic Controls\n\nTwo types of controls allow you to drag on a UI element and control either one or two parameters.\n\n* Control - draggable control that can affect one value by planar motion, either horizontally, vertically, or both.\n* Two Parameter Control - draggable control that can affect two independent parameters.\n\n## Control Geometries\n\nFor both types of controls, there are a wide variety of ways to react to dragging, including\nrectilinear and polar coordinate variations. See the API for more details.\n\n## Implementations\n\nThese are examples of how to use the generic controls. They are somewhat customizable, so you \ncan easier use them directly or use them as a template for creating your own custom controls.\n\nSingle-parameter controls:\n\n* ArcKnob - knob controlled by dragging along a circular path\n* IndexedSlider - slider that controls an integer parameter and snaps to increments\n* PitchModWheel - vertical slider than can be a pitch wheel or mod wheel\n* Ribbon - horizontal slider\n* SmallKnob - a knob in which you start by tapping in its bound and change the value by either horizontal or vertical motion.\n\nTwo-parameter controls:\n\n* Joystick - polar coordinate control\n* XYPad - XY control that doesn't snap\n    \n## Installation\n\nInstallation is done with Swift Package Manager. Be sure to tie your code to a version number\nand not just a branch, because the API for these controls will change as necessary.  \n\n## Demo\n\nIncluded with the package is a demo project (pictured above) and a playground to help you \nget up and running quickly.\n\n## Documentation\n\nThe docs are hosted on the [AudioKit.io website](https://www.audiokit.io/Controls/)\n\n## Sponsorship\n\n[Sponsor me on Github](https://github.com/sponsors/aure) and I'll create a control for you. \n","funding_links":["https://github.com/sponsors/AudioKit","https://github.com/sponsors/aure"],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faudiokit%2Fcontrols","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faudiokit%2Fcontrols","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faudiokit%2Fcontrols/lists"}