Releases: pchapman-uat/AstroTune
First Complete Release [v1.0.0]
AstroTune (Previously known as Foobar Controller Mobile) is a mobile app that uses the BeefWeb API to allow users to control Foobar2000 and DeaDBeeF remotely.
This project was created for Preston Chapman's Student Innovation Project (SIP) at the University of Advancing Technology (UAT). The SIP is UAT's equivalent of a master’s thesis; all students graduating with a bachelor's degree are required to innovate and create a product. For more information, view https://www.uat.edu/student-innovation-projects.
UAT does not own this project; however, it has been granted a non-exclusive, royalty-free license to use, copy, display, describe, mark-on, modify, retain, or make other use of the student’s work. For more information, view https://www.uat.edu/catalog.
Information in the README and LICENSE may not properly reflect the above at the moment.
SIP Presentation
OneDrive - SIP405 AstroTune Final.mp4
Features
This applications includes many features such as:
- Now Playing
- Current Connection
- Playback Controls
- Volume Controls
- Library Viewer
- File Browser
- Playback Queue
- Settings
- Setup
- Themes
- And many more
v0.5.0 to v1.0.0 Changelog
Additions
- Volume State/Mute: Allow users to move the audio, with an icon to demonstrate it
- Show volume Level: The volume level is now shown, it works with multiple volume types, but only displays decibel.
Changes
- Adjust Setup Style: All text should update color based on the theme
Dev Changes
- Removed Expo-CLI: Due to some security risks, Expo-CLI was removed from the packages, and is now being used globally. This will change at a later date.
- Remove Unused Packages: There are some packages that were included, but no longer used, they have been removed to help with file size and security.
- Spelling: Variable names have been updated to
- Unused Variables: Removed any unused variables, definitions, and more.
Fixes
- Navigation to Loading Screen: Users had the ability to navigate to the loading screen, this is now no longer possible.
- Setup does not go to home: Due to an oversite, after setup it will navigate you to the the previous screen, but on the first time setup, it resulted in returning to the beginning of the setup screen.
Install
- Foobar2000 – Tested on v2.24.5 32-bit, v2.25.X, and v2.26 preview 11/25/25
- Beefweb – Tested on v0.10
- DeaDBeeF – Tested on 1.9.6 by Gab
Download the attached APK and install it on an Android phone (install from unknown sources must be enabled)
With the latest version of some Samsung phone, Google Play can now scan an application before installing, even if it is not on the play store.
For full instructions, please visit the wiki: https://github.com/pchapman-uat/AstroTune/wiki/Setup
Full Changelog: v0.5.0...v1.0.0
Milestone 5 [v0.5.0]
Note
The application has been renamed from Foobar Controller Mobile, to AstroTune, when installing the app your settings will be removed, and you will need to uninstall the old version.
With the SIP Showcase being on December 16th, this project is approaching the v1.0.0 release. Version 0.5.0 will be the last major update before 1.0.0, with only release candidates if necessary. This update focuses on improving UI/UX. Making the app easier to use, more user friendly, and visually appealing.
Additions
- Update Notification: Added a notification and icon when the app is outdated
- Plugin Support: Added an icon if the plugin (beefweb) is not on a supported version
- Import/Export Settings
Changes
- Adjust Connection Screen: Added Title, Logo, Improved Style, and location.
- Permissions: Added
WRITE_EXTERNAL_STORAGEandREAD_EXTERNAL_STORAGEpermissions.
Dev Changes
- Application Namespace: The namespace of the application has been changed from
com.pchapman.foobarcontollermobiletocom.pchapman.astrotune - Expo Prebuild: The project has been rebuilt to match the recent changes, file structure has been changed in the
androidfolder.
Fixes
- Logger Always Beefweb: Fixed the logger so it shows the source properly
- Repeating Navigator: The navigator would keep track when the user goes to the same page they are one, this no longer happens.
- Invalid Booleans: All false Booleans were classified as invalid, this has been resolved.
- Memory Leak: Both the Status Bar and Now Playing would add event listeners without removing them when no longer used. These are now resolved.
Install
- Foobar2000 – Tested on v2.24.5 32-bit, v2.25.X, and v2.26 preview 11/25/25
- Beefweb – Tested on v0.10
- DeaDBeeF – Tested on 1.9.6 by Gab
Download the attached APK and install it on an Android phone (install from unknown sources must be enabled)
With the latest version of some Samsung phone, Google Play can now scan an application before installing, even if it is not on the play store.
For full instructions, please visit the wiki: https://github.com/pchapman-uat/AstroTune/wiki/Setup
Full Changelog: v0.4.0...v0.5.0
Milestone 4 [v0.4.0]
Although this is comparatively a smaller release, it was mainly to involve the process of finalizing the application. Only one major update is planned before official release, that being v0.5.0, this will mainly include improvements to the UI/UX, Documentation, Bug Fixes, Crashing, and following all 3rd Party Licenses.
Additions
- Application Icon: There is now a proper app icon added, changes are still possible for the time being.
- Setup Theme: Allow the user to choose a theme when setting up the application.
- Back Button Support: Users can now use the Android back button, or similar to go between custom pages.
- App Restart: Application will now restart when all settings are reset (v0.3.1)
Changes
- Improved Logging: Application no longer uses
console.log, allowing for all logs to show on the log screen. - Style Improvement: Minor style improvements and consistency changes where done.
Dev Changes
- Prevent
console.log: Updated ESLint to prevent the use ofconsole.login favor of the custom logging. - Spelling Fixes: Renamed files and fixed spelling throughout application.
- Improve Validation Tasks: Adjusted the tasks for validation in the VS Code Tasks.
Fixes
- Browser Hanging: Resolved an issue with the browser hanging when trying to get directory children.
- Reason: Due to Validator added in the v0.3.0, the browser would try to use the valid object, rather than its value property.
- Setup Crash: Resolved setup screen crashing when reaching application setup (v0.3.1)
- Settings Not Saving: Resolved settings not saving due to oversite with specific settings types
- Reason: The function to handle saving did not properly filter out functions. Changes where also done to properly reload the connection when a setting is changed and improvements to the Beefweb interval.
- Security Fixes: Resolved multiple security risks with the application. (#9 [v0.3.1], #11, #13 and #14)
Install
- Foobar2000 – Tested on v2.24.5 32-bit
- Compared to v0.3.1 where Foobar2000 v2.23.5 was supported, the testing environment has been upped to v2.24.5, v2.23.5 should work but is not being tested.
- Beefweb – Tested on v0.10
Download the attached APK and install it on an Android phone (install from unknown sources must be enabled)
For full instructions, please visit the wiki: https://github.com/pchapman-uat/Foobar-Controler-Mobile/wiki/Setup
Full Changelog: v0.3.1...v0.4.0
Major Hotfix for Milestone 3 [v0.3.1]
This hotfix resolves 3 issues and adds 1 feature, please view https://github.com/pchapman-uat/Foobar-Controler-Mobile/releases/tag/v0.3.0 for the full 0.3.0 release notes
Fixes
- Resolved setup screen crashing when reaching application setup
- Resolved settings not saving due to oversite with specific settings types
- Resolved critical vulnerability with react-native-community/cli
Additions
- Application will now restart when all settings are reset
Full Changelog: v0.3.0...v0.3.1
Milestone 3 [v0.3.0]
Caution
DO NOT USE: This release does not work, and has multiple bugs and a security risk. Please use v0.3.1
This release mainly focused on resolving bugs, improving UI/UX, and changing backend features such as logging, alerts, and more. More settings have been changed, allowing more data types such as arrays. All settings and specific text boxes use a validator before running a critical command, which will help resolve issues with invalid data being sent to the Beefweb server.
Documentation has also begun for the code, specifically within the Beefweb class. The code has increased the error level for certain ESLint methods, preventing the use of features like console.log
Additions
- Array Settings Data Type: Allow settings to be saved as an array.
- Settings Descriptions: Add settings to descriptions, including the default value.
- Custom File Extensions: Allow users to add custom file extensions when using the browser.
- Button Control (Reset All Settings): Add button control/setting type, and add a button to reset all settings.
- Custom Alert Menu
⚠️ : Add custom alert modal rather than native alerts. (Unfinished) - Custom Logging 🧪: Add custom logging to native statements and provide a GUI to see logs. (Needs Testing)
- First Load Setup: Added the Setup screen to open when it is the user's first time loading the app.
Changes
- Improve Browser: Rework the browser to better handle enums and custom file types.
- Adjust Button Styles: Update the buttons to have a more uniform style.
- Complete Navigation Rework: Add options to navigate to and on navigate to allow for pages to have navigation parameters.
- Multiple IPs: Allow the user to save multiple IPs and change between them.
Dev Changes
- ESLint React Naming Convention: Add rules for:
- Context-Name
- File Name
- File Extension
- Use-State
- JSX Case.
- File Naming Changes: Renamed files for consistency and efficiency.
- Documentation
⚠️ : Add JS documentation to some classes and methods (Unfinished) - Resolve Spelling Issues: Resolve basic spelling issues across all files
- Explicit Member Accessibility: Update all properties and methods to have accessibility specified
- Dependabot: Resolve dependency vulnerabilities
Fixes
- Scrolling Text: Resolved an issue with the Scrolling Text not resetting
Additional minor fixes were done to improve the user experience.
Install
- Foobar2000 – Tested on v2.23.5 32-bit
- Beefweb – Tested on v0.10
Download the attached APK and install it on an Android phone (install from unknown sources must be enabled)
For full instructions, please visit the wiki: https://github.com/pchapman-uat/Foobar-Controler-Mobile/wiki/Setup
Full Changelog: v0.2.0...v0.3.0
(Alpha 1) Milestone 3 [v0.3.0-alpha.1]
Warning
This is an Alpha release for Assignment 15.1: FINAL PROJECT-: Design Prototype. This is NOT intended for use, and is considered unstable. Use at your own risk.
Description of release is not provided due to this being an Alpha release.
Additions
- Settings Descriptions: Added support for descriptions for settings
- Array Settings Option: Added support for an array input method for settings
- Custom File Extensions: Allow users to add custom file extensions for audio and playlist files
- Settings Button Option: Added support for a button in the settings
- Reset all Settings: Added a button to reset all settings to defaults
Changes
- Dynamic Browser Fetching: Change the browser to fetch only the current folder and first children, enabled by default.
Dev Changes
- ESLint Naming Conventions: Added the following naming conventions to ESLint:
react-naming-convention/context-namereact-naming-convention/filename: Must bePascalCasereact-naming-convention/filename-extensionreact-naming-convention/use-state@typescript-eslint/naming-convention:readonlymust beUPPERCASE
Naming Convention Changes can be seen here: c1b2d40
Install
- Foobar2000 – Tested on v2.23.5 32-bit
- Beefweb – Tested on v0.10
Download the attached APK and install on an android phone (install from unknown sources must be enabled)
For full instructions please visit the wiki: https://github.com/pchapman-uat/Foobar-Controler-Mobile/wiki/Setup
Full Changelog: v0.2.0...v0.3.0-alpha.1
Milestone 2 [v0.2.0]
This release works on improving the network connection and the settings for the applications, users will now have an easier time changing settings within the application. Other notable features include password support, Setup Screens, Custom Themes, and UI improvements.
On the backend we have also started using ESLint and Prettier, for code validation and formatting respectively, the GitHub now has a Wiki for users and actions to improve the workflow.
You can also see information regarding the application on Trello
Presentation
Security Report
Additions
- Setting Groups: Settings are generated automatically with groups, multiple datatypes are supported.
- Connection Settings Group: Added not with the initial Setting Groups, a Connection Group was added to manage network connection
- Port Configuration: Users can now change the port that the server is running on
- Password Support: Allow support for username and password when connected to the server
- Change Active Playlist: Add an option on the playlist view in the library to change the active playlist to the selected one.
- Media Controls 2: Add additional controls such as stop and previous.
- Scrolling Text: Allow text to scroll if it gets too long
- Setup Screens: Added screens (Intro, Foobar, Beeefweb, and Application), to help users set up the application.
- Custom Themes 🧪: Allow users to create their own theme. Fully functional but needs improvements.
- Landscape View🧪: Allow users to change the device into landscape mode. Some pages do not display properly.
- File Browser 🧪: Add group to the Library that allows users to view the file system and play songs using it. Feature works but needs better UI.
Changes
- Move IP Config to settings: Move the IP options to the new Setting Groups
- Backend Adjustments: Code was refactored using ESLint and Prettier
- General UI Improvements: Styles and UI was improved for a better UX
Dev Changes
- Prettier: Reformat code using Prettier
- ESLint: Validate code for non-critical errors such as
any variable types - CodeQL: Secondary Validator for security risks
- GitHub Shields: Add shields to the GitHub repository
- GitHub Wiki: Create a GitHub Wiki
- GitHub Actions: Added ESLint and CodeQL to GitHub actions
- MobSF: Mobile app security validator
- Website: Create a Website
Fixes
- Library Search Resets: Resolved an issue in which searching in the library it will reset and prevent you from typing.
- Add to playback queue: Resolve an issue with adding a song to the playback queue.
Removed
- Removed Remember IP Setting: This setting was no longer used and therefore removed.
Install
- Foobar2000 – Tested on v2.23.5 32-bit
- Beefweb – Tested on v0.10
Download the attached APK and install on an android phone (install from unknown sources must be enabled)
For full instructions please visit the wiki: https://github.com/pchapman-uat/Foobar-Controler-Mobile/wiki/Setup
Full Changelog: v0.1.0...v0.2.0
(Alpha 1) Milestone 2 [v0.2.0-alpha.1]
Warning
This is an Alpha release for Assignment 10.2: Prototyping. This is NOT intended for use, and is considered unstable. Use at your own risk.
Description of release is not provided due to this being an Alpha release.
Additions
- Port Configuration: Users can now change the port that the server is running on
- Setting Groups: Settings are generated automatically with groups, multiple datatypes are supported.
- Connection Settings Group: Added not with the initial Setting Groups, a Connection Group was added to manage network connection
- Scrolling Text: Allow text to scroll if it gets too long
- Password Support: Allow support for username and password when connected to the server
- Landscape View🧪: Allow users to change the device into landscape mode.. (Needs Testing)
- Change Active Playlist 🧪: Change the active playing playlist (Needs Testing)
- File Browser 🧪: Allow users to browse and interact with allowed directories (Needs Testing)
- Media Controls #2
⚠️ : Add additional controls such as stop. (Unfinished) - Song Rating
⚠️ : Display the rating of a song (Unfinished) - Custom Theme
⚠️ Allow users to create their own them (Unfinished)
Changes
- Move IP Config to settings: Move the IP options to the new Setting Groups
Fixes
- Add to playback queue 🧪: Resolve an issue with adding a song to the playback queue. (Needs Testing)
- Remember IP
⚠️ : Resolved an issue were the application will always remember the IP (Unfinished)
Dev Changes
- Prettier: Reformat code using Prettier
- ESLint: Validate code for non-critical errors such as
any varriable types - GitHub Shields: Add shields to the GithHub repository
- GitHub Wiki
⚠️ : Create a GitHub Wikipedia (Unfinished)
Install
Caution
Due to this project being in early testing, the following may not work
- Foobar2000 – Tested on v2.23.5 32-bit
- Beefweb – Tested on v0.10
Download the attached APK and install on an android phone (install from unknown sources must be enabled)
Full Setup instructions are provided on the GitHub Wiki: https://github.com/pchapman-uat/Foobar-Controler-Mobile/wiki/Setup
Full Changelog: v0.1.0...v0.2.0-alpha.1
Milestone 1 [0.1.0]
This is the first full beta release, this release will include a bundled APK that can be used for instillation on an android device.
Since release v0.0.1 the project has be converted to an expo dev session, the project has also been configured for building to an APK. There have been major UI improvements, and major backend reworks.
You can also see information regarding the application on Trello
Presentation
The presentation has been updated and now reflects the new version of the application.
Additions
- Status Bar : Status bar has been added and improved upon displaying the current song
- Library (Playlist, Artist, Album): Users can now view their library by groups
- Library Search: Users can search their library
- Play full playlist: With a long press you can play an entire playlist or library group
- Highlight Active Playlist in Library: The active playlist in the library will highlight automatically
- Light/Dark mode: Add themes, specifically Light Blue, and Dark Purple
- Light/Dark red mode: Added light red and dark red themes
- Remember IP: Added option to remember the IP between sessions
- Automatic Updating: Added a interval that will handle updating the page
- Automatic IP Finding: Added button to automatically find the IP of the server
- Rating Display: Display the rating of the song on the now playing screen
- Dynamic Background: Create a background based on the album art of a song
- Remove item from queue: Remove an item from the queue
- About Page: Added about page that displays basic information about the app
Changes
- Media Controls: Added UI elements and improved controls
- Settings Screen: Settings will now automatically generate
- Improved Screen Navigation: Main Pages (Connection, Library, Now Playing, and Queue) are now combined into a single screen with custom navigation between pages
Fixes
- Resolved memory leak with event listeners and intervals
Install
Caution
Due to this project being in early testing, the following may not work
- Foobar2000 – Tested on v2.23.5 32-bit
- Beefweb – Tested on v0.10
Download the attached APK and install on an android phone (install from unknown sources must be enabled)
Full Changelog: v0.0.1...v0.1.0
SIP311 Pitch #1 (Beta v0.0.1)
Important
There is no APK included and it must be built manually.
This is the first beta release for Pitch #1. This was presented on May 28 2025 and was approved by the Subject Matter Experts (SMEs)






