{"id":18132079,"url":"https://github.com/cemolcay/mothersdicegame","last_synced_at":"2026-04-10T10:02:37.611Z","repository":{"id":53193275,"uuid":"353514954","full_name":"cemolcay/MothersDiceGame","owner":"cemolcay","description":"Random synth patch generator iOS app","archived":false,"fork":false,"pushed_at":"2021-04-01T15:02:03.000Z","size":1016,"stargazers_count":10,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-10-28T00:47:45.954Z","etag":null,"topics":["eurorack","moog","patch","synth"],"latest_commit_sha":null,"homepage":"","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":"2021-03-31T23:17:15.000Z","updated_at":"2025-06-09T20:28:55.000Z","dependencies_parsed_at":"2022-09-15T01:22:34.901Z","dependency_job_id":null,"html_url":"https://github.com/cemolcay/MothersDiceGame","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/cemolcay/MothersDiceGame","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cemolcay%2FMothersDiceGame","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cemolcay%2FMothersDiceGame/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cemolcay%2FMothersDiceGame/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cemolcay%2FMothersDiceGame/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cemolcay","download_url":"https://codeload.github.com/cemolcay/MothersDiceGame/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cemolcay%2FMothersDiceGame/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31637748,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-10T07:40:12.752Z","status":"ssl_error","status_checked_at":"2026-04-10T07:40:11.664Z","response_time":98,"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":["eurorack","moog","patch","synth"],"created_at":"2024-11-01T12:10:16.803Z","updated_at":"2026-04-10T10:02:37.573Z","avatar_url":"https://github.com/cemolcay.png","language":"Swift","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Mother's Dice Game\n\nRandom patch generator inspired by the [Moog Sound Studio](https://www.moogmusic.com/news/moog-music-introduces-complete-synthesizer-studio-experience) kit's dice game.\n\n## PatchBayView\n\nIncludes DFAM, Mother-32 and Subharmonicon patch bays as custom `UIView` instances.  \n\nYou can create as many `PatchBay` instances with `PatchBayView`s as you want and apply auto-layout on them or embed them in stack views.\n\n``` swift\nlet dfam = PatchBayView\u003cDFAM\u003e(patchBay: DFAM())\nlet mother32 = PatchBayView\u003cMother32\u003e(patchBay: Mother32())\nlet subharmonicon = PatchBayView\u003cSubharmonicon\u003e(patchBay: Subharmonicon())\n```\n\n## PatchBay\n\nYou can use this protocol and create other synths. \n\n- Create a final class conforming `PatchBay`,\n- Implement `PatchBay` protocol values.\n- Create the patch points inside an enum conforming `PatchPoint`,\n- Add the patch points as cases.\n- Implement `PatchPoint` protocol values.\n\n``` swift\nfinal class CustomSynth: PatchBay {\n    typealias PatchPoints = PB\n    var name: String = \"My Custom Synth\"\n    var colCount: Int = 2\n    var rowCount: Int = 1\n\n    enum PB: Int, PatchPoint {\n        case vco\n        case vcoOut\n        \n        var type: PatchType {\n            switch self {\n            case .vco: return .input\n            case .vcoOut: return .output\n            }\n        }\n        \n        var name: String {\n            switch self {\n            case .vco: return \"VCO CV\"\n            case .vcoOut: return \"VCO OUT\"\n            }\n        }\n        \n        var patchable: Bool {\n            switch self {\n            case .vco: return true\n            case .vcoOut: return true\n            }\n        }\n    }\n}\n```\n\n## Patch Generator\n\n- Create an instance of `PatchGenerator`.\n- Add rule set for allowed patch point connections.\n- Call `generatePatch()` function on the patch generator.\n- It returns a `Patch` struct which includes the input and output `PatchPoint`s in `Patchable` format.\n- You can use the `highlight(patch: Patch)` function on `PatchBayView`s for highlighting the patch points.\n\n```swift\nlet generator = PatchGenerator()\n\ngenerator.addRule(fromPatchBay: dfam, toPatchBay: dfam)\ngenerator.addRule(fromPatchBay: dfam, toPatchBay: mother32)\ngenerator.addRule(fromPatchBay: mother32, toPatchBay: dfam)\ngenerator.addRule(fromPatchBay: mother32, toPatchBay: mother32)\n\nlet patch = generator.generatePatch()\ndfam.highlight(patch: patch)\nmother32.highlight(patch: patch)\n```\n\n![alt](https://github.com/cemolcay/MothersDiceGame/raw/main/pb.gif)\n\n## DFAM\n\n![alt](https://raw.githubusercontent.com/cemolcay/MothersDiceGame/master/pb-dfam.png)\n\n## Mother-32\n\n![alt](https://raw.githubusercontent.com/cemolcay/MothersDiceGame/master/pb-m32.png)\n\n## Subharmonicon\n\n![alt](https://raw.githubusercontent.com/cemolcay/MothersDiceGame/master/pb-subh.png)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcemolcay%2Fmothersdicegame","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcemolcay%2Fmothersdicegame","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcemolcay%2Fmothersdicegame/lists"}