Giter Site home page Giter Site logo

Playlists about auxio HOT 54 CLOSED

oxygencobalt avatar oxygencobalt commented on May 23, 2024 23
Playlists

from auxio.

Comments (54)

OxygenCobalt avatar OxygenCobalt commented on May 23, 2024 17

Screenshot_20230320-170808_Auxio_Debug_1

from auxio.

OxygenCobalt avatar OxygenCobalt commented on May 23, 2024 15

This is my primary goal right now, not working on anything but an MVP of this. #335 is needed simply to make using playlists bearable, and then I can start work on it. No ETA since I'm a workaholic college student that is often too busy to add stuff to this app, but I can describe each phase of the addition:

  • Initial playlists addition w/o import or export, simply so I can release this faster.
  • M3U Import/Export
  • Liked Songs

from auxio.

OxygenCobalt avatar OxygenCobalt commented on May 23, 2024 11
output.mp4

from auxio.

OxygenCobalt avatar OxygenCobalt commented on May 23, 2024 11

All fundamental playlist editing is now done.

output.mp4

Remaining work is now polishing the existing implementation. Song editing in particular should look a lot better in final release.

from auxio.

OxygenCobalt avatar OxygenCobalt commented on May 23, 2024 11

Playlists are now done. Download Auxio_Canary.zip to access the functionality early and bugtest it. Note that it is a debug build, so it will be noticeably more sluggish than normal. This will not be present in release.

Note that the initial playlist release does not include the following:

  • Resorting, see #446
  • Import/Export, see #447
  • Liked songs, see #448

Additionally: Please refer to the bug report process if you find an issue. Simply saying there's a crash is not enough to help me fix issues.

A 3.1.0 release is expected soon as I can do some minor fixes/changes.

@foss- @ildar @KraXen72 @Donkey-Doug @amalka-ari @jethi @illdeletethis @madenerrgy @projjalm @PranavBhattarai

from auxio.

OxygenCobalt avatar OxygenCobalt commented on May 23, 2024 6

I am very sorry this feature is taking very long to implement. It's easily one of the most technically challenging systems I've worked on, and I don't want to deliver a half-baked implementation for the sake of implementing playlists quickly. I don't really have an ETA on when I'll implement it.

from auxio.

madenerrgy avatar madenerrgy commented on May 23, 2024 5

Screenshot_20230320-170808_Auxio_Debug_1

Wow, this looks amazing! We're really wait your update with playlist creation.

I would like to take this opportunity to thank you so much for your efforts on this app! It's made with taste and without unnecessary garbage (like other apps). Strength and health to you, dude!

from auxio.

amalka-ari avatar amalka-ari commented on May 23, 2024 4

This!
This is the only thing missing from your simple but awesome music player.
Implement Playlist feature and it will be the perfect music player.

Thanks. Keep up the good work.

from auxio.

OxygenCobalt avatar OxygenCobalt commented on May 23, 2024 4

I've only implemented playlists in the UI, everything else currently is "junk" data for testing. I will be busy for the next month and a half and will likely be unable to work further on playlists until then.

from auxio.

OxygenCobalt avatar OxygenCobalt commented on May 23, 2024 3

Okay, I had the realization that much of the technical complexity of playists comes from liked songs, and not from playlists themselves. This is because liked songs are sort of a hybrid between library attributes and playlists, and I need to find a way I can implement them without really bad efficiency issues. I think I'll try to deliver a MVP of playlists first and then push liked songs further into the future.

from auxio.

OxygenCobalt avatar OxygenCobalt commented on May 23, 2024 2

Glad you like the app @ludificorpayne, this feature is still a ways away though. I want to make the current music experience as good as possible before I go ahead with such a complex addition. Rushing a half-baked playlist feature just to be like Phonograph/Retro/Vanilla just isn't right.

from auxio.

OxygenCobalt avatar OxygenCobalt commented on May 23, 2024 2

Oh, okay. That makes more sense. That was already what I was planning from my playlist system.

from auxio.

OxygenCobalt avatar OxygenCobalt commented on May 23, 2024 2

I think the last blocker for this should be #202. Playlists must use Auxio IDs, but the ID system really needs to be reworked to become more formalized, backwards-compatible, and reliable. Adding support for MusicBrainz IDs in particular will allow users to avoid a behavior where changing a song's metadata causes Auxio to "forget" it, which would be terrible for playlist functionality.

