LINUX.ORG.RU
ФорумTalks

Хочу изящного решения


0

0

В общем, конечная цель - коллективно играть музыку в группе через инет. Допустим есть пара гитаристов с софтварными процессорами, клавишник с каким-нибудь софтварным синтезатором, певец ртом с микрофоном, ещё какой-нибудь оболтус с чем-нибудь. Нужно сделать так, чтобы каждому на комп поставлялась полная (и конечно одинаковая) картина сведённого звука. Свои соображения выкладывать не буду, дабы не затуманивать ими идею.

И, да, решение обязательно должно быть изящным, красивым и сексуальным.

★★★★★

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

jcd ★★★★★
() автор топика

отдельный сервер, микшируюзий входящие потоки в один и возвращяющий общий потом каждому члену?

Zhbert ★★★★★
()
Ответ на: комментарий от Zhbert

*микширующий, *возвращающий, *поток

З.Ы. Не обращая внимания на очепятки, пишу быстро =)

Zhbert ★★★★★
()
Ответ на: комментарий от theos

>А типа интернет у всех толстый, стабильный и с нулевым пингом?

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

Zhbert ★★★★★
()
Ответ на: комментарий от jcd

А, йопта, скайп же! Забабахайте конференцию и будет вам щщастье.

Zhbert ★★★★★
()
Ответ на: комментарий от theos

>А типа интернет у всех толстый, стабильный и с нулевым пингом?

конечно нет, мы не сферического коня обсуждаем :) скорость, скажем, 128 кб\с.

отдельный сервер, микшируюзий входящие потоки в один и возвращяющий общий потом каждому члену?


точнее, друг мой, точнее. нужны конкретные технологии и такие методы их применения, чтобы после их применения всё заработало.

jcd ★★★★★
() автор топика
Ответ на: комментарий от xnick

>не взлетит из-за задержек обработки сигнала и задержек передачи данных по сети

если бы на этих словах всегда и всё заканчивалось, мир ИТ был бы совсем другим :)

jcd ★★★★★
() автор топика
Ответ на: комментарий от jcd

>точнее, друг мой, точнее. нужны конкретные технологии и такие методы их применения, чтобы после их применения всё заработало.

skype как вариант

Zhbert ★★★★★
()
Ответ на: комментарий от jcd

к слову, я через скайп с одним челом играл на гитарах, было нормально. Даже задержек особо не было. Канал у меня толст, у него хз.

Zhbert ★★★★★
()

Ваша идея - утопия. Имо, даже с довольно неплохим и, даже, идеальным(!) каналом, не работая в одной «студии»(:)) получить на выходе достойный продукт не получится.

Insomnium ★★★★
()
Ответ на: комментарий от jcd

просто я, может в силу серости своей или еще каких причин, слабо себе представляю процесс лабания музыки (без дирижера) с задержкой звука от коллег хотя бы на 0.1-0.2 секунды

xnick
()
Ответ на: комментарий от Zhbert

>к слову, я через скайп с одним челом играл на гитарах, было нормально. Даже задержек особо не было. Канал у меня толст, у него хз.

хех, не) вся хитрось в том, что качество звука должно быть таким, чтобы можно сразу в mp3 и на альбом.

jcd ★★★★★
() автор топика
Ответ на: комментарий от jcd

>вся хитрось в том, что качество звука должно быть таким, чтобы можно сразу в mp3 и на альбом.

просто я, может в силу серости своей или еще каких причин, слабо себе представляю процесс лабания музыки (без дирижера) с задержкой звука от коллег хотя бы на 0.1-0.2 секунды

Второй пост полностью опровергает первый.

Zhbert ★★★★★
()
Ответ на: комментарий от xnick

>просто я, может в силу серости своей или еще каких причин, слабо себе представляю процесс лабания музыки (без дирижера) с задержкой звука от коллег хотя бы на 0.1-0.2 секунды

скажем, как происходит синхронизация часов? статистическое тестирование скорости, вычисление задержек и последующее изменение передаваемого времени с учётом задержек (вроде так).

jcd ★★★★★
() автор топика
Ответ на: комментарий от name_no

Не верю, что есть решение.

даже не, я подумал. его не может быть в принципе. смотри. допустим, вас двое. допустим, вам нужно одновременно ударить по тарелке. ты делаешь первые два удара, третий удар делаете одновременно. независимо от реализации второй участник получит твой третий звук (как и первые два) с задержкой относительно реального времени удара. поскольку он синхронизируется на сигнал, полученный с задержкой, ты услышишь его удар как минимум после того, как он услышит твой удар. ты не сможешь играть сам и слышать одновременно то, что играет он - для этого ему пришлось бы играть с опережением.

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

