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

Мегаполезно, спасибо!!!Цикл экшн в одну строчку:
CONSOLE i0m
@arkaine, пиля, второй раз за день вопрос, на который я бы полгода назад с закрытыми глаами ответил. А сейчас, только пальцем в нужную сторону ткнуть могу:
Вот все тело функции надо впихнуть в while луп, и поменять на кошерную команду get***Track из API. Он должен возвращать всегда только один id трека.

Подскажите, пожалуйста (вопрос опытным скриптоделам).
Мне вот потребовался экшн/скрипт (именно экшн/скрипт), позволяющий изменить Input канал(а/ов) с дефолтного "Input: Stereo" на "Input: Midi".
Благо, нашёл созданный предусмотрительным Михаилом Пилявским скрипт:
Prepare MIDI input for last touched track.
Как гласит название и каково его содержание:
View hidden content is available for registered users!
Этот скрипт работает только с последним "тронутым" треком.
Можно ли как-либо заставить скрипт воздействовать на все выделенные треки?
Пробовал вместо GetLastTouchedTrack ставить CountSelectedTracks -- приводит к ошибке.

Есть!есть ли экшн/скрипт "Shuffle Selected Notes" -- т.е., который бы рандомно изменял порядок располагающихся в айтеме нот?


 ), ибо это было бы быстрее.
 ), ибо это было бы быстрее.

 
 function GetNotes(take)
  local t = {}
  for i = 0, 1000 do
    local ret, sel, mute, start_note, end_note, chan, pitch, vel = r.MIDI_GetNote(take, 0)
    if not ret then  break end
    t[#t+1] = {i, sel, mute, start_note, end_note, chan, pitch, vel}
    r.MIDI_DeleteNote(take, 0)
  end
  for i = 1, #t do
    local _, sel, mute, start_note, end_note, chan, pitch, vel = table.unpack(t[i])
    r.MIDI_InsertNote(take, sel, mute, start_note, end_note, chan, pitch, vel, 0)
  end
 
  return t
endЭто уже готовый для использования в скриптах Рипера код?)решение так себе, хотя работает
 
	