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

  • Автор темы Автор темы @Michael
  • Дата начала Дата начала
@lil-burn
PHP:
function main()
  local ch_count = reaper.GetProjectStateChangeCount(0)
 
  if not last_ch_count or last_ch_count ~= ch_count then
    local tracks = reaper.CountTracks(0)
    for i = 0, tracks-1 do
      local tr = reaper.GetTrack(0,i)
      local _, tr_name = reaper.GetSetMediaTrackInfo_String(tr, 'P_NAME', '', 0)
      if tr_name ~= '' then
        if tr_name:sub(1,1):match('%l') then
          if #tr_name > 1 then
            tr_name = tr_name:sub(1,1):upper()..tr_name:sub(2,-1)
          else tr_name = tr_name:sub(1,1):upper() end
          reaper.GetSetMediaTrackInfo_String(tr, 'P_NAME', tr_name, 1)
        end
      end     
    end
  end
 
  last_ch_count = ch_count
  reaper.defer(main)
end

-----------------------------------------------

function SetButtonON()
  reaper.SetToggleCommandState( sec, cmd, 1 ) -- Set ON
  reaper.RefreshToolbar2( sec, cmd )
  main()
end

-----------------------------------------------

function SetButtonOFF()
  reaper.SetToggleCommandState( sec, cmd, 0 ) -- Set OFF
  reaper.RefreshToolbar2( sec, cmd ) 
end

-----------------------------------------------

  _, _, sec, cmd = reaper.get_action_context()
  SetButtonON()
  reaper.atexit(SetButtonOFF)
 
возможно ли скриптом узнать, какая была нажата нота на миди-клавиатуре или просто было ли что-то нажато на ней?
 
@@Michael, Не пытался выяснить -
Почему в
reaper.SetMediaTrackInfo_Value( tr, parmname, newvalue )
IP_TRACKNUMBER : (read-only, returns the int directly)

И когда и получим ли возможность из скрипта переместить трэк,
 
  • Like
Реакции: stepperian
Возможно ли как-то узнать полный размер окна плагина?

То есть напр это - не полный размер
upload_2016-7-17_2-36-8.png
а это полный
upload_2016-7-17_2-36-47.png
 
Кто пробовал reaper.Track_GetPeakInfo( track, channel )?
Не могу понять в каких еденицах снимает показания.
Хотелось бы получить полный аналог с индикатором на треке.
Так же очень нужно эти значения потом в dB перевести.
В общем нужно заставить слайдер (на любом JS плагине) двигаться синхронно с индикатором уровня который снимаем, а значение уровня выводить в dB.
Может кто-то поможет разобраться?

PS: нашёл вот эту тему -
http://forum.cockos.com/showthread.php?t=170003
Как будто бы ясно как получить значение числовое уровня в dB (проверю ещё конечно)
Но как получить из слайдера аналог индикатора - нет.

PS: Очень странно себя ведёт функция в deffer-е
Периодически имеем срыв значения сигнала...... :(
 
Последнее редактирование:
Кто пробовал reaper.Track_GetPeakInfo( track, channel )?
Не могу понять в каких еденицах снимает показания.
Хотелось бы получить полный аналог с индикатором на треке.
Так же очень нужно эти значения потом в dB перевести.
В общем нужно заставить слайдер (на любом JS плагине) двигаться синхронно с индикатором уровня который снимаем, а значение уровня выводить в dB.
Может кто-то поможет разобраться?

PS: нашёл вот эту тему -
http://forum.cockos.com/showthread.php?t=170003
Как будто бы ясно как получить значение числовое уровня в dB (проверю ещё конечно)
Но как получить из слайдера аналог индикатора - нет.

PS: Очень странно себя ведёт функция в deffer-е
Периодически имеем срыв значения сигнала...... :(
Насчет вывода уровня в db,посмотрите плагин Schwa/audio statistics=>slider3 slider6(current rms windows)(eel).
По умолчанию в jsfx у slider-ов зависимость линейная,а вам требуется их логарифмически смасштабировать,возможно и наоборот причесать показания слайдера к линейному виду.Как пример,чтобы смаcштабировать логарифмически(натуральный логарифм по основанию 2,718) слайдер громкости с диапазоном 360db,нужно вычислить количество опорных шкал,для этого находим натуральный логарифм числа 360 = 5,8861,т.е имеем около 6 опорных шкал,если быть точным,то при 6 шкалах звуковой диапазон у нас будет = 2,718^6 = 403,177db.Так как 6 шкал,это очень маленький класс точности,то для увеличения класса точности каждую шкалу разбиваем еще на 10 подшкал и т.д до бесконечности,в итоге имеем 60 шкал.Проверяем значения:нулевая шкала = 2.718^0 = 1,первая шкала = 2.718^0.1 = 1.105, вторая шкала = 2.718^0.2 = 1.221,3-я = 2,718^0.3=1.349 ............58-я 2.718^5.8 = 330.101 59-я шкала = 2.718^5.9 = 364.814 , 60-я= 2,718^6.0=403,177.Если нужно масштабировать десятичным логарифмом(скорее всего для частотного диапазона) все тоже самое только основание берем не 2.718,а 10.Чтобы причесать к линейному виду нужно извлечь либо нат.лог. или десятичный,в зависимости от исполнения алгоритма.
 
Последнее редактирование:
Добрый! Ребята помоги создать скрипт который копирует полностью все айтемы в регионе под определенным названием и вставляет в другие регионы с одинаковыми названиями
"например выделяем регион под названием (chorus) нажимаем скрипт , он копирует все что в этом регионе и вставляет все до мелочи в другие регионы с этим же названием


в бонус скрипта хотелось бы 2 скрипт, все тоже самое что и в первом скрипте, только что бы копировал и вставлял не целиком все элементы, а отдельные выделенные элементы , заранее спасибо.
 

Вложения

  • copy paste region.gif
    copy paste region.gif
    1,3 MB · Просмотры: 106
Последнее редактирование:
@stepperian, а почему просто с Control не перетащить Регион в новое место, скопировав его?
А для второго варианта - с теми-же трудозатратами выделите в скопированном регионе не нужные айтемы - и удалите.
 
  • Like
Реакции: Al Brazy
@stepperian, а почему просто с Control не перетащить Регион в новое место, скопировав его?
А для второго варианта - с теми-же трудозатратами выделите в скопированном регионе не нужные айтемы - и удалите.
я это знаю спасибо, дело в том что у меня специфическая техника для быстрой аранжировки и у меня есть ряд определенных скриптов для быстрой работы создания трека, не хватает только этого. Для облегчения переноса мелких деталей из одного региона в другие , что бы так же встали по размерности, это очень трудоемкий труд переносить руками несколько элементов которые даже не по сетки стоят, я и прошу написать такой скрипт что бы облегчал работу .
 
Последнее редактирование:
@stepperian, завтра вечерком можно сделать. вопросы такие:

1. что делать с айтемами копируемого региона, которые выходят за пределы этого региона
а) копировать, вставлять полностью
б) копировать, но вставить только часть айтема до пересечения с границей региона
в) свой вариант

