Releases: sarossilli/MusicalJoycons
Releases · sarossilli/MusicalJoycons
Musical Joycons v0.1.3
Added
- ARM64 (aarch64) Linux build target for use on devices like the Nintendo Switch running L4T Ubuntu.
- Native ARM64 GitHub Actions runner (
ubuntu-24.04-arm) for building and testing release binaries.
Musical Joycons v0.1.2
Added
- Part-based MIDI normalization: notes grouped by
(channel, program)into musical Parts, replacing raw track-based analysis. - Dual scoring models: separate Primary (melody-likeness) and Secondary (accompaniment) scorers with weighted feature vectors.
- Rich feature computation per Part: monophony ratio, chordiness, stepwise motion, pitch/velocity percentiles, instrument priors, and active ratio.
- Runtime L/R swap and part cycling: press S to swap Joy-Con sides, 1/2 to cycle primary/secondary candidates during playback.
- Keyboard input thread using
crosstermfor non-blocking runtime controls.
Changed
- Frequency mapping now octave-shifts notes into the 200–1252 Hz range so low-pitched MIDI parts produce audible rumble.
active_ratiocomputed against full song duration instead of per-part span, preventing sparse fill-parts from appearing artificially active.- Primary/secondary scoring boosted
active_ratioandtotal_note_timeweights; added hard penalties for parts covering less than 10–25% of the song. - Playback timing uses
Instant-based wall-clock scheduling instead of accumulatedthread::sleepdurations, eliminating drift between Joy-Cons. ticks_to_durationupgraded fromf32/u64microsecond truncation to fullf64precision.- Skyline algorithm now operates on a constrained candidate pool from the scoring models rather than all raw MIDI tracks.
- HID writes coalesced for same-tick commands with a 2ms minimum interval to prevent USB pipeline overflow.
Fixed
- Songs with many sparse monophonic parts no longer select nearly-silent fill tracks as primary/secondary.
- Joy-Con timing desync caused by HID I/O overhead and Windows sleep granularity compounding over the song.
- Windows HID "overlapped I/O" crash when rumble commands were sent too rapidly.
Candidate 1
What's Changed
- Rust-like project structure by @sarossilli in #5
- Rust code safety by @sarossilli in #7
- Github actions build release by @sarossilli in #6
Full Changelog: v0.1.1...v0.1.1-c1
Musical Joycons v0.1.1
What's Changed
- Updates: Allow for N joycons by @sarossilli in #3
- Merge: Refactoring and "Track Merging"d by @sarossilli in #4
Full Changelog: v0.1.0...v0.1.1
Musical Joycons v0.1.0
What's Changed
- [Release 0] Add basic Joycon functionality and Play Scale by @sarossilli in #1
- [Release 0.1.0] Basic MIDI playing functionality by @sarossilli in #2
New Contributors
- @sarossilli made their first contribution in #1
Full Changelog: https://github.com/sarossilli/MusicalJoycons/commits/v0.1.0