11 releases

0.4.0 Nov 17, 2024
0.3.10 Nov 13, 2024

#1156 in Parser implementations

Download history 834/week @ 2024-11-03 150/week @ 2024-11-10 120/week @ 2024-11-17 5/week @ 2024-11-24 81/week @ 2024-12-01 192/week @ 2024-12-08 20/week @ 2024-12-15 16/week @ 2024-12-22 3/week @ 2024-12-29 7/week @ 2025-01-05

57 downloads per month
Used in amm-sdk-netsblox

MIT license

5MB
9K SLoC

Contains (WOFF font, 4MB) assets/fonts/BravuraText.woff, (WOFF font, 335KB) assets/fonts/BravuraText.woff2, (Zip file, 40KB) examples/NewYorkStateOfMind.mxl, (Zip file, 11KB) examples/Hymn_to_Freedom.mxl

amm-sdk

Abstract Music Manipulation (AMM) SDK

Under heavy development - Updates forthcoming

Under Development

  • Finish iter_timeslices() to work with playback

    • Make get_slices_for_playback(): Create implicit slices for things like glissandos and mordents
      • Determines that fastest possible timeslice and use that as the time quantization level
      • Can also select ranges of timeslices
  • Implement get_pcm_samples() on Timeslice to create audio buffer for note + mods to use in direct playback

  • Finish MIDI Reader Implementation

  • Make fully no_std compatible

  • Create WASM build

  • Add a test containing Glissandos and/or multi-note tremolos and/or implicit + explicit tempo changes

  • Finish MusicXML Reader Implementation

    • Take into account time-only attributes
    • Scan text attributes for common items (rall., etc.)
    • Scan sound attributes for items maybe not recognized otherwise (rall., etc.)
  • Remove pub(crate) from Phrase and make MultiVoice okay with this

  • Make composition timeslice iterator a real iterator (and check that staff timeslices line up correctly)

Dependencies

~10–14MB
~141K SLoC