DJ-friendly tempo & key sorting tracks for Goofy / Spotify.
Этот скрипт реализует FlowSort.sortBalancedWave — сортировку треков в личных плейлистах с учётом темпа, тональностей (Camelot key) и базовых DJ-сценариев плавного развития переходов по тональностям.
(функция сильно упрощает расстановку треков для плавных, практически бесшовных переходов между ними и дает возможность использования функции "создать микс" в автоматическом режиме с хорошим результатом)
Подходит для больших плейлистов (до 4000 треков) и используется в экосистеме Goofy / Google Apps Script для работы со Spotify.
Для работы скрипта требуется премиум-подписка Spotify, настроенный https://chimildic.github.io/goofy/#/install с приватными ключами Goofy https://chimildic.github.io/goofy/#/ (к слову огромная благодарность автору проекта Goofy, без него ничего этого не было бы)
Содержимое файла flowsort_sortBalancedWave.js нужно скопировать, сохранить в отдельный файл Apps Script и передвинуть его повыше, следующим сразу после library.gs
Вызывать функцию в скриптах нужно непосредственно перед формированием (созданием) финального плейлиста для переменной, содержащей треки финала (по принципу переменная "tracks = FlowSort.sortBalancedWave(tracks);"
На скриншоте ниже пример создания плейлиста с отсортированными любимыми треками.
П.С. Отсортированный плейлист рекомендую слушать с включенным crossfade = 10s ,в настройках Playback Spotify , либо использовать функцию Spotify - Mix (в зависимости от разножанровости плейлиста. Если плейлист очень разножанровый и треки сильно отличаются по bpm, то лучше использовать только crossfade)
25.01.2026 .Обновил. Переработал подход к сортировке треков, не имеющих в фичах тональность. А также добавил парочку дополнительных приемов в сортировке треков по тональностям и темпу.