Помогите создать экшн / кастом экшн / скрипт

  • Автор темы Автор темы @Michael
  • Дата начала Дата начала
но я хочу на nanokontrol эту функцию назначить(
а на нём разве нельзя переназначить им отправляемый тип и способ контролера?
Абсолют режим ещё предпочтительнее тем, что в нём есть режим Soft takeover, который при отсутствии фидбэка миди у Рипера, делает так, что вы не собъёте значение выставленное в Рипере троганием контролера.
 
Возможен ли (или может быть уже существует) скрипт, который может в одно нажатие определить темп акапеллы и подогнать тем проекта к её темпу)
 
Сложно. Если заранее известно, что темп постоянный - тогда нормально, возможно.
А если темп переменный - там же профессиональные программы путаются как с куста, на барабанах даже.
А на неудобном вокале с переменным темпом любая запутается.
@lil-burn, для простого варианта можно посмотреть в поиске Beat detection. Варианты - есть, я видел, но это только для прямого темпа, и то с натяжкой.
А для плавающего темпа ситуация такая, что не каждый живой барабанщик сходу сыграет под незнакомый живой вокал - с первого раза, имеется ввиду.
И как же можно точно определить темп - никак. С какой-то степенью вероятности только. Покажите программу, которая это делает с вероятностью 100%?
 
@Aleksandr Oleynik, человек изначально не делает на 100%, даже самый простой темп. Программа будет, конечно, и уже есть много вариантов(все приблизительные).
Задача сначала кажется достаточно простой. Но потом понимаешь, что все не так просто, как кажется.
 
Ребята, помогите, плиз, со скриптом. Ну очень нужен.
Нужно, чтобы скрипт умел задавать следующие параметры:
Item Prop.jpg
То есть выделяем айтем/группу айтемов → запускаем скрипт → для выделенных айтемов устанавливаются определённые значения Take pitch/shift time stretch mode, Stretch marker fade size, Optimaze for tonal content.
Имея базовый скрипт, я бы уже сделал для себя три-четыре копии с разными значениями этих параметров - своего рода пресеты на все случаи жизни.
 
  • Like
Реакции: Al Brazy и RJ Baker
@diggidon, именно сейчас надо? Там просто в чанке поменять значения, короче, сейчас гляну точнее
 
  • Like
Реакции: diggidon
@diggidon,
PHP:
-----------------------------
function ChangeItemPR(i)
  local item = reaper.GetSelectedMediaItem(0, i)
  if item then
    local ret, chunk = reaper.GetItemStateChunk(item,"",false)
      --reaper.ShowConsoleMsg("Item - " .. i .." - Chunk\n"..chunk)
    local pattern = "PLAYRATE.-\n"
    local chunk, change = string.gsub(chunk, pattern, "PLAYRATE 1 1 0 720896 2 0.01")
    if change>0 then reaper.SetItemStateChunk(item , chunk, 1) 
      --reaper.ShowConsoleMsg("Item - " .. i .." - NewChunk\n"..chunk)
      reaper.UpdateItemInProject(item)
    end    
  end
end
-----------------------------
for i=0, reaper.CountSelectedMediaItems(0) - 1 do 
  ChangeItemPR(i)
end
 
@EUGEN27771, Женя, огромное тебе спасибо, человечище!)))
Расскажи ещё, плиз, в какой строчке менять параметры (fade size, optimal for tonal content etc), и какие цифры что означают. Я догадываюсь, но очень смутно...
 
@diggidon, можно заменить на пресет - как Вам нужно. Для этого добавьте в начале необходимый пресет, например,
preset = "PLAYRATE 1 1 0 720896 2 0.01" -- MyPreset1
И замените строку -
local chunk, change = string.gsub(chunk, pattern, "PLAYRATE 1 1 0 720896 2 0.01") на
local chunk, change = string.gsub(chunk, pattern, preset)
Теперь можно указывать любые значения, но они обязательно! должны быть валидными.
Чтобы узнать значения - поставьте все вручную, откройте файл проекта блокнотом и скопируйте строку PLAYRATE .... до конца.
Ошибки не допускаются. Можно сделать все с проверками и т.п., но вроде нет смысла- просто нормально скопируйте.
 
@diggidon, вот это действительно шикарный подарок:
v5.32pre4 - December 30 2016
.......
+ ReaScript: allow up to 32M memory slots for each EEL script !!!
====
Снимок.PNG

Для нас - это значит, что теперь eel можно смело использовать для аудио-обработки и анализа, где он работает невероятно быстро.
P.S. - честно говоря, я вообще до конца не верил, что сделают, "ну надо ж так, под Новый Год".
Люблю эту программу. Немного флуда - это вернуло веру в чудеса. Ведь я, наверное, единственный человек кому это нужно было.
 
Последнее редактирование:
@vitalker, надо начать с того, что 100% аналог фрукта не получится:
на drag пока нельзя назначить сторонний экшен ==> не получится нажать ЛКМ (1), потянуть (2), отпустить (3) и получить результат.

то есть надо заменить (1),(2),(3) на другие действия
Как вариант это могут быть: нажать клавишу, потянуть мышь, снова нажать клавишу, либо
нажать и удерживать клавишу, потянуть мышь, отпустить клавишу.
 
