А я не сдержанный....@Aleksandr Oleynik, хотел написать то же самое... но сдержался ))))
Есть такое дело Item: Duplicate selected area of items у меня на <Ctrl>+<Shift>+<D> сидитПример: переключил грид в 1/4, кинул wav бочки на трек, и Ctrl+V размножил её как угодно долго.
Не знаю ответ на ваш вопрос, но могу предложить альтернативный вариант. Использовать Media Explorer. Включить галочку Start on Bar. Выбрать там же Tempo match on. В настройках роутинга ескплорера выбрать Play trough selected track. Теперь запускайте основной проект и миди файл из Медиа Браузера. Проверил - работает.Скажите пож. есть такой экшн что переключаеть семплы Xenakios/SWS: Switch item source file to next in folder.А как сделать что б переключались миди файлы.Возможно ли это вообще.Спасибо
спасибо.Но я думал что без медиа експлорера.Т.е создаю темплейт трек с файлом миди из папки (допустим НАТ) потом мне нужно партию хета я вызываю созданый темплейт трек с файлом миди хета.И переключением кнопки типа (Xenakios/SWS: Switch item source file to next in folder ) у меня переключаются миди айтемы из папки .Не знаю ответ на ваш вопрос, но могу предложить альтернативный вариант. Использовать Media Explorer. Включить галочку Start on Bar. Выбрать там же Tempo match on. В настройках роутинга ескплорера выбрать Play trough selected track. Теперь запускайте основной проект и миди файл из Медиа Браузера. Проверил - работает.
Выбором мышкой файла в медиа ехплорере будет меняться партия. По сути тоже самое. Не настаиваю.переключением кнопки типа (Xenakios/SWS: Switch item source file to next in folder ) у меня переключаются миди айтемы из папки .
Хорошо спасибо.Ну или соберите все эти миди файлы в один айтем как тэйки и переключайте одной клавишей (по умолчанию <T>)
@Cтоит, ждём. Но на слух пока побеждает Izotope.@Дима Горелик, так там последняя версия рипера 5.51, может стоит подождать 6?
Кстати о телодвижениях мне кажется так удобно.Извините@zenykmusic, на мой взгляд проще через медиа эхплорер - телодвижений меньше.
Потом не забудьте рассказать как вариант прижился.
Я же не настаиваю. Если работает - то почему нет. Но вам же нужно было использовать подмену миди файлов.Извините
У меня не работает.А как Вы пробовали.У меня только с вав форматомЯ же не настаиваю. Если работает - то почему нет. Но вам же нужно было использовать подмену миди файлов.
С миди файлами это будет работать? Я попробовал - вроде как работает до поры до времени, но с глюками.
Понял. Извините@zenykmusic, я же написал - глючит этот способ. Трясите Джастина что бы поправил, или ищите другое варианты если мои использовать религия не позволяет.
desc:Levitanus(reasession) — Render Midi
slider1:0<0,1,1>Save
options:gmem=ReasessionRenderMidi;
@init
maxBuf = 65536;
bufLoc = 10000;
qnOffset = 500000;
bufPtr = 1000000;
bufLen = 1500000;
bufOut = 2000000;
memPtr = 9999;
memCounter = 0;
bufOutCounter = 0;
function store_buf(buf, len)(
qnOffset[memCounter] = beat_position;
memCounter == 0 ? (
bufPtr[0] = 0
) : (
bufPtr[memCounter] = bufPtr[memCounter-1] + bufLen[memCounter-1]
);
bufLen[memCounter] = len;
i = 0;
while (i < len)(
bufOut[bufPtr[memCounter + i]] = buf[i];
i += 1;
bufOutCounter += 1;
);
memCounter += 1;
memPtr[0] = memCounter;
);
@block
while ((recvlen = midirecv_buf(offset, bufLoc, maxBuf)) > 0) (
play_state == 1 ? store_buf(bufLoc, recvlen);
midisend_buf(offset, bufLoc, recvlen);
);
@slider
slider1 == 1?(
i = 0;
gmem[0] = memPtr[0];
while (i <= memPtr[0])(
gmem[qnOffset + i] = qnOffset[i];
gmem[bufPtr + i] = bufPtr[i];
gmem[bufLen + i] = bufLen[i];
i2 = 0;
while (i2< bufLen[i])(
gmem[bufPtr[i] + i2] = bufOut[bufPtr[i] + i2];
);
i+=1;
);
memCounter = 0;
slider1 = 0;
);
@serialize
// for saving data after render
file_mem(0, memPtr, 1);
file_mem(0, qnOffset, memCounter);
file_mem(0, bufPtr, memCounter);
file_mem(0, bufLen, memCounter);
file_mem(0, bufOut, bufOutCounter);
Хм. Интересно. Поставил на трек-донор SysEx
F0 7D 01 54 67 7F 54 F7
на трек пришел такой месседж
F0 FF 52 50 62 02 F0 7D 01 54 67 7F 54 F7 F7
А если верить докам „(msg should not include bounding F0..F7)“. О как.
SysEx_msg = 'F0 7D 01 54 67 7F 54 F7'
if SysEx_msg:match('F0(.*)F7') then SysEx_msg = SysEx_msg:match('F0(.*)F7') end
SysEx_msg_bin = '' for hex in SysEx_msg:gmatch('[A-F,0-9]+') do SysEx_msg_bin = SysEx_msg_bin..string.char(tonumber(hex, 16)) end
ME = reaper.MIDIEditor_GetActive()
take =reaper.MIDIEditor_GetTake( ME )
reaper.MIDI_InsertTextSysexEvt( take, false, false, 0, -1, SysEx_msg_bin )
@@Michael
Меня больше смущает, что если этот самый 'F0 7D 01 54 67 7F 54 F7' положить в item на треке 1, потом послать на второй bus на трек 2 и записать, то там уже запишется „неправильный“ SysEx
специфический
рипервоский
SysEx, показывающий
внутреннее
представление MIDI
потока BUS MIDI MESSAGE EOF
F0 FF 52 50 62 02 F0 7D 01 54 67 7F 54 F7 F7
90 3C 50
(note on, chan 1, до первой октавы, velocity 50)F0 FF 52 50 62 01 90 3C 50 F7
Можно прописать Note off / Note on / Polyphonic Key Pressure / Control Change / Program Change / Channel Pressure/ Pitch Bend сообщения для 16 MIDI каналов. Bus - это в сторону маршрутизации и не имеет отношения к тому, что прописано в айтемам.Просто так, получается, можно в item прописать все 16 MIDI-BUS, чего я и добиваюсь
Придёт то же самое.Получается, если с первого трека отправить на второй 90 3C 50 (note on, chan 1, до первой октавы, velocity 50)
Придёт 92 3C 50. (потому что 0x90 message type + 0x02 channel)Но не на первый BUS, а на второй