Skip to content

Releases: Hamza417/Felicity

0.0.8-pre_alpha

19 Apr 10:12
b665d75

Choose a tag to compare

Library

  • Improved library builder to prevent HASH collisions on duplicate Audio files causing same songs to
    be rescanned multiple times.
  • Added Excluded Folders support to exclude out a folder from the scans.
  • Added new way to generate song identities improving the loading speed significantly.
    • Songs now loads 5-10x times faster depending on the device. In my tests ~1400 were fully
      processed in less than 5 seconds. Earlier the time taken was over 50 seconds.

Players

  • Added Line Lrc View to show lyrics on the now playing screen itself.
  • Added dedicated Media Controls wth better UI and motion feedbacks.

User Interface

  • Added Word by Word LRC support.
  • Added Album Artists panel.
  • Added song count in Genres.
  • Added Refresh Library in Library Preferences.
  • Added Dividers accessibility toggle to add divider lines in the whole app.
  • Updated Dashboard interface with smaller buttons for ideal spacing.
  • Added Selections panel to view currently selected songs.
  • Added toggle to replace Heart icon with Thumbs Up icon for favorites.

Bug Fixes

  • Fixed song states not saving when the player is paused and user is changing songs.
  • Fixed player starts playing when decoder is changed in the background.
  • Fixed Folders Hierarchy list and UI issues.
  • Fixed equalizer button on the volume knob not working.
  • Fixed Add to Queue option not moving the positions after the last song leading to inconsistent
    playback states.
  • Fixed play button tint issues in various panels.
  • Fixed initial stutters in Typeface selection panel.
  • Fixed a crash caused by starting scanner service in a wrong app state.

Improvements

  • Improved lyrics menu states based on lyrics availability.

Changes

  • Reduced title font size a bit for the whole app.

Removed

  • Removed weird hover animations when using in PC or cursor modes.
  • Replaced the morphing play button with a simple play button.
  • Removed file hasher to reduce I/O overhead and slow scan times.

Full Changelog: 0.0.7-pre_alpha...0.0.8-pre_alpha

0.0.7-pre_alpha

12 Apr 16:21

Choose a tag to compare

User Interface

  • Added Metadata Editor to edit song metadata.
  • Added a local music server mode to host your music library.
  • Added dedicated Album and Artist menu.
  • Added LRC Editor to edit song lyrics files.
  • Updated some home UIs (they still need some work).
  • Added Selection Mode to select multiple music files for batch operations.
    • It works globally, meaning once toggled on, you can select music files across all screens without losing your selections.
  • Added new way to highlight the playing songs in the app, it looks really simple and clean :)))
  • Added Presets in Equalizer to save your custom EQ settings.
    • Added a few built-in presets as well.
  • Added M3U playlist support, app will automatically detect and import M3U playlists in your music library.
  • Implemented the Insert and Play feature, which allows you to insert songs into the playing queue and play them immediately.
  • Added a notification for when scanner is running in the background.
  • Added Configuration screen to manage app settings.
    • Added Language selection panel.
    • Added Keep Screen On toggle.

Bug Fixes

  • Fixed an issue where the spacing at the kept increasing as keyboard is opened and closed.
  • Fixed laggy fast scroll in Playing Queue screen.
  • Fixed wrong playlist sort order.

Improvements

  • Improved slider fast scroll internal logic to fix the stutters caused during first scroll.
  • Dismiss some popups immediately to prevent them from overlapping between the panel transitions.

Full Changelog

0.0.6-pre_alpha

09 Apr 18:13

Choose a tag to compare

Native DSP

  • Reduced FFT size to use 80% less CPU cycles during audio processing.
    • This maybe the main reason for battery drain reported by some users.
  • Inject output latency directly into the FFT feed to create a beat sync visualizations based on current output device being used.
  • Added Visualizer Latency in Audio Pipeline snapshot.

