{"id":24988611,"url":"https://github.com/darosh/zoian","last_synced_at":"2025-07-23T23:31:40.359Z","repository":{"id":269181070,"uuid":"906625375","full_name":"darosh/zoian","owner":"darosh","description":"ZOIA/Euroburo Patch Explorer","archived":false,"fork":false,"pushed_at":"2025-01-15T08:53:22.000Z","size":16866,"stargazers_count":7,"open_issues_count":1,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-04-19T00:33:30.741Z","etag":null,"topics":["euroburo","patch","visualization","zoia"],"latest_commit_sha":null,"homepage":"https://darosh.github.io/zoian/","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/darosh.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","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":"2024-12-21T12:37:30.000Z","updated_at":"2025-04-07T21:59:14.000Z","dependencies_parsed_at":"2024-12-21T15:28:37.767Z","dependency_job_id":"4800b2de-8ab7-4251-89ab-93a4026fd856","html_url":"https://github.com/darosh/zoian","commit_stats":null,"previous_names":["darosh/zoian"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/darosh/zoian","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/darosh%2Fzoian","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/darosh%2Fzoian/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/darosh%2Fzoian/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/darosh%2Fzoian/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/darosh","download_url":"https://codeload.github.com/darosh/zoian/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/darosh%2Fzoian/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265163615,"owners_count":23720999,"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":["euroburo","patch","visualization","zoia"],"created_at":"2025-02-04T12:04:50.373Z","updated_at":"2025-07-13T15:34:18.137Z","avatar_url":"https://github.com/darosh.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ZOIA/Euroburo Patch Explorer\n\n[![License: GPL v3](https://img.shields.io/badge/License-GPLv3-blue.svg)](https://www.gnu.org/licenses/gpl-3.0)\n\n![](./public/banner.png)\n\n## About\n\nZOIA and ZOIA Euroburo are modular digital effect pedals and Eurorack modules manufactured by Empress Effects. This\napplication, deployed at [darosh.github.io/zoian](https://darosh.github.io/zoian/) allows users to explore their .BIN\npatch files. \n\n### Features\n\n- Drop .BIN patch files or a folder containing them, .ZIP files work as well, you can also drop whole\n  `~/Library/Application Support/.ZoiaLibraryApp` folder\n- All processing happens in your browser \u0026mdash; no data is sent to any server\n- Contains old Euroburo factory demo [set](https://patchstorage.com/zoia-euroburo-factory-patches/) (you can drag \u0026 drop\n  other sets your self, for\n  example [this one](https://empresseffects.com/blogs/support-zoia/zoia-5-new-factory-patches))\n- Highlights IO connections\n- List starred parameters\n- Switch between ZOIA and Euroburo layout\n- CPU utilization overview\n- Share patches via link\n- Download shared user .BIN files\n- Module options and parameters\n- Controls\n    - \u003ckbd\u003eRight-click\u003c/kbd\u003e for context menu\n    - \u003ckbd\u003eLeft-click\u003c/kbd\u003e show/hide tooltip\n    - \u003ckbd\u003eEsc\u003c/kbd\u003e Reset selection\n    - \u003ckbd\u003eShift\u003c/kbd\u003e Hold to temporarily disable mouse over function\n- Hotkeys / Context menu\n    - \u003ckbd\u003eN\u003c/kbd\u003e Previous patch\n    - \u003ckbd\u003eM\u003c/kbd\u003e Next patch\n    - \u003ckbd\u003eS\u003c/kbd\u003e Share patch\n    - \u003ckbd\u003eD\u003c/kbd\u003e Dark theme\n    - \u003ckbd\u003eC\u003c/kbd\u003e Show connection\n    - \u003ckbd\u003eA\u003c/kbd\u003e Animations\n    - \u003ckbd\u003eE\u003c/kbd\u003e Euroburo layout\n    - Module description\n    - \u003ckbd\u003e2...6\u003c/kbd\u003e Max columns\n- Happy little dots \u0026amp; blocks made in Brno\n\n### Explorer Quick Links\n\nAccess factory patch sets directly in the web explorer.\n\n| Set                   | Link                                                                                                                                                                                                                                       |\n|-----------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| Euroburo Factory Set  | [https://darosh.github.io/zoian/](https://darosh.github.io/zoian/)                                                                                                                                                                         |\n| ZOIA Factory Set      | [https://darosh.github.io/zoian/#/?link=https://patchstorage.com/api/beta/patches/107803/files/107802/download/](https://darosh.github.io/zoian/#/?link=https://patchstorage.com/api/beta/patches/107803/files/107802/download/)           |\n| Version 5 Factory Set | [https://darosh.github.io/zoian/#/?link=https://cdn.shopify.com/s/files/1/0028/5462/files/zoia_5_factory_patches.zip](https://darosh.github.io/zoian/#/?link=https://cdn.shopify.com/s/files/1/0028/5462/files/zoia_5_factory_patches.zip) |\n\n### Disclaimer\n\nBlocks and their connections may be displayed incorrectly (incorrect blocks and/or their incorrect order,\nsee [./lib/README.md](./lib/README.md) for more information)\n\nThe displayed parameter value and the dot on the slider represent the base setting of the parameter, independent of any CV modulation. When CV connections are active, the actual value on the device may differ from this base value as it's being dynamically modified by the incoming CV signal, such parameters are marked with approximately equal sign `≈`. The visual slider's dot position should match the circle position on your ZOIA device, both showing the base value before CV modulation is applied.\n\nSo far only tested with Chrome browser.\n\nFeel free to report any issue.\n\n## Development\n\n### Prerequisites\n\n- [Deno](https://deno.com/) (v2.1.4 or higher)\n\n### Scripts\n\n#### Install dependencies\n\n```bash\ndeno task deno:install\n```\n\n#### Dev server\n\n```bash\ndeno task dev\n```\n\n#### Build\n\n```bash\ndeno task build\n```\n\n#### Publishing the build to GitHub pages\n\nRename the build [./dist](./dist) folder to [./docs](./docs) and push to repo.\n\n### Tips\n\n- both /lib and /src app are using [debug](https://www.npmjs.com/package/debug) package, the log can be turned on with\n  ```localStorage.debug='*'```\n- disable app context menu (to restore native one) with ```localStorage.menu = false```\n- color mixing:\n    - [localhost:3000/#/test-colors](http://localhost:3000/#/test-colors)\n    - or [darosh.github.io/zoian/#/test-colors](https://darosh.github.io/zoian/#/test-colors)\n- display test of module name abbreviations:\n    - [localhost:3000/#/test-display](http://localhost:3000/#/test-display)\n    - or [darosh.github.io/zoian/#/test-display](https://darosh.github.io/zoian/#/test-display)\n- display module and block data:\n    - [localhost:3000/#/test-modules](http://localhost:3000/#/test-modules)\n    - or [darosh.github.io/zoian/#/test-modules](https://darosh.github.io/zoian/#/test-modules)\n\n## Integration\n\nThe app supports two methods for integrating specific patch views:\n\n### 1. Remote File Link\n\nAccess patches via direct URL:\n\n```\nhttps://darosh.github.io/zoian/#/?link=\u003cencoded-file-url\u003e\n```\n\n[EXAMPLE REMOTE FILE LINK](https://darosh.github.io/zoian/#/?link=https%3A%2F%2Fpatchstorage.com%2Fapi%2Fbeta%2Fpatches%2F181743%2Ffiles%2F181739%2Fdownload%2F)\n\nRequirements:\n\n- Host server must support CORS\n- Provider's permission for content usage\n- Remote file must be a .BIN file or .ZIP file containing them\n\n### 2. Embedded Content\n\nEmbed patch data directly in URL using base64-encoded gzipped content:\n\n```\nhttps://darosh.github.io/zoian/#/?file=\u003cbase64-gzipped-content\u003e\n```\n\n[EXAMPLE EMBEDDED PATCH LINK](https://darosh.github.io/zoian/#/?file=H4sIAAAAAAAAE72ZSW4UQRBFs7syo20mm3kGM3qeZ4znAXuJQGKNMAsLYSNkcwLOwYIDcABWLLgCC47CDpUcaX99h9pWhaCllru%2B4sWvn9Xuzor%2B0wjhxYe3b3Y%2F7r0P%2BtgIIbSFEJ6Hw0ehf2vh%2BIfF1hxs3cEWDjY62ORgxcE2KrJl1hYH2%2BpgTznY0w72jIM962DPOdi2imz5P9TuYM872AsO9qKDveRgLzvYKw72qoO95mCvO9gbDvamg73lYG872DsO9q6D7XCw9xzsfQf7wME%2BdLCPHOxjB9t5QrYdXtf0sz33OBBDCN8Gbf6cfn%2Fl0qTf3yfxHQGuoVrdqF0wgrTr%2BzDz%2BXMn8%2FEocoTPj3qT3OsbNo%2B56xVz1525687cRZPcHe9sHnMXFXMXztyFM3dskvv7Z5vH3LFi7ujMHZ25U5PcL7%2FYPOZOFXMnZ%2B7kzC1Ncvf8sHnMLRVzizO3OHM3muT%2B%2BdvmMXejYu6GM3ejQm4875aK593iPO%2BWiued27bCfOO4Rxt4tMJnUu6V%2F776dZT9GkLoUq%2FunKNzXyv79IHWrXU9htarPqXWo%2BfTC3W9sF9ErdA1Yo3rIryfUWM2Gixef9S4XzL6JaOfwPqhxh5ieIjhIeTRp2vQT1qZbQi0fq0bMLRBuB4DuvaDUDcIe3DUCr3vYo3rot5%2Fs8ZsNNik71PWuF8y%2BiWjH86mUGMPMTzE8BDyGNI1GCatzDYG2rDWjRjaKFyPEV37Uagbhfsa1Aq9l2WN66LONFhjNhps0nkXa9wvGf2S0U%2Fg8wg19hDDQwwPIY8xXYNx0spsU6CNa92EoU3C9ZjQ852Eukm4V0St0PkAa1wXdU7EGrPRYJPOEFnjfsnol4x%2BAt8lqLGHGB5ieAh5TGn%2FadLKbE9Bm9a6J4Y2A9fjia79DNTNwP03aoXOXFjjuqizN9aYjQabYD%2BBGvdLRr9k9MM9KGrsIYaHGB5CHk91DWZJKz0XQJvVujlDm4frMadrPw918zDTQK3QORZrXBd1nskas9Fgk866WeN%2ByeiXjH55T88ae4jhIYaHkMeCrsEiaWW2FdAWtW7J0Jbheizp2i9D3TLMiVArdDbIGtdFnRGzxmw02KR7V9a4XzL6JaOfwB4LNfYQw0MMDyGPFV2DVUNbg3Ve1TVdg7o1mKmhVugclTWuizpPZ43ZaLBJ9%2Fqscb9k9EtGv3xPyhp7iOEhhoeQxzN93WVo66TVjLqa1uXrUe4f9n8X%2FnTwu%2FDS6%2B3Njrwxy8cjdDxKx2N0PE7HE3Q8ScdTh8eLe5tbOx1b2%2F07e7tZK455xmOe9X%2F8zPeHjf90jK9z%2Fr87XyXz5B8AAA)\n\nImplementation notes:\n\n- Non-gzipped content works but produces very long URLs\n- Strip trailing zero bytes\n- Browser implementation example:\n\n```javascript\nconst uint8Array = uint8Array.subarray(0, patch.size * 4).slice()\nconst gz = await gzipUint8Array(uint8Array)\nconst file = removePadding(uint8ArrayToBase64(gz)) // Requires encodeURIComponent() for URL usage\n```\n\n## Licence\n\nReleased under [GPL v3 license](LICENSE), see also notes about derived work in [./lib/README.md](./lib/README.md).\n\n## Credits\n\n- [darosh](https://github.com/darosh) - Application design and development\n- [sbw25phi2](https://patchstorage.com/author/sbw25phi2/) - Data mining specialist\n- [claude.ai](https://claude.ai/) - Assistance with Python to TypeScript parser conversion\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdarosh%2Fzoian","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdarosh%2Fzoian","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdarosh%2Fzoian/lists"}