Введение
NINJAM расшифровывается как Novel Intervallic Network Jamming Architecture for Music (Новая интервальная сетевая архитектура джеминга для музыки). Программное обеспечение и системы, составляющие NINJAM, предоставляют механизм обмена аудиоданными через интернет без привязки ко времени в реальном масштабе, с системой синхронизации, основанной на музыкальной форме. Это позволяет музыкантам "джемить" (импровизировать) вместе через интернет и стало основой концепции джеминга в "виртуальном времени". Изначально разработано Бреннаном Андервудом, Джастином Франкелем и Томом Пеппером.
Принцип
Совместное создание музыки в различных жанрах естественным образом опирается на способность музыкантов играть синхронно друг с другом. Чрезмерная задержка между участниками нарушает естественное чувство ритма. Стандартные сетевые технологии не обеспечивают достаточно низкую задержку для обмена данными даже в пределах одного города, а скорость света делает это невозможным на больших расстояниях. Чтобы приблизиться к совместной работе без задержек, NINJAM намеренно увеличивает задержку, откладывая воспроизведение полученного аудио до момента его синхронизации с другими участниками. Величина задержки зависит от музыкальной формы. Эта синхронизация позволяет каждому музыканту слышать остальных и играть вместе с ними. NINJAM определяет форму в терминах "интервала" – количества долей, которые записываются перед синхронизацией с другими участниками. Например, при интервале в 16, от каждого музыканта записывается четыре такта музыки, после чего они воспроизводятся для всех остальных.
Прием
Процесс был описан в Wired как "безупречный" и "предназначенный для музыкантов, любящих совместную работу в реальном времени". В MIT Technology Review пользователей программного обеспечения называют "действительно преданными" благодаря его статусу бесплатного и открытого исходного кода. Другие производители музыкальной продукции добавили поддержку NINJAM; компания Expert Sleepers, поставщик электронного музыкального оборудования и программного обеспечения, добавила поддержку плагинов для NINJAM в 2006 году.
Технические основы
Каждый участник сеанса NINJAM передает аудиоданные от своего клиента на сервер через TCP/IP-соединение к определенному порту (обычно в диапазоне от 2049 и выше, в зависимости от хоста). "Клиент" в данном случае – это компонент, который участник использует для подключения к серверу NINJAM, кодирования и передачи собственного аудиопотока, приема и декодирования потоков других участников, а также для работы с чатом (подобным IRC). Каждому участнику также потребуется способ подачи аудиоинформации в клиент NINJAM – либо через использование клиента в качестве плагина в DAW, либо через автономную версию с прямым аудиовходом. Данные каждого клиента синхронизируются с распределенными по сети часами. Эти часы затем используются для распространения данных между всеми клиентами, чтобы они могли воспроизводить все входящие потоки синхронно. Сервер выполняет лишь функции управления соединениями, чатом и потоковой передачей данных.
Общие соображения
Все клиенты отправляют данные на сервер с уровнем 0 дБ, независимо от настроек локального мониторинга. При настройке уровень "Local" (локальный) в клиенте NINJAM устанавливается на 0 дБ. Настройка "Local" не влияет на громкость передаваемых данных. Ползунок с надписью "Local" влияет только на то, что слышит сам пользователь, а не на то, что слышат другие участники. Пользователю необходимо регулировать уровень входного сигнала *до* клиента NINJAM в цепи обработки сигнала, чтобы повлиять на то, что слышат удаленные музыканты. В аудиоканале ограниченный динамический диапазон, поэтому рекомендуется не допускать превышения уровня сигнала выше 12 дБ и устанавливать желаемый уровень громкости около 18 дБ; это оставляет пространство в миксе для других участников.
Эффект VST привязанный к REAPER
Эффекты VST — распространенный вариант (судя по количеству сообщений на форумах поддержки NINJAM), но для их использования пользователю необходимо установить REAPER.
Плагин с открытым исходным кодом
Создан на основе автономной версии с открытым исходным кодом, работает в хостах Mac AU. Следует учитывать те же моменты, что и при использовании VST-эффекта в REAPER, описанного выше.
Автономные клиенты с открытым исходным кодом
Автономные клиенты доступны для Windows, macOS и Linux. Поскольку версия для Linux работает с JACK, аудиосигнал может быть направлен в неё из любого JACK-клиента. На Windows использование с виртуальными аудиоисточниками затруднено из-за отсутствия удобного механизма маршрутизации. Поэтому она больше подходит для работы с реальными инструментами, предлагая более простое решение по сравнению со сложностью запуска DAW только для доступа к NINJAM.
Требования к настройке сервера и сервера
Более подробные инструкции по настройке и конфигурации доступны на веб-сайте NINJAM.
Пропускная способность
По словам Cockos, основным требованием к полосе пропускания является исходящая полоса пропускания. Для сеанса с 4 участниками потребуется примерно 768 кбит/с исходящей и 240 кбит/с входящей полосы пропускания. Для сеанса с 8 участниками потребуется примерно 3 Мбит/с исходящей (и 600 кбит/с входящей) полосы пропускания.
Win32
Windows 2000 или более поздняя версия, процессор 500 МГц, оперативная память 4 МБ, NINJAM v0.06
OS X
OS X 10.3 или новее, процессор G3. Оперативная память 4 МБ. NINJAM v0.01a ALPHA для OS X.
Линукс
Утверждается, что были созданы Jamtaba, Zenjam и Ninjam (js). На странице Cockos Ninjam указана страница GitHub justinfrankel/ninjam как "официальное зеркало GitHub", и на этой странице отображён коммит конца апреля 2020 года.
Содержание
Серверы NINJAM, размещенные Cockos, записывают и индексируют свой контент в NINJAM AutoSong под лицензией Creative Commons; музыкальные файлы хранятся в The Internet Archive. По состоянию на январь 2010 года было более 23 000 часов контента, что составляет примерно 1,2 ТБ. На 2021 год запись продолжается.