Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
46 changes: 46 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
2 changes: 1 addition & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "oxideav-mod"
version = "0.0.9"
version = "0.0.10"
edition = "2021"
rust-version = "1.80"
license = "MIT"
Expand Down
Loading