JS: ORTF panner

  • Автор темы Автор темы belovw
  • Дата начала Дата начала

belovw

Well-Known Member
22 Апр 2009
9.573
8.738
113
50
RK Almaty
boosty.to
После нескольких записей стерео системой ORTF я проникся к этому расположения микрофонов. Но не всегда есть возможность записать коллектив в большом зале, а в туалете, так сказать, размеры не позволяют. Поэтому и возникло желание создать реалистичный паннер в котором при панарамировании будет менятся не только интенсивность звука, но и будет появляться задержка между каналами, Окрылённый идеей я написал плагин ORTF panner.
За интенсивность каналов отвечает радиальная формула кардиоиды:
r=a(1+cos&)
Так как микрофоны развёрнуты на 110 град относительно друг друга. то для каждого канала передаточная функция представляется в виде:
y1=a(1+cos(55+&))*x1
y2=a(1+cos(55-&))*x2

Так как база между микрофонами в системе ORTF составляет 17 см то задержка между микрофонами в максимуме составляет 0,5 mS.
следовательно зависимость задержки от угла расположения источника составляет:
d=0.5*sin(&)

Ниже выкладываю сабж и пример, состоящий из 10 вокальных дорожек - 5 человек даблами, первая половина примера сделана стандартными средставами рипера т.е. разворотом панера на (-100,-80,-60,-40,-20,20,40,60,80,100) для каждого канала, а вторая с помощью ORTF panner, разворот угла составил (-55,-44,-33,-22,-11,11,22,33,44,55) (стандартный панер во втором случае был в нуле у каждой дорожки)
треки шли сушняком на групу где ужимались компрессором + легкое снятие низа шелфом.

Слушайте оценивайте. Очень интересно ведёт себя панер со стерео источниками.

ЗЫ: Подключение плагины как VST

24.12.11 4:05 Update
Практика показала что плагина влияет на моно совместимость. В моно спанаромированные звуки звучат глуше из-за фазовых сдвигов между каналами. Поэтому на сольные источники ставить не желательно. А вот на вторые голоса, партии очень даже. Если в стерео сбалансировать скажем дуэт (основной голос и второй с панером), то в моно второй будет прикрываться первым из-за эфекта маскировки, что тоже хорошо для выделения первого голоса из пачки.
 

Вложения

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

Не получается подключить как вст.. При открытии Reajs никакого списка нет... Очень интересно плагинчик протестировать.

У вас наверняка установлен Reaper
Решение 1 - Установите ReaPlugs в папку с ним
Решение 2 - Удалите HKLM/Software/Reaper
 
Последнее редактирование:
Прокоментируйте пожалуйста, чем вызвана необходимость регулятора громкости.

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

Да и вообще регулятор громкости лишним не бывает)
Паннер рекомендуется ставить последним плагином, после него только ручка громкости на самом треке микшера доступ к которой в любом случае удобней чем к воображаемой ручке громкости в плагине. Если желание огромно то допишите для себя фейдер громкости, я не против, но думаю после 10 минут юзания Вы от неё откажетесь.
Что делать с превышением громкости которое может оказаться перегрузом на выходе? Всё просто: в любом случае я под ноль не свожу, стараюсь держать уровень при сведении в районе -18 дБ. Так что незначительные превышения громкости в виде перегруза на выход не проскочут ибо математика с плавающей точкой. В конце концов мастеренк в помощь.

ЗЫ: Понесло Остапа )))
 
Последнее редактирование:
Сегодня с утра накручивал ручки в многоканальном проекте. Эстрадносимфонический оркестр. Записан поэтапно директами в два захода. Вместо штатного паннера использовал мой ORTF panner. Разницу заметил на гитаре снятой одним спотом. Балансировал родес и гитару. Родес изначально звучал чуть левее, а гитарку сделал чуть правее, сначала штатно, а потом ОРТФ-ом. Во втором случае у гитары появились формы. После выравнял по балансу между каналами родес и спанил его назад уже ортфом, опять таки-ки появилась некая рельефность, выпуклость чтоли, закрыв глаза видно реальный инструмент, а не тень как при рулении обычным панером. Далее перекинул все панеры барабасов на ортф, эфект не заставил себя долго ждать. Оркестровую группу ещё не усаживал, но эстрадная зазвучала понастоящему. Как аналогия - 3D проекция на плоский экран оказалась не 2D, а объёмной, с глубиной и перспективой. Сегодня буду добивать симфоническую группу, их бы ещё рассадить правильно... И обязательно буду их оэртэефить.
 
