Музыка на удаленке — утилита для джема с друзьями по сети с нестандартным подходом к работе с задержками

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.

Мы уже рассказывали об утилите FarPlay, которая позволяет передавать аудио с минимальными задержками и писать музыку с коллегами по цеху, находящимся за сотни километров. Сегодня продолжим тему и поговорим о Ninjam, авторы которого нашли интересный подход к проблеме рассинхронизации звука.

Фотография: Calum MacAulay. Источник: Unsplash.com
Фотография: Calum MacAulay. Источник: Unsplash.com

Что такое Ninjam

Это — open source приложение записи треков через интернет. Исполнители могут петь, играть на фортепиано, гитаре, саксофоне или любом другом инструменте — главное, чтобы его звук можно было записать на компьютере. Проект развивает компания Cockos Incorporated, которой принадлежат права на цифровую звуковую рабочую станцию REAPER. В прошлом отдельные члены команды работали над такими решениями, как Gnutella (потомок Napster), Kaillera и даже Winamp.

Ninjam использует формат OGG Vorbis для сжатия звука, а затем отправляет его на сервер, роль которого играет компьютер одного из участников онлайн-джема. Этот сервер рассылает аудиопоток другим участникам сессии в одной виртуальной комнате (по аналогии с чатами). Для комфортной игры четырёх человек серверу достаточно исходящего канала в 768 Кбит/с. Для восьми персон этот показатель составляет 3 Мбита/с. Руководство по настройке сервера можно найти на официальном сайте.

Вопрос задержек

Главная проблема любого приложения для совместной игры на муз. инструментах через интернет — латентность. Она сбивает с толку, мешает исполнять трек. Подавляющее большинство приложений — в том числе уже упомянутый FarPlay — стремится сократить задержку. Авторы Ninjam пошли иным путем и, наоборот, её увеличили.

Фотография: Derek Truninger. Источник: Unsplash.com
Фотография: Derek Truninger. Источник: Unsplash.com

Клиент Ninjam записывает и передает звук цикличными интервалами — например, в 15 секунд. То есть каждый музыкант слышит (и играет параллельно) предыдущим интервалам, записанным другими участниками джема. Пользователи говорят, что первое время привыкнуть к такой схеме сложно, но потом все становится на свои места.

И кое-что еще

В контексте утилиты Ninjam стоит упомянуть открытый проект Jamtaba для подключения к серверам Ninjam. По сути, это графический интерфейс, заточенный под поиск комнат для совместного музицирования с участниками комьюнити по всему миру.

Утилита также предлагает компактный набор настроек для управления громкостью и балансом отдельных музыкальных инструментов. Автор поставляет утилиту as is, то есть без технической поддержки, но желающие могут найти исходный код на GitHub.


Больше программных инструментов для работы с музыкой у нас в блоге:

  • Кто реализовал обмен данными по WebRTC с помощью звука

  • ОС для работы со звуком — что она умеет

  • Библиотеки для цифровой обработки сигналов на C++


Источник: https://habr.com/ru/company/audiomania/blog/662313/


Интересные статьи

Интересные статьи

Продолжаем «изобретать» домашний медиацентр с помощью Kubuntu и KODI.Сегодняшняя публикация будет совсем короткая, но надеюсь многим полезная. Особенно тем, кто не имеет ...
Где-то на просторах мультивселенной…Представьте на минуту, что вы капитан Сиракузии, которая в 239 году до н. э. приближается к острову Фарос, что близ города Александрии...
Привет, Хабр! Пока за окном на солнце греются котики, проносится лето, сходит на нет (или нет?) коронавирус, мы всей контент-студией четвертый месяц работаем удаленно. Все шутки о...
Знакома ли вам ситуация: решили провести вечер дома и посмотреть какое-нибудь кино в хорошей компании, но, попытавшись определиться, какое — провели за выбором столько времени, что на кино его не...
Сегодня мы поговорим о перспективах становления Битрикс-разработчика и об этапах этого пути. Статья не претендует на абсолютную истину, но даёт жизненные ориентиры.