From 5ac9e25e68bc095aaa79794ee81589d4af7a5b01 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mark=20Karpel=C3=A8s?= Date: Sun, 28 Jun 2026 11:07:26 +0900 Subject: [PATCH] chore: release v0.0.10 --- CHANGELOG.md | 46 ++++++++++++++++++++++++++++++++++++++++++++++ Cargo.toml | 2 +- 2 files changed, 47 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9c4d9da..934118f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,52 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +## [0.0.10](https://github.com/OxideAV/oxideav-mod/compare/v0.0.9...v0.0.10) - 2026-06-28 + +### Other + +- sample-header finetune retunes every note, not only E5x notes +- 9xx without a note retriggers the playing sample to the offset +- lock Axy both-nibbles-set volume-slide direction (x wins) +- tone-porta target resolves through the channel finetune table +- end-to-end decode-pipeline PCM checkpoint +- rendered-PCM checkpoints for the planar driver + loop sustain +- rendered-PCM checkpoint regression net for the mix/render driver +- README — document shared-mixer loop boundary for STM + XM +- ping-pong loop coverage in the shared mixer +- shared mixer forward-loop wraps at loop_end, not buffer end +- README — note E6x loop-point cross-pattern reset +- reset E6x pattern-loop point on pattern transition +- README — document fine-slide memory, note-delay + Kxy consistency +- Kxy key-off matches note-97 voice-silence on envelope-less instruments +- note-delay (EDx) fire mirrors tick-0 note-on LFO/counter resets +- last-non-zero memory for E1x/E2x/EAx/EBx/X1x/X2x fine slides +- E4x/E7x downward-saw vibrato/tremolo waveform over the full 64-step cycle +- Bxx out-of-range position jump wraps to order 0 (PT quirk) +- EC0 note-cut silences on tick 0 ("nothing will be heard") +- F00 halts playback (Protracker Set-speed param 0) +- complete offset-1080 format-tag channel map (2CHN/dCHN/xxCN/TDZx/OKTA/M&K!) +- refresh to current status, drop per-round changelog cruft +- honour UST +471 song-speed byte in the tick scheduler +- implement EFx invert-loop (funkrepeat) effect +- state Amiga LED-filter pole from hardware behaviour, drop external citation +- 15-sample Ultimate SoundTracker layout + UST effect translation +- Startrekker FLT8 paired-pattern layout + order-table halving +- honour E4x/E7x vibrato + tremolo waveform control +- typed Note::has_period + has_sample + has_effect + is_empty predicates +- typed XmSampleHeader::finetune_semitones + transpose_semitones +- typed XmSampleHeader::is_looped + loop_region_frames + length_frames +- drop release-plz.toml — use release-plz defaults across the workspace +- implement E3x glissando control +- typed Sample::is_looped + loop_region accessors on header parser +- Rxy per-nibble memory — y=0 reuses last speed, x=0 reuses last volume modifier +- implement E9x retrigger-note effect +- implement 9xx set-sample-offset effect with PT memory + out-of-range quirk +- implement E6x pattern loop + EEx pattern delay +- paraphrase remaining third-party-renderer narrative prose +- promote codec id "xm" from stub to full playback decoder +- promote codec id "stm" from stub to full playback decoder + ### Added - **`Axy` both-nibbles-set volume-slide direction is locked to a regression diff --git a/Cargo.toml b/Cargo.toml index 695a180..a555322 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "oxideav-mod" -version = "0.0.9" +version = "0.0.10" edition = "2021" rust-version = "1.80" license = "MIT"