LINUX.ORG.RU
решено ФорумTalks

Аудиоплеер с нормальным shuffle

 , , ,


0

1

На протяжении нескольких лет я использую в качестве аудиоплеера на десктопе Deadbeef, но в последнее время он начинает меня раздражать, потому что у него нет нормального режима проигрывания случайных треков (shuffle). Например, как это устроено в AIMP для Android, которым я пользуюсь на телефоне или в Spotify или Яндекс Музыке. Из некоего плейлиста в режиме shuffle проигрываются случайным образом треки, но они не повторяются в рамках текущей сессии. Когда из плейлиста проиграются все треки, то воспроизведение останавливаются. Я считаю это наиболее логичным поведением. В Deadbeef же режим shuffle - полный рандом, он не запоминает, какие треки были проиграны, повторяет ранее прослушанные треки и таким образом, чем больше треков я прослушаю в плейлисте, тем больше мне приходится насиловать кнопку «следующий трек». Подобное поведение очень раздражает. Можете посоветовать плеер, у которого режим shuffle реализован по вышеописанному поведению?
Также мне бы хотелось, чтобы у этого плеера была возможность проиграть несколько заданных мною треков в нужном порядке, а затем уже в режиме shuffle. В Deadbeef такая возможность есть (play next, play later), а вот в Audacious - нет, поэтому пришлось от него отказаться, хотя сам плеер в целом мне понравился.
Ну еще плеер должен корректно обрабатывать формат flac+cue, у меня много музыки в lossless-формате.

★★★★★

Последнее исправление: Rinaldus (всего исправлений: 1)

Можете посоветовать плеер, у которого режим shuffle реализован по вышеописанному поведению?

Да это ж каждый. Нормальный рандом есть в <10% плееров, неотключаемый небось вообще только в deadbeef и был, если и был.

t184256 ★★★★★
()
Ответ на: комментарий от t184256

Я имею в виду, плеер с «умным» рандомом, как AIMP, Spotify или Яндекс Музыка.

Rinaldus ★★★★★
() автор топика
Ответ на: комментарий от Tigger

Зачем ему приходить, если тут критика его проекта? Я не хочу, чтобы он на меня обижался, все же я к Deadbeef и к нему самому отношусь хорошо.

Rinaldus ★★★★★
() автор топика
Последнее исправление: Rinaldus (всего исправлений: 1)
Ответ на: комментарий от vasya_pupkin

Да, он подойдет, я протестировал. К тому же, он очень похож визуально на Deadbeef. Спасибо!

Rinaldus ★★★★★
() автор топика

в Audacious - нет

Там есть очередь, выполняет ту же функцию.

e1nste1n ★★★★★
()
Ответ на: комментарий от Rinaldus

Товарищ, _нормальными авторами конструктивная критика _всегда воспринимается положительно. Может быть, они и не согласны, и/или не станут ничего делать, но обижаться точно не будут. Рендом должен работать именно так, как ты описал, только насчёт остановки в конце - спорно. Это опция обычно. Если плеер работает не так, это недостаточно зрелый продукт.

lenin386 ★★★★
()
Последнее исправление: lenin386 (всего исправлений: 1)

Clementine играет именно так, как вы хотите, т.е. плейлист остаётся плейлистом, но играется в случайном порядке. Тем не менее, проиграется ровно столько треков, сколько есть в плейлисте, без повторов.

ValdikSS ★★★★★
()
Ответ на: комментарий от lenin386

только вы тут сретесь не на рандом.

а именно на шуфле (который есть перестановка списка).

даже настоящий рандом ничего никому не должен и значения могут повторяться. (а уж процедурно генерированный псевдорандом, темболее)

n_play
()
Ответ на: комментарий от lenin386

Это вряд ли баг в Deadbeef, скорее фича. Просто захотелось человеку сделать так, чтобы в shuffle был чистый рандом, вне зависимости от уже проигранного. Его право, это ведь вкусовщина. Хотя можно было бы в настройках сделать выбор работы shuffle: чистый рандом или умный.
P.S. Уговорили, добавил тег deadbeef.

Rinaldus ★★★★★
() автор топика
Последнее исправление: Rinaldus (всего исправлений: 1)
Ответ на: комментарий от Rinaldus