Последнее редактирование:
  • Like
Реакции: Dimilyan
Как и обещал
Сегодня добрались руки до Visual C++, я выделил денек (до того C++ вообще не писал) свободного времени и портировал алгоритм Володи столь полезного плагина на общедоступный всем VST 2.4 :kiss2:

Скачать плагинчик можно во вложении. Зеркало на файлообменнике:
http://www57.zippyshare.com/v/91400396/file.html

В ближайших планах:
1) Нарисовать мордочку и сделать красивый интерфейс
2) Прибавить рюшечек типа визуализатора, анализатора уровня и ручки громкости (хоть и сам Володя против, я не могу Gain на выходе совсем без внимания оставить :D )
3) Сделать плавное панорамирование и возможность автоматизации ручки
4) Понаставить пасхалок)))
5) Анонсировать на kvraudio и пр. ему подобных

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

Вложения

Последнее редактирование:
Практика показала что плагин влияет на моно совместимость. В моно спанаромированные звуки звучат глуше из-за фазовых сдвигов между каналами. Поэтому на сольные источники ставить не желательно. А вот на вторые голоса, партии очень даже. Если в стерео сбалансировать скажем дуэт (основной голос и второй с панером), то в моно второй будет прикрываться первым из-за эфекта маскировки, что тоже хорошо для выделения первого голоса из пачки.
 
Володь, а почему градация идёт от -125 до 125?
Это в градусах. Просто при 125 сигнал на одном канале ослабляется до нуля. Смотри первый пост.
125+55=180 При 180 передаточная функция идеальной кардиоиды равна нуля.
[DOUBLEPOST=1432684998,1385401881][/DOUBLEPOST]
Данный плагин получил развитие. Поэтому прошу всех комрадов обратить
Внимание
В связи с разработкой нового плагина для получения реалистичного панорамирования в рамках написания диссертации на соискание научной степени, требуются обзоры и комментария по текущей версии плагина.
Желательно что бы вы использовали его в конкретных проектах. Мне нужны любые отзывы. Главное что бы они были максимально объективными. Я сам знаю о некоторых его недостатках, поэтому мне нужно получить независимое мнение от разных испытателей. Важно, что бы наряду с положительными отзывами были и отрицательные.
Код:
// (C) 2011, Vladimir Belov.
// NO WARRANTY IS GRANTED. THIS PLUG-IN IS PROVIDED ON AN "AS IS" BASIS, WITHOUT
// WARRANTY OF ANY KIND. NO LIABILITY IS GRANTED, INCLUDING, BUT NOT LIMITED TO,
// ANY DIRECT OR INDIRECT,  SPECIAL,  INCIDENTAL OR CONSEQUENTIAL DAMAGE ARISING
// OUT OF  THE  USE  OR INABILITY  TO  USE  THIS PLUG-IN,  COMPUTER FAILTURE  OF
// MALFUNCTION INCLUDED.  THE USE OF THE SOURCE CODE,  EITHER  PARTIALLY  OR  IN
// TOTAL, IS ONLY GRANTED,  IF USED IN THE SENSE OF THE AUTHOR'S INTENTION,  AND
// USED WITH ACKNOWLEDGEMENT OF THE AUTHOR. FURTHERMORE IS THIS PLUG-IN A  THIRD
// PARTY CONTRIBUTION,  EVEN IF INCLUDED IN REAPER(TM),  COCKOS INCORPORATED  OR
// ITS AFFILIATES HAVE NOTHING TO DO WITH IT.  LAST BUT NOT LEAST, BY USING THIS
// PLUG-IN YOU RELINQUISH YOUR CLAIM TO SUE IT'S AUTHOR, AS WELL AS THE CLAIM TO
// ENTRUST SOMEBODY ELSE WITH DOING SO.

desc:ORTF panner
V 1@1

slider1:0<-125,125,1>Gradient
//slider2:0<0,1,1{Curve,Linear}>Form
//slider3:0<0,100,1>parameter3
//slider4:0<0,100,1>parameter4
//slider5:0<0,100,1>parameter5

@init
bpos=0;
del=0;
a3=1;

