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

Тема в разделе "Reaper", создана пользователем @Michael, 2 авг 2015.

  1. Maestro Sound

    Maestro Sound Active Member

    Регистрация:
    1 ноя 2007
    Сообщения:
    411
    Симпатии:
    32
    Вот как раз именно про это недели две-три назад я просил сделать. Фриз и анфриз с удалением замороженых сурсов. Там "камнем" было то что без проверки при анфризе можно было стереть оригинальный сурс если трек не был заморожен.
     
    Последнее редактирование: 8 дек 2017
  2. @Michael

    @Michael Well-Known Member

    Регистрация:
    14 дек 2010
    Сообщения:
    761
    Симпатии:
    1.158
    Пол:
    Мужской
    Адрес:
    Орёл / Москва
    При загрузке проекта рипер спросит где исходники, если те были удалены.
    Эта инфа и так есть в проекте.
     
    Последнее редактирование: 8 дек 2017
    CerberPic нравится это.
  3. Archchie

    Archchie Active Member

    Регистрация:
    24 окт 2017
    Сообщения:
    247
    Симпатии:
    52
    Пол:
    Мужской
    @Aleksandr Oleynik, Спасибо!!!


    С пустышкой все понятно

    Вот этого сразу не заметил, теперь нужен скрипт Unbypass all FX (except VSTi) for all tracks


    Просто иногда делаешь кастом ,а в нем содержится какой либо скрипт и если скрипт переместить или удалить (при уборке в папке например) то кастом перестает работать пока по новой не соберешь(как то недавно убрался в папке,рассортировал все скрипты по под папкам после этого половина кастомов перистали работать),а если этот же кастом собрать в скрипте то ничего не теряется,вот поэтому такой подход у меня .Ну и так потихоньку потихоньку что то новое изучаю, пока как то так потом дальше больше.
     
  4. Maestro Sound

    Maestro Sound Active Member

    Регистрация:
    1 ноя 2007
    Сообщения:
    411
    Симпатии:
    32
    @Archchie, Ровно тоже Если начнешь переносить потом "гусей не собрать"
    --- добавлено 8 дек 2017 ---
    @@Michael, Вот это я понимаю "сменить имидж"
     
  5. Archchie

    Archchie Active Member

    Регистрация:
    24 окт 2017
    Сообщения:
    247
    Симпатии:
    52
    Пол:
    Мужской
    Нет! тут просто придется скрипт по новой добавить и все ,а в кастомах непонятно почему он перестал работать, там не ошибки, ни чего не выскакивает, из него просто, скрипт проподает и все ,вспоминай что там за скрипты были, в этом кастоме,приходится просто напросто полностью перебирать кастом
     
  6. Maestro Sound

    Maestro Sound Active Member

    Регистрация:
    1 ноя 2007
    Сообщения:
    411
    Симпатии:
    32
    @Archchie, Я понял о чем Вы ....И Я ТОГО ЖЕ МНЕНИЯ....
     
    Archchie нравится это.
  7. Aleksandr Oleynik

    Aleksandr Oleynik Well-Known Member

    Регистрация:
    16 янв 2007
    Сообщения:
    15.257
    Симпатии:
    7.871
    Пол:
    Мужской
    Адрес:
    Киев
    Ну так..... парни..... учитесь писать скрипты. Я сам не сильно умею, но помогу :)
    --- добавлено 8 дек 2017 ---
    Не, не нужно....
    Нужно просто в скрипт добавить условие - делать всё (и байпас и анбайпас) со всеми FX, кроме инструментов.
    Это будет следующий урок, кстати - от части переходящий от использования Экшинов, к использованию API.
    Будет время сделаю, будет не ясно - поясню....
     
    Maestro Sound нравится это.
  8. CerberPic

    CerberPic Member

    Регистрация:
    17 фев 2017
    Сообщения:
    35
    Симпатии:
    9
    Пол:
    Мужской
    Меня, кажется, Ваша просьба и сподвигла этим заняться.

    А ведь точно. Не учёл этот момент.
    Как её возможно получить? В API я по фризу нахожу только reaper.BR_GetMediaTrackFreezeCount( track ). Подозреваю, что как-то через chunk трека?
     
  9. @Michael

    @Michael Well-Known Member

    Регистрация:
    14 дек 2010
    Сообщения:
    761
    Симпатии:
    1.158
    Пол:
    Мужской
    Адрес:
    Орёл / Москва
    Я не очень понимаю логику того, что ты хочешь сделать. Расфризить и удалить исходники или расфризить и удалить фризы физически, или ещё что-то, из треда непонятно. Айтемы во фризе можно выгрузить например так:
    PHP:
      function eugen27771_GetTrackStateChunk(track)
        if 
    not track then return end
        local fast_str
    track_chunk
        fast_str 
    reaper.SNM_CreateFastString("")
        if 
    reaper.SNM_GetSetObjectState(trackfast_strfalsefalsethen track_chunk reaper.SNM_GetFastString(fast_strend
        reaper
    .SNM_DeleteFastString(fast_str)
        return 
    track_chunk
      end
      
    ---------------------------------------------------
      function 
    GetFreezedItemsData(tr)
        if 
    not tr then return end
        local chunk 
    eugen27771_GetTrackStateChunk(tr)
        
    local t= {}
        
    local freezed_items = {}
        
    local ch_opench_cnt,it_id false0,0
        
    for line in chunk:gmatch('[^\n\r]+') do
          if 
    line:match('<FREEZE'then ch_open true end
          
    if ch_open and line:match('<ITEM'then it_id it_id 1 end
          
    if ch_cnt 0 then
            
    if not t[it_idthen  t[it_id] = {} end
            t
    [it_id][#t[it_id]+1] = line
          
    end
          
    if ch_open and line:match('<'then ch_cnt ch_cnt 1 end
          
    if ch_open and line:match('>'then ch_cnt ch_cnt 1 end
          
    if ch_open and ch_cnt 1 then break end
        end
        
    -- compile chunks
          
    for key in pairs(t) do
            
    local ch table.concat(t[key], '\n')
            
    freezed_items[#freezed_items+1]={chunk =ch,
                                              
    pos tonumber(ch:match('POSITION ([%d%.]+)')),
                                              
    len tonumber(ch:match('LENGTH ([%d%.]+)'))}
          
    end
        
    return freezed_items
      end
      
    ---------------------------------------------------
      
    local tr reaper.GetSelectedTrack(0,0)
      
    GetFreezedItemsData(tr)
    ^^ и то это только для первого фриза
     
    Последнее редактирование: 8 дек 2017
    CerberPic нравится это.
  10. CerberPic

    CerberPic Member

    Регистрация:
    17 фев 2017
    Сообщения:
    35
    Симпатии:
    9
    Пол:
    Мужской
    Расфризить и удалить фризы физически. Спасибо за код, поизучаю.
    И, кстати, @@Michael, не подскажете, как вызвать функцию os.remove() ?
    С помощью неё я хотел производить удаление. Или же удалять лучше SWSовским экшном, как это у меня сейчас?
     
  11. @Michael

    @Michael Well-Known Member

    Регистрация:
    14 дек 2010
    Сообщения:
    761
    Симпатии:
    1.158
    Пол:
    Мужской
    Адрес:
    Орёл / Москва
    os.remove() не всегда работает
    PHP:
    path = [[C:\Users\mpl\Desktop\test.txt]]
    cmd 'del /f "'..path..'"'
    os.execute(cmd)
    но лучше через SWS (ибо там предусмотрен предварительный offline сурса, отправление в корзину и всё в таком духе)
     
    CerberPic нравится это.
  12. Archchie

    Archchie Active Member

    Регистрация:
    24 окт 2017
    Сообщения:
    247
    Симпатии:
    52
    Пол:
    Мужской
    хорошо.
     
  13. Aleksandr Oleynik

    Aleksandr Oleynik Well-Known Member

    Регистрация:
    16 янв 2007
    Сообщения:
    15.257
    Симпатии:
    7.871
    Пол:
    Мужской
    Адрес:
    Киев
    Появилось -
    PHP:

    reaper
    .Undo_BeginBlock() --call to start a new block
    ---------------------------------------------------------
    toggle_state reaper.GetToggleCommandState(reaper.NamedCommandLookup("_S&M_DUMMY_TGL1"),0) -- получаем 0 если отключенно и 1 если включенно
    local counttracks 
    reaper.CountTracks(0) -- даёт значение кол-ва треков
    if counttracks == nil then return end -- если треков нетто и ни чего не делать :)
    for 
    i=1counttracks do -- создаём цикл опроса по каждому треку
      local track 
    reaper.GetTrack(0,i-1) -- получаем объект Медиа Трек для каждого порядкового номера трека
      countFX 
    =  reaper.TrackFX_GetCounttrack ) -- для каждого трека получаем кол-во FX-ов на нём
      
    if countFX == nil then return end -- если FX нетто и ни чего не делать :)
      for 
    i=1countFX do -- создаём цикл опроса по каждому FX-у на треке
        instrument 
    reaper.TrackFX_GetInstrumenttrack ) -- если не инструмент текущий FXто получим значение = -1
        
    if instrument ~= i-1 then -- делаем условиечто если индекс FX-а не равен индексу инструментато -
          if 
    toggle_state == 0 then -- тут как и раньшеесли state 0 то делать вот это
            reaper
    .TrackFX_SetEnabled(tracki-1) -- Unbypass FX

            ComandID 
    "_S&M_DUMMY_TGL1" --
            
    reaper.Main_OnCommand(reaper.NamedCommandLookup(ComandID),0) -- переключаем state Dummy Экшина
            
    --------------------------------------------------------------------------------------------------
          else -- 
    в противном случае
            reaper
    .TrackFX_SetEnabled(tracki-10) -- Bypass FX

            ComandID 
    "_S&M_DUMMY_TGL1" --
            
    reaper.Main_OnCommand(reaper.NamedCommandLookup(ComandID),0) -- переключаем state Dummy Экшина
            
    ---------------------------------------------------------------------
          
    end
        end
      end
    end

    ----------------------------------------------------------------------------------------------------
    reaper.Undo_EndBlock("Bypass all FX (except VSTi) for all tracks",1)
    reaper.PreventUIRefresh(1)

    Разбирайтесь, задавайте вопросы.
    Как видите, тут экшинов минимум, всё с использованием API скриптов
    И этот скрипт в общем игнорирует состояние VSTi - в каком они находятся, в таком и остаются!
     
    muzicgrand и Maestro Sound нравится это.
  14. EUGEN27771

    EUGEN27771 Well-Known Member

    Регистрация:
    23 апр 2010
    Сообщения:
    2.225
    Симпатии:
    1.889
    Пол:
    Мужской
    Да, совсем иначе, круто!
    @Aleksandr Oleynik, красиво расписано, если бы все так комментировали...
     
    Maestro Sound нравится это.
  15. Aleksandr Oleynik

    Aleksandr Oleynik Well-Known Member

    Регистрация:
    16 янв 2007
    Сообщения:
    15.257
    Симпатии:
    7.871
    Пол:
    Мужской
    Адрес:
    Киев
    Та нужно себя заставить так делать всегда? Ну я для ребят - чем больше будет "скриптописателей" тем лучше всем?
    Они же (скрипты эти) в начале только страшными кажутся, а как первых десятка два сделал - можно уже и других учить :)
     
  16. Maestro Sound

    Maestro Sound Active Member

    Регистрация:
    1 ноя 2007
    Сообщения:
    411
    Симпатии:
    32
    @Aleksandr Oleynik, Что-то у меня скрипт молчит (не работает и ошибки не пишет. И можно на каждый end рядом, какую строку он закрывает или относится
     
  17. EUGEN27771

    EUGEN27771 Well-Known Member

    Регистрация:
    23 апр 2010
    Сообщения:
    2.225
    Симпатии:
    1.889
    Пол:
    Мужской
    Помните, года 1.5 назад я Вам говорил - чтобы чему-то по-настоящему научиться - нужно начать кого-то учить(из Коэльо, вроде, а он у кого-то другого взял).
    Одно дело понять самому, и совсем другое дело объяснить другому на понятном языке. Когда ты не можешь объяснить - по сути, ты не понимаешь до конца.
    Ты только прикоснулся к пониманию, и скоро забудешь - так устроен мозг, по крайней мере в большинстве случаев. Надо говорить или писать, хотя бы для себя.
    И когда будет все испробовано, и ты говоришь себе, да, теперь, наконец, я могу объяснить все - находится куча других тем, в которых ты нулевый.
    Ты опять берешь весла в руки и изучаешь. Этот процесс бесконечен, в этом и кайф.
    Самая главная проблема - так можно сдохнуть с голоду, ты же не кот, чтобы поймать какую-то хренову птицу/мышь и забыть.
     
    Buyan, CerberPic и Trasher нравится это.
  18. CerberPic

    CerberPic Member

    Регистрация:
    17 фев 2017
    Сообщения:
    35
    Симпатии:
    9
    Пол:
    Мужской
    Так по вертикали смотрите, всё наглядно же:
    2017-12-09_013622.png
     
    Maestro Sound и Aleksandr Oleynik нравится это.
  19. Aleksandr Oleynik

    Aleksandr Oleynik Well-Known Member

    Регистрация:
    16 янв 2007
    Сообщения:
    15.257
    Симпатии:
    7.871
    Пол:
    Мужской
    Адрес:
    Киев
    Согласен
     
  20. Aleksandr Oleynik

    Aleksandr Oleynik Well-Known Member

    Регистрация:
    16 янв 2007
    Сообщения:
    15.257
    Симпатии:
    7.871
    Пол:
    Мужской
    Адрес:
    Киев
    Значит работает :)

    @CerberPic картинку правильную сделал.
    Я использую редактор Atom -
    https://atom.io/
    с модулем для LUA синтаксиса -
    language-lua
    В нём шоткатами очень удобно автоматом синтаксис править, коментировать строки и многое другое.
    Пишете начало стандартной функции, например if - а он вам всю конструкцию сразу предлагает
    нажимаете Shift+Control+I - а он вам красиво все строки табулирует и линии связей рисует -
    2017-12-09_010326.png
     
  21. EUGEN27771

    EUGEN27771 Well-Known Member

    Регистрация:
    23 апр 2010
    Сообщения:
    2.225
    Симпатии:
    1.889
    Пол:
    Мужской
    Дядьки говорят, что лучше все-таки пробелы ставить после "=+-" и т.п. Читается лучше. А после скобок пробелы наоборот, не ставить.
    Но это индивидуально.
    ============
    П.С. Я не посмотрел полностью, у Вас все правильно, прямо как должно быть.
     
  22. Maestro Sound

    Maestro Sound Active Member

    Регистрация:
    1 ноя 2007
    Сообщения:
    411
    Симпатии:
    32
    Нашел причину проверял с REaEq и вот недоумение почему он записался в Vsti/ А-га долб.... балбес вообщем я сам его туда поставил
     

    Вложения:

  23. Aleksandr Oleynik

    Aleksandr Oleynik Well-Known Member

    Регистрация:
    16 янв 2007
    Сообщения:
    15.257
    Симпатии:
    7.871
    Пол:
    Мужской
    Адрес:
    Киев
    А я и не знал, что так можно :)
     
    Maestro Sound нравится это.
  24. Maestro Sound

    Maestro Sound Active Member

    Регистрация:
    1 ноя 2007
    Сообщения:
    411
    Симпатии:
    32
    Можно Когда переименование делаешь, можно поставить галочку в Instrument
     
  25. @Michael

    @Michael Well-Known Member

    Регистрация:
    14 дек 2010
    Сообщения:
    761
    Симпатии:
    1.158
    Пол:
    Мужской
    Адрес:
    Орёл / Москва
    Алгоритм примерно может быть такой:
    - в chunk трека найти последний кусок <FREEZE ...>;
    - найти замороженные позиции и длины айтемов, находящихся в этом куске (строка FREEZE);
    - найти существующие айтемы на треке и с такими длинами и позициями;
    - найти исходники этих айтемов, запомнить, например в таблицу;
    - разморозить трек. Всё, что было в последнем куске <FREEZE ...>, уйдёт в трек. Замороженные айтемы удалятся;
    - выгнать всё аудио в проекте в оффлайн;
    - пройтись по запомненным исходникам рендеров заморорозки и удалить;
    - вернуть онлайн всё аудио.

    Поскольку TrackFX_GetInstrument() возвращает индекс первого инструмента, а инструментов может быть несколько, то можно использовать что-то в духе
    PHP:
      function IsInstrument(trackfx) return ({reaper.TrackFX_GetFXNametrackfx'' )})[2]:match('[%u]+i%:')~= nil end

      tr 
    reaper.GetSelectedTrack(0,0)
      
    is_FX_instrument IsInstrument(tr,0)
    ...и выйти из цикла, не проверив остальные треки

    P.S. Кстати, последняя версия mpl_Bypass all FX except instruments on selected tracks запоминает состояния FX до байпаса
     
    Последнее редактирование: 9 дек 2017
    CerberPic и Aleksandr Oleynik нравится это.
  26. Aleksandr Oleynik

    Aleksandr Oleynik Well-Known Member

    Регистрация:
    16 янв 2007
    Сообщения:
    15.257
    Симпатии:
    7.871
    Пол:
    Мужской
    Адрес:
    Киев
  27. @Michael

    @Michael Well-Known Member

    Регистрация:
    14 дек 2010
    Сообщения:
    761
    Симпатии:
    1.158
    Пол:
    Мужской
    Адрес:
    Орёл / Москва
    То же самое, что писать в reaper-extstate.ini разного рода инфу в связке "раздел-ключ-значение".
    Для проекта это раздел в конце RPP в блоке <EXTSTATE...>. Для проекта при превышении определённого лимита знаков, информация автоматом декодируется в base64. Для глобального ExtState многостроковость ограничена ввиду структуры ini файла.
     
    Последнее редактирование: 9 дек 2017
  28. Maestro Sound

    Maestro Sound Active Member

    Регистрация:
    1 ноя 2007
    Сообщения:
    411
    Симпатии:
    32
    Друзья возможно ли скриптом сделать пошаговость действий от 3 и до 10 допустим как циклэкшинах через step. первое нажатие - первое действие ...второе нажатие - второе действие (то есть скрипт должен помнить сколько раз его нажали вовремя сессии?)
     
  29. Aleksandr Oleynik

    Aleksandr Oleynik Well-Known Member

    Регистрация:
    16 янв 2007
    Сообщения:
    15.257
    Симпатии:
    7.871
    Пол:
    Мужской
    Адрес:
    Киев
    @Maestro Sound, ну вот при помощи ExState и можно
    У меня только что-то пока не выходит с синтаксисом...
     
    Maestro Sound нравится это.
  30. Maestro Sound

    Maestro Sound Active Member

    Регистрация:
    1 ноя 2007
    Сообщения:
    411
    Симпатии:
    32
    Я догадался потому сразу же и спросил для подтверждения Поменял себе все свои Цыклэкшины, на скрипты по Вашему примеру Через пустышку "_S&M_DUMMY_TGL1" а вот теперь нужно три четыре действия сменных на одной кнопочке
     
  31. @Michael

    @Michael Well-Known Member

    Регистрация:
    14 дек 2010
    Сообщения:
    761
    Симпатии:
    1.158
    Пол:
    Мужской
    Адрес:
    Орёл / Москва
    PHP:
    steps 3

    function Action(step)
      if 
    step == 0 then
        reaper
    .MB('step'..step+1,'',0)
       elseif 
    step == 1 then
        reaper
    .MB('step'..step+1,'',0)
       elseif 
    step == 2 then
        reaper
    .MB('step'..step+1,'',0)  
      
    end
    end

    cur_key 
    reaper.GetExtState'test''step' )
    if 
    not tonumber(cur_keythen cur_key else cur_key =tonumber(cur_keyend
    if cur_key steps-1 then cur_key 0 end
    Action
    (cur_key)
    reaper.SetExtState'test''step'cur_key+1false )
     
    Aleksandr Oleynik и Maestro Sound нравится это.
  32. Maestro Sound

    Maestro Sound Active Member

    Регистрация:
    1 ноя 2007
    Сообщения:
    411
    Симпатии:
    32
    @@Michael, Спасибо А можно по примеру ? step 1. выделить Group 02 и за солировать его треки. step2 . Найти треки в Group 02 и скрыть в Hide TCP step3. Найти треки с Vsti выделить их и заморозить.
     
  33. EUGEN27771

    EUGEN27771 Well-Known Member

    Регистрация:
    23 апр 2010
    Сообщения:
    2.225
    Симпатии:
    1.889
    Пол:
    Мужской
    Куча вопросов и ответов, я честно не успел даже посмотреть.
    Чтобы перезаписать айтем я использовал режим "r+b". Или "rb"
    Чисто по дружески советую использовать именно этот режим.
    Вы можете увидеть другие варианты, которые типа работают и тп, но это х....я.
    В какой-то из ситуаций они все равно дадут косяк. Без бинарных данных.
    С бинарными - они дадут косяк при первом нуле. Короче, долго говорить, используйте bin режим и никогда не ошибетесь.
     
  34. Archchie

    Archchie Active Member

    Регистрация:
    24 окт 2017
    Сообщения:
    247
    Симпатии:
    52
    Пол:
    Мужской
    @@Michael, А что нужно сделать что бы это окно не выскакивало
    Снимок.PNG
     
  35. vitalker

    vitalker Well-Known Member

    Регистрация:
    8 окт 2013
    Сообщения:
    2.527
    Симпатии:
    931
    Адрес:
    Гродно
    @Archchie, наверно вписать в код какие-то экшны?
     
  36. Archchie

    Archchie Active Member

    Регистрация:
    24 окт 2017
    Сообщения:
    247
    Симпатии:
    52
    Пол:
    Мужской
    Они у меня вписаны
    PHP:
       steps 4               
        
    function Action(step)
        if 
    step == 0 then
        reaper
    .MB('step'..step+1,'',0)
    ---------------------------------------------------------------------       
                
    ComandID 40155   -- PeaksIncrease peaks view gain 
                reaper
    .Main_OnCommand(ComandID,0)   
    -----------------------------------------------------------------       
        elseif 
    step == 1 then
        reaper
    .MB('step'..step+1,'',0)
    -----------------------------------------------------------------     
                
    ComandID 40155   -- PeaksIncrease peaks view gain 
                reaper
    .Main_OnCommand(ComandID,0)       
    -----------------------------------------------------------------   
        elseif 
    step == 2 then
        reaper
    .MB('step'..step+1,'',0
    ----------------------------------------------------------------- 
                
    ComandID 40155   -- PeaksIncrease peaks view gain 
                reaper
    .Main_OnCommand(ComandID,0)           
    -----------------------------------------------------------------
         elseif 
    step == 3 then
         reaper
    .MB('step'..step+1,'',0)
    -----------------------------------------------------------------         
                
    ComandID 40156   -- PeaksDecrease peaks view gain 
                reaper
    .Main_OnCommand(ComandID,0
                
    ComandID 40156   -- PeaksDecrease peaks view gain 
                reaper
    .Main_OnCommand(ComandID,0
                
    ComandID 40156   -- PeaksDecrease peaks view gain 
                reaper
    .Main_OnCommand(ComandID,0
                               
    -----------------------------------------------------------------   
        
    end
       end
       
        cur_key 
    reaper.GetExtState'test''step' )
        if 
    not tonumber(cur_keythen cur_key else cur_key =tonumber(cur_keyend
        
    if cur_key steps-1 then cur_key 0 end
        Action
    (cur_key)
        
    reaper.SetExtState'test''step'cur_key+1false )
     
  37. vitalker

    vitalker Well-Known Member

    Регистрация:
    8 окт 2013
    Сообщения:
    2.527
    Симпатии:
    931
    Адрес:
    Гродно
    @Archchie, я так понимаю, что у вас только печатается этот текст, а ничего не выполняется?
     
  38. Archchie

    Archchie Active Member

    Регистрация:
    24 окт 2017
    Сообщения:
    247
    Симпатии:
    52
    Пол:
    Мужской
    Все выполняется ! Все работает просто когда нажимаешь на кнопку выскакивает окно step 1 нажимаешь ок скрипт срабатывает, нажимаешь второй раз на кнопку выскакивает окно step 2 нажимаешь ок скрипт срабатывает и т.д.
     
  39. vitalker

    vitalker Well-Known Member

    Регистрация:
    8 окт 2013
    Сообщения:
    2.527
    Симпатии:
    931
    Адрес:
    Гродно
    @Archchie, где-то у вас прописана комнада, которая отвечает за выдачу этого окошка, иначе и быть не может.
     
  40. @Michael

    @Michael Well-Known Member

    Регистрация:
    14 дек 2010
    Сообщения:
    761
    Симпатии:
    1.158
    Пол:
    Мужской
    Адрес:
    Орёл / Москва
    Этот тред очень быстро превратится в мусорку кода, если тут будут пытаться хаотично вставить левые строки без понимания КАК это работает. Изучайте API (ctrl+f на странице API Help прекрасно работает, в том числе по функции MB() , а некоторые и основы программирования (на уровне 9 класса средней школы) и задавайте вопросы вида "как работает", а не "что и куда вставить".
     
    CerberPic, Aleksandr Oleynik и EUGEN27771 нравится это.
  41. Archchie

    Archchie Active Member

    Регистрация:
    24 окт 2017
    Сообщения:
    247
    Симпатии:
    52
    Пол:
    Мужской
    Вот я в этот скрипт смотрю и не вижу не одного слова про это окошко
     
  42. Maestro Sound

    Maestro Sound Active Member

    Регистрация:
    1 ноя 2007
    Сообщения:
    411
    Симпатии:
    32
    Попробуйте убрать строки

    reaper.MB('step'..step+1,'',0)
     
    Последнее редактирование: 9 дек 2017
  43. Archchie

    Archchie Active Member

    Регистрация:
    24 окт 2017
    Сообщения:
    247
    Симпатии:
    52
    Пол:
    Мужской
    Тут @Maestro Sound, задал вопрос подробно описанный вы в ответ скинули код: с супер описанием !Вы понимаете что мы тут только учимся ,а не программисты сидим ,можно было просто подсказать и все(а не сарказмом заниматся).А то что вы говорите читайте учите это понятно просто за один день все не выучить!!!И вы наверное скажете да я тоже не программист но как то выучил ,тут надо всегда помнить как вы начинали,через 10 лет я может и не такое смогу сказать и сделать и еще вас поучить! (как подсказываете так и учимся!)
    --- добавлено 9 дек 2017 ---
    @Maestro Sound, Спасибо!Сработало!
     
    Последнее редактирование: 9 дек 2017
  44. Maestro Sound

    Maestro Sound Active Member

    Регистрация:
    1 ноя 2007
    Сообщения:
    411
    Симпатии:
    32
    Вам спасибо. Я уже пеляю по Вашему примеру себе

    И @Michael конечно спасибо. Понимаю их раздраженность "чайниками"
     
  45. Aleksandr Oleynik

    Aleksandr Oleynik Well-Known Member

    Регистрация:
    16 янв 2007
    Сообщения:
    15.257
    Симпатии:
    7.871
    Пол:
    Мужской
    Адрес:
    Киев
    @Archchie, Михаил прав....
    Попытки запихнуть стандартные Экшины в скрипт и воспользоваться его функционалом только для Логики (if, then, for, do, else.......) - это путь в ни куда.
    Я ведь не зря вам выложил второй вариант, в котором нет стандартных Экшинов, но есть уже функции API и циклы.
    Вы с моим вторым скриптом разобрались? Я ведь там подробно всё описал и не получил от вас ни какого фидбэка.
    Если не разобрались - не стоит двигаться дальше, поверьте!!!!!! Лучше задайте любые дурацкие вопросы по скрипту -
    http://rmmedia.ru/threads/118091/page-62#post-2183955
    поймите ТОЧНО как это работает, сделайте пару похожих простых скрипта сами, и потом двигайтесь дальше.

    reaper.MB('step'..step+1,'',0) - это по сути проверка работы скрипта, данная функция аналог print в самом LUA - выводит сообщение на опртеделённом этапе скрипта и показывает, что скрипт работает так, как вы хотели.
    Естественно, эту строку нужно убирать или коментить (два тире перед строкой) перед сохранение окончательной версии скрипта.
    --- добавлено 9 дек 2017 ---
    Это не раздражённость, это понимание того, что помощь идёт в песок.
    --- добавлено 9 дек 2017 ---
    +100500
    Михаил, но любое обучение идёт с большей мотивацией, если уже на первых его шагах что-то получается сделать работающее, а не чисто для теории освоения.
    Посему - давайте будем терпимее к желающим научиться.
    Я, кстати, тоже ПОСТОЯННО учусь...
    Вот с Set(Get)State что-то ни как не мог разобраться...
     
    Последнее редактирование: 9 дек 2017
    EUGEN27771 и CerberPic нравится это.
  46. Maestro Sound

    Maestro Sound Active Member

    Регистрация:
    1 ноя 2007
    Сообщения:
    411
    Симпатии:
    32
    Ну тут не соглашусь . Зачем учить Азбуку если цель Написать Роман "Война и Мир"? все само собой придет, надоест запихивать стандартные екшины в скрипты и неотвратимо придем к API:) Это точно
     
    Archchie нравится это.
  47. Aleksandr Oleynik

    Aleksandr Oleynik Well-Known Member

    Регистрация:
    16 янв 2007
    Сообщения:
    15.257
    Симпатии:
    7.871
    Пол:
    Мужской
    Адрес:
    Киев
    Можете не соглашаться, но я то этот путь прошёл - тогда хотя бы прислушайтесь к опыту и мнению.
    Ведь прям сразу сподкнулись об отсутствие части стандартных Экшинов для VSTi и делать винигрет из Экшинов и API можно только если хорошо понимаешь что делаешь.

    Ну и я ведь тоже разделяю негативное отношение Михаила к вашим попыткам тыканий в небо, а значит, на каком то этапе просто не стану им потакать также как и Михаил.
     
  48. Archchie

    Archchie Active Member

    Регистрация:
    24 окт 2017
    Сообщения:
    247
    Симпатии:
    52
    Пол:
    Мужской
    Полностью согласен! сначала с условиями всякими в голове устаканится ,а потом и потихоньку экшены из скриптов начинать убирать ,так понимание и приходит,а если все и сразу начинаешь пихать в голову ,то просто путаница получается и вообще ничего не понимаешь.
     
  49. Maestro Sound

    Maestro Sound Active Member

    Регистрация:
    1 ноя 2007
    Сообщения:
    411
    Симпатии:
    32
    Вот видите Вы прошли, а нам не разрешаете:):)
    Но Спасибо Мы прислушиваемся
     
  50. Aleksandr Oleynik

    Aleksandr Oleynik Well-Known Member

    Регистрация:
    16 янв 2007
    Сообщения:
    15.257
    Симпатии:
    7.871
    Пол:
    Мужской
    Адрес:
    Киев
    Почему же не разрешаю?
    Я вам скрипт выложил первый (ущербный) на чисто Экшинах и логических функциях.
    Но ПОТОМ выложил на API - и тишина ----- так Не Пойдёт! :)
     

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