division d'objets midi
- 9 réponses
- 3 participants
- 521 vues
- 3 followers
PlakDeGoudron
j'ai des questions sur la gestion des éléments midi dans reaper:
1) lorsque j'ai un objet MIDI avec mélodie, ligne de basse et accords piano, je voudrais pouvoir diviser le bloc midi en deux avec la mélodie dans un et le reste dans l'autre. Je voudrais donc pouvoir sélectionner une partie des notes midi et faire un split de ce que j'ai sélectionné. Je n'arrive pas à créer de macro pour ça. J'ai tenté un couper / créer bloc midi vide / coller mais je n'ai pas toutes ces fonctions dans le TCP seul ou dans le midi éditeur seul ou dans l'éditeur midi en ligne seul donc pas de macro possible. Pour l'instant je duplique l'objet puis j'efface les notes...
2) Peut-on prendre une partie des notes midi d'un item et les déplacer vers une autre piste par glissé déposé? Là aussi, c'est tout l'objet ou rien.
Merci
...si seulement la musique pouvait servir à quelquechose
[ Dernière édition du message le 08/10/2021 à 09:38:10 ]
PlakDeGoudron
...si seulement la musique pouvait servir à quelquechose
Ranxtukur
Ya du son par là : Et de l'image qui bouge aussi :
https://hearthis.at/thierryvastel/ https://www.youtube.com/user/jeranx1
Ranxtukur
A part en copié/collé d'objet à objet, je ne vois pas.
Après ya des trucs très spécifiques dans les actions.
Je vois celle-là par exemple : "Script: mpl_Paste MIDI notes to selected item.lua". Cela devrait correspondre mais je n'arrive pas à la faire fonctionner. Mais ça devrait être possible. Et il y en a tellement...
@+
Ya du son par là : Et de l'image qui bouge aussi :
https://hearthis.at/thierryvastel/ https://www.youtube.com/user/jeranx1
[ Dernière édition du message le 21/10/2021 à 18:40:42 ]
Rodila
Si j'ai un peu de temps je vous fait ça.
Rodila
Il crée des nouveaux objets MIDI avec une copie des notes sélectionnées, puis efface les notes sélectionnés des objets MIDI sélectionnés.
Ce qui revient à "splitter" les notes sélectionnées d'un objet MIDI.
Voici un lien pour télécharger le fichier LUA.
Testez-le. S'il fonctionne bien chez vous je le partagerai dans ReaPack.
-- @description Split selected notes into new midi items
-- @author Rodilab
-- @version 0.1
-- @about
-- Delete selected notes in selected MIDI items, and create new midi item with selected notes
-- by Rodrigo Diaz (aka Rodilab)
count = reaper.CountSelectedMediaItems(0)
if count > 0 then
reaper.Undo_BeginBlock()
reaper.PreventUIRefresh(1)
local trim = reaper.GetToggleCommandState(41117)
if trim == 1 then
reaper.Main_OnCommand(41117, 0)
end
local itemGUID_list = {}
for i=0, count-1 do
table.insert(itemGUID_list, reaper.BR_GetMediaItemGUID(reaper.GetSelectedMediaItem(0, i)))
end
for i, sGUID in ipairs(itemGUID_list) do
local item = reaper.BR_GetMediaItemByGUID(0, sGUID)
local take = reaper.GetActiveTake(item)
local source = reaper.GetMediaItemTake_Source(take)
local track = reaper.GetMediaItem_Track(item)
local position = reaper.GetMediaItemInfo_Value(item, 'D_POSITION')
local length = reaper.GetMediaItemInfo_Value(item, 'D_LENGTH')
if reaper.GetMediaSourceType(source, '') == 'MIDI' then
local rv, notecnt, ccevtcnt, textsyxevtcnt = reaper.MIDI_CountEvts(take)
local new_item = reaper.CreateNewMIDIItemInProj(track, position, position+length)
local new_take = reaper.GetActiveTake(new_item)
for j=0, notecnt-1 do
j = notecnt-1-j
local rv, selected, muted, startppqpos, endppqpos, chan, pitch, vel = reaper.MIDI_GetNote(take, j)
if selected then
reaper.MIDI_InsertNote(new_take, selected, muted, startppqpos, endppqpos, chan, pitch, vel, true)
reaper.MIDI_DeleteNote(take, j)
end
end
reaper.MIDI_Sort(take)
reaper.MIDI_Sort(new_take)
end
end
if trim == 1 then
reaper.Main_OnCommand(41117, 0)
end
reaper.Undo_EndBlock("Split selected notes into new midi items",0)
reaper.PreventUIRefresh(-1)
reaper.UpdateArrange()
end
PlakDeGoudron
Je ne pensais pas que quelqu'un prendrait le temps de faire ça, c'est très cooooool de ta part.
MERCIIIIIIIIIIIIIIIIIIIIIIIIIIII
...si seulement la musique pouvait servir à quelquechose
Rodila
Ça n’a pas été très long à coder, et ton idée m’a semblé plutôt utile.
Je le partagerai sur ReaPack.
Rodila
PlakDeGoudron
après utilisation, voici un retour sur un petit bug: je ne sais pas exactement dans quelle circonstances ça le fait mais si on timestretch un objet midi et qu'on applique le script, le nouveau fichier midi n'est pas synchro, les notes sont plus serrées ou plus éloignées:
...si seulement la musique pouvait servir à quelquechose
- < Liste des sujets
- Charte