Помогите создать экшн / кастом экшн / скрипт (4 онлайн)

arkaine

Active Member
13 Сен 2007
640
128
43
Не затруднит ли кого создать скрипт, который бы рандомно реверсил некоторые из выделенных (аудио) айтемов, либо тейки в них (как это в аналогичных скриптах, например, с рандомайзом плейрейта или панорамы в айтемах/тейках)?
 

Nagor

Active Member
4 Окт 2010
723
128
43
@lil-burn, спасибо за очередной шедевр! Можно ссылку? На вашей странице скриптов не могу найти.
 

arkaine

Active Member
13 Сен 2007
640
128
43
@Nagor, в ReaPack'е.

@lil-burn, огромное спасибо, теперь есть почти полный функционал для контролируемой рандомной генерации лупов. :)

LOOP CREATION 2.gif

Получаются интересные результаты:






Теперь для полного счастья не хватает скрипта, который бы рандомизировал питч айтемов.
Не могли бы Вы создать такой?..

Банально, но нет такого. А все Ваши скрипты, как правило, качественны (либо "допилены", если придётся :)), так что, смею полагать, создание Вами данного скрипта раз и навсегда закрыло бы поиск мною (и, наверное, другими пользователями) скрипта с таким функционалом.

В Реапаке есть 2 скрипта, предполагающих собой такой функционал, но: У одного не запускается GUI и вылезает оповещение об ошибке, а второй вообще никак не воздействует на айтемы.

В идеале мне нужно, чтобы скрипт рандомайзил питч в диапазоне ±7 полутонов. Но можно и несколько версий, одна на ±7 полутонов, а другая, допустим, на октаву или ещё на какой-нибудь "стандартный" интервал.


И, как написали ниже:
классный скрипт. Только почему-то после его активации перестает срабатывать Xenakios/SWS: Switch item source file to random in folder.
 

Вложения

Последнее редактирование:
  • Like
Реакции: Nagor

Audios

Active Member
20 Май 2007
562
160
43
Москва
Toggle random active takes reverse.lua
классный скрипт. Только почему-то после его активации перестает срабатывать Xenakios/SWS: Switch item source file to random in folder.
Облом)
Дополню: иногда sws начинает срабатывать частично... допустим из 4-х тейков, 1. Но пока проследить не могу почему. Как будто игнорирует некоторые атеймы.
 
Последнее редактирование:

lil-burn

Well-Known Member
15 Авг 2012
903
638
93
Екатеринбург
@arkaine, @MusPro,
перестает срабатывать Xenakios/SWS: Switch item source file to random in folder
это баг SWS.
мой скрипт делает реверс через риперовский экшен Item properties: Toggle take reverse и больше ничего.
попробуйте Toggle take reverse на любом айтеме, а затем например
Xenakios/SWS: Switch item source file to random in folder.

кстати, мой Switch item source file to random in folder.lua тоже не работает, посмотрю на днях.
какие еще SWS не работают, кроме
Xenakios/SWS: Switch item source file to random in folder
Xenakios/SWS: Switch item source file to previous in folder
Xenakios/SWS: Switch item source file to next in folder
?
 

lil-burn

Well-Known Member
15 Авг 2012
903
638
93
Екатеринбург
@Aleksandr Oleynik, не не не) они такие штуки крутые начали делать, прикольных функций добавили в API
например, функции для копипаста текста в буфер обмена и из него. текст мгновенно копируется в буфер обмена, до этого питон для этих целей использовал, а сейчас это и в lua можно сделать.

Можно сейчас понаписать кучу скриптов например копировать в буфер обмена названия всех айтемов/треков/регионов, или например установить содержимое буфера как название для выделенного айтема/трека
но самая большая польза этой функции для GUI скриптов: теперь во всех местах где в GUI скриптах надо вводить текст (например поле фильтра), можно добавить вставку текста из буфера обмена, и это должно работать независимо от OS.

не хватает скрипта, который бы рандомизировал питч айтемов
Set active takes to random pitch (-7..+7).lua
Set active takes to random pitch (-12..+12).lua
если надо другой диапазон питча, просто поменяйте значения переменных min и max в начале скрипта.
 
  • Like
Реакции: arkaine

Audios

