Files
akai-utils/README.md
T
david 7124b16fc1 docs: update AGENTS.md and README for new features, add JS tests
Docs:
- AGENTS.md: updated toolchain section with js-lint/js-test tasks,
  expanded web/ui/ directory listing, added event delegation and
  Web Audio API to key patterns, updated testing section
- README: marked issue #9 (Audio Preview Player) as done
- .gitignore: added akai-fetch.test and cover.out

Tests:
- Moved groupWavs and cleanName to util.js (pure functions)
- Added 10 new JS tests: 6 groupWavs, 4 cleanName
- Total JS tests: 29 (up from 19)
2026-06-22 02:46:34 -07:00

3.8 KiB

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)

mise trust        # first time only
mise install      # installs go 1.26, node 22
mise run build    # → ./akai-fetch

Toolchain check

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

mise run docker-up
# Open http://localhost:8080

Build from source

# 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://<host-ip>: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 <identifier>       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.

# 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 (GPLv2, (c) Klaus Michael Indlekofer).