User Interface

  • Updated the Page panels interface
    • Uses faded slideshow
    • Now has better chip contrasts.
  • Added Waveform Seekbar in the Player and Lyrics screens replacing the simple sliders entirely.
  • Use shorter more meaningful total list duration in all panels.
  • Added List Styles settings for Folder Hierarchy panel.
  • Added Album Art based Light and Dark themes.
  • Added long tap to fast-forward and fast rewind song playback in Player panels.
  • Added a new Player Theme (Faded).
    • It looks really cool and my favorite so far.
  • Tap to cycle PCM Info in the Player panels.
    • This should reduce motion on the player screen.
  • Changed how visualizer dialog works, it should open directly and show the option to open Milkdrop panel.
  • Updated Audio Pipeline dialog behavior with better animations.
  • Added Lyrics Search panel, it is now possible to search and download lyrics manually.
  • Added Playlist panel and implemented all playlist logic in the backend.
    • Added dedicated Playlist menu too.
    • M3U support is most likely to be added by the next release.
  • Added Sort options for Page panels
    • Albums can now be sorted by their embedded Track Number.
  • Show track number and not album name in the Album Page.
  • Added filter based search in Search panel.
    • Search and merge multiple fields at once.
    • Toggle each field separately.
  • Added simple favorite button with simple animations.
  • Added names for each screen in Equalizer panel.
  • Added About panel in Preferences.
    • Added Telegram Channel link.
  • Added Preference Search in Preference panel.
    • All preferences can now be searched and changed in a single place.

Bug Fixes

  • Fixed Mini Player sliding getting stuck in the middle on rapid touch events.
  • Fixed impossible to swipe album arts in the ArtFlow Home panel.
  • Fixed blank frame and unpredictable behavior on Milkdrop panel.
  • Fixed app crashing on Add To Queue option in Song menu.
  • Fixed Lyrics panel opening LRCs on random positions.

Improvements

  • Bézier gradients for a much smoother gradient curve and sleeker fade falls.
  • Changed how seek behaves in the app to reduce unnecessary seek requests jamming up the DSP which in return causes stutters in the app.
  • Improve how popups appear in Preference panels.

Removed

  • Removed seekbar thumb style preferences.
  • Removed rotary knob style preferences.
  • Removed the explosive favorite button.
  • Removed List preferences from Preferences.

Full Changelog

0.0.5-preview

03 Apr 17:44

Choose a tag to compare

DSP

  • Separate controls for Bass and Treble to make sure they are not bound by the EQ toggle.
  • Added Reverb screen in the Equalizer panel.
    • Added the Mix knob.
    • Added Damp knob.
    • Added knob to change room size.
    • Added Fade knob.
  • Added direct FFT data bridge to Milkdrop
  • Added support for Reverb configurations.

User Interface

  • Added PCM info in the Default Player screen.
  • Added options to change text change effects.
  • Gradient effect on the Mini Player progress.
  • Added Milkdrop Visualizer support in the app.
    • Added a few test presets. The presets are there to test the app for now, complete .milk file support will be added in the next preview.
  • Update recommended songs layout design to use corner radius and proper animations.
  • Added more panel transition options in the Behavior Preferences.
  • Added toggle to use Album Artists globally instead of using default Artist names.
  • Changed Default Player UI to make space for more elements.
  • Added Audio Pipeline dialog to visualize how the audio is being processed in the app.
  • Fixed irregular padding on Header Chips on all panels.
  • Added AAudio sink support.
  • Added toggle to use Media Store album arts. It is by default left on to prevent unaware users experiencing I/O overload issues.
  • Added landscape layout for Default Player and Lyrics panels.
  • Added Crash Report activity to catch uncaught crashes and generate report right inside the app.
  • Added slider to change app list styles in various panels in the app. It is not final yet and there is good chance it will be changed by the next preview.
  • Added only text based list styles in all supported panels in the app to have an album art free panel design.
  • Added option to change app label in the Home panels. To add your own texts on the Home panel instead of just having the app name all the time.

Bug Fixes

  • Fixed song queue state conditions check order to prevent playback requiring manual play input.
  • Fixed Song Menu design to use app corners and region ownership.
  • Fixed bottom padding removing itself right before a panel switch.
  • Fixed crash caused by a leak in pager class. #28
  • Fixed steppy fastscroll slider motion.

