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

Aleksandr Oleynik

Well-Known Member
16 Янв 2007
26.360
20.064
113
62
Киев
@EUGEN27771, так стоят условия на все деферы, но поскольку скрипт основной открывает второй, а тот в свою очередь последовательно открывает ещё другие скрипты и во всех них есть деферы (с условиями) - получается так, что при закрытии основного скрипта (первого), что-то остаётся висеть, хотя и не ругается и вижу я это только по глюку, который случайно отловил.....
Я так понимаю, что гарантированно закрывает дефер только atexit? Но я с этой функцией так до конца и не подружился :(
В общем буду искать и видимо действительно прийдётся ввести какую то глобальную переменную, которая будет менять состояние при закрытии основного скрипта и введу её как условие прекращения деферов во все прочие скрипты.... попробую во всяком случаи
 

diggidon

Administrator
Команда форума
26 Май 2008
6.832
7.487
113
51
Днепр UA
Ребята, очень нужен скрипт, который устанавливал бы для фильтра в миди эдиторе следующие значения:
Image 1.jpg
Помогите, плиз, реально задолбало каждый раз выбирать эти параметры вручную.
 

Dimilyan

Well-Known Member
23 Янв 2008
972
586
93
38
Владивосток
Ребят, нужна помощь.
Не помню уж точно, где я этот экшн видел. Толи тут на форуме, толи у АндиВакса подмотрел.
Короче, опишу что он делает.
Выделяешь участок в Arrange View. Нажимаешь на экшн и он записывает все то, что звучит в Selected Area и выводит в отдельный файл, который помещает на свежесозданной им же дорожке.
Повторюсь, он записывает все дорожки, все эффекты, автоматизацию, все то, что поступает на мастер-канал, все учитывается и записывается в wav-файл.
Помню, что использовался SWS возможности, в частности - Cue Buss Generator...
А дальше....
Я не силен в создании экшенов :(
Ребят, неужели никто не поможет? Был же где-то этот экшн.
Может я непонятно объяснил его работу?
 

Aleksandr Oleynik

Well-Known Member
16 Янв 2007
26.360
20.064
113
62
Киев
@Aleksandr Oleynik, даже если есть возможность принудительно закрыть, лучше найдите и поставьте условие. Можно какую-либо глобальную переменную, допустим Active поставить условием(или доп. условием) на все defer.
Нашёл. Как говориться - "Горе от ума". Я сам сделал функцию, которая делает Undo при определённых обстоятельствах ни взирая ни на что.
Вот ....., обстоятельства оказалось, что могут возникнуть достаточно неожиданно.
Во Истину - функционально верные скрипты это ДОСКАНАЛЬНО продуманные условия.
 
  • Like
Реакции: Buyan

lil-burn

Well-Known Member
15 Авг 2012
903
638
93
Екатеринбург
@diggidon,
PHP:
local r = reaper; local function nothing() end; local function bla() r.defer(nothing) end

function esc(str) str = str:gsub('%-', '%%-') return str end

local take = r.MIDIEditor_GetTake(r.MIDIEditor_GetActive())
if not take then bla() return end

local item = r.GetMediaItemTake_Item(take)

local _, chunk = r.GetItemStateChunk(item, '', 0)

local fltr_str = chunk:match'\nEVTFILTER .-\n'
if not fltr_str then r.MB("Can't find EVTFILTER string",'Oops',0) bla() return end
local a,b,c,d,e = fltr_str:match'(\nEVTFILTER .- )(.-)( .* )(.-)( .- .-\n)'
if not e then r.MB("Something went wrong",'Oops',0) bla() return end

local new_chunk = chunk:gsub(esc(fltr_str),a..'144'..c..'1'..e)
if new_chunk==chunk then bla() return end

r.Undo_BeginBlock() r.PreventUIRefresh(1)
r.SetItemStateChunk(item, new_chunk, 0)
r.PreventUIRefresh(-1) r.Undo_EndBlock('Filter Events - Type Note, Note, Use piano keys', -1)
 
  • Like
Реакции: diggidon

igor13r

New Member
8 Ноя 2013
22
1
3
saransk
Ребят, не экспортируется Cycle Action, хотел файл на другой ком. перенести......выбираю, нажимаю Export selected Cycle action но файла нет...((
Не встречалось такого ?
 

igor13r

New Member
8 Ноя 2013
22
1
3
saransk
@vitalker, про версию не подумал...вечером посмотрю, отпишусь
кстати, в студии работает, сохраняет....а дома нет ...глюк наверное...
 

vitalker

Well-Known Member
8 Окт 2013
5.085
2.195
113
Гродно
@igor13r сверьте версии в студии и дома... Мне кажется, что это вы начудили! Или просто накатите последнюю версию поверх :)
 

vax

Чукча-писатель
13 Ноя 2002
7.397
4.620
113
44
Kiev/UA
www.andivaxmastering.com
а есть скрипт чтобы сделать toggle для envelope трека между минимальным значением и большим-удобным-фиксированным? ))
 

Aleksandr Oleynik

Well-Known Member
16 Янв 2007
26.360
20.064
113
62
Киев
а есть скрипт чтобы сделать toggle для envelope трека между минимальным значением и большим-удобным-фиксированным? ))
Можно сделать.
Сделай проектик из одного трека и одного envelope и настрой в начале нужную мин величину и запусти приатаченный скрипт -
скопируй сюда то, что появится в окне,
что-то такое -