2. что делать при наложении вставленных айтемов на уже имеющиеся айтемы
а) ничего не делать
б) устанавливать кроссфейд
в) удалять/обрезать старые айтемы в местах наложения
г) удалять/обрезать новые айтемы в местах наложения
д) свой вариант
 
  • Like
Реакции: stepperian
@stepperian, завтра вечерком можно сделать. вопросы такие:

1. что делать с айтемами копируемого региона, которые выходят за пределы этого региона
а) копировать, вставлять полностью
б) копировать, но вставить только часть айтема до пересечения с границей региона
в) свой вариант

2. что делать при наложении вставленных айтемов на уже имеющиеся айтемы
а) ничего не делать
б) устанавливать кроссфейд
в) удалять/обрезать старые айтемы в местах наложения
г) удалять/обрезать новые айтемы в местах наложения
д) свой вариант
1) б)
2) старые удалить , а новые поставить, полностью заменить на новые)
 
У кого нибудь есть скрипт на fade out ? (желательно с настраиваемым в скрипте хвостом)
 
@lil-burn, нужно чтобы была возможность менять в скрипте значение спада линии fade out
 

Вложения

  • Скрин.png
    Скрин.png
    20,2 KB · Просмотры: 114
Я проверил все работает как надо, lil-burn, большое прям огромное спасибо ,а можно еще сделать что бы он при копировании на другие регионы он полностью заменял ,а то сейчас он налаживается сверху поверх других айтемов ?
 
Последнее редактирование:
@stepperian, скиньте проект, или для начала просто гиф, у меня заменяются все айтемы, которые накладываются на другие, но возможно не учтены какие-то настройки проекта или свойства айтемов
 
  • Like
Реакции: stepperian
@lil-burn, не хватает сохранения настроек фейда, для применения с другими экшенами, ещё ввода наименьших значений fade out.
 
@lil-burn, было бы удобнее использовать скрипт который настраивался бы гибко, тоесть ввод fade in - fade out как на скрине, тоесть открывался бы в блокноте скрипт, где пользователь сам бы вводил нужное значение fade in 0:00.000 и fade out 0:00.000
 

Вложения

  • Скрин.JPG
    Скрин.JPG
    5,5 KB · Просмотры: 100
@Martin111, вы не умеете объяснять!
Напишите, что вам не нужен скрипт, который бы при каждом старте требовал внесения данных о фейде.
Напишите, что вы хотите иметь в начале скрипта блок задавамых пользователем настроек ыейда и КАКИХ.
 
@Aleksandr Oleynik, не нужно чтобы при каждом старте требовал внесения данных о фейде, мне нужно сделать несколько кнопок с разными настройками, и для применения с другими экшенами.
 
@stepperian, ну на гиф все нормально, это фича данных скриптов
В архиве 4 файла. С названиями "...(all items)" удаляют все айтемы в регионах, остальные 2 - только те айтемы, на треки которых вставляются копируемые айтемы (айтемы на других треках не трогают)
 

Вложения

  • Like
Реакции: stepperian и EUGEN27771
@stepperian, ну на гиф все нормально, это фича данных скриптов
В архиве 4 файла. С названиями "...(all items)" удаляют все айтемы в регионах, остальные 2 - только те айтемы, на треки которых вставляются копируемые айтемы (айтемы на других треках не трогают)
Все работает хорошо только вот скрипт он удаляет все что за пределами региона тоже айтем если он по длинее длинее самого региона , а хотелось бы чтобы скрипт обрезал и оставлял айтем которые находятся за пределами региона , и в дополнение к этому очень хотелось бы чтобы в скрипте перед началом скрипта была функция (найти ближайший слева регион от выделеного айтема , потом выделить его и потом " go to start of time selection " ) если не возможно сделать функцию , найти ближайший слева регион ,тогда просто сделать вот эту функцию " go to start of time selection " и все и пошел скрипт дальше. заранее спасибо
 
Последнее редактирование:

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