{"id":18132084,"url":"https://github.com/cemolcay/launchpadkit","last_synced_at":"2025-04-15T23:10:15.177Z","repository":{"id":50245750,"uuid":"188854801","full_name":"cemolcay/LaunchpadKit","owner":"cemolcay","description":"Swift API for Novation Launchpad","archived":false,"fork":false,"pushed_at":"2021-05-31T15:16:23.000Z","size":30,"stargazers_count":10,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-15T23:10:05.670Z","etag":null,"topics":["audiokit","launchpad","midi","midi-controller","novation"],"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/cemolcay.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}},"created_at":"2019-05-27T14:06:16.000Z","updated_at":"2024-11-10T06:13:17.000Z","dependencies_parsed_at":"2022-09-15T21:11:05.075Z","dependency_job_id":null,"html_url":"https://github.com/cemolcay/LaunchpadKit","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cemolcay%2FLaunchpadKit","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cemolcay%2FLaunchpadKit/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cemolcay%2FLaunchpadKit/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cemolcay%2FLaunchpadKit/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cemolcay","download_url":"https://codeload.github.com/cemolcay/LaunchpadKit/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249167445,"owners_count":21223506,"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":["audiokit","launchpad","midi","midi-controller","novation"],"created_at":"2024-11-01T12:10:19.929Z","updated_at":"2025-04-15T23:10:15.160Z","avatar_url":"https://github.com/cemolcay.png","language":"Swift","readme":"LaunchpadKit\n===\n\nSwift API for controlling Novation Launchpad.\n\nInstall\n---\n\n```\n$ pod 'LaunchpadKit'\n```\n\nBuild\n---\n\n```\n$ pod install\n```\n\nAPI\n---\n\n### LaunchpadManager\n\n* Singleton `shared` object.\n* Autoconnects launchpads.\n* Informs implementor with `LaunchpadManagarDelegate`\n\n``` Swift\n  func launchpadManagerSetupDidChange(_ launchpadManager: LaunchpadManager)\n  func launchpadManager(_ launchpadManager: LaunchpadManager, didConnect launchpad: Launchpad)\n  func launchpadManager(_ launchpadManager: LaunchpadManager, didDisconnect launchpad: Launchpad)\n  func launchpadManager(_ launchpadManager: LaunchpadManager, launchpad: Launchpad, didPress button: LaunchpadButton)\n  func launchpadManager(_ launchpadManager: LaunchpadManager, launchpad: Launchpad, didUnpress button: LaunchpadButton)\n```\n\n* Can connect/disconnect launchpads manually\n\n``` Swift\npublic func connect(launchpad: Launchpad)\npublic func disconnect(launchpad: Launchpad)\n```\n\n* Can set colors of `LaunchpadButton`s\n\n``` Swift\npublic func setLaunchpadButtonColor(\n\t_ launchpad: Launchpad,\n\tx: Int,\n\ty: Int,\n\tcolor: LaunchpadButton.Color,\n\tbrightness: LaunchpadButton.Brightness\n)\n```\n\n### Launchpad\n\n* The launchpad object with grid of `LaunchpadButton`s.\n* Created by `LaunchpadManager` automatically when it detects an available launchpad.\n* Can get/set a button with `[row: Int, column: Int]` subscript.\n\n``` Swift\n// First button of the second row.\nlet button = launchpad[1, 0]\n// Sets third button of first row.\nlaunchpad[1, 2] = newButton\n```\n\n* Can get all buttons in a row.\n\n``` Swift\n// get first row\nlet firstRow = launchpad[row: 0]\n```\n\n* Can get all buttons in a column.\n\n``` Swift\n// get first column\nlet firstCol = launchpad[col: 0]\n```\n\n* Can get `sceneButtons`.\n* Can get `liveButtons`.\n\n### LaunchpadButton\n\n* Created by `Launchpad` object initially on its `grid` array.\n* Has `color` and `brightness` properties.\n\n``` Swift\n  public enum Brightness: Int {\n    case off\n    case min\n    case mid\n    case max\n  }\n\n  public enum Color: Int {\n    case green\n    case red\n    case yellow\n    case amber\n  }\n```\n\n* You can read `isPressed` state.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcemolcay%2Flaunchpadkit","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcemolcay%2Flaunchpadkit","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcemolcay%2Flaunchpadkit/lists"}