В чём же смысл данной формулы? Ключевым моментом в ней является логарифмическая функция, согласно которой происходит изменение темпа. Именно натуральный логарифм лежит в основе, а не линейная функция y=a+bx, которую взяли за основу разработчики Reaper - в этом их единственная, но фатальная ошибка алгоритма (после описания формулы я расскажу, на что влияет алгоритм этого расчёта с практической точки зрения).
Приведённая выше формула переведена из bpm в bps для упрощения, т.к. является сложной функцией и содержит несколько вложенных функций. Да, сам темп, относительно долей тактов, изменяется по линейной функции, но на этом вся линейность и заканчивается, а дальше вступает в действие натуральный логарифм. Постараюсь это кратко объяснить. Например, при изменении темпа со 120 bpm до 40 bpm за один такт размером 4/4 сначала темп быстрый (119, 118, 117 и т.д.), а к концу такта темп медленный (49, 48, 47 и т.д.), следовательно: первая доля такта будет самой короткой, вторая будет подольше, третья ещё дольше, чем вторая, а четвёртая будет самой долгой. Так что о линейности изменения времени и речи быть не может. Кстати, как косвенное подтверждение: значения темпа не могут быть равны нулю, а начальное и конечное значения темпа не равны друг другу, т.к. в таком случае функции не существует (изменения темпа нет).
С начальным моментом времени всё просто: если изменение темпа начинается с нулевой отметки времени, то оно равно нулю. Если же темп изменяется в середине муз. композиции или в конце, то начальное время прибавляется к значению продолжительности изменения темпа.
Опустим пока объяснение коэффициента
4ca/b и обратимся к выражению в скобках. Сначала лёкая часть - знаменатель - показывает на сколько изменяется темп на заданном интервале долей. Числитель понять немного сложней, т.к. присутствуют логарифмы. Что это означает? Я не буду объяснять, что такое логарифм. По сути мы видим ту же разность значений темпа, но не в абсолютных, а в весовых значениях. Т.о., разделив числитель на знаменатель, мы получаем значение веса темпа одной единичной доли интервала, за которое происходит изменение темпа. За единичную долю принимается один удар в секунду.
Теперь надо узнать: какая относительная длительность доли музыкального размера композиции на данном интервале. За единичную (удельную) длительность доли принимается четвертная доля (константа 4 удара). Это связано с тем, что музыканты считают четвертными долями при значении темпа 1 удар в секунду (60 bpm). При значении длительности доли в 1/8, темп счёта увеличивается в два раза, поэтому удельная длительность доли музыкального размера рассчитывается
4:b. Например, при музыкальном размере 3/4 удельная длительность будет 4:4=1 удар, а при размере 5/8 будет 4:8=0,5 удара. А теперь умножим удельное количество ударов за одну долю на количество долей в такте:
4:b*a. Например, для размера 5/8 будет 4:8*5=2,5 удара. А теперь полученное значение умножим на значение веса единичной доли (выражение в скобках) и получим длительность интервала в секундах, за которые происходит изменение темпа.
Остаётся умножить на количество тактов данного интервала (оно может быть не только целым, но и дробным). Из формулы видно, что значение
t будет всегда положительным (здесь время отрицательным не бывает).
Для большей наглядности преобразуем bps в bpm через f=F:60. Получится:
Чтобы уменьшить погрешность, избавимся от одного логарифма, выразив F
0 через F
0=kF. В итоге получим две формулы, когда темп замедляется:
когда темп ускоряется:
При желании можно рассчитать производную от этой функции. У меня такого желания не возникло
Теперь практическая часть, о которой я обещал рассказать. После некоторых размышлений я не удивляюсь, почему за столько лет работы Reaper, не была обнаружена эта ошибка. Об этом писать не буду. А вот о возможных казусах работы в Reaper, связанных с данным алгоритмом расчёта, скажу:
- Неправильный обмен данными между приложениями (в частности с нотным редактором), касательно значений темпо-маркеров при равномерных плавных изменениях темпа;
- При коллективной работе в различных DAW возникнет смещение долей, при использовании в композиции равномерных плавных изменений темпа;
- Излишние затраты времени, неточность и ложные значения темпо-маркеров при подгонке темпа аудио трека;
- Асинхронность темпа при использовании отдельного метронома и фонограммы, проигрывающейся в Reaper на репетициях или концертах.
Конечно, можно на всё это не обращать внимания, но лично я не испытываю желания, при известных мне значениях равномерного плавного изменения темпа, каждый раз тратить время на подгонку, устанавливая “мифические” значения темпо-маркеров.
Имея формулу в качестве обоснования, я обязательно напишу об этой ошибке на официальном форуме Reaper, чтобы производители её исправили. Несерьёзно как-то не следовать математике. Убеждён в том, что законы математики следует выполнять безупречно, ибо несоблюдение их означает идти против самой природы или «… против ветра».