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

EUGEN27771

Well-Known Member
23 Апр 2010
2.293
1.995
113
Нужен JS, который будет независим от транспорта и будет постоянно писать луп
С моими "познаниями" вряд ли получится,слишком долго разбираться.

две недели назад, я потратил "три дня и три ночи" что бы разобраться в этом вопросе и сделать реализацию, а народ даже не обратил внимания.
Точно надо было назвать Retrospective Record.
add export_buffer_to_project() может как-то работать с миди?
 

QBICS

Member
29 Июл 2015
63
22
8
@crutifixus, да нет же=) Просто на всё, в том числе и на изучение и познание Repera, нужно время, желание и терпение=)
 

lil-burn

Well-Known Member
15 Авг 2012
903
638
93
Екатеринбург
Как сделать автоматическую склейку миди ийтемов при копировании на дорогу с другим айтемом ?
Ну это легко, даже без скриптов, правда потребуется после перетаскивания айтема запустить, напр, такой кастом (нужно SWS):
upload_2015-10-31_18-17-22.png

Обратное действие тоже реализуемо, но без скриптов это будет танец (надо будет подключать тулбары и тд). Но это реально
 

crutifixus

Well-Known Member
5 Сен 2006
1.437
294
83
42
Беларусь,Фаниполь
Ну это легко, даже без скриптов, правда потребуется после перетаскивания айтема запустить, напр, такой кастом (нужно SWS):
Посмотреть вложение 106254

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

lil-burn

Well-Known Member
15 Авг 2012
903
638
93
Екатеринбург
Нужно по умолчанию как-то сделать
По умолчанию пока не сделать. Минимум до тех пор, пока разработчики в Mouse Modifiers не добавят на перетаскивание айтемов возможность назначения своих экшенов и скриптов.
 

EUGEN27771

Well-Known Member
23 Апр 2010
2.293
1.995
113
=========================================
Скрипт,который,в зависимости от содержимого айтема:
1)Миди-айтемы открывает с постоянным фиксированным масштабом(по дефолту-4 такта).
Масштаб устанавливается в тактах и не зависит от изменений темпа,размера и т.п.,что крайне удобно в работе.Точкой отсчета для масштабирования является ближайший к эдит-курсору такт,что тоже удобно(но это по желанию можно изменить,установив точкой отсчета сам курсор)
2)Аудио-айтемы увеличивает до макс. масштаба(это действие по желанию можно изменить на любое другое из Экшн-листа)
Open Items w Fixed ZOOM.gif
Сам скрипт перенес в основную тему
 

Вложения

Последнее редактирование:

lil-burn

Well-Known Member
15 Авг 2012
903
638
93
Екатеринбург
Реализуемо ли Save (&Restore) current track selection slot 1-8 ?
Слоты есть для айтемов, курсоров и даже тайм-селекшенов, а для треков нет. В результате в кастомах в большинстве случаев бессмысленно (а иногда оч хочется) использовать несколько save-restore для треков
 

@Michael

Well-Known Member
14 Дек 2010
969
1.461
93
Орёл / Москва
lil-burn, реализуемо. Снимаешь GUID треков с их состояниями selected и запоминаешь это в SetExtState. Только это пустая трата времени на сомнительной пользы костыль.
 

EUGEN27771

Well-Known Member
23 Апр 2010
2.293
1.995
113
Вот еще способ.Чтоб не трогать файлы программмы,нужно создать свой файл Z_Track_Info.txt в папке Рипера.
Первый скрипт сохраняет Track-selecnion
PHP:
/
//Write Dataset To file - section [Track_Selection_slot01]//

