Погрешности MIDI-тайминга в программных секвенсорах

  • Автор темы Автор темы Pavell
  • Дата начала Дата начала
какой реалтайм джиттер. миди рендерилось в оффлайне ДВА раза. один раз целиком, другой раз по тактам 8 кусков. и 2 срендеренных аудио не дают вычитание. так что реалтайм тут не при чем! внимательнее смотрите )))
Не надо выкать, ты не понял, а слышишь то что? несовпадуху при РИЛТАЙМ плейбеке, голова два уха)))
Далее обсчитай оффлайн ети два рнедера в противофазе - будет тишина, ЧИТД
 
Требовать от системы, в которой существуют информационно-событийные потоки, курсирующие по MIDI-интерфейсу, нулевых погрешностей - глупо.
об том и речь...

захочешь ты создать хороший грув рисунок ударных, подгонишь хетики, разный квантайз применишь, разный свинг, клапперы со сдвигом на мс понаставляешь, все выверишь а тут здрассьте - бочка рандомно неровно играет.
если ее расшатанная нервная система укладывается в несколько сэмплов - не вижу проблем...
 
Andrey Subbotin, 10 и больше семплов( а там их явно больше - порядка милисекунды, а это в прерасчёте с 44100- с округлением, аж 44 семпла) - это уже не несколько и это становится очевидно слышимым - особенно на ударных...
 
Не надо выкать, ты не понял, а слышишь то что? несовпадуху при РИЛТАЙМ плейбеке, голова два уха)))
Далее обсчитай оффлайн ети два рнедера в противофазе - будет тишина, ЧИТД

не братан... ты не по понятиям реально ща ботаришь ))
[video=youtube_share;4Kg-HCH56gE]http://youtu.be/4Kg-HCH56gE[/video]
 
если округление позиции происходит до ближайшего к сетке сэмпла, то почему кое-кто дает расхождения на десятки сэмплов? может быть, округление происходит с точностью не до сэмпла, а с меньшей?

Я пока могу оперировать данными только из лоджика, а они мне говорят, что округление позиции не происходит до ближайшего сэмпла. В случае 104 BPM например, выявляется следующая закономерность:
Код:
№ удара – длина удара в сэмплах + разница в сэмплах
– 01 –––––– A ––––––––––––––––––– 0x
– 02 –––––– A ––––––––––––––––––– 1x
– 03 –––––– A ––––––––––––––––––– 2x
– 04 –––––– A ––––––––––––––––––– 3x
– 05 –––––– A ––––––––––––––––––– 4x
– 06 –––––– A ––––––––––––––––––– 5x
– 07 –––––– A ––––––––––––––––––– 6x
– 08 –––––– A ––––––––––––––––––– 7x
– 09 –––––– A ––––––––––––––––––– 8x
– 10 –––––– A ––––––––––––––––––– 9x
– 11 –––––– A –––––––––––––––––– 10х
– 12 –––––– A –––––––––––––––––– 11x
– 13 –––––– A –––––––––––––––––– 12x
– 14 –––––– А –––––––––––––––––– 13х

Где А, стабильное целое количество сэмплов между соседними 8-ми нотами – это какое-то окгругление до близкого целого, но не ближайшего, скорее всего выбирается такой вариант, при котором секвенсору будет удобно оперировать более мелкими длительностями в рамках текущего BPM, правда это предположение требует проверки. И в свою очередь х – остаток между 14 х А и почти двумя тактами где нет погрешности округления (это 14 ударов длительностью 1/8 – ровно до ближайшего совпадения цикла на 15-ом ударе), разделенный на количество ударов в цикле. Ну и распределяется эта 91 часть (каждая часть состоит из какого-то определенного и одинакового количества сэмплов, необязательно равным единице) между ударами в цикле по приведенной таблице. Примерно. Да, вероятность того, что икс может быть не целым есть, хотя в лоджике мне показалось, что такая сложная схема появляется как раз потому, что движок старается сохранить целочисленность в отсчетах, и судя по всему первый сдвиг не на целое количество сэмплов происходит как раз в описанном выше случае на 73-ем ударе. Такой вывод я сделал как раз после одновременного наблюдения в одном проекте аудио примеров из разных хостов – если привязать сетку лоджика к сэмплам, то у файлов из рипера и аблетона в разных тактах удары будут отстоять не на целое количество сэмплов, могут быть дробные, в то время как лоджиковский рендер – квадраты по сетке (в начальных пяти тактах, где пока копится только первое приближение погрешности). Ну это могут вопросы отрисовки, моих рендеров из других хостов, я не уверен пока что. Поэтому и жду когда кто-то поможет и отрендерит из своего рабочего хоста файлы надежным, верным способом.

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

91 это сумма арифметической прогрессии, где первое число 0, прирост равен 1, а количество членов 13, если у кого-то возник вдруг вопрос.

В общем, камрады, буду рад, если вы сгенерите мне 6-7 тактов в ваших родных секвенсорах, очень хочется взглянуть.
 
