# AKAI Utils AKAI sampler toolkit — search, download, browse, extract, and package AKAI S900/S950/S1000/S1100/S3000/CD3000 sample libraries. Two interfaces: - **CLI** (`akai-fetch`) — search archive.org, download ISOs, extract WAVs - **Web UI / Electron** — full visual browser with disk inspection, sample preview, and disk packaging ## Quickstart ### Toolchain (mise) ```bash mise trust # first time only mise install # installs go 1.26, node 22 mise run build # → ./akai-fetch ``` ### Toolchain check ```bash mise run check-all # checks gcc, brew, mise, go, node, docker, colima mise run check-toolchain # core tools only mise run check-docker-toolchain # docker + compose + colima (macOS) ``` ### Docker ```bash mise run docker-up # Open http://localhost:8080 ``` ### Build from source ```bash # CLI mise run build ./akai-fetch search --filter vocal # Web server (local) mise run serve # Open http://localhost:PORT (auto-assigned) # Web server (Docker / network-accessible) ./akai-fetch serve --host 0.0.0.0 -p 8080 # Open http://:8080 # Electron (macOS) mise run electron-deps mise run electron-build-mac ``` ### CLI Usage ``` akai-fetch search [flags] search archive.org for AKAI sampler ISOs akai-fetch list list downloadable ISO files in an item akai-fetch download [flags] download ISOs from archive.org akai-fetch extract [flags] extract WAVs from downloaded ISOs akai-fetch pipeline [flags] search → download → extract in one command akai-fetch serve [flags] start HTTP server with web UI ``` ## Architecture ``` akai-fetch serve (Go HTTP server, embedded web UI) ├── /api/search archive.org search ├── /api/list list ISO files in an item ├── /api/download download ISOs with SSE progress ├── /api/extract extract WAVs via akaiutil └── /api/progress SSE download progress stream electron/ Electron wrapper (spawns akai-fetch serve as sidecar) ├── main.js main process ├── preload.js context bridge └── package.json electron-builder config scripts/ ├── extract_wavs.sh batch WAV extraction via akaiutil ├── check-toolchain.sh verify gcc, brew, mise, go, node └── check-docker-toolchain.sh verify docker, compose, colima third_party/akaiutil/ Vendored akaiutil 4.6.7 (C, GPLv2) ``` ## Tech Stack | Component | Tech | External Deps | |-------------|--------------------|---------------| | CLI server | Go 1.26, stdlib | 0 | | Web UI | HTML/CSS/JS (vanilla) | 0 | | Electron | Electron 33, electron-builder | Node deps | | Extraction | akaiutil (C) via Go wrappers | vendored C source | Zero Go dependencies. The web UI uses no framework — vanilla JS, Web Audio API, Server-Sent Events. ## Feature Roadmap See [open issues](https://git.notsosm.art/david/akai-utils/issues). | # | Feature | Status | |---|---------|--------| | — | Search, download, extract, pipeline (CLI) | done | | — | HTTP server + web UI + Electron shell | done | | — | WAV extraction re-implemented in Go | done | | — | MkdirAll error handling + parent dir creation for downloads | done | | — | Docker compose + mise toolchain + toolchain checks | done | | #1 | Disk Browser — browse AKAI filesystem in web UI | todo | | #2 | Disk Inspector — detailed disk metadata | todo | | #3 | WAV→Disk Packager — create AKAI ISOs from WAVs | todo | | #4 | Batch S900 Compressor | todo | | #5 | Partition Backup/Restore | todo | | #6 | Direct-to-Disk Take Extraction | todo | | #7 | TAR Bulk Import/Export | todo | | #8 | Sample Tag Editor | todo | | #9 | Audio Preview Player | done | ## License MIT. Contains vendored [akaiutil 4.6.7](https://github.com/kmi9000/akaiutil) (GPLv2, (c) Klaus Michael Indlekofer).