В deadbeef есть 2 отдельных режима – Shuffle и Random, и режим Shuffle всегда задумывался именно так, как ты описал свои хотелки. Причем я им тоже постоянно пользуюсь, и таких проблем как у тебя не замечал. Конечно, периодически находятся баги, которые оперативно исправляются. Но вот именно такой проблемы что в режиме Shuffle происходит Random – не замечал.

waker ★★★★★
()
Ответ на: комментарий от Rinaldus

Я конечно не могу быть уверенным, какой режим ты выбираешь, но тебе нужен режим Shuffle -> Tracks, а не Shuffle -> Random Tracks.

waker ★★★★★
()
Ответ на: комментарий от waker

Ах вот оно что! Да, действительно, у меня было включено Shuffle -> Random Tracks, я не понимал, чем они отличаются. Это, пожалуй, не слишком интуитивно понятно. Тогда вопрос решен.
Извини, раз уж ты тут, можно еще одну хотелку? Нельзя ли сделать возможность поместить на панели инструментов маленькую кнопочку Shuffle Toggle? Ну или 3 такие кнопки для каждого режима shuffle. Т.е в нажатом состоянии она переключает режим в shuffle, а в отпущенном - обычный режим. Сейчас нельзя сделать такую кнопку, которая была бы 2 в 1, поэтому пришлось сделать вот такие 2 костыльные кнопки: одна включает режим shuffle, другая выключает. Но это выглядит очень неэлегантно и некрасиво.

Rinaldus ★★★★★
() автор топика
Последнее исправление: Rinaldus (всего исправлений: 1)
Ответ на: комментарий от Rinaldus

Зачем ему приходить, если тут критика его проекта?

Не критика, а нормально сформулированный фичреквест. ТС, продолжай в том же духе.

AEP ★★★★★
()
Ответ на: комментарий от Rinaldus

Это, пожалуй, не слишком интуитивно понятно.

пришлось сделать именно так, чтобы было больше похоже на foobar. раньше было иначе. впрочем, люди все равно путались между random и shuffle.

Т.е в нажатом состоянии она переключает режим в shuffle, а в отпущенном - обычный режим.

плагином такое точно можно сделать, но не уверен можно ли это сделать штатными настройками/кастомизацией.

waker ★★★★★
()
Ответ на: комментарий от waker

плагином такое точно можно сделать, но не уверен можно ли это сделать штатными настройками/кастомизацией.

Можно это сделать в виде плагина? Я не умею плагины писать. :)

Rinaldus ★★★★★
() автор топика
Ответ на: комментарий от waker

Не собирается плагин. Пробовал с помощью make и с помощью твоего deadbeef-plugin-builder, ругается. Вот с помощью make:

main.c:23:10: фатальная ошибка: deadbeef.h: Нет такого файла или каталога
   23 | #include "deadbeef.h"
      |          ^~~~~~~~~~~~
компиляция прервана.
Или с помощью deadbeef-plugin-builder:
static-deps exists, delete for redownload
removing libstdc++ from static-deps...
rm: невозможно удалить 'static-deps/lib-x86-64/lib/libstdc++*': Нет такого файла или каталога
deadbeef.h exists, delete for redownload
Preparing to build package: ddb_misc_playback_buttons
getting source code using git from https://github.com/kpcee/deadbeef-playback-buttons
Клонирование в «temp/ddb_misc_playback_buttons»…
remote: Enumerating objects: 24, done.
remote: Counting objects: 100% (24/24), done.
remote: Compressing objects: 100% (16/16), done.
remote: Total 24 (delta 10), reused 18 (delta 7), pack-reused 0
Получение объектов: 100% (24/24), 17.25 КиБ | 17.25 МиБ/с, готово.
Определение изменений: 100% (10/10), готово.

source code download success.
revision: ea1d497


