Sonorize is a modern, customizable desktop music player built with .NET 10 and Blazor Hybrid (Photino). It is designed to provide a clean, web-based interface for your local music library while offering native desktop performance and advanced audio controls.
⚠️ Status: ExperimentalThis project is in early development. It has currently only been tested on Windows. You may encounter bugs or incomplete features.
- Local Library: Scans folders to organize tracks by Artist, Album, and Duration.
- Audio Engine: Powered by BASS. Includes a 10-band Equalizer, plus Tempo (Speed) and Pitch controls.
- Customization: Robust theming engine. Change colors, layouts, or inject your own CSS.
- Focus Mode: A minimalist, distraction-free view for the currently playing track.
- Metadata Editor: Edit tags (Title, Artist, Album, etc.) directly within the app.
- Last.fm: Built-in real-time scrobbling.
- Drag & Drop: Drag files directly onto the window to play them instantly.
- .NET 10
- Photino.Blazor (Lightweight cross-platform desktop wrapper)
- ManagedBass (C# wrapper for the Un4seen BASS audio library)
- Inflatable.Lastfm (Scrobbling API)
- Install the .NET 10 SDK.
git clone https://github.com/yourusername/sonorize.git
cd sonorizeSonorize requires bass.dll and bass_fx.dll.
- The application includes logic to check for these files. If they are missing at runtime, the app will show a popup with download links.
- For development, ensure these DLLs are present in your output directory (e.g., next to
Sonorize.exe).
The source code does not include API keys. To enable Last.fm features when building from source:
- Navigate to
Sonorize.Core/Configuration/. - Create a new file named
Secrets.Private.cs. - Paste the following code, replacing the placeholders with your own Last.fm API credentials:
namespace Sonorize.Core.Configuration;
public static partial class Secrets
{
static partial void InjectLastFmKeys(ref string apiKey, ref string apiSecret)
{
apiKey = "YOUR_API_KEY";
apiSecret = "YOUR_SHARED_SECRET";
}
}If you skip this step, the app will run normally, but Scrobbling will be disabled.
dotnet run --project Sonorize.Photino.BlazorContributions are very welcome!
Since this project is experimental, bug reports and feature suggestions are highly appreciated. If you attempt to run this on macOS or Linux, please share your experience in the issues tab to help us improve cross-platform support.
The source code for Sonorize is licensed under the MIT License.
Important Notes Regarding Third-Party Dependencies:
-
BASS Audio Library
-
This project relies on the BASS audio library (Un4seen Developments) for playback.
-
BASS is free for non-commercial use.
-
Commercial use requires obtaining a separate license from Un4seen Developments.
-
For the most current and complete licensing terms, please refer to the official BASS website.
-
-
SixLabors.ImageSharp
-
This project uses ImageSharp for album art processing.
-
ImageSharp is licensed under the Six Labors Split License, which provides Apache 2.0 terms for open-source use and commercial licensing options for certain proprietary or high-revenue scenarios.
-
ImageSharp is free for use in this open-source project, but commercial forks—especially those with annual gross revenue exceeding $1M USD—may require a commercial license.
-
For the most current and complete licensing terms, please refer to the official Six Labors licensing documentation.
-
Disclaimer:
Sonorize includes third-party libraries that are licensed separately by their respective authors.
The Sonorize project and its contributors do not own these libraries and cannot grant or validate licenses for them.
Users are responsible for ensuring compliance with all third-party licensing requirements when using, modifying, or distributing this software.