Improved

  • Updated how fast scroll works to respect the list top and bottom spacing better and not go over the header or footers in the app.
  • Improved ArtFlow home UI
    • Added Recommended songs in ArtFlow.
  • Songs menu should restore the origin image on any state even if the menu is canceled midway.
  • Improved caching and cache management to make sure caches are reused and album arts loads instantly in maximum possible conditions.
  • Improved transition calculation logic to optimize predictive back behavior.

Changes

  • Restart app after changing Home interface.
  • Minimum OpenGL requirements has been set to OpenGL 3.0.

Removed

  • Removed Latency slider from the Visualizer settings.
  • Removed fading edge effect from the Mini Player when sliding songs.
  • Removed toggle to use Genre Covers and the covers itself from the app reducing the app size by 15 MB.
    • The noticeable size change is around 8-9 MB is due to addition of Milkdrop in the app for all CPU archs.

Full Changelog: 0.0.4-preview...0.0.5-preview

0.0.4-preview

23 Mar 19:49

Choose a tag to compare

Core (Felicity now runs its own low-level Native NEON Audio DSP Engine)

  • Added Stereo Down mixing support to down mix multichannel audio files to stereo and prevent playback failures.
  • Added Stereo Widening (Stereo Expansion) support to native DSP.
  • Added Tape Saturation (Analog Warmth) support to native DSP.
  • Added Silence Trimming support to native DSP.
  • Added 10-Band Equalizer support in the native DSP.
  • Added PreAmp support in the native DSP.
  • Added support for audio visualization to native DSP passing the audio waves directly to the UI for low latency visualization rendering.

Library

  • Added Song History database support
    • Added Most Played songs panel.
    • Added Recently Played songs panel.
  • Added OPUS format support. #13
  • Improved library management for fast loading/unloading songs.

User Interface

  • Added a new Equalizer screen with 10-Band slider support.
    • Added Preamp slider
    • Added Bass and Treble knobs.
    • Added Balancer, Tape Saturation, and Stereo Widening knobs.
    • Added slidable panels for quick screen switch.
  • Added Audio Visualizer in the Default Player panel.
    • Supports both Bars and Wave styles.
    • Has snowy particles effects.
  • Added toggle to disable margin around Mini Player*.
  • Updated Default Player UI.
  • Added haptic feedbacks to various UI components and toggle for it.
  • Added error notification when playback fails on an audio file.
  • Added a new Dashboard UI for Home Interface.
  • Added directional glow on rotary knob and added a neumorphic knob style.
  • Added album art itself in the Album Art accent card.
  • Updated the Typeface panel to have more magazine like style.
  • Added a custom button group interface component for smooth group based button preferences.
  • Added a new fast scroll slider to match app interface.
  • Added media aware layouts to pass the responsibility for RV to the layout itself for media awareness in the app (it needs improvements).
  • Added a new lossless icon for lossless audio files.
  • Added a toggle to keep the Mini Player always visible.
  • Added swipe down gesture support on the **Default Player screen.
  • More font styles.

Improvements

  • Improved lyrics loading logic to prevent redundant fetches that caused reloading lyrics on predictive back gesture events.
  • Improve system volume interaction with the knob for self updating behavior and remove stutters when changing volume.
  • App now supports variable weight fonts instead of hard-coding styles, the font weights are now dynamically handled in the app through a single wght file.
  • Improve color extraction from album arts with optimized vibrancy weighting to load better colors from the album arts.
  • Center aware loading in album arts to improve album loading times in the Art Flow screen and prevent redundant load cycles to reduce excessive I/O.

Bug Fixes

  • Fixed RTL locales like Urdu, Arabic not rendering properly in LRC viewer.
  • Fixed album art accent not loading immediately after the song is changed.
  • Fixed seek bar left label not reflecting current time. #12
  • Fixed jittery slider movement for Slider Fast Scroller.
  • Fixed audio positions being emitted multiple times.
  • Fixed album art taking a long time to load the bitmaps (it should now take 95% less time to load making the loading feel almost instant). #15

Removed

  • Removed drag and drop re-arrangement for Simple Home screen.
  • Removed Art Flow buttons from Simple Home screen.

Full Changelog: 0.0.3-preview...0.0.4-preview

0.0.3-preview

12 Mar 18:54

Choose a tag to compare

