Как лучше всего и быстрее всего разрезать аудиофайл с «фразами» и паузами между ними известной длите

Тема в разделе "Reaper", создана пользователем Вадим Мошев, 2 янв 2019.

  1. Вадим Мошев

    Вадим Мошев New Member

    Регистрация:
    2 янв 2019
    Сообщения:
    14
    Симпатии:
    1

    Здравствуйте.

    Есть такая задача. Имеется аудиофайл (в wav), который содержит несколько «фраз» (в среднем около 300), разделённых паузами. Под «фразами» я понимаю партии музыкальных инструментов (семплы) (то есть, полезный сигнал). Все фразы записаны при темпе 90 BPM и размере 4/4, их длительность различная, но известна. Длительность пауз составляет 1 такт.


    У меня два вопроса.

    Первый. Как быстро разрезать этот файл (такой большой итем) на отдельные фразы (итемы), при условии, что длительность фраз и пауз между ними известна? Верно ли я понимаю, что это удобно выполять с помощью скрипта? Хотел бы обсудить

    это подробнее. Я ни Python, ни Lua, ни какой-то там ещё ЯП, на котором пишется скрипт, не знаю. На псевдокоде он должен выглядеть «примерно» так:


    A = массив интервалов вида [s1, p, s2, p, …, sn], где s1, s2, …, sn – длительность фразы в тактах (для долей надо умножить на 4, как я понял), а p = 1 (длительность паузы в тактах, для долей это 4).


    цикл по массиву A (скорей всего это будет цикл for) (i = 1, 2, …, n)

    отмерить A[ i ] тактов/долей и отрезать

    конец цикла



    Подскажите, пожалуйста, как должен выглядеть скрипт. Массив я сгенерирую сам. Если не сложно, напишите мне шаблон, пожалуйста.


    Вопрос второй. После разбиения останутся пустые итемы с паузами, которые перед рендерингом хотелось бы исключить, например, перенести на другую дорожку. Как это сделать?


    Спасибо заранее.


    P. S. Я прошу понятнее объяснять, у меня нет музыкального или звукорежиссёрского образования, а также в Reaper я (почти) ничего не понимаю.
     
    Последнее редактирование: 3 янв 2019
  2. PianoIst

    PianoIst Well-Known Member

    Регистрация:
    19 май 2010
    Сообщения:
    2.995
    Симпатии:
    2.461
    Пол:
    Мужской
    Род занятий:
    Аранжировка, солист-пинанист
    Адрес:
    Новосибирск
    @Вадим Мошев, я бы начал с установки SWS extension и использования экшна remove silence.
    Кроме того, можно толчно подогнать bpm (если там прям тютелька в тютельку записано) и воспользоваться умным наименованием файлов для легкого экспорта.
    Но вообще, как правило, руками что-то делать всегда приходится, это уже индивидуально.
     
    Dimilyan нравится это.
  3. Slick

    Slick IDDQD

    Регистрация:
    13 май 2008
    Сообщения:
    1.979
    Симпатии:
    895
    Род занятий:
    Аранжировщик, Саунд Дизайнер
    Адрес:
    Москва, Апрелевка
    Я бы выставил сетку и порезал по сетке одним разом. А потом одним разом сократил паузы
     
  4. Dimilyan

    Dimilyan Active Member

    Регистрация:
    23 янв 2008
    Сообщения:
    509
    Симпатии:
    190
    Пол:
    Мужской
    Адрес:
    Владивосток
    http://sws-extension.org/

    Ссылка на всякий случай.
     
    PianoIst нравится это.
  5. Вадим Мошев

    Вадим Мошев New Member

    Регистрация:
    2 янв 2019
    Сообщения:
    14
    Симпатии:
    1
    @PianoIst,
    Такой экшн удалит пустые итемы или тишину в исходном файле?


    Мне кажется, здесь речь идёт о функции WildCards, в частности о шаблоне $itemnumber. Мне он не пригодится, так как у меня есть подготовленные имена в файле. Функция группового переименования в Total Commander себя уже хорошо зарекомендовала. Для этого, правда, нужно, чтобы фразы на переименование в поступили в том же порядке, в котором они были отрендерены. Для этого нужно, чтобы файлы имели такие имена с порядковыми номерами, чтоб их можно было отсортировать в порядке возрастания этих номеров. Чтобы обеспечить такие условия, порядковые номера должны состоять из одинакового количества цифр, которое определяется максимальным номером. С этом случае использовать $itemnumber не надо, так как он, насколько я понял, для первого номера использует две цифры, а если у вас фраз больше 99, то вы получите номера 01, 02, ..., 99, 100, 101. Если включить сортировку по имени в TC, то файл файлы будут отсортированы в лексикографическом порядке, что приведёт к тому, что порядок наименования будет нарушен. Поэтому, если на выходе после рендеринга хотите получить файлы, порядок сортировки по имени которых не зависит от способа упорядочивания, не используйте $itemnumber. Может, этот совет кому-нибудь пригодится.

    @Slick,
    Как это сделать? Динамическое разбиение? Мне с помощью него удалось лишь только приблизиться к желаемому результату, но точного получить не удалось. Например, после разбиения, количество тактов получалось дробным, а этого нельзя допускать.


    А сжатие пауз что даст? Они же при рендеринге всё равно будут учитываться? Да и как их сжать одним разом?


    Спасибо.
     
  6. Slick

    Slick IDDQD

    Регистрация:
    13 май 2008
    Сообщения:
    1.979
    Симпатии:
    895
    Род занятий:
    Аранжировщик, Саунд Дизайнер
    Адрес:
    Москва, Апрелевка
    @Вадим Мошев, выложите кусочек из 10 фраз чтоб точнее понять. И инфу о скорости
     
  7. Вадим Мошев

    Вадим Мошев New Member

    Регистрация:
    2 янв 2019
    Сообщения:
    14
    Симпатии:
    1
    @Slick, вот ссылка на запакованный wav файл, ссылка на яндекс диске: https_://yadi.sk/d/xdDwHKjllo5ocg
    Темп: 90 BPM
    Размер: 4/4
    Между фразами пауза в один такт.

    Заранее спасибо за помощь
     
  8. Slick

    Slick IDDQD

    Регистрация:
    13 май 2008
    Сообщения:
    1.979
    Симпатии:
    895
    Род занятий:
    Аранжировщик, Саунд Дизайнер
    Адрес:
    Москва, Апрелевка
    @Вадим Мошев, нет единой длины и по паузам. поэтому не получается.
    к примеру если б каждый луп был одной длины и паузы одинаковые то можно было как я описывал - одним разом отрезать по сетке, и сократить эти самые паузы одинаково.
     

    Вложения:

    • 333.gif
      333.gif
      Размер файла:
      2,2 МБ
      Просмотров:
      13
  9. KOTOPES

    KOTOPES Well-Known Member

    Регистрация:
    23 май 2009
    Сообщения:
    2.218
    Симпатии:
    1.178
    @Вадим Мошев, может проще это сделать в propellerheads recycle, он по транзиентам поставит маркеры, можно и вручную их выставить и откорректироват, а потом все это размеченное дело одним кликом сохранить в кучу отдельных вавок. Правда и пустоты/паузы так же сохраняются и придется потом эти файлы вручную отслушать и удалить. Я так делал, ниче страшного, несколько минут отняло.
     
  10. Broojacker

    Broojacker Active Member

    Регистрация:
    4 сен 2010
    Сообщения:
    185
    Симпатии:
    110
    Адрес:
    Киев
    В реапаке есть скрипты Script: me2beats_Split items with given length.lua
    Я думаю, проще всего ставить маркеры или регионы при записи, потом Script: X-Raym_Split selected items at regions.lua, вручную удалить тишину, Xenakios/SWS: Reposition selected items..., удалить старые регионы. Если нужно отрендерить пофразно - выделить все айтемы - SWS/BR: Create regions from selected items (name by item's notes) - Render Project region.
    Сейчас, проще всего сделать сплит через Dynamic split items по транзиентам, как пишут сверху. Если файл очень длинный лучше применять частями.
     

Поделиться этой страницей