Последнее редактирование:
Испанский ГалстоГ, используя FL, я проделал подобные вещи, тоже не было совпадения, хотя они были не хаотичные (при использовании нецелого bpm, получилось хаотичное несовпадение). Но потом я отключил в настройках опцию, которая называется "Align tick lengths" (выравнивание длинны тика, которое, якобы, может уменьшить нагрузку на процессор и решить некоторые проблемы с плагинами), после этого получилось вычитание в 0. Может быть в cubase есть аналогичная штуковина?

Добавлю, что с отключением опции "выравнивания длинн тиков" могут быть редкие несовпадения, если отрендерить кик кусочками по 16 ударов, но включение выравнивания значительно усиливает рассинхронизацию.
 
Последнее редактирование:
Но главный вопрос в другом - а насколько вся эта ловля блох важна с точки зрения художественной выразительности, талантливости или успешности музыки, создаваемой с помощью секвенсоров ? Никогда не интересуюсь и не обращаю внимание на девиацию сетки в музыке, которая реально нравится.

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

тогда возникает вопрос - если
У меня там архивчики выложены с аудиофайлами из проектов – можно в любом секвенсоре посмотреть на расхождение, если интересно. Файлы названы понятно – "рипер" "аблетон" и "чётотамкудатокакто" (лоджик)
 
Последнее редактирование:
Так кто в итоге составит таблицу какие daw лажают а какие нет?
Сколько уже можно этот вопрос "разгибать" ? )) разработчики не ответили?
 
Парни есть сдвиги в тестировании кубейса 5. смотрим:
[video=youtube_share;ZJXgq6HenIY]http://youtu.be/ZJXgq6HenIY[/video]


вывод на текущий момент: рендерит из МИДИ в АУДИО по разному только после того, как сдвинули локаторы. наверное так же нельзя "обжимать" отдельный такт локаторами, чует мое сердце обрезается тогда что то. Миди со всеми полученными аудиокусками по прежнему не совпало.
 
Последнее редактирование:
Schmidt, А потому, что задолбало слышать очевидные неточности там, где их не должно быть..Я о Кубейсе сейчас....

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

А я с этим встретился в самплитуде лет пять назад, испугался и забыл. Подумал что криворукий, занимался другими делами, никого не трогал, а тут вот вам нате.
 
рендерит из МИДИ в АУДИО по разному только после того, как сдвинули локаторы. наверное так же нельзя "обжимать" отдельный такт локаторами, тогда возникает такой глюк. Миди со всеми полученными аудиокусками по прежнему не совпало.

Какой темп в проекте?
 
Если предположить ситуацию, что темп 120, а ppq 96, то в одном такте будет 384 тика и 88200 семплов. Cubase или любой другой хост будет проигрывать кик на втором такте на 385 тике, а в отрендеренном аудио, содержащем вначале тишину (в соответствии со сдвинутыми локаторами) длинной 88200 семплов, кик начнется на 88201 семпле, а чтобы быть синхронным с 385 тиком, ему нужно начинаться на 88429,6875 семпле, а такого не существует. Если я не ошибся в арифметике, а если и ошибся, то суть в том, что тики и семплы не совпадают, что и говорит spred.

Это если учесть, что, например, первый раз аудио рендерится с не сдвинутыми в сторону локаторами, а второй раз со сдвинутыми, если я где-то не ошибся.
 
Последнее редактирование:
Grosse, нет 480 по дефолту. 1/16=120 тиков. да не при чем тут тики. PPQ это всего лишь разрешающая способность пианоролла, вернее даже не разрешающая, а сколько там будет градаций линеечек после 64 ноты... ))никаких там зависимостей с сэмплами не может быть. потому как цепочка миди>>>вст инструмент>>>>плагин1-плагин2-плагин3. эта цепочка дает на выходе 32 флоат звук. она считается реалтайм (ТИПА!), но через буфер, который каждый плаг прописывает в даташите в кубе - какую он задержку дает. ты можешь вообще в инсерт после вст инстумента поставить плаг fx, кот вносит задержки и партия у тебя съедет вне независимомти от миди PPQ. Никто хосту, получив в оперативку аудиоданные от плагина, имея время его плагина задержки и асио буфер не мешает не только ПОСТАВИТЬ оффлайн его после рендеренга куда надо в свою же сетку, но и проиграть вовремя, если проц справляется. Так что это просто глюки и ху...та всякая в коде программы, а не глобальная проблема.
 
Испанский ГалстоГ, при таком темпе (предполагаю ЧД 44,1 кГц) – 8-е и 16-е содержат дробное число сэмплов, хост распределяет остаток по какому-то правилу. Но оно точно говорит нам, что имеется цикл, нужно только его найти. Цикл может составлять, предположительно, любое количество долей.
 