User Interface

  • Migrate OpenGL pager to View based pager for better app integration with other components in the app.
  • Added Recently Added and Year panels.
  • Added Favorites panel for keeping favorite songs.
  • Added Playing Queue panel and also song queue can be altered in real-time without any issues in my tests so far.
  • Updated Default Player interface with better button positioning and information hierarchy.
  • Added Highlight Text Buttons for non icon highlighted text buttons and also to reduce need for icon buttons in the UI because they were getting too many.
  • Added steps support in Seekbar but not used anywhere yet, will be used for step based preferences.
  • Added live lyrics sync adjustment for LRC time stamps. The sync adjusted modifies the timestamps in the actual file, so any change in the sync will persist everywhere and will not need resyncing anywhere.
  • Optimized Lyrics viewer, added smooth animations and fixed bottlenecks in rendering pipeline.
  • Added haptic feedbacks in rotary knobs.
  • Added options to customize lyrics in Lyrics panel.
  • Rewritten Mini Player to render song details directly on the screen creating a flat layout hierarchy reducing the UI load.
    • Added toggle to enable border around the Mini Player for accessibility problems.
    • Implemented song seekbar in the Mini Player itself to seek songs on the fly without needing to open the player screen.
    • Accent theme for Mini Player.
  • Implemented multiple options in Songs Menu.
    • Added Go To Artist and Go To Album buttons to quickly navigate to the current song artists and albums.
    • Added Play Next button to put the song in the next to current song in the queue.
    • Added Add To Favorite button to add the song to favorites list.
    • Added Always Skip button to make song always skippable by the auto queue manager useful for songs that should not be played automatically by the queue manager.
  • Added Favorite button in the Default Player screen.
  • Implemented app-wide shuffle algorithm. The app uses both Fisher-Yates and Miller shuffle algorithms and can be changed from preferences or by long tapping shuffle icons. #8
  • Simple Home items can now be dragged to rearrange the items. It barely works for now.
  • Added texts in various seekbar preferences to show current value.
  • Rewritten the slideshow pager in the app, has better rendering performance and animations now.
  • Added option to delete lyrics files too with the song file.
  • Added Typewriter text effect, it will be toggleable in future releases.

Improvements

  • Pager improvements for smooth performance and scrolling while sliding songs.
  • Improve shared image popup menu with better adaptation for varying image sizes in the app, this should help remove the limitations for square only images in the app now, and will let me implement more dynamic layouts later.
  • Improve header and list interaction to prevent unnecessary bugs and layout issues, the list accommodating for header had caused some serious issues and were hindering in some layout calculations.
  • Scroll plain lyrics too based on current playing positions.
  • Added seek bar right and left texts to remove the need for extra text views reducing some performance loads.
  • Lyrics panel will look for embedded lyrics first, then sidecar if none available then it will try to download the lyrics from the internet.

Bug Fixes

  • Path lookup to prevent duplicate entries #9
  • Deduplication logic for database to make sure app correctly sanitizes the database #9
  • Fix Pro-Guard issues and rules, app is now 40% smaller in size, 59 MB ⇾ 35 MB.
  • Fixed bitrate always showing 0.
  • Fixed various scanning issues and fallback mechanisms.
  • Fixed a lot of issues I don't remember :')

Removed

  • Removed oval shape for the seekbar thumb.

Full Changelog

0.0.2-preview

28 Feb 07:56

Choose a tag to compare

Fixes

  • Fixed state restore issue causing gaps in playback when device configuration is changed like rotation.
  • Fixed clicks not working in ArtFlow panel.
  • Fixed sorting by data in Songs panel.
  • Fixed no queue history on first app launch.
  • Fixed Mini Player overlapping with the navigation bar.
  • Fixed dialogs intercepting back events causing predictive back to fail frequently. #7
  • Fixed changing decoder erasing queue state while continue playing the current song.
  • Fixed player freezing when encountering an unsupported file.
    • This can happen when app can parse formats like alac but system hardware is not capable or support it causing the decoder to crash