Задача сначала кажется достаточно простой. Но потом понимаешь, что все не так просто, как кажется
Там легко делается в полуавтоматическом режиме-есть стандартный экшн, который устанавливает темп проекта в соответствие с выделенной частью выделенного айтема ( с автоматическим определением темпа участка файла). Но сначала приходится выделять участок с примерно одним тактом-это занимает время да и точность на акапелле невысокая, когда вручную это делаешь. Вот если бы эту ручную часть как-то автоматизировать и объединить со стандартным экшеном)
 
Там легко делается в полуавтоматическом режиме
Так в этом и смысл - когда Вы выделяете участок, то практически и определяете темп - Вы уже анализируете темп вручную, с человеческой точки зрения, программе ничего не остается - поделить-умножить и все. А представьте - если переложить задачу анализа(очень сложную) на программу?
@lil-burn, если бы мы могли знать состояние мыши... это через вин апи только. Breeder этого не стал делать даже - только координаты, догадываюсь почему:).
Клевейшей функцией было бы в Рипере - они же точно знают, что открыто определенное окно, что мышь в окне, что у нее такое-то состояние и т.п. Может вопрос в реквестах поставите - я уже не могу.
 
Последнее редактирование:
@EUGEN27771 а, то есть Рипер знает, на каком окне расположена мышь? Да, я о таком давно думал - оно решило бы много задач
@lil-burn класс! Это ничуть не хуже, а может и лучшее решение
 
@vitalker, конечно знает, только нам не говорит - координаты мыши даже дает, а состояние - нет.
Предполагаю, что такая ситуация- из-за того, что окна в нем могут быть независимыми, то есть они не использовали родную схему, а немного изменили.
Но это только предположение - я не программист.
 
Ок, автоматическая подстройка под темп акапеллы пока не возможна, переживем)
А вот новые возможности скриптов не позволяют пока создать полноценный channel strip ( если что я не про пресет из нескольких всти , а единый интерфейс с одновременно загружаемыми в одной оболочке) ? Вот амбициозная задача, за которую сотни тысяч пользователей Рипера сказали бы огромное спасибо. Я бы мог морду помочь нарисовать в фотошопе ( хоть и не спец)
 
Решена задачка-то, и нехило решена. LBX ченел стрип, страница тут http://forum.cockos.com/showthread.php?t=182233
раздается тут - https://github.com/L-B-X/LBXStripper
Имеет 100500 степеней свобод, рулится вдоль и поперек, имеет такие возможности о которых дядя Штайни и не мечтал.
Ежели хочется красивых ручек, фейдеров, кнопок и панелек, то кнобман и фотошоп в помощь.
 
  • Like
Реакции: SoundExplosion
привет создат такой кастом экшн Безымянный.png, я им запускаю эквалайзер на дорожке с барабанами, эквалайзер работает как hipass фильтр, на его частоте весит лфо, которое 4 такта закрывает фильтр, потом 4 такта открывает. Я хочу модернецировать этот экшн так, чтобы он срабатывал не с начала следующего такта, а с начала такта порядковый номер которого кратен 8, тоесть нажимаю кнопку и со следующего квадрата запускается фильтр. гифка как щас он работает 111.gif
подскажите может есть такой скрипт или экшн
 
@vitalker, написал недавно вот такой скрипт
duplicate up to mouse.gif
его доделаю еще чуть позже, чтоб умел и назад дублировать, если мышь слева от выделенных айтемов.
В принципе же это можно назвать заменой кисти? Или в каких-то случаях кисть все же удобнее?
 
  • Like
Реакции: vitalker
@EUGEN27771, не могли бы вы вернуться к разговору о вашем скрипте для изменения настроек Эластика. Я не понимаю так глубоко в этой матрице...
Как создать пресет, открыть файл проекта.. что-то скопировать.. куда.. Просто зависаю..
Можете сделать просто ещё один скрипт с другими настройками?
Screen022.png
Заранее спасибо и с Рождеством!!
 
Последнее редактирование:
@Wefilev, спасибо, с Рождеством!
Просто создайте пустой проект, добавьте один айтем, поставьте необходимые Вам настройки, сохраните проект.
Откройте проект блокнотом, найдите строку PLAYRATE . . . . , скопируйте ее до конца, без ошибок!
В итоге будет вот так. Расширение cкрипта - lua!
PHP:
preset = "PLAYRATE 1 1 0 589840 2 0.01"
-----------------------------
function ChangeItemPR(i)
  local item = reaper.GetSelectedMediaItem(0, i)
  if item then
    local ret, chunk = reaper.GetItemStateChunk(item,"",false)
      --reaper.ShowConsoleMsg("Item - " .. i .." - Chunk\n"..chunk)
    local pattern = "PLAYRATE.-\n"
    local chunk, change = string.gsub(chunk, pattern, preset)
    if change>0 then reaper.SetItemStateChunk(item , chunk, 1)
      --reaper.ShowConsoleMsg("Item - " .. i .." - NewChunk\n"..chunk)
      reaper.UpdateItemInProject(item)
    end  
  end
end
-----------------------------
for i=0, reaper.CountSelectedMediaItems(0) - 1 do
  ChangeItemPR(i)
end
 
  • Like
Реакции: sve и Wefilev
Ребята, всем привет!) Подскажите пожалуйста как решить такую проблему. Настроил кнопки для загрузки плагинов в инсерт. Кнопки работают, но если в цепочке уже есть плагины, то он загружает плагин, но открывает самый верхний. Как сделать чтобы он в этом случае открывал именно вставляемый плагин? У экшена вконце стоит Float selected fx for selected tracks. Пробовал другие "Float" так и не смог найти подходящий.
 

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