from auxio.

OxygenCobalt avatar OxygenCobalt commented on May 23, 2024 2

#270 raised an interesting way of importing playlists by selecting a folder of music. I think I can do this without violating scoped storage, so why not.

from auxio.

OxygenCobalt avatar OxygenCobalt commented on May 23, 2024 2

All of that is planned before release @ildar. My hope is that I'll be able to trivially port the queue editing system to the playlist view and implement song deletion and re-ordering in parallel.

from auxio.

OxygenCobalt avatar OxygenCobalt commented on May 23, 2024 1

also please ability to import from m3u (and possibly a button to refresh the playlist if the m3u file changes)

This will be added, however the flow with importing m3u files yet is not certain.

from auxio.

kendfss avatar kendfss commented on May 23, 2024 1

filter-based addition system

In players like iTunes, and some versions of Foobar2000 the user can specify a database query whose results are saved as a playlist and updated automatically as the library evolves over time.
So you could have a playlist for "liked" or "liked and less than 6 months old" or "unliked and less than six months old" or "jazz or rock but nothing by Pink Floyd" etc.

In iTunes they were called "Smart Playlists".

from auxio.

kendfss avatar kendfss commented on May 23, 2024 1

The older version is somewhat less challenging to implement/optimize/maintain and often enough because you can create one playlist that is the union/intersection/disjunction of others.
old version

for comparison, the newer version:
new version

I don't remember using it too well but I think the core idea from the newer one is either that you can query query-results, create parallel queries for a single playlist, or both.
I've been sketching something out in go (I don't know Kotlin, yet). I'll translate if it's approved. I wrote it with respect to MySQL. Was there a settlement on a particular database technology since OP?

from auxio.

KraXen72 avatar KraXen72 commented on May 23, 2024 1

by me, take your time. I see there are a lot more technical things that have to be tackled for auxio to have a solid playback experience. I am ok to wait for this feature, because i know once it does come out it will already be solid and usable.
Thanks for your great work on auxio so far!

from auxio.

Offerel avatar Offerel commented on May 23, 2024 1

I have tested the debug apk as of today and could see a playlist. Where do the content of the playlist come from? I only ask, because I have exported a m3u file from within Strawberry on Linux with 600 songs and relative paths. Most other media players can use this playlist and I have all 600 songs in the specified sorting. I think Auxio don't use this as of now, since the current implementation use some internal playlist and I see only 43 files in the implementation.

If my wish will be supported in a later version, im fine with that. Also any other format with relative paths is welcome, as long as Strawberry can create it. I will keep an eye on this feature.

from auxio.

PranavBhattarai avatar PranavBhattarai commented on May 23, 2024 1

Came here to comment on playlist, which I saw missing. Hope in 2023 this feature comes into action.

Love the project. Thank you.

from auxio.

KraXen72 avatar KraXen72 commented on May 23, 2024

this would be great, +1.
also please ability to import from m3u (and possibly a button to refresh the playlist if the m3u file changes)

from auxio.

ludificorpayne avatar ludificorpayne commented on May 23, 2024

I didn't know where to post feedback but this app is fantastic, really the only reason I can't use it is because of playlists. once that's added this will be the best music app. looking forward to it!

from auxio.

kendfss avatar kendfss commented on May 23, 2024

Custom user-defined playlists

Could you elaborate on this?
Would creating playlists only allow for adding tracks one by one/by the id3 groups (album, artist, genre), or would we be able to define filters?

A built-in liked songs playlist

So we would be "liking" songs in the app, would it be implemented with a bool, or a star system?

from auxio.

OxygenCobalt avatar OxygenCobalt commented on May 23, 2024

Would creating playlists only allow for adding tracks one by one/by the id3 groups (album, artist, genre), or would we be able to define filters?

The former, not the latter. I have no idea how a filter-based addition system would work.

So we would be "liking" songs in the app, would it be implemented with a bool, or a star system?

More like a playlist of songs that you "liked" in-app.

from auxio.

KraXen72 avatar KraXen72 commented on May 23, 2024

this would be extremly cool but i imagine also technically really complex and pain to implement. i would be 100% for it tho.

from auxio.

OxygenCobalt avatar OxygenCobalt commented on May 23, 2024

Was there a settlement on a particular database technology since OP?