User Interface

  • Added a lyrics preview dialog to quickly preview the lyrics of any song.
  • Added Library preferences.
    • Added slider to set minimum size and length for scanning audio files.
  • Added dialog to create/insert lyrics for songs.
  • Finalized the app's knob design.
    • Added knob divider indicators with cool physical progress animations.
    • Added max and minimum ticks.
    • Optimized knob to draw and render through math calculations instead of using vector resources for much smoother and reliable transitions.
    • Added current value text in the knob.
    • Added texts to max and min positions in the knob.
    • Update knob theme to reflect the app theme better.
  • Added Folder Hierarchy panel to browse music folders in the device in tree format. #6
  • Added volume observer to Volume knobs to reflect system volumes immediately.
  • Implemented Repeat modes in the app. Supports Repeat Current, Repeat All, and Repeat None.
    • Options like repeat once will be added soon.
  • Added toggles to skip .nomedia, .dot files and .dot_folders in the Library Preferences.
  • Added texts on the seek bars to show currently set values in the preferences.
  • Added Constant Power Panning Balancer knob to let user balance out the L/R audio outputs in the Volume dialog.
  • Added alignment and text size customizable options for Lyrics panel.
  • Added player controls in the Lyrics panel.
  • Added toggle to Fall back to SW Decoder when hardware decoder is used to support playing unsupported formats. Related to the freezing issue on unsupported files.

Changes

  • Lyrics will un-fade while scrolling to make all text lines visible.
  • Remove default indicator from seek bars if the default value is near zero.

Improved

  • Media queue handling on different scenarios. The app should not start replaying song from beginning if the same song is tapped while it is playing already.
  • Queue handling should be quiet in conditions where same song is played, but queue is changed entirely.
  • Improved mini player with better app integration and dynamic transparency support.
  • Added better item animator to reduce clunkiness while updating, inserting and removing items from the list.
  • Improve audio scanner and DB loader for better data identification and update plus the scanner should run more reliably.
  • Removed extra texts from Player screen to reduce panel load time.
  • Improved Player interface a bit.

Known Issues In This Build So Far

  • Miniplayer texts become invisible in dark modes.
  • Duplicate song entries #9

Note

Some features planned to be added in this preview have been postponed for the next one because there is still some file management issues I need to deal with before I can start adding more screens like Playlists, History and Statistics etc. Shuffle is also planned to be added by the next preview, and I am currently studying various algorithms and expanding my understanding on how shuffles should work.

Full Changelog: https://github.com/Hamza417/Felicity/commits/0.0.2-preview

0.0.1-preview

21 Feb 19:05

Choose a tag to compare

This is the initial public alpha release of Felicity. The primary focus of this build is core playback stability and performance. The foundational audio engine is ready for daily use, but several secondary features and interface elements remain incomplete.

Features

  • Real-time library updates, the app will automatically detect and incorporate new media files in real-time without needing to restart/refresh.
  • Basic playback controls (play, pause, stop, next, previous) are fully functional and responsive.
  • The audio engine has two decoders FFmpeg and System Decoder, both are supported and fully working.
  • Hi-res (tested up to 24-bit, 32 is expected to work as well), Gapless and Skip Silence is supported and working.
  • App has zero latency performance and expected to load and work instantly on most devices.
  • Built in ArtFlow for songs.
  • Currently, Songs, Albums, Artists, Genres and Folders are supported as library categories, with more to be added in future updates.
  • Themes, fonts, and other UI customizations are supported and working.
  • Predictive back is fully supported.
  • Lagless and smooth fast scroller and a separate section scroller both working and supported everywhere in the app.

Known Issues

  • UI gaps are present in most of the areas, and many interface elements are placeholders or incomplete.
  • Some features like playlists, advanced library management, and certain settings are not yet implemented.
  • Edge to edge is working, but navigation bar is not supported in all devices as of now.
  • Scroll state loss in some horizontal lists.

Plans (at least for next release)

  • Full implementation of playlists, including creation, editing, and management features.
  • Add selections framework to the library for easier multi-item management.
  • Implement more placeholders and complete the UI for most of the sections in the app.
  • Queue management features.

Note:

  • The original size of the app was expected to be around 19 megabytes, but I ran into some issues with Hilt and had to disable the minification, hence the large size. It will be fixed eventually, too.

This release is intended for early adopters and testers and any user who wants to experience the app early. Please open as many issues as you can and any ideas are most welcome :)