[Open source, Go, Разработка под Linux, Звук] Go, локдаун и новый MPD-клиент — встречайте Ymuse
    
    
        
    
    
    
    
            
    
        
            
                
                                    
                
                                    
                
                    
                
            
        
    
    
        
            
                
                
                    
                         
                         
                       
                    
                        Автор 
                        Сообщение 
                    
                                        
                        
                            
                                
                                
                                                                                                            news_bot ®
                                                                        
                                                                                                                                                
                                                                            
                                                                                                                
                                            Стаж: 7 лет 8 месяцев                                        
                                                                                                                
                                            Сообщений: 27286                                        
                                                                                                                                                
                                                             
                            
                                
                             
                         
                        
                            
                                
                                    
                                        
                                        
 Уже лет десять моим основным медиаплеером на компьютере является MPD, Music Player Daemon — фоновый сервис, воспроизводящий музыку.
Чтобы с этим сервисом как-то взаимодействовать, нужна программа-клиент. Таких программ существует не один десяток, но до недавнего времени я никак не мог найти ту, которая меня бы полностью устраивала — поэтому в один прекрасный день я решил написать свою (тут и локдаун кстати подвернулся).
Предлагаю вашему вниманию краткий обзор (сравнительно) нового MPD-клиента для Linux/GTK под названием Ymuse, версию 0.16 которого я недавно выпустил.

Music Player Daemon
Сначала немного о том, что же такое Music Player Daemon, — для тех, кто с ним незнаком.
Он представляет собой сервис (на айтишном жаргоне демон), который работает в фоновом режиме в недрах компьютера и способен воспроизводить музыку или стриминговое Интернет-аудио (Интернет-радио).
Помимо воспроизведения звука, сервис этот внешне никак себя не проявляет. Чтобы им управлять, требуется специальная программа, которую традиционно называют клиентом, и этих клиентов есть множество под разные платформы — от Windows до Wear OS.
Когда я впервые познакомился с такой концепцией разделения компонентов на невизуальный (воспроизводящий аудио) и визуальный, то был немного озадачен, однако довольно быстро осознал её удобство.

MPD берёт на себя управление музыкальной библиотекой (сканирование и индексирование аудиофайлов) и проигрывание файлов, а программу-клиента можно подобрать по вкусу. В такой архитектуре клиентов у MPD-демона может быть сколько угодно, причём они вообще могут располагаться на другом компьютере или даже мобильном телефоне — подключение к нему осуществляется по сетевому протоколу.
Нередко используется конфигурация, когда MPD крутится на микрокомпьютере типа Raspberry Pi, подключенном к колонкам, а управляют им с компьютера или через мобильное приложение.
Также MPD поддерживает плейлисты (списки воспроизведения) и стандартное стриминговое аудио, благодаря чему становятся доступны тысячи Интернет-радиостанций.
Кстати, в Линуксе есть смысл вместе с MPD сразу поставить пакет mpdris2, который свяжет его со стандартным интерфейсом медиаплеера MPRIS. Тогда демоном можно будет управлять стандартными медиа-клавишами (перемотка, пауза, стоп и т.д.).
Ymuse
Теперь о том, зачем, собственно, понадобился ещё один MPD-клиент.
В своё время я перепробовал несколько существующих клиентов и в итоге остановился на минималистичном Sonata, который практически полностью меня устраивал, за исключением пары моментов:
- Неудобный вызов часто используемых мной функций через вложенные меню.
 
- Неповоротливость с большим плейлистами (на несколько тысяч треков).
 
Последний пункт был следствием того, что Sonata написана на Python, который, как известно, не славится особой производительностью.
В общем, терпел я, терпел, и в конце концов не выдержал и написал свой клиент, который получил название Ymuse и иконку в виде бокала для мартини, напоминающего букву Y:

Внешне Ymuse также ожидаемо минималистичен:

При этом его функционал, по моему скромному мнению, достаточно богат:
- Подключение к локальному или сетевому серверу MPD по TCP или Unix-сокету, автоматическое восстановление подключения.
 
- Отображение очереди воспроизведения, сортировка по любому свойству, перемешивание, удаление треков из очереди.
 
- Фильтрация очереди по подстроке.
 
- Сохранение очереди в виде плейлиста (существующего или нового).
 
- Просмотр и поиск по библиотеке MPD, переход к исполнителю или альбому из очереди воспроизведения.
 
- Просмотр списка плейлистов, удаление и переименование плейлиста.
 
- Собственный список потоков (Интернет-радиостанций) с возможностью добавления, удаления и редактирования элементов.
 
- Настройка отображаемых столбцов в списке воспроизведения.
 
- Настройка отображаемого текста в плеере (используется синтаксис Go template).
 
- Переключение режимов MPD (random, repeat и consume).
 
