open-source-ideas / ideas

💡 Looking for inspiration for your next open source project? Or perhaps you've got a brilliant idea you can't wait to share with others? Open Source Ideas is a community built specifically for this! 👋
6.55k stars 221 forks source link

An extendable, maintainable, cross-platform music player #132

Open Thrilleratplay opened 5 years ago

Thrilleratplay commented 5 years ago

Project description

Initially, this idea was going to be "resurrecting Tomahawk-player". It is a elegant, feature rich cross platform open source music player that has been abandoned. It had plugins to allow streaming services like Spotify. With the Hatchet service, which was planned on being open source, one could have their keep their playlist synced via a cloud service.

I prefer keeping my music local instead of constantly streaming and in theory, it would have allowed me to use one application whether I was on a Linux desktop, Android phone or Macbook.

Relevant Technology

I think one of the main pain points for the project was it be developed natively for each platform. I think this could eliminated with responsive design, HTML5 audio tags and native javascript platforms Electron and react-native.

A good starting point may be Cosmic

Complexity and required time

Complexity

Required time (ETA)

KOLANICH commented 5 years ago

VLC? It allows scripts in lua.

Thrilleratplay commented 5 years ago

@KOLANICH That would also be a good base.

Kreijstal commented 5 years ago

Doesn't vlc does this?

Thrilleratplay commented 5 years ago

@Kreijstal No. Skins do not provide the same robustness for music. It does not query MusicBrainz for album covers or artist, nor do skins seem to be able to give views on artist or albums. Tomahawk, Banshee, Rhythombox and few others provide rich experiences for those who have large music libraries but are mostly geared toward desktop end users and are written on frameworks that can limit portability. VLC is a general media player that cannot do this on its own.

Kreijstal commented 5 years ago

ooh, I guess one could write a plugin for one or all those features, it could take some time

BenjaminHoegh commented 5 years ago

You could use IINA

forresthopkinsa commented 4 years ago

I agree that this is something much needed

aaronleopold commented 3 years ago

I've been working on an electron app that's somewhat similar lately, much smaller scale than what was outlined above though. Mainly, it just streams audio from YT playlists, and I'm working on adding both Spotify and Soundcloud connections.

KaKi87 commented 3 years ago

Since you're only talking about local music, what would be the real advantage of using the same software in all platforms ? They all have the same features anyway.

Thrilleratplay commented 3 years ago

@KaKi87 That is not necessarily the case as it could have plugins for streaming services. However, I will try to explain the use case of when I opened the topic.

I have a bunch of music on a my Linux laptop at home. Here, I use beets to fix or alter tags, embed album art, etc. I used my android phone to play music using Vanilla Music because it had the capability to play when plugging into my aux jack and pause when unplugged. At work, I have had a company provided Macbook but worked in a building with spotty wifi. It would be nice to have a single application that worked consistently across each of these devices and be able to create and share playlist between them with ease as I do not always listen to the same music at home, while driving or at work. This seems like it would be rather simple but finding something open source that works across the three OSes has been difficult. I liked the look and feel of Tomahawk and was disappointed when it largely abandoned. I suggested HTML5 because the "look and feel" will different from person to person and HTML5 should allow for easier theming.

KaKi87 commented 3 years ago

Okay, I understand. However, I never heard about a platform that would allow us to use the same code for a desktop and a mobile app.

forresthopkinsa commented 3 years ago

Kotlin mutliplatform, Flutter, React Native, etc

KaKi87 commented 3 years ago

Using these platforms, you can do multiplatform desktop (Win + Mac + Linux) OR multiplatform mobile (Android + iOS) but not both at the same time with the very same source code.

forresthopkinsa commented 3 years ago

I'm pretty sure that at least Flutter allows for a very unified codebase

KaKi87 commented 3 years ago

Not as unified as NodeJS for Win/Mac/Linux for instance.