{"id":27961701,"url":"https://github.com/njazz/faustswiftui","last_synced_at":"2025-07-04T15:37:45.215Z","repository":{"id":283980982,"uuid":"953465806","full_name":"njazz/FaustSwiftUI","owner":"njazz","description":"FAUST UI metadata to SwiftUI bindings","archived":false,"fork":false,"pushed_at":"2025-03-29T09:06:05.000Z","size":49,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-05-07T19:11:29.701Z","etag":null,"topics":["faust","faust-dsp","faust-language","swift","swiftui"],"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/njazz.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}},"created_at":"2025-03-23T12:43:06.000Z","updated_at":"2025-04-03T22:10:06.000Z","dependencies_parsed_at":null,"dependency_job_id":"43bb3faf-6f74-43de-90e6-36e3bb2a29eb","html_url":"https://github.com/njazz/FaustSwiftUI","commit_stats":null,"previous_names":["njazz/faustswiftui"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/njazz/FaustSwiftUI","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/njazz%2FFaustSwiftUI","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/njazz%2FFaustSwiftUI/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/njazz%2FFaustSwiftUI/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/njazz%2FFaustSwiftUI/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/njazz","download_url":"https://codeload.github.com/njazz/FaustSwiftUI/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/njazz%2FFaustSwiftUI/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":263568107,"owners_count":23481615,"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":["faust","faust-dsp","faust-language","swift","swiftui"],"created_at":"2025-05-07T19:10:46.569Z","updated_at":"2025-07-04T15:37:45.209Z","avatar_url":"https://github.com/njazz.png","language":"Swift","funding_links":[],"categories":[],"sub_categories":[],"readme":"# FaustSwiftUI\n\nThis is a SwiftUI-based dynamic UI renderer for Faust DSP JSON metadata. It parses the Faust UI JSON structure and displays corresponding SwiftUI controls like sliders, toggles, buttons, bargraphs etc.\n\n## Features\n\n- ✅ JSON-driven layout\n- ✅ Live binding via `@ObservedObject` with a `FaustUIViewModel`\n- ✅ Dynamic layout from `vgroup`, `hgroup`, `tgroup` primitives\n- 🔄 UI-to-DSP input controls (`hslider`, `vslider`, `checkbox`, `button` ...)\n- 🔄 DSP-to-UI output monitors (`hbargraph`, `vbargraph`)\n- 🔄 Style metadata (`knob`, `menu`, `radio` ...)\n- ❌ Load default values from JSON layout to ViewModel\n\n## Usage\n\n```swift\nlet jsonData: Data = ... // Faust UI JSON from libfaust\nlet ui = try JSONDecoder().decode([FaustUI].self, from: jsonData)\n\nFaustUIView(ui: ui, viewModel: FaustUIViewModel())\n```\n\n## Supported Primitives\n\n| Type         | Description                    | Implemented |\n|--------------|--------------------------------|-------------|\n| `vgroup`     | Vertical group                 | ✅          |\n| `hgroup`     | Horizontal group               | ✅          |\n| `tgroup`     | Tabbed group                   | ✅          |\n| `hslider`    | Horizontal slider              | ✅          |\n| `vslider`    | Vertical slider                | ✅          |\n| `nentry`     | Number entry box               | ✅          |\n| `button`     | Momentary push button          | ✅          |\n| `checkbox`   | Toggle button                  | ✅          |\n| `hbargraph`  | Horizontal bargraph            | ✅          |\n| `vbargraph`  | Vertical bargraph              | ✅          |\n\n## Supported Styles (via `[style:...]` metadata)\n\n| Style         | Description                    | Implemented    |\n|---------------|--------------------------------|----------------|\n| `knob`        | Rotary knob                    | ✅             |\n| `menu{...}`   | Dropdown menu                  | ❌             |\n| `radio{...}`  | Radio button menu              | ❌             |\n| `led`         | LED-style output               | ❌             |\n| `numerical`   | Numerical value display        | ❌             |\n\n## Supported Metadata\n\n| Key        | Description           | Implemented |\n|------------|-----------------------|-------------|\n| `style`    | Widget style          | ✅          |\n| `unit`     | Display value unit    | ❌          |\n| `scale`    | Value scaling         | ❌          |\n| `tooltip`  | Tooltip               | ❌          |\n| `hidden`   | Hidden components     | ✅          |\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnjazz%2Ffaustswiftui","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnjazz%2Ffaustswiftui","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnjazz%2Ffaustswiftui/lists"}