A brand new take on a self-hosted music streaming platform.
- A universal app written in React Native (Web, iOS, Android)
- Gapless audio playback on all platforms
- A recommendation system powered by Essentia's ML models.
- On-demand, on-the-fly audio transcoding
- .NET 9
- Bun
- make
- ffmpeg
- libmpv
Install frontend dependencies.
$ git submodule update --init --recursive
$ cd src/coral-app
$ bun installYou will need to have a C++ toolchain setup to compile the inference program.
On Windows, you can install MSVC to do that.
On Linux, you should be fine with the build-essential package.
On macOS, you'll need brew installed.
$ cd src/Coral.Essentia.Cli
$ make install-deps
$ make configure
$ make build
$ cd ../Coral.Api
$ dotnet run --$ cd src/coral-app
$ bun run webIt is recommended to use Firefox as Chrome is much stricter with what codecs it supports when using MSE.
First, download libmpv for x86_64 and extract the files to src/coral-app/electron/native/libmpv/win
Then, in src/coral-app run bun run electron:dev and refresh the page with CTRL+SHIFT+R to kick off the web server.
Download XCode from the app store.
Run the following command:
$ sudo xcode-select -s /Applications/Xcode.app/Contents/Developer
$ sudo xcodebuild -license
$ cd src/coral-app
$ bunx expo run:iosOpen the ios directory in Xcode, look in the top bar where it says "iOS 18.2 Not installed" and click "Get".