GetResourcePath(#Path);
#File_Name = "\\Z_Track_Info.txt";
#Section = "Track_Selection_slot01";
#Track_Num = "Track";
strcat(#Path,#File_Name);

trackidx=0;
loop(CountTracks(0),
     Track = GetTrack(0,trackidx);
     Track_Num = GetMediaTrackInfo_Value(Track, "IP_TRACKNUMBER");
     Track_Selected = GetMediaTrackInfo_Value(Track, "I_SELECTED");
     strcat(#Track_Num,sprintf(#str, "%d", Track_Num));//Compare Strings
     sprintf(#Track_Selected, "%d", Track_Selected);
     extension_api("BR_Win32_WritePrivateProfileString", #Section, #Track_Num, #Track_Selected, #Path);
     #Track_Num = "Track";
     trackidx+=1;
     );
Второй восстанавливает
PHP:
//Read Dataset From file - section [Track_Selection_slot01]//

GetResourcePath(#Path);
#File_Name = "\\Z_Track_Info.txt";
#Section = "Track_Selection_slot01";
#Track_Num = "Track";
strcat(#Path,#File_Name);

trackidx=0;
loop(CountTracks(0),
     Track = GetTrack(0,trackidx);
     Track_Num = GetMediaTrackInfo_Value(Track, "IP_TRACKNUMBER");
     //Track_Selected = GetMediaTrackInfo_Value(Track, "I_SELECTED");
     strcat(#Track_Num,sprintf(#str, "%d", Track_Num));//Compare Strings
     extension_api("BR_Win32_GetPrivateProfileString", #Section, #Track_Num, "Def_Str", #Path, #Track_Selected);
     match("%i", #Track_Selected, Track_Selected);
     SetTrackSelected(Track, Track_Selected);
     #Track_Num = "Track";
     trackidx+=1;
     );
    
UpdateArrange();
Слотов можно сделать немерено,заменяя в #Section = "Track_Selection_slot01" на другое,и пересохраняя скрипты с другими именами.
И таким же образом можно сохранять другие данные,причем надолго,либо до перезаписи,либо до удаления файла.
В скриптах это действительно не нужно.В кастом-экшнах может пригодится.
ПС.На маке это,видимо,работать не будет,тут WinApi вроде бы используется
[DOUBLEPOST=1446585563,1446585374][/DOUBLEPOST]
а что дают эти слоты?
можно сохранить выделенные треки,убирать,менять выделения,а потом восстанавливать в процессе работы экшна
 
  • Like
Реакции: lil-burn

Aleksandr Oleynik

Well-Known Member
16 Янв 2007
26.360
20.063
113
62
Киев
можно сохранить выделенные треки,убирать,менять выделения,а потом восстанавливать в процессе работы экшна
А без слотов нельзя?
Или речь идёт о множественном сохранении разных комбинаций?
Так, а чем не подходит для этого Snapshots?
 

Aleksandr Oleynik

Well-Known Member
16 Янв 2007
26.360
20.063
113
62
Киев
@Aleksandr Oleynik, Snapshots,наверное,медленнее работают,там же уйма данных
Ни в коем случаи!
Там столько и таких данных, какие захочешь включить.
В Custom режиме можно выбрать ТОЛЬКО Selection - и получите молниеносный Save и Restore.
Тормозит реально, по понятным причинам, только FX Chain
 

lil-burn

Well-Known Member
15 Авг 2012
903
638
93
Екатеринбург
@lil-burn, а что дают эти слоты?
Хотя бы 2 слота нужны, когда например, внутри кастома нужно сохранить состояние А, продолжить работу, прийти к состоянию Б, продолжить работу, вернуться к состоянию Б, продолжить, вернуться к А. И это все в одном кастоме. Пока не разбирался вплотную со снэпшотами, но вот пример, когда слоты могут понадобиться:
Допустим хотим одним нажатием обменять эффекты у двух выделенных треков.
без второго слота, пожалуй, придется только скрипт писать (или, как мне, учиться), или мучить Михаила, Евгения и других искушенных в этом деле.
А кастом, решающий эту задачу, с использованием второго слота вполне реален:
1. сохраним выделение треков, слот 1 (треков, эффекты которых нужно обменять)
2. дублируем выделенные треки
3. сохраним выделение треков, слот 2 (то есть сохраним выделение только что созданных, дополнительные треков)
4. выделим первый из выделенных треков (дополнительных)
5. вырежем цепь эффектов выделенного трека
6. восстановим выделение треков, слот 1 (вернулись к начальному выделению)
7. очистим цепь эффектов выделенных треков
8. выделим последний трек из выделенных
9. вставим цепь эффектов на выделенный трек (таким образом, фактически вставили цепь эффектов с первого трека на второй)
10. восстановим выделение треков, слот 2
11. выделим последний из выделенных треков (дополнительных)
12. вырежем цепь эффектов выделенного трека
13. восстановим выделение трека, слот 1
14. выделим первый трек из выделенных
15. вставим цепь эффектов на выделенный трек (таким образом, фактически вставили эффекты со второго трека на первый)
16. восстановим выделение треков, слот 2 (выделим дополнительные треки, которые уже сыграли свою роль)
17. удалим выделенные треки
18.* (факультативно) восстановим выделение треков, слот 1.
 

Aleksandr Oleynik

Well-Known Member
16 Янв 2007
26.360
20.063
113
62
Киев
@lil-burn, для описанного вами и сделаны снэпшоты.
Имею в виду быстрые возвраты к любому состоянию проекта, который запомнили.
 

@Michael

Well-Known Member
14 Дек 2010
969
1.461
93
Орёл / Москва
Ну да , через такой кастом единственное решение. Странно, что в SWS до этого не дошли, ведь механизм тот же по сути.
Наиболее близким скриптом без использования SWS это выглядело бы как:
1) вырезать чанк цепи первого трека в буфер
2) вырезать чанк цепи второго трека в буфер
3) вставить чанк первого во второй
4) вставить чанк второго в первый

что в общем-то повторяет схему выше, только без мороки с указанием куда собственно вставлять.
 

Aleksandr Oleynik

Well-Known Member
16 Янв 2007
26.360
20.063
113
62
Киев
Всё так, но честно говоря сама задача надуманная с обменом обработок на двух треках, а "придумать" повседневную реальную задачу - я честно говоря не могу.

В общем - приживаются шоткаты (с кастом экшинами или скриптами - не важно) только те, что минимум раза два в день хотя бы используются.
[DOUBLEPOST=1446618617,1446616074][/DOUBLEPOST]@@Michael, вопрос к вам, как к наиболее разобравшемуся с GUI к скриптам.
На сколько возможно и сложно сделать удобный GUI для реализации НАГЛЯДНОГО роутинга обработок в инсёрте одного трека?
Имею в виду возможность внутри инсёрт секции трека реализовать сложную паралельно-последовательную обработку сигнала.
На сегодня в JS для этого есть всё, но составлять эту "схему" мягко говоря крайне не удобно, а главное - крайне не наглядно. Разобраться через пару дней на сколько стерео пар разделил сигнал и какой чем обрабатывал - не реально, проще по новой всё составлять.

В общем возможность сделать тот-же мульти бэнд компрессор из ЛЮБОГО не мультибэнда есть, а сделать это быстро и наглядно, для дальнейшей доработки - не возможно.

Собственно вопрос - не возьмётесь ли?
Я приблизительно представляю как бы это было удобно.
 

@Michael

Well-Known Member
14 Дек 2010
969
1.461
93
Орёл / Москва
кажется, невозможно, т.к. я не могу получить прямых данных роутинга внутри цепи из чанка (роутинг в цепи в бинарном виде, трогать его естественно нельзя)
Написал в FR
 
Последнее редактирование:

Aleksandr Oleynik

Well-Known Member
16 Янв 2007
26.360
20.063
113
62
Киев
Михаил, но можно за ранее заготовить некие темплэйты этого самого роутинга и их в скрипте и использовать. Ну типпа JS -ы с конкретным входом и выходом на нужные каналы для такой-то схемы.
В любом случаи тут без JS не обойтись.
И если пользователю дать информативный GUI, в котором, например нодами, будет отображаться пять-шесть схем роутинга с кубиками-плагинами, которые можно будет выбирать и настраивать - это уже будет прорыв!
На сегодня внутри трэковые схемы не используют главным образом по причине крайней запутанности и не наглядности.
 

@Michael

Well-Known Member
14 Дек 2010
969
1.461
93
Орёл / Москва
Не представляю каким образом можно темплейты и JS использовать в скрипте и зачем, уж лучше готовые плагины понакидать в цепь и из GUI их напрямую маршрутизировать.
 

Вложения

  • 19,3 KB Просмотры: 55
Последнее редактирование:

Aleksandr Oleynik

Well-Known Member
16 Янв 2007
26.360
20.063
113
62
Киев
Можно я уточню ещё -
Из скрипта ты не можешь у конкретного плагина изменить (переназначить) входа-выходы?
 

Aleksandr Oleynik

Well-Known Member
16 Янв 2007
26.360
20.063
113
62
Киев
Может тогда на С1 перейти? Вроде как хвалят.
Вова, не выйдет.... Меня тут-же забанят на всегда на форуме, после того как я выложу в соответствующем разделе список того, что мне нужно ОБЯЗАТЕЛЬНО найти в C1.
 

lil-burn

Well-Known Member
15 Авг 2012
903
638
93
Екатеринбург
Помогите плиз с такими скриптами:

(1). Выделить предыдущий/следующий трек с инструментом
(2). Выделить все треки с инструментами
(3). Выделить инструменты на выделенном треке (самый важный из них имхо)

С ними можно составлять множество кастомов, особенно полезных, когда в проекте много треков и имеются треки с инструментами. например:

с пом. (1) можно соорудить:

- перемещение к предыдущему/следующему треку с инструментом
- соло/мьют/ансоло/анмьют предыдущего/следующего трека с инструментом (+ перемещение к нему, факультативно)
- удаление предыдущего/следующего трека с инструментом
- перемещение/копирование айтемов с предыдущего/следующего трека с инструментом на текущий
- мьют/анмьют айтемов предыдущего/следующего трека с инструментом (+ перемещение к нему, факультативно)
- перемещение/копирование цепи эффектов с предыдущего/следующего трека с инструментом на текущий
- обмен цепями эффектов между текущим треком и предыдущим/следующим
- открытие первого миди-айтема на следующем/предыдущем треке с инструментом
и т.д.

с пом. (2) можно соорудить:

- перемещение к первому/второму/.../последнему треку с инструментом
- удаление всех треков без инструментов (или с инструментами), на которых имеются (или не имеются) миди-айтемы
- удаление всех треков без инструментов
- открытие окон всех инструментов в проекте
- копирование/дублирование треков с инструментами
- отображение/скрытие/удаление огибающих у треков с инструментами
- добавление всех треков с инструментами в папку
и т.д.

С пом. (3) можно соорудить:

- открытие/закрытие окон с инструментами на выделенных треках
- перемещение/копирование инструментов с выделенного трека на любой другой (или несколько других)
- байпас/оффлайн инструментов на треке
- байпас неинструментов на треке
- удаление инструментов/неинструментов на треке
- перемещение инструмента внутри цепи вверх/вниз
и т.д.

С пом. (1) и (3) можно соорудить
- открытие окна с инструментом предыдущего/следующего трека
и т.д.

с пом. (2) и (3) можно соорудить
- закрытие окон всех инструментов (или неиструментов) в проекте
- байпас/оффлайн всех инструментов (или неинструментов) в проекте

и так далее
 

crutifixus

Well-Known Member
5 Сен 2006
1.437
294
83
42
Беларусь,Фаниполь
Ну что , идем дальше .. Если такая функция есть , дайте знать ....
Чего бы очень хотелось и было бы полезно для других ..

1 Step Record . Нужен автономный степ рекорд миди , не заходя и не создавая миди айтем .
просто нажимаем хот кей и появляется окно по типу такого Screen Shot 2015-11-05 at 20.52.32.png
в ней не хватает одного нужно го элемента , а именно пропуска ноты на текущую заданную позицию длинны . (восьмушку , четверть )

Что нужно . Что бы вызвав эту панельку и выставив позицию (или просто поставив курсор) мы смогли сыграть партию степ рекордером . Эта тулза реально экономит время ...
Спасибо
[DOUBLEPOST=1446746989,1446746165][/DOUBLEPOST]№2

Поскольку Рип значительно добавил в видео части , что позволяет его полноценно использовать для работы с видео , то предлагаю вот какую функцию . Она больше понадобится для тех людей кто пишет музыку под видео .

вот киношка . digi 1.gif

как видим есть маркер события . И есть белая линия которая движется и в момент совпадения с маркером мы видим белый круг .. (почему то не снялся на видео ) Т,е, когда работаем над музыкой можно в риалтайме смотря на видео точно играть акценты ...
В той программе из которой видео , можно настраивать скорость приближения к маркеру (5,3,4,1 мекунда ) Это может не столь важно .

Возможно в рипере сделать что либо подобное ?
 

@Michael

Well-Known Member
14 Дек 2010
969
1.461
93
Орёл / Москва
Aleksandr Oleynik, upd, прогресс есть! Вытащить из бинарного vst кода в base64 интеджеры рутинга могу (правда с помощью ребят с cockos)! Остаётся их теперь расшифровать. Я уже сейчас вижу насколько это будет адовый код туда-обратно делать шифровку/расшифровку для каждого vst вида base64<->string<->integer<->(unsigned int<->integer?) но вполне возможно, мы и сделаем красивый рутинг чейна с внятным гуем))
[DOUBLEPOST=1446882058,1446877323][/DOUBLEPOST]Если кто-нибудь шарит в том, что творится тут, прошу помощи)
 
  • Like
Реакции: Aleksandr Oleynik

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