name_no ★★
()
Ответ на: комментарий от jcd

>скажем, как происходит синхронизация часов? статистическое тестирование скорости, вычисление задержек и последующее изменение передаваемого времени с учётом задержек (вроде так).

синхронизироваться реально. но, внимание вопрос, как ты узнаешь что я буду играть в будущем?? =))

xnick
()
Ответ на: комментарий от jcd

вся хитрось в том, что качество звука должно быть таким, чтобы можно сразу в mp3 и на альбом.

ну ведь невозможно.

name_no ★★
()
Ответ на: комментарий от name_no

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

+1

Zhbert ★★★★★
()
Ответ на: комментарий от xnick

синхронизироваться реально.

да, но каково это, когда ты играя на инструменте получаешь звук с задержкой? Ты представь себе, что ты нажимаешь на клавишу на рояле, а звук появляется только через 0.1 сек. Ты будешь играть всё медленнее и медленнее с каждой нотой )))

name_no ★★
()

Вам проще сыграть каждому свою партию под готовый ритм, и потом свести это дело в мрз.

Zhbert ★★★★★
()
Ответ на: комментарий от Zhbert

Вам проще сыграть каждому свою партию под готовый ритм, и потом свести это дело

как в общем-то и делается даже в локальной студии.

name_no ★★
()
Ответ на: комментарий от name_no

>да, но каково это, когда ты играя на инструменте получаешь звук с задержкой? Ты представь себе, что ты нажимаешь на клавишу на рояле, а звук появляется только через 0.1 сек. Ты будешь играть всё медленнее и медленнее с каждой нотой )))

угу, что для того, чтобы все корректно синхронизировать, нужно знать в _текущий_ момент что будет сыграно в _будущем_.

ты об этом написал, но более подробно

xnick
()
Ответ на: комментарий от name_no

>как в общем-то и делается даже в локальной студии.

ну да, только это будет удаленка.

Zhbert ★★★★★
()

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

jcd ★★★★★
() автор топика
Ответ на: комментарий от jcd

А если задержка от каждого будет разной? Несуразица выходит. Хотя смотря, что играть. Если полтора аккорда и невнятный хрип - покатит. Если что-нибудь адекватное, с более менее быстрым соляком гитары, то даже миллисекунды влияют, ибо длительность нот в восприятии других будет меняться.

Zhbert ★★★★★
()

Задержки

это в кваке они не так критичны
а в музыке полное гэ получится

ist76 ★★★★★
()
Ответ на: комментарий от jcd

свой инструмент будет звучать локально, а инструменты других - приходить и приходить

либо получится х***ня, либо ничего не получится.

name_no ★★
()

Вклинюсь ради справедливости. Не знаю где и как, но это возможно( и чем дальше, тем возможнее! Прогресс, пыщпыщ).

Два студента московского вуза сделали это для концерта какой-то группы на джаз-фестивале в Коктебеле - некоторые члены группы были собственно на фестивале в Крыму, некоторые - в Москве, деталей не помню. Было вроде или в 2004, или в 2006. Сообщалось, что это первый такой(удачный?) экспиренс.

Правда там ничего не говорили о каналах, но если подумать, вряд ли кто-нибудь специально прокладывал бы толстый линк из такого зажопинска, как Коктебель.

volh ★★
()
Ответ на: комментарий от volh

готов поспорить, что те двое в зажопинске не слышали/не слушали, что играют те, кто на фестивале, а те на фестивале подстраивались вод зажопинских. UDP.

name_no ★★
()
Ответ на: комментарий от name_no

>готов поспорить, что те двое в зажопинске не слышали/не слушали, что играют те, кто на фестивале, а те на фестивале подстраивались вод зажопинских.

Эт так и было, стопудово. Первые играю непрерывно свои партии, вторй просто подстраиваются к слышимому ими звуку и играют свое.

Zhbert ★★★★★
()
Ответ на: комментарий от volh

В джазе не подстраиваются!!111

а, то есть они так в разнобой и лабали? Ну, тогда проблемы нет )))

name_no ★★
()
Ответ на: комментарий от volh

>В джазе не подстраиваются!!111

Ага, а еще там только девушки (С)

Zhbert ★★★★★
()
Ответ на: комментарий от Zhbert

>А если задержка от каждого будет разной?

