Посетила недавно очередная безумная идея. Спешу поделиться:
Допустим идёт запись живого выступления. В акустически подготовленном помещении играют гитарист и ударник, их пишут на два микрофона, одним - гитариста, другим - ударника (это для примера. Инструменты могут быть любые)
Затем. Имеются две дорожки. На первой партия установки и гитара на заднем плане, на другой - партия гитары и звук установки на дальнем плане. При условии, что ударник не двигал во время исполнения установку, а гитарист - стэк, задержка, с которой приходит паразитный сигнал к микрофону остаётся неизменной (для трека с установкой паразитным сигналом будет звук гитары, для трека с гитарой - звук установки). Микрофон при записи внёс искажения всилу неравномерности своей АЧХ. Отражениями от стен для простоты изложения пренебрежём, допустим об этом позаботились ещё перед записью и они незначительны. Имеем: к дорожке 1 добавлен сигнал 2, ослабленный по уровню, задержаный и эквализированный, а к дорожке 2 добавлен сигнал 1, ослабленный по уровню, задержанный и эквализированный. Теперь, допустим, после записи музыкальной композиции мы, не сдвигая микрофонов, записали два обучающих участка: первый - где играет только установка, а второй - где играет только гитара (или такие участки были найдены в самой композиции). Записали на оба микрофона.
По участкам обучения настраивается уровень сигнала, задержка и фазолинейный эквалайзер так, чтобы сигнал 2 максимально полно вычитался из сигнала 1. Затем эти действия повторяются для случая, когда сигнал 1 вычитается из сигнала 2. Затем производится вычитание реальных сигналов, в результате чего получаем сигналы 1' и 2', где сигнал 1' содержит сигнал 1 из которого полностью вычли сигнал 2 и ещё капельку искажённого первого, содержавшегося во втором, а 2' - содержит сигнал 2 из которого полностью вычли сигнал 1 и ещё капельку искажённого второго, содержавшегося в первом. Далее процесс повторяется итерационно некоторое количество раз, при этом каждый раз операндами являются исходные дорожки и дорожки, полученые в последней итерации. Чтобы не возиться с остатками сигналов, можно вообще поступить жёстче и сразу вручную подавить эквалайзером остаток сигнала 1, вычитаемого вместе с сигналом 2 из первой дорожки и остаток сигнала 2, вычитаемого вместе с сигналом 1 из второй дорожки. Таким образом всю процедуру можно при ручном вмешательстве провести даже за одну итерацию.
В общем, вручную таким станет заниматься только маньяк, но поскольку сами операции довольно простые всё легко можно автоматизировать, плюс для точности в качестве тестовых сигналов можно использовать не только музыкальные инструменты, но и какой-нибудь эталонный излучатель с широкополосным сигналом, чтоб эквалайзер потом точнее отстроить. Для автоматизированной реализации алгоритма возможна работа и с более, чем двумя сигналами .
В результате получаются дорожки, в каждой из которых сидит свой инструмент с минимумом посторонних примесей, то есть практически продукт аналогичный получаемому после потрековой записи, только ещё и сыграно всё вживую (некоторые музыканты очень ценят взаимодействие друг с другом во время исполнения, для таких это вообще спасительное решение. Или, например, если надо писать музыкальную импровизацию. Импровизаторов попробуй запиши по отдельности)
Ну я и подумал, что раз всё так просто, наверняка есть готовые программные реализации этого. Посмотрел и понял, что похоже нет. Закрались сомнения: вдруг плохо искал, или мой метод слишком сложный и есть способ намного проще? Или, наоборот, всё отлично, просто такую программу ещё никто не успел написать, и пора уже начинать искать хорошего кодера?
У кого какие есть идеи?
Допустим идёт запись живого выступления. В акустически подготовленном помещении играют гитарист и ударник, их пишут на два микрофона, одним - гитариста, другим - ударника (это для примера. Инструменты могут быть любые)
Затем. Имеются две дорожки. На первой партия установки и гитара на заднем плане, на другой - партия гитары и звук установки на дальнем плане. При условии, что ударник не двигал во время исполнения установку, а гитарист - стэк, задержка, с которой приходит паразитный сигнал к микрофону остаётся неизменной (для трека с установкой паразитным сигналом будет звук гитары, для трека с гитарой - звук установки). Микрофон при записи внёс искажения всилу неравномерности своей АЧХ. Отражениями от стен для простоты изложения пренебрежём, допустим об этом позаботились ещё перед записью и они незначительны. Имеем: к дорожке 1 добавлен сигнал 2, ослабленный по уровню, задержаный и эквализированный, а к дорожке 2 добавлен сигнал 1, ослабленный по уровню, задержанный и эквализированный. Теперь, допустим, после записи музыкальной композиции мы, не сдвигая микрофонов, записали два обучающих участка: первый - где играет только установка, а второй - где играет только гитара (или такие участки были найдены в самой композиции). Записали на оба микрофона.
По участкам обучения настраивается уровень сигнала, задержка и фазолинейный эквалайзер так, чтобы сигнал 2 максимально полно вычитался из сигнала 1. Затем эти действия повторяются для случая, когда сигнал 1 вычитается из сигнала 2. Затем производится вычитание реальных сигналов, в результате чего получаем сигналы 1' и 2', где сигнал 1' содержит сигнал 1 из которого полностью вычли сигнал 2 и ещё капельку искажённого первого, содержавшегося во втором, а 2' - содержит сигнал 2 из которого полностью вычли сигнал 1 и ещё капельку искажённого второго, содержавшегося в первом. Далее процесс повторяется итерационно некоторое количество раз, при этом каждый раз операндами являются исходные дорожки и дорожки, полученые в последней итерации. Чтобы не возиться с остатками сигналов, можно вообще поступить жёстче и сразу вручную подавить эквалайзером остаток сигнала 1, вычитаемого вместе с сигналом 2 из первой дорожки и остаток сигнала 2, вычитаемого вместе с сигналом 1 из второй дорожки. Таким образом всю процедуру можно при ручном вмешательстве провести даже за одну итерацию.
В общем, вручную таким станет заниматься только маньяк, но поскольку сами операции довольно простые всё легко можно автоматизировать, плюс для точности в качестве тестовых сигналов можно использовать не только музыкальные инструменты, но и какой-нибудь эталонный излучатель с широкополосным сигналом, чтоб эквалайзер потом точнее отстроить. Для автоматизированной реализации алгоритма возможна работа и с более, чем двумя сигналами .
В результате получаются дорожки, в каждой из которых сидит свой инструмент с минимумом посторонних примесей, то есть практически продукт аналогичный получаемому после потрековой записи, только ещё и сыграно всё вживую (некоторые музыканты очень ценят взаимодействие друг с другом во время исполнения, для таких это вообще спасительное решение. Или, например, если надо писать музыкальную импровизацию. Импровизаторов попробуй запиши по отдельности)
Ну я и подумал, что раз всё так просто, наверняка есть готовые программные реализации этого. Посмотрел и понял, что похоже нет. Закрались сомнения: вдруг плохо искал, или мой метод слишком сложный и есть способ намного проще? Или, наоборот, всё отлично, просто такую программу ещё никто не успел написать, и пора уже начинать искать хорошего кодера?
У кого какие есть идеи?