- Регулировка громкости.
 
- Перемотка трека в произвольное место.
 
- Отображение обложки текущего альбома в плеере.
 
- Поддержка локализации. Доступные языки:
- английский
 
- русский
 
- нидерландский
 
- японский
 
 
Работает Ymuse по моим наблюдениям достаточно стабильно — у меня он вкалывает почти непрерывно.
Ещё скриншоты
SPL
Go Go Go
Для реализации Ymuse я выбрал молодой, но многообещающий язык Go, разрабатываемый Google.
Go — язык со строгой типизацией, который нативно компилируется под огромное количество платформ и архитектур, от Linux до Android и от SPARC до ARM. Это делает его весьма перспективной заменой морально устаревшему и довольно неуклюжему C++. Go очень дружественен к программисту, синтаксисом напоминая Python, а также предоставляет поддержку многопоточности «из коробки».
Ну и самое, пожалуй, главное для того, чтобы язык не зачах где-нибудь на обочине истории, это мощная стандартная библиотека функций, а также тысячи опенсорсных библиотек, любую из которых можно подключить к проекту одной командой go get ….
Именно наличие двух готовых библиотек — gompd для коммуникации с MPD-демоном и gotk3, позволяющей работать с графическим интерфейсом GTK — сделало возможным создание практически полной функциональной копии Sonata за пару недель (!) работы по вечерам. В обе библиотеки, кстати, пришлось слать пулл-реквесты, чтобы что-нибудь исправить или добавить.
И вот результат: с моим плейлистом на 12K+ треков Ymuse работает визуально раза в два-три быстрее «Сонаты». (Замечу в сторону, что скорость работы приложения теперь ограничивается производительностью GTK, что особенно заметно на больших списках.)
Исходный код и установка
Исходный код Ymuse доступен на GitHub, а установить его можно из .deb, .rpm или snap-пакета:
snap install ymuse
Подробнее об установке можно прочитать на странице приложения (версия на английском).
Жалобы и предложения пишите в трекер на Гитхабе (желательно на английском).
===========
 Источник:
habr.com
===========
Похожие новости:
- [JavaScript, Искусственный интеллект, Логические игры] Пишем ИИ для игры Гомоку (5 в ряд)
 
- [Open source, PHP, Symfony, Yii, Laravel] Package Wizard — незаменимый помощник при разработке веб-приложений
 
- [Open source, Python, Natural Language Processing, Голосовые интерфейсы] Новые возможности для Python-разработчиков: SmartApp Framework в open source
 
- [*nix, Amazon Web Services, Microsoft Azure, Google Cloud Platform, Kubernetes] Calico Enterprise: обзор (перевод)
 
- [Data Engineering] Что такое фильтр Блума? (перевод)
 
- [Управление персоналом, Карьера в IT-индустрии, Офисы IT-компаний, IT-компании] Google, СберМаркет: как устроена удалёнка—2
 
- [Поисковые технологии, Open source, Sphinx] Manticore Search — форк Sphinx: отчёт за 3 года
 
- [Информационная безопасность, Разработка под Android, Монетизация мобильных приложений, Контекстная реклама] Приложение Barcode Scanner в Google Play заразило 10 млн пользователей одним обновлением
 
- [Open source, Программирование, Java, Kotlin] Jmix / CUBA Platform: итоги 2020 и планы на 2021 год
 
- [Копирайт, Звук] [приглашение] Запись саундтреков в жанре киберпанк для OSINT инструмента
 
Теги для поиска: #_open_source, #_go, #_razrabotka_pod_linux (Разработка под Linux), #_zvuk (Звук), #_mpd, #_linux, #_ymuse, #_zvuk (звук), #_muzyka (музыка), #_ubuntu, #_go, #_open_source, #_go, #_razrabotka_pod_linux (
Разработка под Linux
), #_zvuk (
Звук
)
                                        
                                        
                                        
                                     
                                    
                                    
                                                                    
                                                                                             
                         
                        
                            
                                                                    
                                                             
                         
                    
                    
                
                
            
        
    
    
    
    
    
            
    
            
    
        
    
    
        
                        Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
    
    
        
        Текущее время: 04-Ноя 11:58
Часовой пояс: UTC + 5 
            
    
                
| Автор | Сообщение | 
|---|---|
| 
                                
                                
                                                                                                            news_bot ®
                                                                        
                                                                                                                                                 
                                                                            
                                                                                                                
                                            Стаж: 7 лет 8 месяцев                                          | 
                            |