I was always going to go for SQLite, which is standard for android. While technically it's better to use Room, I've found that it increases compile times by ~3 times and has this weird issue where old database items are never removed, so I just use the more verbose method.

Thanks for the images by the way. Something like this would be an extremely far off feature however. I'd imagine that implementing the built-in Liked Songs playlist would allow me to at least have a framework for query-based playlists, however I feel like exposing it in the UI would be the largest problem, as it requires a ton of options and is probably really hard to cram intp a phone screen.

If I were to guess what my roadmap is for Auxio right now, it would be something like:

  1. Internal technical reworks and automatic re-scanning (The latter especially since I don't want to add new features with that assumption anymore)
  2. All the other backlogged features that are held up by 1 (ex. Artist Images)
  3. Normal playlists
  4. Weird end-game features like this or a new metadata engine

from auxio.

KraXen72 avatar KraXen72 commented on May 23, 2024

very nice! i'd like if playlists had in mind the m3u workflow (importing and refreshing from .m3u and .m3u8 files) from the start, rather than be an afterthought.
not saying you should add it as the first thing, but if you could just keep it in mind when making the playlist system so it is easily extended to support this functionality in the future, that would be really good!!
thanks in advance.

from auxio.

OxygenCobalt avatar OxygenCobalt commented on May 23, 2024

Yeah, M3U import and export will be implemented, but playlists themselves won't be backed by M3U instances. This is because google has deprecated the MediaStore column for M3U, so I really don't want to use it (It's also quite buggy AFAIK).

from auxio.

KraXen72 avatar KraXen72 commented on May 23, 2024

good good. well i didn't quite mean "backed up" as in constatnly synced to the m3u files, but if you could just remember where the m3u file was located in storage, and give the user an option to "refresh" the playlist by internally re-importing it.
this would be useful because when i sync up my music and playlists from my pc (playlists are generated there through my tagger app), normally i'd have to delete and re-import all the playlists manually. this would make the whole process significantly easier.

again, this is not a feature that needs to come from the start with playlists, just something to keep in mind so as to not be impossible to add once the whole system is implemented.

from auxio.

OxygenCobalt avatar OxygenCobalt commented on May 23, 2024

That requires the playlists database, which is deprecated. Besides, I really don't want to back playlists with someone as unstable and spec-dependent as a M3U file. An internal database with import and export is much easier to implement without android screeching at me.

from auxio.

KraXen72 avatar KraXen72 commented on May 23, 2024

how do you mean? can't you just make a button that does the filesystem call to read and parse the m3u file again, overwriting the current playlist? basically just same as the import but without the need of selecting the path (to save time & also because you already have the path from first import)

you do not have to sync up or do whatever with the playlist after, the whole point is so "refreshing" a playlists (or multiple) doesent take extremly long

from auxio.

jethi avatar jethi commented on May 23, 2024

What about using directories for playlists ? Where Auxio performs move operations on files into directories representing playlists. The order of playlist can be managed by tags saved in SQLite. I am worried that making playlists would lock them in Auxio. Directories with songs are very portable. I come from using Newpipe and find its queue and playlist very intuitive. Especially clicking on music notification directly opening the queue instead of app general page.

from auxio.

jethi avatar jethi commented on May 23, 2024

Now that I think about it.. using directories and moving files is an expensive operation + what if a song needs to be in 2 playlists. Then for one playlist a reference would have to be used.. That does not seem right.

Anyway, please add an option to export playlists so they can be shared with friends... (Provided they have the music files too) The tag/hash should be same considering files are identical.

from auxio.

OxygenCobalt avatar OxygenCobalt commented on May 23, 2024

Yeah, that's not practical at all. I have to remind people that for Auxio to work well on new devices, it is functionality limited to three types of storage:

  • Audio
  • Images
  • Videos

There used to be a Playlists API, but it has not worked well for years and it was recently deprecated. There is no way I could even walk the directory structure like that in the first place. The only reason I have things like Artist Images lined up is because I have the image database, in which I could parse the path structure in order to emulate directory walking.

M3U is the open playlist format, and Auxio will support importing and exporting these files. I don't believe in making Auxio a walled garden in any capacity.

from auxio.

Donkey-Doug avatar Donkey-Doug commented on May 23, 2024

VLC for android supports user defined playlists. It is open source and you might find some code useful.

from auxio.

illdeletethis avatar illdeletethis commented on May 23, 2024

Firstly, merry Christmas and thank you very much for your work!
And agreed, playlists would be great to have, miss them occasionally.
As someone who doesn"t really "like" stuff in my collection (i did already actively add it there after all), the split of mvp first, liked in the far future would work well

from auxio.

OxygenCobalt avatar OxygenCobalt commented on May 23, 2024

Thanks for the support @amalka-ari and @illdeletethis.

As for updates: I swear, every time I get close to playlists I find another thing I need to work on. This time around it's list management. More or less, the detail UI is nowhere near equipped to handle playlists without severe UI jank. I'll need to work on that a bunch before I can start on playlists.

from auxio.

Offerel avatar Offerel commented on May 23, 2024

Is there some sort of plan when we can expect or test the playlist features? Im completely fine when it's buggy, but using a m3u playlist with relative paths is a absolute must have for me.

from auxio.

KraXen72 avatar KraXen72 commented on May 23, 2024

atleast you can see how happy people are about this feature coming to the app 😁😁

from auxio.

Offerel avatar Offerel commented on May 23, 2024

Yes, its the only feature i really miss. Away from that, this is by far the best player, including commercial players.

from auxio.

projjalm avatar projjalm commented on May 23, 2024

So happy to see progress in this. I really can't express my respect to Alex for spending time on this ever missing feature besides every other thing in his life. Wishing great success to you, brother. ❤️

from auxio.

ildar avatar ildar commented on May 23, 2024

from auxio.

OxygenCobalt avatar OxygenCobalt commented on May 23, 2024

The latest CI build should have this functionality @ildar. It's just missing playlist editing, persistence, and has a ton of rough edges.

from auxio.

ildar avatar ildar commented on May 23, 2024

from auxio.

madenerrgy avatar madenerrgy commented on May 23, 2024

https://bin.kv2.dev/~6469b4bee599576ea02c75e3

Latest CI sometimes crashes when I'm adding track to the playlist.
Maybe this logs will help somehow.

But overall everything works great!

2_5427290571246939666.mp4

from auxio.

OxygenCobalt avatar OxygenCobalt commented on May 23, 2024

New APK, hopefully with the fixes for @madenerrgy's bug.

Auxio_Canary.zip

from auxio.

madenerrgy avatar madenerrgy commented on May 23, 2024

New APK, hopefully with the fixes for @madenerrgy's bug.

Auxio_Canary.zip

Oh, thank you so much pro!
This problem has indeed disappeared.

It only remains to work on the friezes when opening and animation ..

2_5427290571246940382.mp4

from auxio.

OxygenCobalt avatar OxygenCobalt commented on May 23, 2024

It only remains to work on the friezes when opening and animation ..

The former is because of the debug build slowing down the amount of layouts. I do agree more animation for playlist editing would be good, but I'm holding on that until I can nail a good framework for that (Eye candy is frustratingly buggy on android). Expect that in a 3.2.0 release, which I'm planning to have a bunch of mild UX improvements. @madenerrgy

from auxio.

madenerrgy avatar madenerrgy commented on May 23, 2024

Got it, thanks for your efforts :)

from auxio.

KraXen72 avatar KraXen72 commented on May 23, 2024

im missing the functionality to quickly add new songs from a newly created playlist. i understand the intended workflow is that you search for a song and add it from there, however, it's unintuitive to be left with a blank screen after creating a new playlist.

from auxio.

illdeletethis avatar illdeletethis commented on May 23, 2024

Found a weird quirk in the debug build, changing tab order changes the order of the tab symbols, but not the tabs themselves
Screenshot_20230522-121221_Auxio Debug

from auxio.

OxygenCobalt avatar OxygenCobalt commented on May 23, 2024

im missing the functionality to quickly add new songs from a newly created playlist. i understand the intended workflow is that you search for a song and add it from there, however, it's unintuitive to be left with a blank screen after creating a new playlist.

That's one of the features I'm leaving for another release, honestly @KraXen72. Far too easy to mess up.

Found a weird quirk in the debug build, changing tab order changes the order of the tab symbols, but not the tabs themselves

That should not be happening @illdeletethis, and I can't reproduce it in the release build. Does it persist after completely force stopping and starting the app?

from auxio.

illdeletethis avatar illdeletethis commented on May 23, 2024

yes, force stop fixed it 🙂
anyways, thank you very much for the playlist feature.
now just looking forward to reordering and queue to playlist button

from auxio.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.