JS: ORTF panner (1 онлайн

belovw

Well-Known Member
22 Апр 2009
9.200
8.384
113
50
RK Almaty
После нескольких записей стерео системой 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
Практика показала что плагина влияет на моно совместимость. В моно спанаромированные звуки звучат глуше из-за фазовых сдвигов между каналами. Поэтому на сольные источники ставить не желательно. А вот на вторые голоса, партии очень даже. Если в стерео сбалансировать скажем дуэт (основной голос и второй с панером), то в моно второй будет прикрываться первым из-за эфекта маскировки, что тоже хорошо для выделения первого голоса из пачки.
 

Вложения

Последнее редактирование:

DGALEX

Member
14 Янв 2010
81
23
8
Tomsk
Не получается подключить как вст.. При открытии Reajs никакого списка нет... Очень интересно плагинчик протестировать.
 

Vayson

Active Member
1 Янв 2009
222
132
43
Отличная идея для плагина, давненько возникал вопрос - почему у меня нет паннера вместе с стерео-задержкой одновременно
Думаю, неплохо добавить регулятор выходной громкости

Не получается подключить как вст.. При открытии Reajs никакого списка нет... Очень интересно плагинчик протестировать.
У вас наверняка установлен Reaper
Решение 1 - Установите ReaPlugs в папку с ним
Решение 2 - Удалите HKLM/Software/Reaper
 
Последнее редактирование:

Vayson

Active Member
1 Янв 2009
222
132
43
Прокоментируйте пожалуйста, чем вызвана необходимость регулятора громкости.
Необходимости нет, однако, если входящий сигнал нормализован под ноль, при панорамировании будут возникать клипы. Да и вообще регулятор громкости лишним не бывает)
 

belovw

Well-Known Member
22 Апр 2009
9.200
8.384
113
50
RK Almaty
Необходимости нет, однако, если входящий сигнал нормализован под ноль, при панорамировании будут возникать клипы.
В рипере используется арифметика с плавающей точкой, так что нулём сигнал в тракте не ограничивается. Т.е. может принимать значения больше нуля не вызывая перегруза в тракте до самого цап-а.

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

ЗЫ: Понесло Остапа )))
 
Последнее редактирование:

belovw

Well-Known Member
22 Апр 2009
9.200
8.384
113
50
RK Almaty
Сегодня с утра накручивал ручки в многоканальном проекте. Эстрадносимфонический оркестр. Записан поэтапно директами в два захода. Вместо штатного паннера использовал мой ORTF panner. Разницу заметил на гитаре снятой одним спотом. Балансировал родес и гитару. Родес изначально звучал чуть левее, а гитарку сделал чуть правее, сначала штатно, а потом ОРТФ-ом. Во втором случае у гитары появились формы. После выравнял по балансу между каналами родес и спанил его назад уже ортфом, опять таки-ки появилась некая рельефность, выпуклость чтоли, закрыв глаза видно реальный инструмент, а не тень как при рулении обычным панером. Далее перекинул все панеры барабасов на ортф, эфект не заставил себя долго ждать. Оркестровую группу ещё не усаживал, но эстрадная зазвучала понастоящему. Как аналогия - 3D проекция на плоский экран оказалась не 2D, а объёмной, с глубиной и перспективой. Сегодня буду добивать симфоническую группу, их бы ещё рассадить правильно... И обязательно буду их оэртэефить.
 
Последнее редактирование:
  • Like
Реакции: Dimilyan

Vayson

Active Member
1 Янв 2009
222
132
43
Как и обещал
Сегодня добрались руки до Visual C++, я выделил денек (до того C++ вообще не писал) свободного времени и портировал алгоритм Володи столь полезного плагина на общедоступный всем VST 2.4 :kiss2:

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

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

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

Вложения

Последнее редактирование:

belovw

Well-Known Member
22 Апр 2009
9.200
8.384
113
50
RK Almaty
Практика показала что плагин влияет на моно совместимость. В моно спанаромированные звуки звучат глуше из-за фазовых сдвигов между каналами. Поэтому на сольные источники ставить не желательно. А вот на вторые голоса, партии очень даже. Если в стерео сбалансировать скажем дуэт (основной голос и второй с панером), то в моно второй будет прикрываться первым из-за эфекта маскировки, что тоже хорошо для выделения первого голоса из пачки.
 

