Серйозне захворювання моєї дружини, та це не covid, змусило мене шукати заняття для скорочення часу на не дуже приємні роздуми. І я знайшов собі таке заняття.
Я вирішив написати аудіо програвач для linux. Можливо я зараз нарвуся на нерозуміння, але те, що встановлюється за умовчанням в linux системах як аудіоплеєр за замовчуванням - мене особисто ніяк не влаштовує. Мене не залишає відчуття, що пишуть ці додатки або програмісти-початківці і кидають це заняття на підлогу шляху, або мета цих програмістів не аудіо-плеєр,а винахід нових головоломок. Там є все, що не обов'язково для програвача, але, як правило, там немає того, що, на мою думку обов'язково для програвача.
На сьогодні робота далека від завершення, але хочу поділитися з вами своїми напрацюваннями.
Пишу я програвач на бібліотеці BASS.
Плеєр вже відтворює всі формати доступні BASS - це WAV,AIFF,MP3,MP2,MP1,OGG,AC3,AAC,SPX,TTA,APE,MPC,DSD,DSF,MP4,M4a,M4B,IIF,FLAC,ALAC,WV.
Частота дескретизації від 8000 до 384 000.
Квантування 8, 16 та 32 біти.
Є обробка плей листа формату .CUE.
У плеєрі вісімнадцяти смуговий еквалайзер, в який можна завантажити пресети за жанрами музики. Поки що їх 26.
Також є 110 смуговий аналізатор спектру аудіо-сигналу, який можна відключити як через PopUp меню, так і за допомогою гарячих клавіш.
Можна приховати плей лист та еквалайзер. Можна змінити вигляд аналізатора спектра.
Багато чого потребує доопрацювання та оптимізації, але це лише перша бета.
У плеєрі немає і не передбачається теми оформлення. Зовнішній вигляд повністю залежатиме від налаштування теми операційної системи.
Виглядає цей твір так у різних системах і в різних темах операційної системи:
LinuxMint
У Fedora35 на інсталяційному диску, не знаю чи встановлюється він за замовчуванням, не було gtk2.
Після встановлення з терміналу gtk2 програма успішно запрацювала.
Твікер я не знайшов, тому там плеєр виглядав тільки так:
На Ubuntu це виглядає так:
А а це вже на Debian11:
Из любопытства попробовал.
ОтветитьУдалитьСудя по диспетчеру задач, по сравнению с используемым мной Audacious расход резидентной памяти в общем-то сопоставим (~ 41 против 44). Но ЦП было 6-9% (на разных мелодиях), в то время как Audacious болтался в пределах 0 ... 1% Как только мелодия прекращает играть, то расход ЦП становится 0.
Так как мне не совсем "уютно" было кидать файлы в окошко, то в Thunar (xfce) сделал особое действие.
При новом запуске плеера регулятор громкости снова был в 100%, несмотря на то, что в прошлом запуске мной был установлен в 70%. Полазил в скрытых файлах, но нигде на нашёл настроек. К 18 полосному эквалайзеру не обращался, поскольку подумал, что при новом запуске его снова необходимо будет или настраивать, или выбирать готовый набор.
Хотелось бы уже на этом этапе видеть какой-нибудь маленький мануал, хотя бы даже перечень горячих клавиш, так как кнопок управления найдено не было (за исключеним эквалайзера и анализатора спектра). Темы лично меня не интересуют, так как являюсь сторонником минимализма: запустил и слушаю.
Хочется надеяться на продолжение разработки.
Спасибо за комментарий!
УдалитьНа счет настроек - мой косяк.
Упустил написать, что к сохранению настроек пока не приступал.
Все горячие клавиши привязаны к PopUp меню, а PopUp меню привязаны
к Главному окну, к эквалайзеру и к плей-листу. Горячие клавиши отображаются на пунктах
PopUp меню.
Пока бросать разработку не намерен.
Пока - потому, что человек предполагает...
Ну вы поняли!
Пожелаю удачи. С интересом попробую дальнейшие версии плеера. Я не программист и не компетентен судить о замечаниях на форуме LM по вопросу GTK2/GTK3. На меня плеер произвёл хорошее впечатление.
ОтветитьУдалитьИ да, согласен с тем, что нормальный плеер подобрать трудно, так как, почему то, разработчики желают туда засунуть компоненты "на все случаи жизни". А мне по душе другой подход: приложение выполняет только одну задачу. А то поставишь дистрибутив и начинаешь выпиливать оттуда то ПО, которое накидали создатели дистрибутива, и заменять его другим.
Ранее ты спрашивал, каких языков не хватает в плеере. Отвечаю: русского. Великого и могучего. Без него никак. Потому вынужден был перевести сам программу на русский язык. При переводе на русский увидел ошибки в названиях функций и их неточное обозначение. Пришлось исправлять. Сейчас у меня плеер на русском работает. Но есть неудобства в использовании. Например, при закрытии плеера в системный трей программа сворачивается, а список воспроизведения остается. Логично было бы сделать, чтобы и список сворачивался вместе с программой. Это я о версии 1.2.0.33 от 11 августа 2024 года. Написал бы больше о неудобствах, но слишком большой текст получится. Писать большие тексты не мое призвание. Будь здоров! Желаю дальнейших творческих успехов!
ОтветитьУдалитьПричины изъятия русского языка из программы понятны. А вот ограничения на количество языков кажутся странными и неуместными. Например, попытка добавить русский язык в плеер к другим имеющимся языкам не увенчалась успехом. Папка "ru" с языковым файлом добавляется, но в интерфейсе выбора языков русский не появляется. Странно, не правда ли? Приходится русский вставлять вместо украинского или любого другого языка. В этом случае русский язык появляется в меню и его можно включить, но пропадает тот язык, вместо которого русский поставлен. Насколько оправданы такие ограничения? Если ты не можешь или не хочешь добавлять русский язык в плеер, то зачем препятствовать другим пользователям это делать. Это касается и других языков, необязательно русского. Если кто-то захочет перевести плеер на любой другой язык, ему придется также заменять другой языковый файл, чтобы программа была на его родном языке. Мне думается, ограничения на добавления других языков надо убрать. Пусть пользователи сами переводят и добавляют свои языки, если у них есть такие способности. И это будет способствовать росту популярности программы. Мне так кажется.
ОтветитьУдалитьСпасибо. Желаю здоровья и успехов.
Благодарю за ответ. Если я правильно понял, в имеющемся массиве языков не нашлось места для русского. Жаль, конечно А что мешает его туда добавить? Сделать это легче легкого. Это же не какой-то там экзотический язык. И добавлю, что старое название языка, вместо которого я вставляю русский, уже не остается. Для этого приходится вносить коррективы в другие языковые файлы. Например, если русский добавляется вместо украинского, то в моем случае название украинского языка полностью исчезает из программы, как и сам украинский язык. Ладно, закончим языковую тему и перейдем к другим.
УдалитьВыскажу свои пожелания.
1. Хотелось бы кнопки "FX" и "Opt" сделать немного длиннее, пикселей на 20. Чтобы русское слово "Опции" помещалось полностью внутри кнопки.
2. В версии 1.2.0.34 названия пунктов в настройках наезжают на элементы графического интерфейса. Например, надпись "Логарифмический регулятор громкости" немного наезжает на рамку раздела "Плеер" и ее надо опустить на 3-5 пикселей вниз. Тоже самое надо сделать с надписью "Скрыть эквалайзер" в разделе "Эквалайзер". Эта надпись тоже наезжает на рамку.
3. Коли речь зашла про логарифмический регулятор. Это название верное. Регуляторы громкости
классифицируются по типу зависимости изменения амплитуды: линейная, логарифмическая, квадратичная, экспоненциальная и т. д. А вот название "Тонкомпенсированный регулятор громкости не точное. Это функция частотной коррекции сигнала при малых амплитудах. И правильное название будет "Тонкомпенсация", а не "Тонкомпенсированный регулятор громкости". Следовательно, в интерфейсе программы чекбокс должен называться "Тонкомпенсация".
4. Функция сжатия звукового сигнала называется компрессией. А компрессор - это техническое физическое устройство или агрегат. Например, в холодильнике. Применительно к обработке звука правильный термин будет "Компрессия". Его и надо использовать в интерфейсе набора звуковых эффектов.
5. Если Бог даст, об остальном напишу в дальнейшем. Что-то много текста получилось. И кстати, я на седьмом десятке, живу в России, у меня два высших образования.
Желаю здоровья и благополучия.
1. Кнопки FX и Opt не переводятся ни на один язык как раз из за разных размеров текста.
Удалить2. По той же причине подогнать интерфейс на все языки будет очеть затруднительно.
3. Гляньте в "Аимп" или в браузере наберите тонкомпенсированный регулятор громкости. Хотя и с вашей интерпритацией можно согласиться.
4. Википедия:"Компрессор (от англ. «compress» — сжимать, сдавливать) — электронное устройство или компьютерная программа, выполняющее уменьшение (сжатие) динамического диапазона звукового сигнала; иными словами, компрессор позволяет сделать более узкой разницу между самым тихим и самым громким звуком."
5. А у меня заканчивается седьмой десяток.
Спасибо за отклик. Я привык получать знания из книг, монографий, научных статей. Так сложилось исторически. А что там пишут в мутных википедиях, интернетах или на заборах не внушает доверия. Хотя да, иногда и там бывает интересное.
ОтветитьУдалитьОбновил версию плеера до 1.2.0.34. Продолжу свои замечания и предложения по улучшению программы.
1. В плеере есть возможность регулировать яркость полос анализатора. Двигая ползунок туда-сюда, мне показалось, что регулируется не яркость, а цветовой контраст. Поэтому этот пункт я перевел на русский как "Цветовой контраст полос".
2. При уменьшении-увеличении количества полос анализатора полосы не заполняют окно анализатора полностью и справа остается пустое место. Хотелось бы, чтобы окно анализатора заполнялось полностью динамически, без учета количества полос. А то создается впечатление, что при уменьшении количества полос уменьшается и частотный диапазон воспроизводимого файла.
3. Если кинуть мышкой звуковой файл в список воспроизведения, то появляется блок из 2-х строчек. В нем само название файла и ниже характеристики записи. Так вот вторая строка отображается наполовину при малом размере шрифта. При увеличении размера шрифта в настройках, в разделе "Плейлист", вторая строка становится видимой почти полностью, но как бы "сидит" на нижней линии этого информационного блока. Хорошо бы сделать так, чтобы обе строки располагались по центру блока при любом размере шрифта. А сверху и снизу строчек должен быть промежуток в 2-3 пикселя.
4. В настройках эффектов при включении того или иного эффекта появляются числовые значения передвижения ползунка. Так вот, эти цифры отображаются не полностью. Они частично скрыты за вертикальной линией, разделяющей строки названий эффектов и поле настроек эффекта. Было бы неплохо эти цифры чуток пододвинуть ближе к ползунку. Ну, или увеличить длину всего поля настроек.
5. При наведении мышкой на органы управления плеером всплывает подсказка. Но на кнопках "Пауза" и "Воспроизведение" подсказка почему-то не появляется.
6. Иконку плеера мне кажется лучше заменить. Какая-то она мрачноватая. Но это, конечно, дело вкуса. Нашел на бескрайних полях интернета другую, как мне кажется, более подходящую иконку. Если укажете куда прислать, то отправлю для рассмотрения.
На этом пока все. Желаю здоровья, успехов и благополучия.
Спасибо за комментарии и замечания. Почти все учтено в последней версии.
УдалитьНасчет анализатора спектра - это обманчивое воспричтие, потому что чем меньше полос в графике тем большую полосу частоты отображает эта полоса. Поэтому и кажется, что полоса вроде бы сужается, на самом деле попробуйте разделить 512 полос на 27. 512 - это 22.5 kHz разделены на 512 полос.
Вдохновляемые стремлением к совершенству, продолжаем улучшать плеер. Обновил версию до 1.2.0.35. Вижу новую иконку. Она значительно лучше предыдущей и визуально более точно передает назначение самой программы. Но все же я опять поставил свою, найденную в интернете. Она мне больше нравится и лучше соответствует смыслу программы. Но это дело вкуса.
ОтветитьУдалить1. Было бы удобно, если сделать так, чтобы кликом левой кнопкой мыши по иконке в трее появлялся плеер, а по правому клику на иконке - контекстное меню.
2. В самом контекстном меню, чтобы сохранить стилевое единство, есть смысл добавить символьные (или цветные) значки ко всем пунктам. У пунктов "Воспроизвести", "Пауза" и "Стоп" есть кружки, а у остальных пунктов значков нет. Например, к пункту "Закрыть SW-AMP" можно добавить значок "х", к пункту "Предыдущая запись" добавить "<", к пункту "Следующая запись" - ">" и т.д. Хорошо бы сделать их в едином стиле. Важно не упустить из виду, чтобы значки отображались и при светлой, и при темной теме оформления.
3. При проигрывании файла отображается прямой отсчет времени. Было бы логичнее сделать обратный отсчет времени, чтобы видеть сколько времени осталось до конца. А можно и переключатель ввести, чтобы пользователь выбирал для себя удобный вариант: прямой или обратный отсчет.
4. Мне думается, что папку с настройками плеера "swampproperties" лучше разместить в скрытой папке .config в директории пользователя. И она не будет мозолить глаза. В папке .config, как известно, хранятся настройки всех программ пользователя. И папке с настройками плеера там самое место. Но это в моем случае. Так как я .AppImage распаковываю и программу перекидываю в папку /opt. Допускаю, что вопрос может быть спорным. У кого-то безопасность может быть в приоритете.
5. Значительно улучшит эксплутационную привлекательность плеера возможность воспроизводить потоковое вещание, что позволило бы слушать интернет-радио. Например, накидал ссылок на радиопотоки в плейлист и слушай радиостанции. Было бы весьма неплохо. А можно и не в плейлист, а сделать отдельное меню для этой функции с редактором ссылок и их названий.
6. Не лишней будет справка по программе. Для начала хотя бы на одном каком-нибудь языке. Например, английском, русском или украинском. Постепенно ее можно перевести на другие языки. И при выборе языка, автоматически переключался бы и языковый файл справки. Было очень удобно.
7. Напрасно ты убрал числовые значения передвижения ползунка. Это очевидная ошибка. Прошу их вернуть обратно и отрегулировать их положение в поле настроек. И вот почему.
Я инвалид по слуху. У меня ослабление слуха около 60 децибел. Особую ценность для меня в плеере представляют такие эффекты, как компрессия, эквалайзер, расширение стереобазы, тонкомпенсация. И в этом плеере я слушаю не только, и даже не столько музыку, сколько аудиокниги. Читать книги в нашем преклонном возрасте весьма утомительно. Глаза в очках быстро устают. Потому чаще слушаю. Записи бывают разные, и по числовым значениям можно легко подстраивать плеер для комфортного прослушивания записей с разным качеством. И для музыки, и для речи. Следует иметь ввиду, что плеером могут пользоваться не только "нормальные" люди, но и с ограниченными возможностями, с различными нарушениями.
Попутно замечу, что чекбоксы включения эффекта "Темп и высота тона" находятся на одной линии с ползунками. Тогда как в других эффектах они расположены в верхнем правом углу поля настроек эффекта. Так что их надо бы немного поднять по вертикали.
Традиционно желаю здравия и благополучия. Творческих успехов и вдохновения.
Спасибо за комментарий.
ОтветитьУдалить1. Нет такой возможности в Systray.
2. Та же причина. Крожочки - это переключатель, показывающий положение переключателя. Прикрутить свои иконки нет возможности.
3. Менять не буду. Разве только можно в подсказке выводить оставшееся время.
4. AppImage тем и хорош, что напоминает подход майкрософт - все свое ношу с собой. И если начинать раскладывать файлы по абсолютным путям на компьютере пользователя - это не понравиться никому!
5. Потоковое вещание это другая библиотека Bass, до которой я еще не добрался.
6. Пока не дошли руки.
7. Числовые показания какого ползунка? Нет ошибочно цифры пока только на балансе.
Чекбоксы на других эффектах относятся ко всем регуляторам этого эффекта. А скорость и высота это разные эффекты на одной панели, поэтому вполне логично их расположение напротив единственного регулятора относящегося к этому эффекту.
Запустил плеер 1.2.0.35 на Astra Linux SE 1.8.1.12. Все огрехи интерфейса, о которых писал ранее, вылезли в полной мере. Нужна тщательная (очень) работа по приведению интерфейса в надлежащий вид. Сделал несколько скриншотов плеера для наглядности. Надеюсь, они будут полезными. Попробую на почту тебе отправить. На ту, которая здесь указана. Не знаю, получится или нет. Архив со скриншотами (.zip) весит около 14 мб.
ОтветитьУдалитьРазумеется меня не интересуют какие либо российские дистрибутивы линукс. Но проверив указанные недостатки на ubontu пришлось многое поменять в последней версии. Спасибо за комментарии.
Удалить