SF2/XI loop crossfade + hold-to-repeat steppers (v0.3.0)

- SF2/XI loader: add a Loop XFade control (ms, 0-500) next to the loop toggle.
  SampleVoice crossfades the loop tail into its head for a click-free seam even
  when the file's loop points don't match; 0 ms keeps the previous hard wrap.
  Threaded through VoiceSample and all noteOn call sites.
- Add a reusable RepeatButton: fires on press then auto-repeats while held with
  an exponentially shrinking interval (stops on release/scroll-off). Applied to
  every +/- stepper (tempo, MIDI channel, arrangement repeats, audition/keyboard
  octave, and the new crossfade).
- Bump version to 0.3.0 (versionCode 3) per the minor-per-change policy.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
Reactorcoremeltdown
2026-07-17 20:38:10 +02:00
parent 4bd8aac4d5
commit ba56b5ab9e
15 changed files with 290 additions and 41 deletions

View File

@@ -22,8 +22,8 @@ android {
// (android.media.midi) and AAudio low-latency audio we rely on.
minSdk = 26
targetSdk = 34
versionCode = 1
versionName = "0.1.0"
versionCode = 3
versionName = "0.3.0"
// We provide our own instrumentation runner if/when tests are added.
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"