belovw

Well-Known Member
22 Апр 2009
9.200
8.384
113
50
RK Almaty
Володь, а почему градация идёт от -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;
      );
 

Вложения

fruitcore

Active Member
14 Дек 2013
275
70
28
NN
@belovw, а PDC в нем кстати с чем связано? Он один канал на опережение смещает?

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

belovw

Well-Known Member
22 Апр 2009
9.200
8.384
113
50
RK Almaty
Так то вообще нередко его использую, за исключением моносовместимости никаких недостатков тут не выделю.
Поподробнее если не сложно. Мне это в отчёт включить нужно будет. А одно предложение мягко говоря не пройдёт.
[DOUBLEPOST=1432812554,1432802813][/DOUBLEPOST]
Мне нужны любые отзывы. Главное что бы они были максимально объективными.
Ребята, я прошу немного, опишите ваши впечатления от работы плагина. Размер конечно имеет значение. Не стесняйтесь. Заранее спасибо.
[DOUBLEPOST=1439215364][/DOUBLEPOST]Перезалив контента:
 

Вложения

BAYANBAYAN

Active Member
4 Мар 2010
515
246
43
@belovw, Подскажите, пожалуйста, я правильно понял, что этот паннер имеет смысл использовать только на стереоисточниках?
 

MSerg

Well-Known Member
30 Ноя 2015
872
1.539
93
Хотелось бы немножко поднять тему) У меня данный ORTF-panner живёт практически в каждом проекте. И сейчас для трейлерных задач потребовалась автоматизация положения источника звука - и тут пошёл треск с щелчками. Включил жручий dearVR - при перемещении в пространстве щелчков и тресков нет. Если можно как-то «малой кровью» избавить ORTF-Panner от щелчков при изменении параметров, это был бы просто сказочный паннер)
 

belovw

Well-Known Member
22 Апр 2009
9.200
8.384
113
50
RK Almaty
Хотелось бы немножко поднять тему) У меня данный ORTF-panner живёт практически в каждом проекте. И сейчас для трейлерных задач потребовалась автоматизация положения источника звука - и тут пошёл треск с щелчками. Включил жручий dearVR - при перемещении в пространстве щелчков и тресков нет. Если можно как-то «малой кровью» избавить ORTF-Panner от щелчков при изменении параметров, это был бы просто сказочный паннер)
По амплитуде как смягчить я примерно представляю, а что делать с изменяемой задержкой - пока нет.
 
  • Like
Реакции: MSerg

Rst7

Well-Known Member
10 Янв 2010
2.167
2.156
113
50
Kharkiv-city
а что делать с изменяемой задержкой - пока нет.
Нужен дилей с задержкой, некратной семплу.

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

Rst7

Well-Known Member
10 Янв 2010
2.167
2.156
113
50
Kharkiv-city
ну так ведь он и будет жрать ресурс в разы больше.
Нет, какие там разы, Фарроу - вполне простой. Десяток умножений и сложений.

Может, имеет смысл оставить как есть?
Ну так это ж не мне надо, это люди просят ;)
 

Rst7

Well-Known Member
10 Янв 2010
2.167
2.156
113
50
Kharkiv-city
Хотя, похоже лучше делать sin(x)/x-интерполяцию. Фарроу недостаточно прямоуголен по АЧХ, нужен запас сверху по частоте дискретизации.

Но да, sin(x)/x чуть более требователен по ресурсам. Но, опять же, несмертельно.
 

MSerg

Well-Known Member
30 Ноя 2015
872
1.539
93
@Rst7, ну так ведь он и будет жрать ресурс в разы больше. Может, имеет смысл оставить как есть?
Если реально будет жрать ресурсы как не в себя, то можно вообще как отдельный плагин подписать, типа ORTF-Floating. А то и ORTF-autopan))) я кстати не знаю автопана с эффектом ORTF. А то я бы его сразу после дилеев ставил. Но это сложный плагин и малой кровью его вряд ли можно написать. Уже суперски будет, если текущий не будет щёлкать при плавающей панораме.
 

Сейчас онлайн (Пользователей: 0, Гостей: 1)