Enhance Spotify with controls to save favourite snips, auto-skip tracks, and set global and custom speed. More to come!
Chorus - Spotify Enhancer Extension
** NEW FEATURES / DEMOS **
There a lot of features that are not documented below or in the pictures due to time constraints in keeping this page and the FireFox version updated with new images or listing new features on every release. Additionally, some features are not front and centre and are on different screens across Spotify. Therefore, from now on, the latest and greatest will be announced/demoed on https://github.com/cdrani/chorus/discussions/categories/show-and-tell or on twitter @repeatertax. Maybe some older features will also be presented for newer or unaware users.
** EXPERIMENTAL FEATURE **
Near-native blocked tracks from queue. Requires QUEUE Sidebar to remain open. With sidebar open, blocked tracks will be removed from play queue and synced with Spotify so track is not played either.
If Queue sidebar is closed, then default song-skip feature just mutes audio, and keeps skipping to next track until it comes to an unblocked track. I recommend just leaving the Queue sidebar open.
An upcoming release will allow for inserting an unblocked back to the queue if the track has not been passed in the queue list.
**************************************************************************************************
👋 Opening Remarks 👋
I hope you find the same joy in using this tool as I have building it and using it myself.
Please give it a rating and/or leave a review to increase discoverability. Additionally share with others who you think could enjoy it as well.
For issues, support, questions, feature suggestions, etc, please make use of https://docs.google.com/forms/d/e/1FAIpQLSefw8fcI-CrGflySuOE9MC9eRZDtzEQF99K0VqHKXeWHMHIWw/viewform. The source code is available at https://www.github.com/cdrani for review or if you want to contribute.
This is an OSS project, so it will always be free. Support of any kind is welcome - discovering bugs, feature suggestions, code contributions, etc. No monetary contributions required at all, but will leave a Kofi Page if you want to support this project's maintenance, bug fixes, and new features development. https://ko-fi.com/cdrani
This is a passion project that I use daily so I am always working on it - fixing bugs, adding new features, ideating, refactoring, etc. Please update often as I will release often, and at most times the listed features below will be behind. New features/releases will be announced here first: https://github.com/cdrani/chorus/discussions. Thanks!
🎉 Chorus Features 🎉
⭐ Save your favourite section of a Spotify track or podcast episode. That section then will the only part played for that track or episode. This can be used to play (or replay) a favourite chorus, sample, or a verse infinitely (if looped).
⭐ Custom Reverb effects. Notably, some selection of scaling reverb and impulse reverbs such as a kick drum, diffusor, filtered phone, and a muffler. Combine with different playback rates and pitch correction for entirely new listening sessions.
⭐ Set custom seek (fast-forward & rewind) values for short-form (songs) and long-form (podcasts, audiobooks).
⭐ Set custom global and per track playback speeds for audio. Enjoy listening to an audiobook or podcast at 2x speed, or a song at .75x speed with low-pitched vocals.
⭐ Block a song from being played forever. In the artist, album, playlists, or queue pages, clicking the block icon will toggle the track's blocked/unblocked state. In the blocked state, that song will always be skipped from being played in an album, queue, and/or playlist. Blocking a song takes precedence over a saved snip.
⭐ Create Artist Discography playlist based on selected artist's albums and singles.
⭐ Toggling the entire extension on/off by clicking the extension icon in the toolbar. Toggle the extension off whenever you want to listen to Spotify without your snips, blocked songs, or custom playback speeds and pitch. Toggle it back on to enjoy the features. It would be a good idea to have the extension pinned for quick access and use of this feature.
⭐ Generate a shareable link to your favourite snip for easy sharing. Currently only copied to clipboard, but upcoming features will allow social media sharing such as on twitter, IG, etc. Note that link will only work if opening on desktop browser and recipient has the extension installed.
⭐ Keyboard Shortcuts. The core functionality of the extension can be triggered via keypress. Additional media commands such as play/pause, shuffle, mute/unmute, etc are also available. Reference https://www.makeuseof.com/open-browser-extensions-keyboard-shortcut/ for your specific browser on how to setup the shortcuts.
Read more
There a lot of features that are not documented below or in the pictures due to time constraints in keeping this page and the FireFox version updated with new images or listing new features on every release. Additionally, some features are not front and centre and are on different screens across Spotify. Therefore, from now on, the latest and greatest will be announced/demoed on https://github.com/cdrani/chorus/discussions/categories/show-and-tell or on twitter @repeatertax. Maybe some older features will also be presented for newer or unaware users.
** EXPERIMENTAL FEATURE **
Near-native blocked tracks from queue. Requires QUEUE Sidebar to remain open. With sidebar open, blocked tracks will be removed from play queue and synced with Spotify so track is not played either.
If Queue sidebar is closed, then default song-skip feature just mutes audio, and keeps skipping to next track until it comes to an unblocked track. I recommend just leaving the Queue sidebar open.
An upcoming release will allow for inserting an unblocked back to the queue if the track has not been passed in the queue list.
**************************************************************************************************
👋 Opening Remarks 👋
I hope you find the same joy in using this tool as I have building it and using it myself.
Please give it a rating and/or leave a review to increase discoverability. Additionally share with others who you think could enjoy it as well.
For issues, support, questions, feature suggestions, etc, please make use of https://docs.google.com/forms/d/e/1FAIpQLSefw8fcI-CrGflySuOE9MC9eRZDtzEQF99K0VqHKXeWHMHIWw/viewform. The source code is available at https://www.github.com/cdrani for review or if you want to contribute.
This is an OSS project, so it will always be free. Support of any kind is welcome - discovering bugs, feature suggestions, code contributions, etc. No monetary contributions required at all, but will leave a Kofi Page if you want to support this project's maintenance, bug fixes, and new features development. https://ko-fi.com/cdrani
This is a passion project that I use daily so I am always working on it - fixing bugs, adding new features, ideating, refactoring, etc. Please update often as I will release often, and at most times the listed features below will be behind. New features/releases will be announced here first: https://github.com/cdrani/chorus/discussions. Thanks!
🎉 Chorus Features 🎉
⭐ Save your favourite section of a Spotify track or podcast episode. That section then will the only part played for that track or episode. This can be used to play (or replay) a favourite chorus, sample, or a verse infinitely (if looped).
⭐ Custom Reverb effects. Notably, some selection of scaling reverb and impulse reverbs such as a kick drum, diffusor, filtered phone, and a muffler. Combine with different playback rates and pitch correction for entirely new listening sessions.
⭐ Set custom seek (fast-forward & rewind) values for short-form (songs) and long-form (podcasts, audiobooks).
⭐ Set custom global and per track playback speeds for audio. Enjoy listening to an audiobook or podcast at 2x speed, or a song at .75x speed with low-pitched vocals.
⭐ Block a song from being played forever. In the artist, album, playlists, or queue pages, clicking the block icon will toggle the track's blocked/unblocked state. In the blocked state, that song will always be skipped from being played in an album, queue, and/or playlist. Blocking a song takes precedence over a saved snip.
⭐ Create Artist Discography playlist based on selected artist's albums and singles.
⭐ Toggling the entire extension on/off by clicking the extension icon in the toolbar. Toggle the extension off whenever you want to listen to Spotify without your snips, blocked songs, or custom playback speeds and pitch. Toggle it back on to enjoy the features. It would be a good idea to have the extension pinned for quick access and use of this feature.
⭐ Generate a shareable link to your favourite snip for easy sharing. Currently only copied to clipboard, but upcoming features will allow social media sharing such as on twitter, IG, etc. Note that link will only work if opening on desktop browser and recipient has the extension installed.
⭐ Keyboard Shortcuts. The core functionality of the extension can be triggered via keypress. Additional media commands such as play/pause, shuffle, mute/unmute, etc are also available. Reference https://www.makeuseof.com/open-browser-extensions-keyboard-shortcut/ for your specific browser on how to setup the shortcuts.
Source Manifest.json
{"update_url": "https://clients2.google.com/service/update2/crx", "manifest_version": 3, "name": "Chorus - Spotify Enhancer", "version": "1.24.1", "description": "Enhance Spotify with controls to save favourite snips, auto-skip tracks, and set global and custom speed. More to come!", "short_name": "Chorus", "author": "cdrani", "action": { "default_icon": { "32": "icons/logo.png" }, "default_popup": "popup/index.html" }, "icons": { "16": "icons/icon16.png", "24": "icons/icon24.png", "48": "icons/icon48.png", "64": "icons/icon64.png", "128": "icons/icon128.png" }, "content_scripts": [ { "run_at": "document_idle", "js": [ "import-content.js" ], "css": [ "styles.css" ], "matches": [ "*://open.spotify.com/*" ] } ], "web_accessible_resources": [ { "matches": [ "*://open.spotify.com/*" ], "resources": [ "styles.css", "utils/*.js", "models/*.js", "events/*.js", "components/*.js", "observers/*.js", "stores/*.js", "actions/*.js", "data/*.js", "services/*.js", "lib/**/*.js", "lib/sounds/*.wav" ] }, { "resources": [ "chunks/*-*.js", "content.js" ], "matches": [ "*://open.spotify.com/*", "*://*.spotify.com/*" ] } ], "commands": { "on/off": { "description": "Toggle Extension On/Off" }, "loop": { "description": "Loop/UnLoop Snip/Track" }, "next": { "description": "Next Track" }, "play/pause": { "description": "Play/Pause" }, "repeat": { "description": "Repeat Track" }, "shuffle": { "description": "Shuffle Tracks" }, "previous": { "description": "Previous Track" }, "settings": { "description": "Display Controls" }, "mute/unmute": { "description": "Mute/Unmute Track" }, "seek-fastforward": { "description": "Seek Track Forwards" }, "save/unsave": { "description": "Save/Unsave Track" }, "seek-rewind": { "description": "Seek Track Backwards" }, "block-track": { "description": "Add track to block list" } }, "permissions": [ "tabs", "storage", "activeTab", "scripting", "webRequest", "unlimitedStorage" ], "host_permissions": [ "*://*.spotify.com/*" ], "background": { "type": "module", "service_worker": "background.js" }}
Read more