Skip to content

Commit cd20165

Browse files
authored
Merge pull request #2 from gbel/claude/heuristic-merkle
chore: release v0.4.0 — ADDAC112 support + PyPI auto-publish
2 parents 3d40317 + d21d3d8 commit cd20165

4 files changed

Lines changed: 86 additions & 1 deletion

File tree

.github/workflows/release.yml

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
name: Publish to PyPI
2+
3+
on:
4+
release:
5+
types: [published]
6+
7+
jobs:
8+
build:
9+
name: Build distribution
10+
runs-on: ubuntu-latest
11+
steps:
12+
- uses: actions/checkout@v4
13+
14+
- name: Install uv
15+
uses: astral-sh/setup-uv@v5
16+
17+
- name: Build package
18+
run: uv build
19+
20+
- name: Upload dist artifacts
21+
uses: actions/upload-artifact@v4
22+
with:
23+
name: dist
24+
path: dist/
25+
26+
publish:
27+
name: Publish to PyPI
28+
needs: build
29+
runs-on: ubuntu-latest
30+
environment: pypi
31+
permissions:
32+
id-token: write # required for OIDC trusted publishing
33+
steps:
34+
- name: Download dist artifacts
35+
uses: actions/download-artifact@v4
36+
with:
37+
name: dist
38+
path: dist/
39+
40+
- name: Publish to PyPI
41+
uses: pypa/gh-action-pypi-publish@release/v1

CHANGELOG.md

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,14 @@
11
# Changelog
22

3+
## v0.4.0 — 2026-03-23
4+
5+
### Features
6+
7+
- **ADDAC112 VC Looper & Granular Processor** — new driver; audio format (sample rate, bit depth, channels) is configured per-bank via the wizard. Produces `BANK0/{WAV/,DELETED/,SETTINGS.CFG,SCALES.CFG,0.CFG}` — the complete folder structure the module expects on first load. WAV files are fully stripped of metadata (`-map_metadata -1 -fflags +bitexact`). Warns when total bank size approaches the ~60 MB limit. Scale data (factory defaults + HARMONIC/WELL TUNED custom presets) and CFG formats derived from the ADDAC112 user manual (pp. 40–43). Developed without access to physical hardware.
8+
- **`wizard_settings` driver hook** — new extension point in `__main__.py` for drivers that need format configuration before source selection; consumed by the ADDAC112 driver and available for future devices.
9+
10+
---
11+
312
## v0.3.0 — 2026-03-21
413

514
### Features

README.md

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ Over the course of development, what started as a simple converter accumulated a
2929
| ALM/Busy Circuits Squid Salmple | WAV | 44100 Hz | 16-bit | Mono | USB stick |
3030
| Rossum Electro-Music Assimil8or | WAV | 48000 Hz | 16-bit | Mono | SD card |
3131
| WMD Clutch | WAV | 48000 Hz | 16-bit | Mono | SD card |
32+
| ADDAC112 VC Looper & Granular Processor | WAV (no metadata) | configurable | configurable | configurable | microSD |
3233

3334
---
3435

@@ -267,6 +268,39 @@ The HIHAT.INI settings file at the SD card root is not touched by SamplerPrep.
267268
> etc.) and to validate your SD card layout. This driver was developed without access
268269
> to physical hardware.
269270
271+
### ADDAC112 VC Looper & Granular Processor
272+
273+
```
274+
card_folders/addac112/my-bank/
275+
BANK0/
276+
WAV/
277+
1_sample.wav ← up to 99 files, 1-indexed
278+
2_sample.wav
279+
280+
DELETED/ ← empty dir, required by firmware
281+
SETTINGS.CFG ← format, granular, and CV settings
282+
SCALES.CFG ← quantizer scale definitions (Default + Custom, 7 slots each)
283+
0.CFG ← seed granular preset
284+
```
285+
286+
Unlike other supported devices, the ADDAC112 has no fixed audio format — sample rate, bit depth, and channel count are configured per-bank during the wizard. The driver prompts for:
287+
288+
- **Channels** — Mono or Stereo
289+
- **Sample rate** — 8k / 11.025k / 16k / 22.05k / 36k / 44.1k / 48k / 96k Hz
290+
- **Bit depth** — 8-bit, 16-bit, or 24-bit (note: 24-bit halves available loop recording time)
291+
- **Dry volume position** — Pre-FX or Post-FX
292+
- **Pause mode** — Toggle or Momentary
293+
- **Grain pitch on loop change** — Keep or Retune
294+
- **Grain pan mode** — Fixed or Travel
295+
- **Grain deviation mode** — Random or Spread
296+
- **Scales** — Factory defaults only, or optionally add HARMONIC or WELL TUNED custom scale presets
297+
298+
All metadata is stripped from output WAVs (`-map_metadata -1 -fflags +bitexact`). A size warning fires if the total WAV folder content exceeds the recommended ~60 MB bank limit.
299+
300+
`SETTINGS.CFG` and a seed `0.CFG` preset are generated from your wizard choices, giving the module a valid configuration to load on first use. Scale data in `SCALES.CFG` is derived from the ADDAC112 user manual (pp. 40–43).
301+
302+
> **Note:** `bit_depth` in `SETTINGS.CFG` uses a non-obvious inverted encoding: `0` = 24-bit, `1` = 8-bit, `2` = 16-bit. SamplerPrep handles this automatically.
303+
270304
---
271305

272306
## macOS and AppleDouble files
@@ -447,6 +481,7 @@ samplerprep/
447481
squid.py
448482
assimil8or.py
449483
clutch.py
484+
addac112.py
450485
config.json ← runtime config and Radio Music profiles
451486
data.json ← downloadable sample pack catalogue
452487
empty_folder/ ← placeholder RAW files for Radio Music skeleton

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[project]
22
name = "sampler-prep"
3-
version = "0.3.0"
3+
version = "0.4.0"
44
description = "Prepare audio sample packs for hardware samplers"
55
requires-python = ">=3.11"
66
dependencies = ["questionary"]

0 commit comments

Comments
 (0)