Skip to content

Version Release; 0.1.7

Choose a tag to compare

@UnknownSuperficialNight UnknownSuperficialNight released this 23 Sep 04:24
· 11 commits to main since this release
fa65aad

Warning

RhythmiRust does not support going back to previous versions there may be breaking changes and backwards compatibility is not guaranteed

Changelog

🎵 RhythmiRust Updates - 0.1.7 (2025-06-08 06:18)

🚀 Features

Add trimming to wiki renderer for improved text formatting

  • Previously, the wiki required careful formatting around buttons and highlighted text to avoid double padding due to the buttons' padding
  • Now, trimming allows for consistent formatting, ensuring that both options work correctly without extra spaces

Move the active button to the right of the dropdown

  • This makes it easier to enable and disable keys without opening the
    dropdown

Enable regeneration of selected tables in the metadata editor

  • Users can now right-click on a directory or table to add it to the regeneration queue
  • The regeneration task will be processed later, allowing for a full refresh of all values in the database for the selected tables

Add album_artist and artists columns

  • Added album_artist and artists columns to metadata storage, allowing for more granular search and filtering capabilities
  • Implemented duplicate removal comparisons to ensure unique data in each column (album_artist, artists, artist), improving search efficiency and data analysis
  • Updated metadata editor to allow writing to new columns, enabling users to edit and manage album_artist and artists information

Implement override_album_art

  • Implemented two types of album art: override_album_art and album_art, where:
    • override_album_art takes priority over all other album art, including embedded images
    • album_art is used only when no embedded image is present, allowing for a balance between user preference and original metadata

Parse year from metadata with a backup of ORIGINALYEAR

  • If the standard year keys are not present in the metadata then look for a
    ORIGINALYEAR tag

Implement Speed Control for music playback

  • Add speed_bool in the database to manage speed control UI visibility
  • Implement slider for adjusting playback speed
  • Enable dynamic setting of playback speed

🐛 Bug Fixes

Mismatched lifetime syntax warning

Update the frame when the user loads a new table

  • Before to see updates the user would need to move their cursor to
    update the screen

Ignore error when no table is selected

  • Prevent application crash when "Save Changes" is pressed with no table selected

Enhance error handling for metadata extraction

  • Update the error handling logic to avoid panicking
  • Print the error message to stdout and continue the execution

Print error when adding a font region that is empty

Paused state not showing properly when stopping music

  • When the user pauses a song then hits the stop button to clear all
    songs the pause state now returns to the unpaused state

Ensure add menu closes when editing the font menu via right click

Resolve a issue with using direct URLs

  • Using direct urls like https://www.youtube.com/watch?v=xxxxxxxxxxx
    would not get the url instead returning N/A

Refactor audio extraction functions to handle errors gracefully and avoid redundant code

Optimize downloader scrollarea (2 less redundant variables)

Fix the scroll_to_top not working for the favourites ui

Add tooltip to the downloaders precedence order

Clearing UI memory no longer resets the Hidden windows feature

🔧 Maintenance

Upgrade version to 0.1.7

Updating lock file

Clippy fixes

  • Added more clippy lints

Update all deps

Clippy suggestions and check length on album_artist

  • album_artist now check the length to ensure it does not set to null if there are more than 1 person in the column

Update all dependencies

Update dependencies

📎 Other

Add unique constraint to directory table and increment file processing counter

  • Add UNIQUE constraint on (name, ext) in directory table to make deduplication less strict
  • Increment files_processed counter starting from 1 for accurate
    tracking

♻️ Refactor

Improve the Web Codec Checker to now have a loading spinner

  • Before this there was no indication that the Web Codec Checker is
    running

Reorganize the entire downloader ui to be easier to work with

Move metadata table data refresh to background thread

  • Moved metadata table data imports to a background thread
  • Prevents blocking the render thread for better/smoother performance

Organise the settings ui code

  • The code is now split into a structure

Remove redundant debug downloader statements

Add support for adding more fonts and UI tweaks

  • Quality of life upgrades regarding font UI interaction
  • Add support to add more fonts regions
  • Add support to remove font regions

Use escape characters instead of hashtag

  • Use escape characters to minimize potential
  • Rename variables and refactor the download args to make more sense
  • Increase the minimum size of the music window to not be able to go out
    of bounds

⚡ Performance

Migrate from pcm_s16le to pcm_f32le

  • Temporarily use the music library main branch to get the newest
    changes
  • Use the new OutputStreamBuilder to get stream_handle and make the
    sink
  • Use the new DecoderBuilder to manually build a decoder with hints
    for faster playback initialization and with seekable
  • All sources were assumed seekable now with_seekable or Decoder::try_from is needed to
    enable seeking

Allow passing a TaggedFile to avoid redundant file reads

  • Enables the use of an already parsed TaggedFile to retrieve metadata fields without reading and parsing the entire song file again
  • Optimizes bulk retrieval of individual metadata fields, reducing the number of file reads from three to one
  • Maintains previous behavior when a &str is passed, which involves reading and parsing the file before retrieving a metadata field