Skip to content

Releases: sarossilli/MusicalJoycons

Musical Joycons v0.1.3

26 Feb 19:56
48725b8

Choose a tag to compare

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

26 Feb 16:10

Choose a tag to compare

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 crossterm for 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_ratio computed against full song duration instead of per-part span, preventing sparse fill-parts from appearing artificially active.
  • Primary/secondary scoring boosted active_ratio and total_note_time weights; added hard penalties for parts covering less than 10–25% of the song.
  • Playback timing uses Instant-based wall-clock scheduling instead of accumulated thread::sleep durations, eliminating drift between Joy-Cons.
  • ticks_to_duration upgraded from f32/u64 microsecond truncation to full f64 precision.
  • 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

23 Feb 14:52
bf006c9

Choose a tag to compare

Candidate 1 Pre-release
Pre-release

What's Changed

Full Changelog: v0.1.1...v0.1.1-c1

Musical Joycons v0.1.1

19 Jan 22:06

Choose a tag to compare

What's Changed

Full Changelog: v0.1.0...v0.1.1

Musical Joycons v0.1.0

05 Jan 17:34

Choose a tag to compare

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

Full Changelog: https://github.com/sarossilli/MusicalJoycons/commits/v0.1.0