Releases: toothbrush/Spotiqueue
v2.9.0
v2.8.0 Dependency update to fix Spotify API change
Mainly this is a small dependency updates release – we had to pin SpotifyAPI to Peter-Schorn/SpotifyAPI@e814a98 (unreleased) because we were bumping into Peter-Schorn/SpotifyAPI#59. Hopefully at some point we can go back to tracking released tags as usual.
Also spruced up build & release tooling a little. Happy listening!
Full Changelog: v2.7.1...v2.8.0
Restores previous track & playback position
As requested in #4, we now restore the previous session's current track & playback position.
If you prefer the old behaviour (that is, no current track when opening Spotiqueue), simply add the following snippet to your ~/.config/spotiqueue/init.scm
configuration file:
(if (defined? 'player:set-restore-playback)
(player:set-restore-playback #f))
v2.7
Main changes:
- Exception handling: making a mistake in your Guile code won't terminate the entire player! You'll just get an alert popup. This makes developing and reloading your code interactively (e.g., in Emacs with Geiser connected to Spotiqueue) much more convenient.
queue:set-tracks
now supports both<track>
records as well as strings with Spotify URIs likespotify:track:f00bar
.search:get-selection
exposes search selection to Guile.queue:insert-tracks
allows one to insert new queued tracks at any position. Useful if you want a custom top-enqueue function that takes into account the currently-playing album!paul:enqueue-after-current-album
demonstrates a smarter top-enqueue.- GUI: you can copy from the track/album/title display labels.
Changelog highlights:
94ad77a * paul-config.scm(paul:enqueue-after-current-album): Smarter top-enqueue.
c4969a0 * Spotiqueue/GuileHelpers.m(queue:insert-tracks): Expose new procedure.
ed1a379 * Instead of append, let's support insert(at:) for queue.
5003f4b * RBQueueTableView.swift(paste): Deal gracefully with bad input.
a93387b * GuileHelpers.m(search_get_selection): Expose search selection to Guile.
4f98964 * Introduce record, plus some plumbing.
0b18346 * GuileHelpers.m(get_tracks_from): Slightly more general queue_get_tracks.
1f0aad9 * base.scm(flatten-track): Rename procedure.
934f7f7 * paul-config.scm: Find hs
binary in M1 Mac Homebrew location.
48fce70 * records.scm: Just use module-export-all!
, more concise.
85d9f3a * (spotiqueue base): Rename from (spotiqueue init).
7284a8d * init.scm: Use simpler re-export logic.
6134e92 * init.scm(re-export-public-interface): Syntax to re-export all defines.
7ddbed7 * (spotiqueue functions): Renamed from internal
.
ef93861 * RBGuileBridge.swift(guile_handle_key): Remove scm_eval
.
ceca189 * init.scm(define-key): Procedures instead of symbols in keymaps.
a4bd3af * paul-config.scm: Demonstrate config as standalone module.
ddebf44 * paul-config.scm: Fixup forgotten reset-hook!
.
a4a3597 * Ensure we always do module-name-qualified lookups.
7907742 * RBGuileBridge.swift(hook_with_track): Remove and inline boring admin.
db4a5f9 * init.scm(define-key): Ensure user passed <kbd>
and hash-table.
be46b70 * keybindings.scm(kbd?): Predicate to check for <kbd>
structs.
0e50346 * RBGuileBridge.swift(call_hook): Consolidate hook_0, hook_1; catch exceptions.
311b78e * RBGuileBridge.swift(load_user_initscm_if_present): Use "safe" primitive-load
.
970504b * RBGuileBridge.swift(guile_handle_key): Only output key name in DEBUG.
5091d87 * RBGuileBridge.swift(guile_handle_key): Use exception handler for keybindings.
d636b00 * RBGuileBridge.swift(track_to_scm_record): Comment.
7717782 * exceptions.scm: New module with some "safe" procedure wrappers.
67f7c58 * GuileHelpers.m(player:alert): Procedure to show NSAlert from Guile.
ea15ad0 * GuileHelpers.m: Alphabetise scm defines.
f22be39 * GuileHelpers.m(queue:set-tracks): Rename to queue:_set-tracks, introduce helper.
b03a2e6 * Make album/track labels selectable
.
Friendlier output when login fails
Don't crash if login fails. Instead, tell the user which common issue occurred:
- Incorrect username/password
- User hasn't got Premium account
Universal binary for Apple M1. Also, shuffle 😬
What's Changed
- Universal binary! Should work on old and new Macs!
- Get/set queue from Guile land, in #5
Ctrl-Alt-s
to shuffle the current queue! wink wink
Full Changelog: v2.4.2...v2.5.1
Guile bugfix, auto-advance toggle
Finally a working release with Guile included. 🎉
- Auto-advance toggle! You can tell Spotiqueue to stop-after-current by clicking the auto-advance toggle. Also available as Guile binding.
- Bug fixed: bundle Guile stdlib. See also #2
Introducing Guile for Spotiqueue
⚠ This release is broken for some. Use more recent release.
Have you ever thought it'd be rad to add features to Spotiqueue using everyone's favourite language? Wait no more, with Spotiqueue's Guile integration!
Changes in this version (v2.4):
- Basic Guile support! Pause, next, get current song, as well as the ability to bind keys to arbitrary Scheme code.
- Create playlists from search results or current queue.
- Delete playlists from user library.
/
filter is a bit smarter regarding your selection in search results. For example, narrow results with / then Esc leaves the filtered result selected.- Toggle button to disable auto-advancing on end-of-track event. Useful for "stop after currently-playing track".
?
will surface the album of the currently-playing track, and highlight the current track.
v2.3.1: Update "Search Results" title _before_ kicking off search.
Some smallish updates:
- Ability to copy album link
C-S-c
, as well as track linkC-c
(as before)! ?
finds currently-playing album- Friendlier
open.spotify.com
link when copying - Now
x
also deletes queue items - Added
C-{b,f,u,d}
Vim-like paging keys
v2.3.0
Yay, more updates
- Local filtering! 🎉 Press
/
to try. Supports regex! - Persists queue between sessions.
Esc
cancels running search. Useful if you accidentally ask for many tracks.