А вот это точно решаемая проблема. Вместе с муз. пакетами отправляем какие-нибудь временные маркеры (предварительно синхронизировав часы), и если в течение некоторого заданного промежутка времени (скажем 20 мс) от кого-то не пришёл пакет - больше его не принимаем, а по принятии выкидываем. Обрывание части чьего-то звука, зато отсутствие задержек.

Два студента московского вуза сделали это


Я даже больше скажу: я слышал, что эта задача выполнялась на каком-то турнире по программированию и была успешно решена нашими кодерами (пруфа не будет, так как рассказывал это один профессор из нашего универа).

Итак, изящного решения на основе существующих технологий не предвидится?

jcd ★★★★★
() автор топика

Звук надо будет передавать разве что от певца ртом. От остальных можно передавать сигнал в каком-нибудь жутко сжатом виде. От клавишника можно вообще midi слать. Специальный кодек для передачи гитарного бренчания тоже можно выдумать.

PolarFox ★★★★★
()
Ответ на: комментарий от jcd

Итак, изящного решения на основе существующих технологий не предвидится?

Ну, ты описал релейку. Качества, достойного публичного выпуска такой музыки, ты не получишь из-за задержек, они всё равно будут. А так - на здоровье. Созваниваетесь по цепочке, барабанщик - басисту, басист - гитаристу, гитарист - вокалисту. Барабанщик стучит, ничего не слышит, басист играет под стук, гитарист играет уже под ритм, вокалист поёт уже под музыку. Но услышать всё это можно будет только после записи.

Релейка решает не проблему задержки, а проблему стабильности задержки.

name_no ★★
()
Ответ на: комментарий от jcd

>Итак, изящного решения на основе существующих технологий не предвидится?

Вот изящное решение: Шлем всем участникам сигналы камертона и показываем партитуру. Они играют с листа, под камертон, на микрофон. Все сыгранное уходит на сервер и сводится с задержкой равной, скажем, удвоенному максимальному пингу.

Результирующий микс можно, по желанию, рассылать всем участникам. Можно не рассылать - все равно он будет только отвлекать.

ist76 ★★★★★
()
Ответ на: комментарий от ist76

>Вот изящное решение: Шлем всем участникам сигналы камертона и показываем партитуру. Они играют с листа, под камертон, на микрофон. Все сыгранное уходит на сервер и сводится с задержкой равной, скажем, удвоенному максимальному пингу.

Могу ещё добавить строчку:
«сверим часы, для старта концерта»

darkshvein ☆☆
()
Ответ на: комментарий от PolarFox

>От остальных можно передавать сигнал в каком-нибудь жутко сжатом виде. От клавишника можно вообще midi слать. Специальный кодек для передачи гитарного бренчания тоже можно выдумать.

вот, вот, вот! минус 10-15 мс задержек.

Качества, достойного публичного выпуска такой музыки, ты не получишь из-за задержек, они всё равно будут.


Допустим в живом виде будут небольшие задержки (очень небольшие, 10 мс в живом виде врядли будет отчётливо слышно), зато с их учётом комп без малейших проблем к концу исполнения сможет свести все партии в одну с учётом задержки каждого куска.

Вот изящное решение


Это не решение.

jcd ★★★★★
() автор топика

>И, да, решение обязательно должно быть изящным, красивым и сексуальным.

изящное, красивое и сексуальное решение:
1. Ударник набивает ритм и рассылает его остальным музыкантам
2. Остальные играют свои партии, опираясь на его ритм
3. Всё микшируется, если у кого-то лажа, то он goto 2 до полного удовлетворения
4. Готовая фанера передаётся солисту.

Attila ★★
()
Ответ на: комментарий от jcd

зато с их учётом комп без малейших проблем к концу исполнения сможет свести все партии в одну с учётом задержки каждого куска.

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

name_no ★★
()
Ответ на: комментарий от darkshvein

>iptables --redirect /dev/sndevice --ppp0 ?

первое, что мне пришло в голову. если бы не задержки (скажем, локалка), это было бы самым простым и адекватным решением :)

jcd ★★★★★
() автор топика
Ответ на: комментарий от Attila

>изящное, красивое и сексуальное решение:

текст сообщения под сабжем читать лениво?

коллективно играть музыку в группе через инет

jcd ★★★★★
() автор топика
Ответ на: комментарий от jcd

>Это не решение.

Если требуется играть для зрителей, то решение.
Если требуется играть для себя, то тогда, конечно, нет.

ist76 ★★★★★
()
Ответ на: комментарий от name_no

>все играющие будут слышать друг друга с задержкой при любом раскладе

для играющих задержка будет незначительной, а в результате после окончания и начала автосведения - вовсе исчезнет!

jcd ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.