Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Embark actions wishlist #4

Open
26 of 28 tasks
Hugo-Heagren opened this issue Dec 22, 2021 · 3 comments
Open
26 of 28 tasks

Embark actions wishlist #4

Hugo-Heagren opened this issue Dec 22, 2021 · 3 comments
Labels
enhancement New feature or request

Comments

@Hugo-Heagren
Copy link
Owner

Hugo-Heagren commented Dec 22, 2021

Embark integration is happening here. Embark integration has been merged (the README lies!). This is (still) a tracker issue for the actions on different kinds of targets.

Wishlist of ideas for embark actions on different kinds of candidates:

(once I've got through these and the package is a bit more stable, I'll close the issue and new isses can be raised for any individual suggested additions)

Tracks (always)

  • Add to playlist (select a playlist from all the currently open ones. This should allow for accepting a non-matching input and thus creating a new playlist, to which the track is then added). d17b4e7
  • goto album (select from the tracks in given track's album) 6fd2dfe
  • add album to current playlist 30c68ac
  • goto artist (select from the tracks in given track's artist) 00350ef
  • add artist to current playlist 30c68ac
  • goto genre 23d769c
  • add genre 6894c3b

Tracks (when on a playlist)

  • Remove from playlist 125c6cf
  • Move up/down in playlist
  • Make next/enqueue (make the playlist current, so that it plays next, and ensure that the selected track will be the first to play). (It might be a good idea to drop a marker in the emms playlist buffer whenever I do this, and have repeated invocations just deposit the track at the marker. That way if I add A then B, I get current track, A, B, rather than current track, B, A (which would happen if B was just pushed to directly after the current track.). Or maybe enqueue and make-next should just be two separate commands?)

(both of the above are good candidates for having quick keys bound to them (can't find the link right now, but I'm pretty sure there's a way to do this))

Artists

  • Choose from among artist's tracks 3a04f56
    • Include albums as additional source in viewing artist (so use consult--multi) 88c64fa
  • choose a playlist and add artist's tracks to it fd44afb

Albums

  • Choose from among album's tracks 5d73e9a
  • choose a playlist and add album to it b9b2b61
  • goto artist 6f77630
  • add artist to current playlist
  • goto genre 7bae277
  • add genre d1798ee

Playlists

  • save playlist to file
  • insert playlist into (other) playlist buffer
  • Shuffle playlist
  • Kill/remove playlist bd95e6b
  • Clear tracks from playlist
  • rename playlist buffer bd95e6b
  • Make current (so that the next song is drawn from the selected playlist, but the current one finished first) f929cc5

Streams

  • Choose playlist and add to it a4b6396

Genres

  • goto genre (similar in spirit to "goto/album" on an album -- list all the tracks in the genre. Perhaps albums and artists too?) 1ee5087
@Hugo-Heagren
Copy link
Owner Author

Hugo-Heagren commented Dec 25, 2021

There is currently no way to go from a song to adding that song's whole album (other than by using embark-act-all?). This is a pretty common sort of thing to do. What's the best way to achieve this?

If we add a separate command for adding (vs going to) a candidate's album, artist, etc. we will run out of keys prety quickly (especially if we want the keys to have any semblance of 'making sense' mnemonically). Perhaps this could be combatted with nested keymaps? (e.g. a keymap on g for goto, which has b for album, a for artist, etc. then those keys (a, b, etc.) could be reused in a 'add' keymap on a at the same level as g. This might help?

(It would also take quite a lot of work, but looking forward from now, that might be worth it at this early stage...)

@Hugo-Heagren Hugo-Heagren pinned this issue Dec 25, 2021
@Hugo-Heagren
Copy link
Owner Author

Perhaps this could be combatted with nested keymaps? (e.g. a keymap on g for goto, which has b for album, a for artist, etc. then those keys (a, b, etc.)

Have decided to implement this, beginning with b2a9d6a.

@Hugo-Heagren Hugo-Heagren added the enhancement New feature or request label Mar 29, 2022
@Hugo-Heagren
Copy link
Owner Author

  • Move up/down in playlist
  • Make next/enqueue (make the playlist current, so that it plays
    next, and ensure that the selected track will be the first to
    play)

I think the best way to do these both is to have a function like consult-emms-embark--move-track, which takes either an integer or a function. If the arg is an integer, move the track to that index (line number in the buffer). If it's a function, pass the track's current index to the function, and move it to the index that the function returns.

To accommodate moving to an index relative to the current track (i.e. "make next"), it would have to be possible to access the index of the current track in the function. Is this possible?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant