feat: Batch S900 Compressor — compress/decompress samples via web UI #4

Open
opened 2026-06-22 02:37:24 +00:00 by david · 0 comments
Owner

Feature: Batch S900 Compressor

As a user with limited disk space on a physical S900/S950
I want to compress or decompress all S900 samples in a disk image volume
So that I can fit more samples on the hardware's 64MB limit

Acceptance Criteria

Scenario: Compress all samples in an S900 volume

Given an S900 disk image with volume "DRUMS" containing uncompressed samples
When I run "Compress" from the Disk Browser on that volume
Then all samples are converted via S900 compression
And the Disk Browser shows "(compressed)" next to each file name

Scenario: Decompress all samples in an S900 volume

Given an S900 disk image with volume "DRUMS" containing compressed samples
When I run "Decompress"
Then all samples are converted to uncompressed format
And the Disk Browser shows "(uncompressed)" and file sizes increase

Scenario: Non-S900 volume — feature unavailable

Given an S1000 disk image
When I view the volume in the Disk Browser
Then the Compress/Decompress buttons are disabled with tooltip "S900/S950 only"

Implementation

  • akaiutil commands: sample900comprall and sample900uncomprall
  • Two API endpoints: POST /api/volume/compress?iso=<path>&volume=<name> and POST /api/volume/decompress
  • These read-only after: akaiutil -r is not sufficient — must use read-write mode
  • Add a confirmation dialog in the web UI: "This will modify the disk image. Continue?"

Karpathy Principle

Simplest write operation possible — one command, no new concepts. A good introductory issue for the codebase.

## Feature: Batch S900 Compressor **As a** user with limited disk space on a physical S900/S950 **I want to** compress or decompress all S900 samples in a disk image volume **So that** I can fit more samples on the hardware's 64MB limit ### Acceptance Criteria **Scenario: Compress all samples in an S900 volume** ``` Given an S900 disk image with volume "DRUMS" containing uncompressed samples When I run "Compress" from the Disk Browser on that volume Then all samples are converted via S900 compression And the Disk Browser shows "(compressed)" next to each file name ``` **Scenario: Decompress all samples in an S900 volume** ``` Given an S900 disk image with volume "DRUMS" containing compressed samples When I run "Decompress" Then all samples are converted to uncompressed format And the Disk Browser shows "(uncompressed)" and file sizes increase ``` **Scenario: Non-S900 volume — feature unavailable** ``` Given an S1000 disk image When I view the volume in the Disk Browser Then the Compress/Decompress buttons are disabled with tooltip "S900/S950 only" ``` ### Implementation - akaiutil commands: `sample900comprall` and `sample900uncomprall` - Two API endpoints: `POST /api/volume/compress?iso=<path>&volume=<name>` and `POST /api/volume/decompress` - These read-only after: akaiutil -r is not sufficient — must use read-write mode - Add a confirmation dialog in the web UI: "This will modify the disk image. Continue?" ### Karpathy Principle Simplest write operation possible — one command, no new concepts. A good introductory issue for the codebase.
david added the featuredisk-opsgood-first-issue labels 2026-06-22 02:37:24 +00:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: david/akai-utils#4