ideas
ideas copied to clipboard
An extendable, maintainable, cross-platform music player
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
- [ ] Beginner - This project requires no or little prior knowledge of the technolog(y|ies) specified to contribute to the project
- [X] Intermediate - The user should have some prior knowledge of the technolog(y|ies) to the point where they know how to use it, but not necessarily all the nooks and crannies of the technology
- [ ] Advanced - The project requires the user to have a good understanding of all components of the project to contribute
Required time (ETA)
- [ ] Little work - A couple of days
- [ ] Medium work - A week or two
- [X] Much work - The project will take more than a couple of weeks and serious planning is required
VLC? It allows scripts in lua.
@KOLANICH That would also be a good base.
Doesn't vlc does this?
@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.
ooh, I guess one could write a plugin for one or all those features, it could take some time
You could use IINA
I agree that this is something much needed
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.
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.
@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.
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.
Kotlin mutliplatform, Flutter, React Native, etc
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.
I'm pretty sure that at least Flutter allows for a very unified codebase
Not as unified as NodeJS for Win/Mac/Linux for instance.