Да Айс Хок, *ля!, и велАсити.
Я ж говорил, что по умолчанию не будет оффлайн джиттера. Вот уже привязка тиков к семплам в аудио и влияние вещей типа локаторов - другой вопрос.
Ы целом щас во фрукте рендеры исеквенции погонял - всепоходу происходит при согласовании семплы\тики\бпм.Это не кртично.главное,чтобы БПМ не плыл и соответствовал, и мидине лажал рилтайм и офлайн сильно.
 
8-е и 16-е содержат дробное число сэмплов
Вы хрень какую то придумали если чессна. Как может МИДИ нота содержать какие то семплы? это тупо команда. протокол древнейший роландовский, который так же приняли в VSTSDK и проге кубейс. Секвенсер посылает команду в вст хост: нота, длинно1 такой то велосити такая то на 1.1.1 старт. и все. Евент с миди событиями не содержит каких либо семплов и вообще к семпл рейт проекта не привязан.
 
Вы хрень какую то придумали если чессна. Как может МИДИ нота содержать какие то семплы? это тупо команда. протокол древнейший роландовский, который так же приняли в VSTSDK и проге кубейс. Секвенсер посылает команду в вст хост: нота, длинно1 такой то велосити такая то на 1.1.1 старт. и все. Евент с миди событиями не содержит каких либо семплов и вообще к семпл рейт проекта не привязан.
Секвенсору это приходится увязывать с семплами хошь не хошь, любому севенсору с цифровым аудио.
 
111 - тоже мутно все в плане методологии
мутна не методология, в целом она повторяет методологию Испанский ГалстоГ, затем исключением, что рендер, происходил в реалтайме а не офф,
и сравнение проводилось с тем же сэмплом расставленным в ручную по сетке
мутность в понимании теста
 
Вы хрень какую то придумали если чессна. Как может МИДИ нота содержать какие то семплы? это тупо команда. протокол древнейший роландовский, который так же приняли в VSTSDK и проге кубейс. Секвенсер посылает команду в вст хост: нота, длинно1 такой то велосити такая то на 1.1.1 старт. и все.

Речь идет не о миди ноте в 1/8 или 1/16, а о соответствующей длительности звукового отрезка при определенной частоте ударов в минуту.
За один такт звучания при частоте дискретизации в 44,1 кГц на скорости 120 BPM секвенсор делает 22050 отсчетов, то бишь отрезок длиной в 1/8 такта будет содержать дробное количество отсчетов, а именно 2756,25. Миди событие привязано к сетке тактов, а генерируемый звук – к отсчетам, в результате мы слышим что слышим.
 
spred,
такой вопрос, а это всё не будет влиять на аудио, ну там, выкидываться то что не попадает в 44.1? ))
почему аудио можно разрезать точно и так же точно расставить по сетке (сетка привязана к bpm а не к частоте 44.1) и никуда ничего не уплывёт, а тупо запустить миди ноту в туже сетку проблематично, по сути расставленные руками сэмплы превращают редактор в один гигантский сэмплер, в реальности аудио не разрезается, оно вообще не трогается, все происходит виртуально, и я уверен по тем же принципам что и в сэмплерах
 
EKmusic, Именна!

Испанский ГалстоГ, Посмотрел твой видос..Мдееееее... О сколько нам открытий чудных..
И пока смотрел вспомнил ещё один прикол - попробуй отключи снэп , затем подвигай транспорт туда-сюда между долями, а затем вновь включи снэп и попоробуй вычесть - тоже удивишься.
 
M16,
а это всё не будет влиять на аудио
Не знаю, свечку не держал (пока), но почему-то почти уверен, что нет ))

а тупо запустить миди ноту в туже сетку проблематично,
Миди – это события они происходят типа так: "Оп! событие, где ближайший подходящий отсчет, не могу же я начинать мимо отсчета, как же я тогда считаю, я же цифровой хост. Ставлю ноту вот сюда! Ну да, чуть позже миди события, ну а что вы хотели, я – машина, что мне скажут, то и делаю!"

почему аудио можно разрезать точно и так же точно расставить по сетке (сетка привязана к bpm а не к частоте 44.1) и никуда ничего не уплывёт
Потому что в движке прописано правило, каким образом расставлять миди фрагменты по сетке, а про аудио там весь сказ (и дробность уже не имеет значения) что – "О! аудио! щас мы его влупим, вот вам фейд длиной в отсчет, если стояло криво, зато следующий отсчет аудио полностью совпадет с моим!", – сказал секвенсор и засмеялся.

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

Ну, и стоит упомянуть пресловутые "Правила секвенсоров располагать события по отсчетам" – они у каждого хоста свои. Пока идентичных не нашел, хотя при некоторых BPM имеется возможность некоторые ноты ставить идентично в любых хостах.
 
в кубе много чо можно переключать еще. таймбейз дорожек например. или темп проекта - фиксед или темпо трек. наугад таскать каштаны из огня без исходников проги, по органолептическим показателям это долго ))
 
Испанский ГалстоГ, Я это к тому, что результат будет очень подобен твоему последнему видео с изменением положений локаторов..То бишь проблема получается и не в локаторах даже , а каким-то образом связана с позиционированием самого транспорта ..
 

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