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

Мы уже рассказывали об утилите 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.

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

© Habrahabr.ru