HuGu — коллективный плейер музыки Вконтакте на node.js / Хабр
Зачем это надо? А вспомним ситуацию: в офисе работают несколько человек, и у одного к компьютеру подключены музыкальные колонки. — «Вась, смени LoveRadio! Поставь Рамштайна!» И Вася, отвлекаясь от отчета/игры/мысли: «Надоел Рамштайн, давайте лучше „Поющие трусы“ поставлю? Мегазачотные песни!»А может ли каждый добавлять свои любимые музыкальные композиции в общий плейлист? Через браузер? Из плейлиста Вконтакте? Да, может.
HuGu — что это такое?
HuGu — это приложение под node.js, которое проигрывает музыку из Вконтакте по плейлисту, который совместно составляют пользователи.
Немного предыстории
Как и в любой группе индивидуумов, в нашем коллективе (коллектив как коллектив, таких полно по всей стране, и я, как и многие, работаю в команде разработчиков) каждый разработчик хочет слушать музыку согласно своим предпочтениям. Обычно, конечно, это решается индивидуальными наушниками. Но если есть общие колонки, то можно и совместно слушать. Мы, например, долгое время пользовались mocp на общей машине для создания музыкального фона в офисе. Каждый по ssh мог поставить песню.
Однажды прошлым летом Илья (другой разработчик из нашего коллектива, не я) решил попробовать node.js. А какой смысл пробовать, если нет интересной задачи, которую сам себе поставил? И написал за несколько вечеров прототип приложения. И мы стали им пользоваться и забыли про mocp. А в эти новогодние выходные дни мне также захотелось приобщиться к тренду, и я немного переписал приложение.
А почему HuGu?
Сначало было Hurdy-Gurdy (Колёсная лира, или попросту шарманка), но для краткости стали именовать HuGu.
Как работает HuGu?
Под node.js запускаются веб-сервер и websocket-сервер. Каждый пользователь заходит на страницу веб-сервера и авторизиуется через OAuth Вконтакте к приложению HuGu. После авторизации пользователь может получить свой плейлист Вконтакте и из него добавить композиции в плейлист.
Плейлист устроен по принципу очереди. На сервере мы используем mplayer для проигрывания mp3-файлов. Mplayer по очереди проигрывает файлы, добавленные пользователями. Также можно изменять громкость из веб-интерфейса (работает через amixer).
Мы это сделали для себя?
Конечно, прежде всего мы сами пользуемся HuGu. Обычно в офисе находится 5-6 разработчиков, каждый из которых периодически предлагает послушать разные композиции (на прошлой неделе мы слушали разные 8-битные мелодии).
Как-то незаконченно выглядит приложение…
Ну, еще недавно оно вообще вот так выглядело:
Но работа продолжается. В JavaScript’е — «я еще не волшебник, я только учусь», поэтому размещаю информацию о HuGu для получения фидбека. Отвечу на любые вопросы, приму во внимание замечания, воспользуюсь рекомендациями. Особенно касающиеся кода.
Почему музыка только из Вконтакте?
Вконтакте имеет удобное API для получения музыки. У многих там есть подборки любимых композиций, из которых можно быстро накидать музыки для прослушивания в офисе. Хотя, конечно, иногда Вконтакте тормозит или даже бывает недоступен — тогда приходится искать музыку на других ресурсах или на локальной машине, но это всё-таки редко происходит.
Кстати, в качестве эксперимента добавлен небольшой список радиостанций. Ибо иногда замечаешь, что сидишь в тишине или просто не знаешь, что хочешь послушать.
Но OAuth Вконтакте?
Тут самая большая неприятность, т.е. при создании веб-приложения Вконтакте, коими являются клиенты в веб-браузере, приходится указывать в настройках приложения во Вконтакте ip-адреса и/или домены, куда будет сделан редирект.
Два варианта решения проблемы:
1. Создать свое приложение, в нем указать свой ip-адрес. В настройках HuGu указать id приложения Вконтакте.
2. Использовать домен music.local, который я добавил в свое приложение. Но его необходимо либо прописывать в hosts на каждой использующей машине, либо задействовать свой DNS-сервер.
Либо использовать другую сокровищницу музыки? Варианты?
А почему композиции после проигрывания удаляются из плейлиста?
Так сложилось исторически. Плейлист как очередь удобен тем, что проигранные композиции удаляются, и нам больше не мешают, каждый видит, что скоро подойдет очередь для той или иной композиции.
Но вот моей супруге это не очень нравится, ей хочется как в классическом WinAmp’е: плейлист и шаффл. А как вам было бы удобнее?
Т.е. HuGu — это клиент-серверное приложение?
Ну, да. На сервере работает node.js с нашим приложением, к серверу также подключены колонки. А все пользователи через браузер подключаются к серверу и там проигрывают музыку.
Сервером может быть и чей-то рабочий компьютер, или специализированный компьютер. Мы, например, используем nettop (Foxconn Netbox DL-535W) с Ubuntu Server. А дома у меня HuGu стоит на моем рабочем настольном ноуте (также Ubuntu), к которому подключены колонки, а супруга со своего ноута (Windows), лёжа на диване, ставит музыку. Очень удобно.
А как еще можно использовать HuGu?
Скоро будут корпоративные вечеринки по случаю влюбленных, настоящих мужчин и прекрасных женщин — можно предложить каждому со своего смартфона поставить свою любимую песню, а не как это обычно происходит: «Эй, диджей! Поставь мой компакт-диск!».
А еще можно не ставить в кухню отдельные колонки и не стримить туда аудиопоток, как это делают умельцы. А просто с планшета из кухни прибавлять громкость на колонках в комнате.
Где скачать?
GitHub: https://github.com/antirek/hugu
P.S. Желаю всем отличной совместной разработки.
Часто задаваемые вопросы — JuniperBot
Заикается/отключается музыка или радио. Что делать?
У данной проблемы может быть несколько причин:
- Высокая нагруженность музыкального сервера: Степень нагрузки отображается в панели воспроизведения в самом дискорде и на странице Статистики. Если нагрузка менее 80%, проблема не в этом.
- Проблемы с соединением до голосового шлюза Discord или его высокая нагруженность: Между Вами и ботом есть узел, называемый голосовым шлюзом. У Discord их несколько и каждый привязан к выбранному в настройках голосового канала Региону. Проблемы могут быть как между шлюзом и ботом, так и между Вами и этим шлюзом. Пробуйте менять регион голосового канала и смотреть будут ли улучшения на каком-нибудь из них (полностью перезапуская при этом воспроизведение музыки).
- Проблемы с соединением бота до источника музыки: По независимым от нас причинам имеют место быть проблемы с соединением до источника музыки (YouTube, Яндекс.Музыка, радиостанции) когда сам источник музыки тормозит или нестабильное соединение до него. Проблема может нести как временный, так и постоянный характер и преимущественно для радиостанций. К сожалению, мы не компания с огромным бюджетом и не можем иметь по музыкальному серверу в каждой точке мира, чтобы обеспечивать стабильное соединение ко всему что только возможно. Если это происходит, пробуйте менять радиостанцию, воспользоваться YouTube вместо Яндекс.Музыки или наоборот.
Какие разрешения необходимы для доступа к панели управления ботом?
Доступ к панели управления ботом могут получить только владелец сервера и администраторы (пользователи, у которых есть роль с правом «Администратор»).
Внимание
Будьте внимательны, так как участник с этими правами способен изменить любой параметр в панели управления. Он сможет даже получить роли выше собственных при желании.
Что за печеньки в рангах, профиле участника, странице рейтинга?
Просто счетчик, карма, система репутации. Чтобы повысить этот счетчик, можно:
- Написать сообщение с обращением к участнику и эмоцией печеньки 🍪, например:
@JuniperBot :cookie:
- Добавить реакцию 🍪 к сообщению этого участника.
Что такое кластер и звено?
Звено — часть JuniperBot, которая отвечает за обработку определённого набора серверов;
Кластер — физический сервер, который отвечает за обработку определённых звеньев.
Можно ли воспроизвести сохраненный ранее плейлист бота и как это сделать?
Для поддержавших есть такая возможность, можно просто передать ссылку на плейлист командой !плей
:
!плей https://juniper.bot/playlist/99eb328f-d970-4265-ae6f-07c1d7ac8682
Ссылки на плейлист всегда отображаются в сообщениях о воспроизведении после нажатия кнопки сохранения плейлиста.
Будет ли функционал экономики?
Не будет. Совсем. Никак. Никогда. Используйте наш шаблонный движок, и сделайте нужный вам функционал сами.
Будет ли поддержка плейлистов и музыки ВКонтакте?
Нет. Скажите спасибо жадным копирастам, из-за которых ВКонтакте закрыл публичный доступ к инструментарию музыки.
Как рассчитать количество опыта на тот или иной уровень?
Изучите статью Опыт в рейтинге.
Как настроить экспорт постов из группы ВКонтакте, уведомления о новых видео от YouTube каналов или оповещение о начале трансляции на Twitch?
В панели управления вашим сервером в разделе «Публикации и подписки» нажмите на плюсик в правом нижнем углу, выберите интересующую Вас платформу и следуйте дальнейшим инструкциям.
Как ограничить использование команды по роли или в каналах?
Изучите статью Пользовательские команды. Настройки прав доступа применимы и для встроенных команд.
У данной проблемы может быть несколько причин:
- Вы проверяете это на боте. Джунипер не выдаёт начальную роль и не пишет приветственное сообщение ботам;
- У бота нет прав на изменение ролей участников;
- Начальная роль выше роли бота из-за чего бот не может её выдать по иерархии;
- На сервере включен «Отбор участников» (Membership Screening) и участник не согласился с правилами Вашего сервера.
У данной проблемы может быть несколько причин:
- Баг клиента дискорда. На деле бот снял роль и в аудите дискорда это можно проверить. Чтобы роли участника обновились нужно перезапустить его (Ctrl + R).
- У бота нет прав на изменение ролей участников;
- Начальная роль выше роли бота из-за чего бот не может её выдать по иерархии.
В панели управления в разделе «Общие» в настройках сообщений есть опция «Удалять сообщения об успешных операциях». Введите туда 0
если хотите, чтобы эти сообщения не удалялись.
На каком языке программирования написан бот?
Бот написан на Kotlin и Java.
У меня есть идея. Где я могу её предложить?
Вы можете предложить свою идею на нашем фидбэке.
Transcribe+ Slow Down Music в App Store
С помощью Transcribe+ вы можете легко учить музыку на слух. Это позволяет вам легко изменить скорость
и высоту звука любой звуковой дорожки. Поднимите свое музыкальное путешествие на новый уровень уже сегодня!
Transcribe+ использует возможности технологии замедления темпа и изменения высоты тона, а также управляемую искусственным интеллектом вокальную, барабанную, басовую и инструментальную изоляцию. Это слияние создает беспрецедентный опыт обучения для тех, кто учит музыку на слух. Transcribe+ — красиво оформленное интуитивно понятное приложение, которое позволяет вам сосредоточиться на определенных частях музыки, которую вы изучаете.
Легко регулируйте скорость и тон с помощью простых жестов. Коснитесь формы волны, чтобы приостановить воспроизведение, затем перетащите, чтобы слушать в выбранном темпе, даже по одной ноте за раз! Отмечайте структуры песен или добавляйте личные заметки, используя настраиваемые флажки на волновой форме. Повторно практикуйте определенные разделы, определяя зацикленные области.
Основные характеристики:
Скорость регулируется от 0,25x до 2x без изменения шага.
Простое изменение высоты тона на ±12 полутонов.
Ползунок тонкой настройки высоты тона с шагом 0,01 полутона.
Интерактивный интерфейс формы волны для просмотра в реальном времени и прослушивания нота за нотой.
Объединяйте и практикуйте лупы в одном месте с Loop View.
Smart Loops могут автоматически увеличивать скорость или изменять высоту тона с каждым циклом.
Загрузить видео для лучшего визуального понимания.
Интуитивная панель инструментов эквалайзера для тонкой настройки частоты и дополнительных возможностей изоляции.
Отметьте и аннотируйте сигналы для эффективного просмотра.
BPM автоматически определяется на большинстве дорожек.
AI Vocal Removal & Stems Separation:
Удалите или изолируйте вокал, бас, ударные или инструментальные партии на ЛЮБОЙ дорожке (без DRM). Используйте эту функцию, чтобы сосредоточиться на интересующих вас инструментах, или создайте дорожку для воспроизведения. Экспортируйте любые комбинации стэмов и микшируйте их по своему усмотрению!
Просмотр петли с помощью «Smart Loops»:
Просмотрите все свои петли в представлении петли. Просто коснитесь значка цикла, чтобы запустить или остановить цикл. Вы можете установить параметры для отсчета метронома перед каждым циклом или автоматического увеличения скорости или смещения высоты тона при каждом повторении.
Панель инструментов эквалайзера, микшер каналов и ползунок тонкой настройки:
Дальнейшая изоляция или улучшение партии, которую вы слушаете, с помощью панели инструментов эквалайзера или микшера стереоканалов. Вы также можете точно настроить общую высоту тона дорожки с шагом в 1 цент.
Поддержка Apple Music:
Transcribe+ интегрируется с Apple Music, позволяя вам регулировать темп и добавлять флаги и петли к любой песне в вашей медиатеке Apple Music. Обратите внимание, что из-за ограничений потоковой передачи музыки DRM некоторые функции недоступны для дорожек Apple Music.
iCloud Sync:
Все ваши флаги, петли и настройки для каждой загруженной вами дорожки автоматически сохраняются в iCloud. Эти настройки также автоматически синхронизируются на всех ваших устройствах.
Дополнительные возможности:
● Разделите дорожки на 2 или 4 части (вокал, бас, ударные, инструменты).
● Легко экспортировать петли или целые дорожки.
● Многозадачность с разделением экрана для эффективного использования iPad.
● 11 привлекательных тем с элегантными значками.
● Сочетания клавиш, совместимые с педалями, для более удобного управления во время занятий.
● Интеграция с популярными облачными хранилищами.
Transcribe+ — это мощное универсальное приложение для расшифровки, которое упрощает расшифровку аудио- и видеозаписей. Благодаря передовым инструментам изоляции, интуитивно понятному интерфейсу и надежным параметрам настройки это незаменимый инструмент для всех, кто хочет транскрибировать и учить музыку на слух.
4 лучших приложения для замедления музыки [Руководство на 2023 год]
- Дом
- Киномейкер
- 4 лучших приложения для замедления музыки [Руководство на 2023 год]
Зои | Последнее обновление
Замедление музыки — полезный способ для тех, кто хочет разучить новые песни или отработать записанную музыку на слух. В этом посте я собрал 4 лучших приложения для замедления музыки. Проверьте этот пост прямо сейчас!
Вы можете захотеть расшифровать музыкальное произведение и сыграть его на своем инструменте, когда слушаете незаписанную музыку. Чтобы помочь вам быстро транскрибировать музыку, вот несколько приложений для замедления музыки (чтобы замедлить видео, попробуйте MiniTool MovieMaker).
4 лучших приложения для замедления музыки
- Audacity
- Anytune
- Transcribe!
- Проигрыватель TimeStretch
#1. Audacity
Audacity — это бесплатный аудиоредактор с открытым исходным кодом, разработанный добровольцами. Он предлагает вам возможность изменять темп музыки без изменения высоты тона. Помимо замедления воспроизведения звука, Audacity позволяет удалять вокал из песни, разделять звук, объединять звук, уменьшать фоновый шум из звука и т. д.
Вот как замедлить песню с помощью Audacity.
- Загрузите и установите Audacity.
- Запустите программу, нажмите Файл и выберите Открыть… для импорта музыкальной дорожки.
- Нажмите « Ctrl + A », чтобы выбрать дорожку.
- Щелкните Эффект и выберите Изменить темп… , чтобы замедлить песню. Вы также можете выбрать Change Speed… , но это повлияет на темп и высоту тона.
- Переместите ползунок влево, чтобы сделать его медленнее. Прослушайте песню и нажмите ОК .
- Затем перейдите к File > Export > Export as MP3 , чтобы сохранить измененную песню.
#2. Anytune
Anytune — популярное приложение для замедления музыки, которое помогает выбрать идеальный тон и научиться играть на слух. Anytune может замедлять музыку без изменения высоты тона и обеспечивает выдающееся качество звука. Другие замечательные функции включают в себя растяжение по времени, изменение высоты тона, метки и петли и т. д. Anytune теперь доступна на iOS и macOS.
Выполните следующие действия, чтобы научиться замедлять музыку.
- Откройте приложение Anytune после его установки на вашем устройстве.
- Импортируйте музыкальный файл в Anytune.
- Затем нажмите « – », чтобы уменьшить скорость воспроизведения.
- Экспорт музыкальной дорожки.
#3. Расшифруй!
Расшифруй! — еще одно медленное музыкальное приложение, доступное для Windows, macOS и Linux. Это поможет вам практиковать новые песни и транскрибировать музыкальные записи. Это приложение также включает ускоренную транскрипцию, маркеры и аннотации, изменение высоты тона, фильтр эквалайзера и многое другое. Расшифруй! не является бесплатным, но предлагает 31-дневную бесплатную пробную версию.
Вот руководство по замедлению музыки.
- Загрузить Расшифруй! и завершите установку.
- Откройте его и добавьте музыкальный файл в Transcribe!
- Затем вы можете управлять скоростью воспроизведения с предустановками 25%, 35%, 50%, 70% и 100%. Или переместите ползунок влево внизу.
- Затем сохраните музыкальный файл.
#4. TimeStretch Player
Это онлайн-инструмент для замедления музыки, который позволяет ускорять/замедлять музыку и изменять высоту и тональность музыки.