Active Member
20 Май 2007
562
160
43
Москва
@lil-burn, я просто сразу с этим столкнулся в процессе лупа когда скрипт загрузил, поэтому и упомянул. Про остальное не скажу пока, если что, то сразу. Но.... две эти операции (случайный реверс и случайный семпл) у меня практически не пересекаются, поэтому врядли скоро)
 

Maestro Sound

Active Member
1 Ноя 2007
721
86
28
(@@lil-burn, огромное спасибо, теперь есть почти полный функционал для контролируемой рандомной генерации лупов. :))
Что за скрипт? Название можно?
 

arkaine

Active Member
13 Сен 2007
640
128
43
@Maestro Sound, просто расположенные на Toolbar'е подряд следующие экшны и скрипты:

1. Random Item Source -- Xenakios/SWS: Switch Item Source File to Random in Folder
2. Pan Randomize -- Nagasaki45_Randomize active takes pan in selected items
... (по совместительству рандомизирует и Volume айтемов)
3. Pitch Randomize -- me2beats_Set active takes to random pitch (-7..+7)
4. Playrate Randomize -- X-Raym_Randomize take playback rate
5. Shuffle Order of Selected Items -- Xenakios/SWS: Shuffle Order of Selected Items
6. Reverse Order of Selected Items -- Xenakios/SWS: Reverse Order of Selected Items
7. Xenakios/SWS: Randomize Item Positions
... (для особых ценителей)
8. Reset Item Properties -- экшн, состоящий из: Reset Items Volume to 0, Reset Item Length and Media Offset, Set Item Playrate Based on Item Pitch (and Reset Pitch).

Untitled.jpg
 

Maestro Sound

Active Member
1 Ноя 2007
721
86
28
Прикольно Спасиб А Вот по поводу me2beats_Set active takes to random pitch (-7..+7) неплохо бы еще каждый следующий айтм питчился на пол тона выше предыдущего
 

lil-burn

Well-Known Member
15 Авг 2012
903
638
93
Екатеринбург
скрипт который квантайзит начало нот(ы), чтобы хвост оставался на месте
вот такой нашел, подойдет?
PHP:
ME = reaper.MIDIEditor_GetActive()
if ME == nil then return end
take = reaper.MIDIEditor_GetTake(ME)
if take ~= nil then 
  fng_take = reaper.FNG_AllocMidiTake(take)
  count_notes = reaper.FNG_CountMidiNotes(fng_take)
  if count_notes == nil then return end
  for i = 1, count_notes do
    note = reaper.FNG_GetMidiNote(fng_take, i-1)
    sel = reaper.FNG_GetMidiNoteIntProperty(note, "SELECTED")
    len = reaper.FNG_GetMidiNoteIntProperty(note, "LENGTH")
    pos = reaper.MIDI_GetProjTimeFromPPQPos(take, reaper.FNG_GetMidiNoteIntProperty(note, "POSITION"))
    ppq1 = reaper.MIDI_GetPPQPosFromProjTime(take, pos)
    if sel == 1 then
      snap = reaper.BR_GetClosestGridDivision(pos)
      ppq2 = reaper.MIDI_GetPPQPosFromProjTime(take, snap)
      reaper.FNG_SetMidiNoteIntProperty(note, "POSITION",ppq2) 
      reaper.FNG_SetMidiNoteIntProperty(note, "LENGTH", len + (ppq1-ppq2))   
    end
  end
  reaper.FNG_FreeMidiTake(fng_take)
end
насколько понял, делает квантайз нот по сетке аранжа (не по сетке миди редактора)
 

Martin111

Member
18 Фев 2015
482
20
18
53
@lil-burn, нужно чтобы к первому гриду квантайзилось, а этот скрипт делает в самое начало партии.
 

Вложения

Supa75

Active Member
21 Мар 2017
672
164
43
48
Днепр, Украина
Наверное так:
- сохранить текущее положение выделения трека
- дублировать трек
- возвратить сохраненное выделение трека
- выставить фейдер в ноль
- собственно рендер
 

Maestro Sound

Active Member
1 Ноя 2007
721
86
28
Выделенный трек поставить последним по счету???? Вниз треков и последним в микшере????
 
Последнее редактирование:

NuSound

