Skip to content

tgambet/musicalypse

Repository files navigation

Musicalypse

Musicalypse is a modern audio player built with web technologies. It is available as an online or native version on main desktop platforms and provides a backend streaming server.

Developed in Typescript and Scala using Angular and akka.

Provided as a seemingly native application using electron.

Find out more on the official website.

GitHub All Releases

Features

  • Supports mp3, ogg, flac and wav
  • Streaming server for your local network or beyond
  • Accessible by computer, tablets, or phones
  • Lyrics
  • Playlists
  • Favorites and recent tracks
  • Multiple artists/albums selection
  • Themes

Musicalypse_screenshot

Build

Dependencies

To build both the frontend and backend of Musicalypse you will need:

Run

To run Musicalypse from source use the following commands:

For the server

Run npm run web:run and connect to http://localhost:8080.

You can then serve Musicalypse behind a regular Web server (e.g. apache or nginx) and add authentication and SSL (Help wanted to document how to do that).

For the desktop

Run npm run electron:run and Musicalypse will launch inside electron.

Develop

Frontend development

Run npm run web:serve and connect to http://localhost:4200.

You get hot reloading of the application on file modification.

If you work on electron-specific frontend features then run npm run electron:serve.

Backend development

In two consoles run:

  • sbt run
  • npm run ng:serve

And connect to http://localhost:4200.

Note: You have to manually close the server by pressing Enter and restart it whenever you change a source file (help wanted to get hot reloading with akka-http).

Electron development

To develop the electron integration run npm run electron:build once to build dependencies and then run npm run electron:run:dev every time you change an electron source file (in the electron/ folder).

TODO: improve workflow if possible.

Stage

For the server

  • Expanded: npm run web:stage
  • Zip: npm run web:stage:zip
  • Tar: npm run web:stage:tar (linux only)

For the desktop

Musicalypse is packaged with a JRE (Java Runtime Environment) so you need a copy of your JRE in your target folder.

You can get it easily by running npm run electron:jre and entering the path to your JRE.

Linux

npm run electron:stage:linux

Note: You should run this command on Linux only.

Windows

npm run electron:stage:windows

Note: You should run this command on Windows only.

Contributing

Please feel free to open tickets to report bugs, suggest new features, or request help.

If you don't have a github account you can do the same by sending an email to [email protected].

Even if you are not a developer don't hesitate to let us know what you like and what you dislike in Musicalypse, and how you think we can improve it.

Privacy Policy

Musicalypse does not collect any personal information.

For more information, please see PRIVACY_POLICY.

License

Licensed under the MIT License.

Copyright © Thomas Gambet

For more information, please see LICENSE.