| 
                                 Уже лет десять моим основным медиаплеером на компьютере является MPD, Music Player Daemon — фоновый сервис, воспроизводящий музыку. Чтобы с этим сервисом как-то взаимодействовать, нужна программа-клиент. Таких программ существует не один десяток, но до недавнего времени я никак не мог найти ту, которая меня бы полностью устраивала — поэтому в один прекрасный день я решил написать свою (тут и локдаун кстати подвернулся). Предлагаю вашему вниманию краткий обзор (сравнительно) нового MPD-клиента для Linux/GTK под названием Ymuse, версию 0.16 которого я недавно выпустил. ![]() Music Player Daemon Сначала немного о том, что же такое Music Player Daemon, — для тех, кто с ним незнаком. Он представляет собой сервис (на айтишном жаргоне демон), который работает в фоновом режиме в недрах компьютера и способен воспроизводить музыку или стриминговое Интернет-аудио (Интернет-радио). Помимо воспроизведения звука, сервис этот внешне никак себя не проявляет. Чтобы им управлять, требуется специальная программа, которую традиционно называют клиентом, и этих клиентов есть множество под разные платформы — от Windows до Wear OS. Когда я впервые познакомился с такой концепцией разделения компонентов на невизуальный (воспроизводящий аудио) и визуальный, то был немного озадачен, однако довольно быстро осознал её удобство. ![]() MPD берёт на себя управление музыкальной библиотекой (сканирование и индексирование аудиофайлов) и проигрывание файлов, а программу-клиента можно подобрать по вкусу. В такой архитектуре клиентов у MPD-демона может быть сколько угодно, причём они вообще могут располагаться на другом компьютере или даже мобильном телефоне — подключение к нему осуществляется по сетевому протоколу. Нередко используется конфигурация, когда MPD крутится на микрокомпьютере типа Raspberry Pi, подключенном к колонкам, а управляют им с компьютера или через мобильное приложение. Также MPD поддерживает плейлисты (списки воспроизведения) и стандартное стриминговое аудио, благодаря чему становятся доступны тысячи Интернет-радиостанций. Кстати, в Линуксе есть смысл вместе с MPD сразу поставить пакет mpdris2, который свяжет его со стандартным интерфейсом медиаплеера MPRIS. Тогда демоном можно будет управлять стандартными медиа-клавишами (перемотка, пауза, стоп и т.д.). Ymuse Теперь о том, зачем, собственно, понадобился ещё один MPD-клиент. В своё время я перепробовал несколько существующих клиентов и в итоге остановился на минималистичном Sonata, который практически полностью меня устраивал, за исключением пары моментов: 
 Последний пункт был следствием того, что Sonata написана на Python, который, как известно, не славится особой производительностью. В общем, терпел я, терпел, и в конце концов не выдержал и написал свой клиент, который получил название Ymuse и иконку в виде бокала для мартини, напоминающего букву Y: ![]() Внешне Ymuse также ожидаемо минималистичен: ![]() При этом его функционал, по моему скромному мнению, достаточно богат: 
 Работает Ymuse по моим наблюдениям достаточно стабильно — у меня он вкалывает почти непрерывно. Ещё скриншотыSPLGo Go Go Для реализации Ymuse я выбрал молодой, но многообещающий язык Go, разрабатываемый Google. Go — язык со строгой типизацией, который нативно компилируется под огромное количество платформ и архитектур, от Linux до Android и от SPARC до ARM. Это делает его весьма перспективной заменой морально устаревшему и довольно неуклюжему C++. Go очень дружественен к программисту, синтаксисом напоминая Python, а также предоставляет поддержку многопоточности «из коробки». Ну и самое, пожалуй, главное для того, чтобы язык не зачах где-нибудь на обочине истории, это мощная стандартная библиотека функций, а также тысячи опенсорсных библиотек, любую из которых можно подключить к проекту одной командой go get …. Именно наличие двух готовых библиотек — gompd для коммуникации с MPD-демоном и gotk3, позволяющей работать с графическим интерфейсом GTK — сделало возможным создание практически полной функциональной копии Sonata за пару недель (!) работы по вечерам. В обе библиотеки, кстати, пришлось слать пулл-реквесты, чтобы что-нибудь исправить или добавить. И вот результат: с моим плейлистом на 12K+ треков Ymuse работает визуально раза в два-три быстрее «Сонаты». (Замечу в сторону, что скорость работы приложения теперь ограничивается производительностью GTK, что особенно заметно на больших списках.) Исходный код и установка Исходный код Ymuse доступен на GitHub, а установить его можно из .deb, .rpm или snap-пакета: snap install ymuse 
Подробнее об установке можно прочитать на странице приложения (версия на английском). Жалобы и предложения пишите в трекер на Гитхабе (желательно на английском). =========== Источник: habr.com =========== Похожие новости: 
 Разработка под Linux ), #_zvuk ( Звук )  | 
                        |
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
    Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 04-Ноя 11:58
Часовой пояс: UTC + 5 