сводка, ударка, басс
18 Дек 2005
1.819
603
113
35
Санкт-Петербург
vk.com
кто нибудь может написать скрипт для реампинга? как мне, абсолютно несведущему в плане скрипотписания, это видится:
1. я режу диай айтемы от пустоты, выделаю полученые айтемы с только нужным мне полезным сигналом и каналы на которых они располагаются
2. запускаю скрипт. открывается окошко, в котором я выбираю созданный мною заранее темплейт с определенной конфигурацией входов (например 1 канал Gtr Amp 1: input 1 или комбинации из двух и более каналов)
3. этот темплейт добавляется под каждый канал где есть айтемы
4. от первого выделенного канала до последнеего прогоняет запись (реампинг) только в тех моментах где есть айтемы. вероятно при помощи маркеров это можно сделать.
 

Aleksandr Oleynik

Well-Known Member
16 Янв 2007
26.360
20.063
113
62
Киев
@Aleksandr Oleynik, что именно не понятно?
Я же написал - ни чего.
В первую очередь про каналы - какой может быть input у items? У него только output есть.
И что за темплейт?
Вы бы человеческим языком описали что вам нужно делать.
 

NuSound

сводка, ударка, басс
18 Дек 2005
1.819
603
113
35
Санкт-Петербург
vk.com
Я же написал - ни чего.
В первую очередь про каналы - какой может быть input у items? У него только output есть.
И что за темплейт?
Вы бы человеческим языком описали что вам нужно делать.
у item и не должно быть никакого инпута, вы все напутали. еще раз
я выделяю нужные мне айтемы и дорожи, скрипт должен под каждой из выделенных дорожек создать канал(-ы) определенной конфигурации входа и начать процесс реампинга по порядку айтемов, запуская запись только там где есть айтемы и без моего участия перескакивая все места где нет айтемов. в картинках по порядку
1. я нарезал айтемы от пустоты, выделил дорожки и айтемы
2. запустил скрипт, он добавил нужные дорожки в проект и погнал запись
3. финальный результат.
там еще мелочи вроде солирования, рекорд арм и тд, ту суть должна быть ясна.
 

Вложения

arkaine

Active Member
13 Сен 2007
640
128
43
Очень интересует следующий вопрос.
Буду рад и благодарен, если отзовётся кто-нибудь из опытных скриптописцев.

Сделал такой экшн.
Paste at Mouse Cursor.gif
Он вставляет (Paste) ноты туда, где располагается курсор мышки.

Сам макро-экшн состоит из элементарных экшнов:
Save Edit Cursor Position
Move Edit Cursor to Mouse Cursor
Paste
Restore Edit Cursor Position

Как бы сделать привязку вставления (Paste) нот к вертикали?

Меня интересует возможность вставлять ноты туда, где располагается курсор мышки (в т.ч. вертикально). Например так, чтобы скопированное/вырезанное До мажорное трезвучие становилось Соль мажорным (вставлялось на высоте Соль), если курсор мышки будет напротив ноты Соль.

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

В MIDI Editor'е есть такое понятие как Selected Pitch -- это когда в MIDI Editor'е выделяется высота, по которой был совершён клик мышью. Возможно, можно как-нибудь привязать вставляемые MIDI-ноты к актуальному Selected Pitch'у.

Ну, либо был бы рад целому скрипту.
 
Последнее редактирование:

Martin111

Member
18 Фев 2015
482
20
18
53
Возможно скопировать выделенный кусок с Media Explorer на окно аранжировки, драгн-дропом или ctrl+лкм(перетаскивание) не делается. Может скриптом возможно как то это реализовать ? (например, выделил кусок, нажал на скрипт, и в окне аранжировки создаётся трек с этим аудио, под эдит курсором).
 

Вложения

diggidon

Administrator
Команда форума
26 Май 2008
6.832
7.486
113
51
Днепр UA
Возможно скопировать выделенный кусок с Media Explorer на окно аранжировки, драгн-дропом или ctrl+лкм(перетаскивание) не делается.
У меня всё делается, причём простым драг-н-дропом лкм, без всяких Ctrl/Alt/Shift.
Win 10, Reaper портабельный, запущен не от админа.
 
  • Like
Реакции: Martin111

Supa75

Active Member
21 Мар 2017
672
164
43
48
Днепр, Украина
помогите плиз со скриптом.
Необходимо запомнить и потом вернуть состояние громкости и панорамы выделенного трека.
Типа
Save volume and pan for selected track, slot 1
Restore volume and pan on selected track
 

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