Skip to content

darosh/zoian

Repository files navigation

⚠️ WORK IN PROGRESS

This application is under active development. Some features may be incomplete or not working as intended. Feel free to report an issue.

ZOIA/Euroburo Patch Explorer

License: GPL v3

About

ZOIA and ZOIA Euroburo are modular digital effect pedals and Eurorack modules manufactured by Empress Effects. This application, deployed at darosh.github.io/zoian allows users to explore their .BIN patch files.

Features

  • Drop .BIN patch files or a folder containing them, .ZIP files work as well, you can also drop whole ~/Library/Application Support/.ZoiaLibraryApp folder
  • All processing happens in your browser — no data is sent to any server
  • Contains old Euroburo factory demo set (you can drag & drop other sets your self, for example this one)
  • Highlights IO connections
  • List starred parameters
  • Switch between ZOIA and Euroburo layout
  • CPU utilization overview
  • Share patches via link
  • Download shared user .BIN files
  • Controls
    • Right-click for context menu
    • Left-click show/hide tooltip
    • Esc Reset selection
  • Hotkeys / Context menu
    • N Previous patch
    • M Next patch
    • S Share patch
    • D Dark theme
    • C Show connection
    • A Animations
    • E Euroburo layout
    • Module description
    • 2...6 Max columns
  • Happy little dots & blocks made in Brno

Explorer Quick Links

Access factory patch sets directly in the web explorer.

Set Link
Euroburo Factory Set https://darosh.github.io/zoian/
ZOIA Factory Set https://darosh.github.io/zoian/#/?link=https://patchstorage.com/api/beta/patches/107803/files/107802/download/
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

Disclaimer

Blocks and their connections may be displayed incorrectly (incorrect blocks and/or their incorrect order, see ./lib/README.md for more information)

So far only tested with Chrome browser.

Development

Prerequisites

  • Deno (v2.1.4 or higher)

Scripts

Install dependencies

deno task deno:install

Dev server

deno task dev

Build

deno task build

Publishing the build to GitHub pages

Rename the build ./dist folder to ./docs and push to repo.

Tips

Integration

The app supports two methods for integrating specific patch views:

1. Remote File Link

Access patches via direct URL:

https://darosh.github.io/zoian/#/?link=<encoded-file-url>

EXAMPLE REMOTE FILE LINK

Requirements:

  • Host server must support CORS
  • Provider's permission for content usage
  • Remote file must be a .BIN file or .ZIP file containing them

2. Embedded Content

Embed patch data directly in URL using base64-encoded gzipped content:

https://darosh.github.io/zoian/#/?file=<base64-gzipped-content>

EXAMPLE EMBEDDED PATCH LINK

Implementation notes:

  • Non-gzipped content works but produces very long URLs
  • Strip trailing zero bytes
  • Browser implementation example:
const uint8Array = uint8Array.subarray(0, patch.size * 4).slice()
const gz = await gzipUint8Array(uint8Array)
const file = removePadding(uint8ArrayToBase64(gz)) // Requires encodeURIComponent() for URL usage

Licence

Released under GPL v3 license, see also notes about derived work in ./lib/README.md.