PHP:
<VOLENV2
ACT 1
VIS 1 1 1
LANEHEIGHT 24 0
ARM 1
DEFSHAPE 0 -1 -1
PT 0 1 0
>
Потом выставь второй нужный размер и опять запусти и скопируй сюда -
вот для этих двух размеров сделаю тебе toggle скрипт.
Я так понимаю, что все envelope нужно будет менять одновременно?

PS: Вообще-то для envelope можно задавать вот эти любые параметры через скрипт -
active: true if envelope is active
visible: true if envelope is visible
armed: true if envelope is armed
inLane: true if envelope has it's own envelope lane
laneHeight: envelope lane override height. 0 for none, otherwise size in pixels
defaultShape: default point shape: 0->Linear, 1->Square, 2->Slow start/end, 3->Fast start, 4->Fast end, 5->Bezier
minValue: minimum envelope value
maxValue: maximum envelope value
type: envelope type: 0->Volume, 1->Volume (Pre-FX), 2->Pan, 3->Pan (Pre-FX), 4->Width, 5->Width (Pre-FX), 6->Mute, 7->Pitch, 8->Playrate, 9->Tempo map, 10->Parameter
faderScaling: true if envelope uses fader scaling

Но что-то у меня вот именно эта функция (которой можно и считать все эти данные и установить - не работает корректно).
 

Вложения

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

@Michael

Well-Known Member
14 Дек 2010
969
1.461
93
Орёл / Москва
а есть скрипт чтобы сделать toggle для envelope трека между минимальным значением и большим-удобным-фиксированным? ))
PHP:
h1 = 50 -- pixels
h2 = 100

env = reaper.GetSelectedEnvelope( 0 )
if env then 
  h0 = tonumber(({reaper.GetEnvelopeStateChunk( env, '' )})[2]:match('LANEHEIGHT %d+'):match('%d+'))
  if math.abs(h0 - h1) >= math.abs(h0-h2) then h_out = h1 else h_out = h2 end    
  out_ch = ({reaper.GetEnvelopeStateChunk( env, '' )})[2]:gsub('LANEHEIGHT %d+','LANEHEIGHT '..h_out ) 
  reaper.SetEnvelopeStateChunk( env, out_ch)
  reaper.TrackList_AdjustWindows( false )
end
 
Последнее редактирование:

Vilia33

Active Member
8 Ноя 2009
418
103
43
Чтобы заменить FX ,надо сначала зайти в браузер FX ,потом кликнуть правой кнопкой мыши
по установленному эффекту и выбрать команду "Replace FX".
Существует ли скрипт ,чтоб это сделать одной командой не заходя в браузер FX ???
 

Aleksandr Oleynik

Well-Known Member
16 Янв 2007
26.360
20.064
113
62
Киев
Чтобы заменить FX ,надо сначала зайти в браузер FX ,потом кликнуть правой кнопкой мыши
по установленному эффекту и выбрать команду "Replace FX".
Ни чего подобного!
Нужно просто кликнуть правой клавишей на FX в инсёрте трека и выбрать команду "Replace FX", после чего естественно откроется браузер FX чтоб вы могли выбрать новый FX.

Существует ли скрипт ,чтоб это сделать одной командой не заходя в браузер FX ???
К нему прийдётся Кашпировского заказывать, чтоб читал ваши мысли - на какой именно FX вы хотите заменить.
 

Vilia33

Active Member
8 Ноя 2009
418
103
43
@Aleksandr Oleynik, Спасибо за ответ.
Зачем нам Кашпировский?? Я ведь могу не заходя в браузер FX загрузить Vsti инструмент.
А поменять один FX можно на другой FX:)
 

Maestro Sound

Active Member
1 Ноя 2007
721
86
28
PHP:
h1 = 50 -- pixels
h2 = 100

env = reaper.GetSelectedEnvelope( 0 )
if env then
  h0 = tonumber(({reaper.GetEnvelopeStateChunk( env, '' )})[2]:match('LANEHEIGHT %d+'):match('%d+'))
  if math.abs(h0 - h1) >= math.abs(h0-h2) then h_out = h1 else h_out = h2 end   
  out_ch = ({reaper.GetEnvelopeStateChunk( env, '' )})[2]:gsub('LANEHEIGHT %d+','LANEHEIGHT '..h_out )
  reaper.SetEnvelopeStateChunk( env, out_ch)
  reaper.TrackList_AdjustWindows( false )
end
А можно тоже только с треком?
 
  • Like
Реакции: tosh

@Michael

Well-Known Member
14 Дек 2010
969
1.461
93
Орёл / Москва
PHP:
h1 = 50 -- pixels
h2 = 100

tr = reaper.GetSelectedTrack( 0, 0 )
if tr then
  h0 =  reaper.GetMediaTrackInfo_Value( tr, 'I_HEIGHTOVERRIDE' )
  if math.abs(h0 - h1) >= math.abs(h0-h2) then h_out = h1 else h_out = h2 end 
  reaper.SetMediaTrackInfo_Value( tr, 'I_HEIGHTOVERRIDE', h_out)
  reaper.TrackList_AdjustWindows( false )
end
 
  • Like
Реакции: Martin111 и Maestro Sound

Maestro Sound

Active Member
1 Ноя 2007
721
86
28
Уважаемые друзья "Скриптоплеты"! можно ли Вас попросить сделать Скрипты - Отдельно закрытие и Отдельно открытие всех 16 toolbars по отдельности?
 

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