@slider
//a3=cos($pi*slider1*slider2*1.2181321182/180);
a1=a3*0.63549503*(1+cos($pi*(55+slider1)/180));
a2=a3*0.63549503*(1+cos($pi*(55-slider1)/180));
d=floor(0.5+0.0005*srate*sin($pi*slider1/180));
pdc_delay=floor(abs(d/2));
pdc_bot_ch=0; pdc_top_ch=2;
si=sign(slider1);

@block
blah+=samplesblock;

@sample
si==1 ? (
      del[0]=spl0; del+=1; del>=d ? del=0;
      spl0=del[0];
      spl0=a1*spl0;
      spl1=a2*spl1;
      );
si==-1 ? (
      del[0]=spl1; del+=1; del>=abs(d) ? del=0;
      spl1=del[0];
      spl0=a1*spl0;
      spl1=a2*spl1;
      );
 

Вложения

@belovw, а PDC в нем кстати с чем связано? Он один канал на опережение смещает?

Так то вообще нередко его использую, за исключением моносовместимости никаких недостатков тут не выделю. Да и это можно иногда решить легкой фильтрацией задержанного канала, гребёнка на верхах при небольших задержках таким образом устраняема:)
 
Так то вообще нередко его использую, за исключением моносовместимости никаких недостатков тут не выделю.
Поподробнее если не сложно. Мне это в отчёт включить нужно будет. А одно предложение мягко говоря не пройдёт.
[DOUBLEPOST=1432812554,1432802813][/DOUBLEPOST]
Мне нужны любые отзывы. Главное что бы они были максимально объективными.
Ребята, я прошу немного, опишите ваши впечатления от работы плагина. Размер конечно имеет значение. Не стесняйтесь. Заранее спасибо.
[DOUBLEPOST=1439215364][/DOUBLEPOST]Перезалив контента:
 

Вложения

@belovw, Подскажите, пожалуйста, я правильно понял, что этот паннер имеет смысл использовать только на стереоисточниках?
 
Хотелось бы немножко поднять тему) У меня данный ORTF-panner живёт практически в каждом проекте. И сейчас для трейлерных задач потребовалась автоматизация положения источника звука - и тут пошёл треск с щелчками. Включил жручий dearVR - при перемещении в пространстве щелчков и тресков нет. Если можно как-то «малой кровью» избавить ORTF-Panner от щелчков при изменении параметров, это был бы просто сказочный паннер)
 
Хотелось бы немножко поднять тему) У меня данный ORTF-panner живёт практически в каждом проекте. И сейчас для трейлерных задач потребовалась автоматизация положения источника звука - и тут пошёл треск с щелчками. Включил жручий dearVR - при перемещении в пространстве щелчков и тресков нет. Если можно как-то «малой кровью» избавить ORTF-Panner от щелчков при изменении параметров, это был бы просто сказочный паннер)
По амплитуде как смягчить я примерно представляю, а что делать с изменяемой задержкой - пока нет.
 
  • Like
Реакции: MSerg
а что делать с изменяемой задержкой - пока нет.

Нужен дилей с задержкой, некратной семплу.

Для этого нужна интерполяция между семплами. Можно sin(x)/x сделать, а можно - интерполятор Фарроу. Например, можно начать читать отсюда - https://ru.dsplib.org/content/resampling_lagrange/resampling_lagrange.html
 
  • Like
Реакции: MSerg
ну так ведь он и будет жрать ресурс в разы больше.

Нет, какие там разы, Фарроу - вполне простой. Десяток умножений и сложений.

Может, имеет смысл оставить как есть?

Ну так это ж не мне надо, это люди просят ;)
 
Хотя, похоже лучше делать sin(x)/x-интерполяцию. Фарроу недостаточно прямоуголен по АЧХ, нужен запас сверху по частоте дискретизации.

Но да, sin(x)/x чуть более требователен по ресурсам. Но, опять же, несмертельно.
 
@Rst7, ну так ведь он и будет жрать ресурс в разы больше. Может, имеет смысл оставить как есть?
Если реально будет жрать ресурсы как не в себя, то можно вообще как отдельный плагин подписать, типа ORTF-Floating. А то и ORTF-autopan))) я кстати не знаю автопана с эффектом ORTF. А то я бы его сразу после дилеев ставил. Но это сложный плагин и малой кровью его вряд ли можно написать. Уже суперски будет, если текущий не будет щёлкать при плавающей панораме.
 

Сейчас просматривают