Музыка/ О задержках звука в eJamming

28.03.2011

Первый вопрос, который возникает у большинства людей при фразе «Играть вместе музыку в реальном времени через Интернет» — а как быть с задержками звука? Любой, кто хоть раз пытался по скайпу выпить, в потом спеть дуэтом «Ой, мороз, мороз», знает, что это почти невозможно; все время кажется, что другой человек поет не в такт.

Даже если бы мы обладали идеальными каналами связи, если бы отсутствовали задержки при кодировании и декодировании звука — все равно в наблюдаемой нами части Вселенной предельная скорость распространения сигнала составляет около 300 тыс. км в секунду. А это значит, что если один человек находится в Москве, а другой в Нью-Йорке, то расстояние между ними будет примерно 7500 км, минимальное время передачи сигнала на такое расстояние составляет 25 мс. Такая задержка уже заметна на слух. В реальности все еще хуже, задержка с Америкой составляет около 100 мс. Как же эта проблема решена в eJamming?

Принципиально — никак. Но есть множество хитростей. Во-первых, создатели eJamming хорошо потрудились над технической частью, чтобы уменьшить непосредственно величину задержки. Они используют быстрый кодек для аудио и peer-to-peer технологию, музыканты связываются непосредственно друг с другом без промежуточных серверов. Именно по этой причине для использования eJamming необходим внешний IP адрес и открытый входящий порт. Средняя задержка с Европой получается 50 мс, с Америкой и Канадой — 100 мс. Если же играть с людьми из своего города, особенно с развитой сетью Интернет, как например в Москве, то можно добиться задержки в 1-2 мс, что уже неразличимо на слух. В этом случае возможна совместная игра в реальном времени как «в живую».

Во-вторых, при игре, скажем, вдвоем, один из играющих не ощущает наличие задержки совсем. Поясню. Допустим, один играет на ударных и задает ритм. Его звук доходит до второго музыканта и тот играет с ним в такт. Так как у второго музыканта нет другого источника синхронизации кроме ударных, ему кажется, что он играет точно в такт безо всяких задержек. Однако его звук возвращается к барабанщику с задержкой, и он ее уже слышит. Но и «страдания» барабанщика можно свести на нет, если партия второго музыканта является не сильно ритмичной, скажем, какая-нибудь расплывчатая импровизация. Тогда барабанщик просто не сможет понять, то ли его партнер играет не в такт, то ли это просто такое синкопированное соло. Главное в такой схеме, чтобы задающий ритм человек в плане ритма слушал только себя и не пытался подстроиться под партнера. Другой пример, когда один играет тему на фортепиано, а ему подыгрывает гитарист. Гитарные импровизации обычно настолько неритмичны, что для пианиста все будет выглядеть очень естественно, и сдвиг по фазе он не заметит.

Продолжением этой схемы является чередование ведущего. То есть сначала ритмичную партию играет один музыкант, а через некоторое время второй. Тогда каждый из них получит возможность поиграть без задержки. То есть тот, кто в данным момент солирует, тот и получает всю полноту удовольствия от джема. Что, собственно, логично.

Можно играть, и не «прячась» от задержек, но для этого нужна некоторая тренировка. Дело в том, что наш мозг очень гибкий и может приспособиться у любым условиям. Можно играть, не сбиваясь, слыша, как другие люди играют в том же темпе, но со сдвигом по фазе. Это аналогично пению каноном. При определенной сноровке и от такого способа игры начинаешь получать удовольствие.

Но в любом случае задержки являются платой за возможность, не выходя из дома, поиграть с музыкантами по всему миру. Плата эта весьма умеренна, но если для вас она неприемлема, и вы получаете удовольствие только от полностью синхронной ритмичный игры — то джемы по Интернету скорее всего вам не подходят.




  1. Да ну нафик, а если ритм состоит из бас-барабасов-перкуссий-мандалины?

    • Столько народу eJamming не потянет :) Там максимум 4 человека в сессии.