preparing environment...
GTK2_LIBS=-L/tmp/deadbeef-plugin-builder/static-deps/lib-x86-64/gtk-2.16.0/lib -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgio-2.0 -lpangoft2-1.0 -lgdk_pixbuf-2.0 -lpangocairo-1.0 -lcairo -lpango-1.0 -lfreetype -lgobject-2.0 -lgmodule-2.0 -lgthread-2.0 -lrt -lglib-2.0 -lpthread
GTK2_CFLAGS=-I/tmp/deadbeef-plugin-builder/static-deps/lib-x86-64/gtk-2.16.0/include/gtk-2.0 -I/tmp/deadbeef-plugin-builder/static-deps/lib-x86-64/gtk-2.16.0/lib/gtk-2.0/include -I/tmp/deadbeef-plugin-builder/static-deps/lib-x86-64/gtk-2.16.0/include/atk-1.0 -I/tmp/deadbeef-plugin-builder/static-deps/lib-x86-64/gtk-2.16.0/include/cairo -I/tmp/deadbeef-plugin-builder/static-deps/lib-x86-64/gtk-2.16.0/include/pango-1.0 -I/tmp/deadbeef-plugin-builder/static-deps/lib-x86-64/gtk-2.16.0/include -I/tmp/deadbeef-plugin-builder/static-deps/lib-x86-64/gtk-2.16.0/include/glib-2.0 -I/tmp/deadbeef-plugin-builder/static-deps/lib-x86-64/gtk-2.16.0/lib/glib-2.0/include
GTK3_LIBS=-L/tmp/deadbeef-plugin-builder/static-deps/lib-x86-64/gtk-3.10.8/lib -L/tmp/deadbeef-plugin-builder/static-deps/lib-x86-64/gtk-3.10.8/lib/x86_64-linux-gnu -lgtk-3 -lpango-1.0 -lcairo -lgobject-2.0 -lgthread-2.0 -lglib-2.0
GTK3_CFLAGS=-I/tmp/deadbeef-plugin-builder/static-deps/lib-x86-64/gtk-3.10.8/include/gtk-3.0 -I/tmp/deadbeef-plugin-builder/static-deps/lib-x86-64/gtk-3.10.8/include/pango-1.0 -I/tmp/deadbeef-plugin-builder/static-deps/lib-x86-64/gtk-3.10.8/include/gio-unix-2.0/ -I/tmp/deadbeef-plugin-builder/static-deps/lib-x86-64/gtk-3.10.8/include/atk-1.0 -I/tmp/deadbeef-plugin-builder/static-deps/lib-x86-64/gtk-3.10.8/include/cairo -I/tmp/deadbeef-plugin-builder/static-deps/lib-x86-64/gtk-3.10.8/include/gdk-pixbuf-2.0 -I/tmp/deadbeef-plugin-builder/static-deps/lib-x86-64/gtk-3.10.8/include/freetype2 -I/tmp/deadbeef-plugin-builder/static-deps/lib-x86-64/gtk-3.10.8/include/glib-2.0 -I/tmp/deadbeef-plugin-builder/static-deps/lib-x86-64/gtk-3.10.8/lib/glib-2.0/include
Use of uninitialized value in concatenation (.) or string at ./build line 295.
changing to: temp/ddb_misc_playback_buttons/

invoking make
Use of uninitialized value in concatenation (.) or string at ./build line 299.
Creating build directory for GTK+2 version
Compiling main.o
main.c:23:10: фатальная ошибка: deadbeef.h: Нет такого файла или каталога
   23 | #include "deadbeef.h"
      |          ^~~~~~~~~~~~
компиляция прервана.
make: *** [Makefile:82: gtk2/main.o] Ошибка 1
make finished with an error
manifest.json:
{
    source: {
        type: "git",
        url: "https://github.com/kpcee/deadbeef-playback-buttons",
    },
    make: {
        type: "make",
        ENV: {
            GTK2_CFLAGS: "$GTK216_CFLAGS",
            GTK2_LIBS: "$GTK216_LIBS",
            GTK3_CFLAGS: "$GTK310_CFLAGS",
            GTK3_LIBS: "$GTK310_LIBS",
        },
        out: [
            "ddb_misc_playback_buttons_GTK2.so",
            "ddb_misc_playback_buttons_GTK3.so"
        ],
    }
}

Rinaldus ★★★★★
() автор топика
Ответ на: комментарий от Rinaldus

там в README написано, что для сборки нужно скопировать пару файлов из исходников deadbeef в папку плагина. deadbeef.h и gtkui_api.h

так не было задумано, но автор решил что ему так удобнее :D

waker ★★★★★
()
Ответ на: комментарий от waker

Глючный плагин. Не все режимы проскакивают при переключении через кнопки, а если начать переключать режимы через стандартное меню, то и вовсе вылетает часто.

Rinaldus ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.