Old 01-28-2020, 11:17 PM   #1961
cool
Human being with feelings
 
Join Date: Dec 2017
Location: Sunny Siberian Islands
Posts: 957
Default

REQ:
Midi Editor: unselect last note (chord) in selected notes.

I thought it was a simple solution, but I could not find such scripts, and my skills are not enough to write a script myself.
cool is offline   Reply With Quote
Old 01-29-2020, 09:58 PM   #1962
MusoBob
Human being with feelings
 
MusoBob's Avatar
 
Join Date: Sep 2014
Posts: 2,643
Default

Quote:
Originally Posted by cool View Post
REQ:
Midi Editor: unselect last note (chord) in selected notes. ...
Can you post a before/after pic of what you need exactly.
__________________
ReaTrakStudio Chord Track for Reaper forum
www.reatrak.com
STASH Downloads https://stash.reaper.fm/u/ReaTrak
MusoBob is offline   Reply With Quote
Old 01-30-2020, 05:18 AM   #1963
cool
Human being with feelings
 
Join Date: Dec 2017
Location: Sunny Siberian Islands
Posts: 957
Default

Quote:
Originally Posted by MusoBob View Post
Can you post a before/after pic of what you need exactly.
Oh, sure.

Single notes. Before using the script, I selected a few notes. After using the script, the last (rightmost) note among the selected ones became without selection

Chords - similarly, but if possible. After the script, the selection should be removed from the last (rightmost) chord.


-
-
-
-
cool is offline   Reply With Quote
Old 01-30-2020, 04:42 PM   #1964
MusoBob
Human being with feelings
 
MusoBob's Avatar
 
Join Date: Sep 2014
Posts: 2,643
Default

Try this in the MIDI Editor:
Code:
 
 ME = reaper.MIDIEditor_GetActive()

 take = reaper.MIDIEditor_GetTake(ME)
  
 retval, notecnt, ccevtcnt, textsyxevtcnt = reaper.MIDI_CountEvts( take )

 note_pos = 0

 for i = 0, notecnt -1 do
   retval, selected, muted, startppqpos, endppqpos, chan, pitch, vel = reaper.MIDI_GetNote( take, i )
   if selected then
      
      if startppqpos >= note_pos then
         note_pos = startppqpos  
      end
   end
 end   
 
 for i = 0, notecnt -1 do
   retval, selected, muted, startppqpos, endppqpos, chan, pitch, vel = reaper.MIDI_GetNote( take, i )
   if selected and startppqpos == note_pos then
      reaper.MIDI_SetNote( take, i  , false, muted, startppqpos, endppqpos, chan, pitch, vel, true )  
      
   end
 end
__________________
ReaTrakStudio Chord Track for Reaper forum
www.reatrak.com
STASH Downloads https://stash.reaper.fm/u/ReaTrak
MusoBob is offline   Reply With Quote
Old 01-31-2020, 12:45 AM   #1965
cool
Human being with feelings
 
Join Date: Dec 2017
Location: Sunny Siberian Islands
Posts: 957
Default

Quote:
Originally Posted by MusoBob View Post
Try this in the MIDI Editor:
[CODE]
AMAZING, thank you!

I needed this code to create a legato script, so that the notes slightly overlap each other, but at the same time so that the last notes do not go beyond the boundaries of the item.
Finally:

Code:
    local ME = reaper.MIDIEditor_GetActive();
    if not ME then return end;

    local take = reaper.MIDIEditor_GetTake(ME);
    reaper.MIDIEditor_OnCommand(ME,reaper.NamedCommandLookup("_BR_ME_SAVE_NOTE_SEL_SLOT_1"));--Save note selection
    reaper.Undo_BeginBlock();
    reaper.PreventUIRefresh(1);


local correct
if reaper.GetToggleCommandStateEx(32060, 40681) == 1 then
   reaper.MIDIEditor_LastFocused_OnCommand(40681,0) --Options: Correct overlapping notes while editing
   correct = 1
end



ME = reaper.MIDIEditor_GetActive()

 take = reaper.MIDIEditor_GetTake(ME)
  
 retval, notecnt, ccevtcnt, textsyxevtcnt = reaper.MIDI_CountEvts( take )

 note_pos = 0

 for i = 0, notecnt -1 do
   retval, selected, muted, startppqpos, endppqpos, chan, pitch, vel = reaper.MIDI_GetNote( take, i )
   if selected then
      
      if startppqpos >= note_pos then
         note_pos = startppqpos  
      end
   end
 end   
 
 for i = 0, notecnt -1 do
   retval, selected, muted, startppqpos, endppqpos, chan, pitch, vel = reaper.MIDI_GetNote( take, i )
   if selected and startppqpos == note_pos then
      reaper.MIDI_SetNote( take, i  , false, muted, startppqpos, endppqpos, chan, pitch, vel, true )  
      
   end
 end

    reaper.MIDIEditor_OnCommand(ME,40405);--Set note ends to start of next note (legato)

    local t = {};
    local tSel = {};
    for i = 1,({reaper.MIDI_CountEvts(take)})[2] do;
        local retval,selected,muted,startppqpos,endppqpos,chan,pitch,vel = reaper.MIDI_GetNote(take,i-1);
        ---
        tSel[i-1] = selected;
        ---
    end;
    

    for i = 0, #tSel do;
        if tSel[i] == true then;
            local retval,selected,muted,startppqpos,endppqpos,chan,pitch,vel = reaper.MIDI_GetNote(take,i);
            reaper.MIDI_SetNote(take,i,tSel[i],muted,startppqpos,endppqpos+20,chan,pitch,vel,true);
        end;
    end;

time_start = reaper.time_precise()

local function Main()

    local elapsed = reaper.time_precise() - time_start  --set slowdown timer
    if elapsed >= 0.2 then  --pause 200ms

if correct then 
   reaper.MIDIEditor_LastFocused_OnCommand(40681,0) --Options: Correct overlapping notes while editing
end

        return
    else
        reaper.defer(Main)
    end
    
end

Main()
    reaper.MIDI_Sort(take);
    reaper.MIDIEditor_OnCommand(ME,reaper.NamedCommandLookup("_BR_ME_RESTORE_NOTE_SEL_SLOT_1"));--Restore note selection
    reaper.PreventUIRefresh(-1);
    reaper.Undo_EndBlock("Overlap Notes (legato)",-1);

Last edited by cool; 01-31-2020 at 01:05 AM.
cool is offline   Reply With Quote
Old 02-01-2020, 01:03 AM   #1966
cool
Human being with feelings
 
Join Date: Dec 2017
Location: Sunny Siberian Islands
Posts: 957
Default

Hi guys! Me again

This time I tried to convert the EEL script to Lua and ran into one problem - the script works fine for two notes, but if there are more, it only processes the first two ones. As I understand it, here you need something like "repeat" and "until" commands, but this is already higher than my scripting abilities. Also, working with "while" commands is a pain, because each incorrect command leads to Reaper crashes.
By the way, is there any way in this script to avoid the "while" command using "for", for example?

The script from this topic: https://forum.cockos.com/showpost.ph...52&postcount=7
This is a script that joining adjacent and overlapping notes.

My code:

Code:
function join_adjacent_and_overlapping_notes()

take = reaper.MIDIEditor_GetTake(reaper.MIDIEditor_GetActive())

i = -1
i = reaper.MIDI_EnumSelNotes(take, i)
while i ~= -1 do
  retval, sel, muted, startppq, endppq, chan, pitch, vel = reaper.MIDI_GetNote(take, i)
      index_inner = i
        while index_inner ~= -1 do
        index_inner = reaper.MIDI_EnumSelNotes(take, index_inner)
            retval, _, _, startppqpos_next, endppqpos_next, chan_next, pitch_next = reaper.MIDI_GetNote( take, index_inner)

                 if chan == chan_next and pitch == pitch_next and endppq >= startppqpos_next then
                     reaper.MIDI_SetNote(take, i, selected, muted, startppq, endppqpos_next, chan, pitch, vel, true)  
                     reaper.MIDI_DeleteNote(take, index_inner)
                 end
           i = -1
        end
end

end

join_adjacent_and_overlapping_notes();
EEL Reference:


Code:
// Join adjacent and overlapping notes by spk77 15.8.2014)

function join_adjacent_and_overlapping_notes()
(
  (take = MIDIEditor_GetTake(MIDIEditor_GetActive())) ? (
    //UpdateItemInProject(GetMediaItemTake_Item(take));
    Undo_BeginBlock();
    //MIDIEditor_OnCommand(MIDIEditor_GetActive(), 40659); // Correct overlapping notes
    index = -1;
    while((index = MIDI_EnumSelNotes(take, index)) != -1) (
      MIDI_GetNote(take, index, is_selected, is_muted, start_pos, end_pos, chan, pitch, vol);
      index_inner = index;
      while((index_inner = MIDI_EnumSelNotes(take, index_inner)) != -1) (
        MIDI_GetNote(take, index_inner, 0, 0, start_pos_next, end_pos_next, chan_next, pitch_next, 0);
        chan == chan_next && pitch == pitch_next && end_pos >= start_pos_next  ? (
          MIDI_SetNote(take, index, is_selected, is_muted, start_pos, end_pos_next, chan, pitch, vol);
          index = -1;
          MIDI_DeleteNote(take, index_inner);
        );
      );
    );
    Undo_EndBlock("Join adjacent and overlapping notes", -1);
    //Undo_OnStateChange("Join adjacent and overlapping notes");
  );
);

join_adjacent_and_overlapping_notes();
cool is offline   Reply With Quote
Old 02-02-2020, 12:57 PM   #1967
_Stevie_
Human being with feelings
 
_Stevie_'s Avatar
 
Join Date: Oct 2017
Location: Black Forest
Posts: 5,054
Default

Is the script only supposed to work for selected notes?

EDIT:

I adjusted the script a bit. On selection, this script will only join the selected notes,
if there's a selection, all notes will be joined.

Code:
function join_adjacent_and_overlapping_notes()

	if reaper.GetToggleCommandStateEx(32060, 40681) == 0 then -- if autocorrect overlapping notes is off
		reaper.MIDIEditor_OnCommand(reaper.MIDIEditor_GetActive(), 40659, 0) -- correct overlapping notes
	end

	
	local take = reaper.MIDIEditor_GetTake(reaper.MIDIEditor_GetActive())
	reaper.MIDI_DisableSort(take)
	if reaper.MIDI_EnumSelNotes(take, -1) ~= -1 then notes_selected = true end -- check, if there are selected notes, set notes_selected to true

	local _, num_notes, _, _ = reaper.MIDI_CountEvts(take)

	for n = 0, num_notes-1 do

		local retval, sel, muted, startppq, endppq, chan, pitch, vel = reaper.MIDI_GetNote(take, n)

		for m = 0, num_notes-1 do
		
			local retval, sel_next, _, startppqpos_next, endppqpos_next, chan_next, pitch_next = reaper.MIDI_GetNote( take, m)

			if chan == chan_next and pitch == pitch_next and endppq == startppqpos_next 
			and sel == sel_next
			and (sel or not notes_selected) then
				reaper.MIDI_SetNote(take, n, nil, nil, nil, endppqpos_next, nil, nil, nil, nil)  
				reaper.MIDI_DeleteNote(take, m)
			end
		end
	end

	reaper.MIDI_Sort(take)
end


join_adjacent_and_overlapping_notes()

As a sidenote: actually I would always use an array when deleting notes, because removing notes will always result in a chaos, when iterating from 0 to number of notes.
But for the sake of easier code, I went for the less complex solution.
__________________
My Reascripts forum thread | My Reascripts on GitHub
If you like or use my scripts, please support the Ukraine: Ukraine Crisis Relief Fund | DirectRelief | Save The Children | Razom

Last edited by _Stevie_; 02-02-2020 at 02:13 PM.
_Stevie_ is offline   Reply With Quote
Old 02-02-2020, 03:41 PM   #1968
FatSynth
Human being with feelings
 
Join Date: Jan 2020
Posts: 6
Default

Hi all!

I´m able to assign analog pots to control the multiple sends volumes of a track, but
i am dreaming if it´s possible with rotary encoders?

Example: Use of 2 encoders: One for select the row of the send and another to adjust their volume?

Thanks!!!
FatSynth is offline   Reply With Quote
Old 02-02-2020, 06:41 PM   #1969
cool
Human being with feelings
 
Join Date: Dec 2017
Location: Sunny Siberian Islands
Posts: 957
Default

Quote:
Originally Posted by _Stevie_ View Post
Is the script only supposed to work for selected notes?
Yes, only selected. But I can tweak your code, it’s not difficult.

Overall - great job! I see you were able to get rid of "while" and it's cool! Thank you!

Ah, i found a bug.
The code still does not affect all notes: if there are several adjacent notes (3, 4 or more) in a row, then every second adjunction is skipped. It turns out that the problem is only half solved

P.S. finally, i fixed this! If you use other counter style ("for n = num_notes-1, 0, -1 do" and same for m), script working correct.


Yes, and even the script does not work without correction of the overlapped notes, I tried different options, but every time if the notes are overlapped, they are deleted. In this regard, the original EEL script looks perfect - it is simple and works flawlessly in any work scenarios. Ingenious code.

Last edited by cool; 02-02-2020 at 07:33 PM.
cool is offline   Reply With Quote
Old 02-18-2020, 09:39 AM   #1970
Triode
Human being with feelings
 
Triode's Avatar
 
Join Date: Jan 2012
Posts: 1,180
Default

Quote:
Originally Posted by cool View Post
Ha! It's hard to believe, but I think I completely solved my problem! At least the first tests were excellent!

I combined several solutions - a successful "remove" action and additional commands to solve their requests. Perhaps this does not look correct from the programmer's point of view, but .... it works!
The script has one drawback. With any selection of the area, the automation items are not deleted. But this is a trifle, in my workflow I can ignore it without much trouble.

FnA, James HE, guys, thank you very much for your help! This is priceless for me!

Final code:

Code:
start, ending = reaper.GetSet_LoopTimeRange( 0, 0, 0, 0, 0 )
--focus = reaper.GetCursorContext()
focus = reaper.GetCursorContext2(true) -- unlikely to get unknown(-1) when arrange not focused


  script_title = "Smart Delete Script" 
  reaper.Undo_BeginBlock() 

if start == ending then
  reaper.Main_OnCommand(40697, 0) -- remove items/tracks/...
else
  if focus == 1 then
    reaper.Main_OnCommand(40061, 0) -- split items at time selection
    reaper.Main_OnCommand(40697, 0) -- remove selected area of items
  elseif focus == 2 then
    reaper.Main_OnCommand(40333, 0)  --  delete selected points
  else -- alternatively -- elseif focus == 0 then
    reaper.Main_OnCommand(40697, 0) -- remove tracks
  end
end

  reaper.Undo_EndBlock(script_title, 0)
It would be good if this script could detect whether an fx chain is in focus and then delete the selected fx. I've tried messing with reaper.CF_GetFocusedFXChain() to no avail so far..
__________________
Mixing / Brush and Beater Drums Online: www.outoftheboxsounds.com
Triode is offline   Reply With Quote
Old 02-18-2020, 11:00 AM   #1971
Edgemeal
Human being with feelings
 
Edgemeal's Avatar
 
Join Date: Apr 2016
Location: ASU`ogacihC
Posts: 3,913
Default

Quote:
Originally Posted by Triode View Post
It would be good if this script could detect whether an fx chain is in focus and then delete the selected fx. I've tried messing with reaper.CF_GetFocusedFXChain() to no avail so far..
CF_GetFocusedFXChain has a few bugs, hopefully fixed in next SWS release.

Depending on what build/version of SWS you're using you may see,..
Returns nil if track has a name.
Returns nil if track is a folder.
May return wrong handle with multiple projects and the Hide background FX option is disabled.

EDIT Actually I was thinking of CF_GetTrackFXChain function, unsure if CF_GetFocusedFXChain has same problems.

Last edited by Edgemeal; 02-18-2020 at 11:39 AM.
Edgemeal is offline   Reply With Quote
Old 02-18-2020, 11:08 AM   #1972
Triode
Human being with feelings
 
Triode's Avatar
 
Join Date: Jan 2012
Posts: 1,180
Default

Ok thanks. It's not just my dubious scripting then
__________________
Mixing / Brush and Beater Drums Online: www.outoftheboxsounds.com
Triode is offline   Reply With Quote
Old 02-18-2020, 11:38 AM   #1973
Edgemeal
Human being with feelings
 
Edgemeal's Avatar
 
Join Date: Apr 2016
Location: ASU`ogacihC
Posts: 3,913
Default

Quote:
Originally Posted by Triode View Post
Ok thanks. It's not just my dubious scripting then
Actually I was thinking of the CF_GetTrackFXChain function, not sure if CF_GetFocusedFXChain has any of these same problems.
Edgemeal is offline   Reply With Quote
Old 02-18-2020, 11:51 AM   #1974
Triode
Human being with feelings
 
Triode's Avatar
 
Join Date: Jan 2012
Posts: 1,180
Default

In fact I've almost got this working (via JS API)
It's just sometimes not deleting tracks when on the mixer window
Can you see why? I'm stumped - most likely by something basic..

Code:
start, ending = reaper.GetSet_LoopTimeRange( 0, 0, 0, 0, 0 )
--focus = reaper.GetCursorContext()
focus = reaper.GetCursorContext2(true) -- unlikely to get unknown(-1) when arrange not focused
  local reaper = reaper
  local FX_win = reaper.JS_Window_Find("FX: ", false )

  script_title = "Smart Delete Script" 
  reaper.Undo_BeginBlock() 
  

    if FX_win then
      local title = reaper.JS_Window_GetTitle( FX_win, "" )
      if title:match("FX: Track ") then
      reaper.Main_OnCommand(reaper.NamedCommandLookup('_S&M_REMOVE_FX'),0)
      end
      end
      
      if not FX_win then

if start == ending then
  reaper.Main_OnCommand(40697, 0) -- remove items/tracks/...
elseif focus == 1 then
    reaper.Main_OnCommand(40061, 0) -- split items at time selection
    reaper.Main_OnCommand(40697, 0) -- remove selected area of items
  elseif focus == 2 then
    reaper.Main_OnCommand(40333, 0)  --  delete selected points
  
  else   -- alternatively -- elseif focus == 0 then
    reaper.Main_OnCommand(40697, 0) -- remove tracks
    
    
    end
  end
  

  
  reaper.Undo_EndBlock(script_title, 0)
__________________
Mixing / Brush and Beater Drums Online: www.outoftheboxsounds.com
Triode is offline   Reply With Quote
Old 02-21-2020, 10:15 PM   #1975
Lenich
Human being with feelings
 
Join Date: Apr 2016
Posts: 1
Default

Hello! I've used to “Cubase 5” behavior of piano-roll velocity cc, where you can hear (with some kind of Machine-Gun effect) velocity that you are editing. There was thread on this forum about this long time ago, but multiply people said that machine-gun effect is awful and this feature is gimmick.

I don't think so, because it is important to hear what you are editing in cc lane and that is very useful to building velocity of percussion and drums. Machine-Gun effect could be less annoying if there would be delay between previews. For example in “Studion One” such behavior, though I prefer more machine-gun effect.
I just want to hear velocity not by draging handles of the notes, but by drawing in cc lane directly.

So, we have Reaper 6, but still there's no function like that.
Is it possible to add this feature by using Lua/EEL/Python scripting?
Lenich is offline   Reply With Quote
Old 03-02-2020, 02:53 PM   #1976
TobyAM
Human being with feelings
 
Join Date: Feb 2017
Location: Hollywood, CA
Posts: 125
Default

Hi, I have a request, willing to barter or trade,

I wish I could import an entire folder hierarchy into a project at once. Drag in a folder, and the whole tree of files and directories is imported as new tracks and folder tracks, respectively. Hol-e sh-t would that simple task save me so much time!
TobyAM is offline   Reply With Quote
Old 03-09-2020, 07:33 AM   #1977
euphor
Human being with feelings
 
euphor's Avatar
 
Join Date: Aug 2019
Posts: 59
Default

I would like to ask for a useful trim editor used in Sadie, a popular but outdated daw.

All information can be found here:
https://forum.cockos.com/showthread.php?t=224693

the most important functions can be viewed here:

https://youtu.be/w0ek7usisvE

Quote:
Originally Posted by Job View Post
I have been working with Sadie for many years. Sadie is, to my knowledge, the only DAW to have this unique Trim Editor.
The special and unique is in principle very simple:

For example, if you want to trim a song, in other audio tools, after you cut and delete a part, its waveform immediately disappears.
In the Sadie Trim Editor, this is still displayed in light gray.

When editing, you can now orientate on the deactive waveform, so that you stay exactly in the timing.
This is exactly what is shown in the video on an older Sadie version.
https://youtu.be/w0ek7usisvE

The most important part of the Sadie editor could be simulated in Reaper, in which the cut and deleted waveform is just as light gray.

How this could look like in Reaper, I simulated here once:
https://drive.google.com/file/d/1-Lf...ew?usp=sharing

oder hier:
https://drive.google.com/file/d/1YD0...ew?usp=sharing

If you could then mirror the fade, Reaper would be as unique as Sadie.
Quote:
Originally Posted by Job View Post
It would also be enough if the left and right of the waveform were visible in light for about 10 seconds. Whether light gray or in the color of the waveform would also be possible.


Here's another practical example.

The music was cut and should now be shortened in exact timing.
https://drive.google.com/file/d/1ZOg...ew?usp=sharing


The cut point should have a minimal crossfade. For this purpose, a fade-in is created at the top,
https://drive.google.com/file/d/1W8Z...ew?usp=sharing


which is then mirrored down. This creates a fade-out.
Both together make an exact crossfade.
https://drive.google.com/file/d/1JxG...ew?usp=sharing


The mirror fade function is not as important as the VISIBLE MUTE WAVEFORM.

---------------------------------------------------------------------------
euphor is offline   Reply With Quote
Old 03-12-2020, 05:48 PM   #1978
MusoBob
Human being with feelings
 
MusoBob's Avatar
 
Join Date: Sep 2014
Posts: 2,643
Default Region Names to Text

I need a script to write region names to text as quoted below.

The pink region is ignored and bar 1 will be the first non pink bar so if there is
Project start measure: -1 for 2 bar offset bar 1 will be bar 1
else bar one will be bar 3
so these will be the Section bar numbers below 1A this will be any blue regions
9B will be any green regions
there are 2 region csv in the zip you can load into Reaper
region_chords_colors.csv these are just 2 colors for A and B section

region_chords_colors_fills.csv this has a few more blues and greens
to show post fills and pre fills
EDIT: I think it maybe best to get it to work from the fills csv so where ever
a dark blue post fill is that will be A and where ever a dark green post fill is that will be B


Region color 97D0FE is A Ending will be Section: 97A
Region color 9EF5B6 is B Ending if it was this green it would be Section: 97B
these will be the last chord at the bottom of the text bar 97

the underscores _ are when the chord is on beat 2 or 4
| D Bm | is a chord on beat 1 and 3
| Gbm G _ _ | is a chord on beat 1 and 2
| D _ _ Gbm | is a chord on beat 4
it always writes the current chord from previous bars on beat 1
it only needs to write:
Tempo: 120 > current project tempo
Chorus: bars 1 to 96 (repeat 1 times) > bars from start to the start of the ending bar 97
Sections: > either A for blues and B for greens
the others leave as is:
Meter: 4/4
Style: Swing
Key: D > this could be the first chord or I can add a user input for it

If it can save the text to *.mjb in the script folder
Code:
local info = debug.getinfo(1,'S');
script_path = info.source:match[[^@?(.*[\/])[^\/]-$]]
region_chords_to_text.zip

Quote:
Name: Song
Meter: 4/4
Style: Swing
Key: D
Tempo: 120
Chorus: bars 1 to 96 (repeat 1 times)
Sections: 1A 9B 17A 25B 33A 41B 49A 57B 65A 73B 81A 89B 97A
| D Bm | Gbm G _ _ | G A _ _ | A D |
| D _ _ Gbm | G | G | A |
| Bm | Gbm | G | D |
| Bm | Gbm | G | A |
| D | Gbm | G | A |
| D | Gbm | G | A |
| Bm | Gbm | G | D |
| Bm | E | G | G A |
| D | Gbm | G | A |
| D | Gbm | G | A |
| Bm | Gbm | G | D |
| Bm | Gbm | G | A |
| D | Gbm | G | A |
| D | Gbm | G | A |
| Bm | Gbm | G | D |
| Bm | E | G | G A |
| D | Gbm | G | A |
| D | Gbm | G | A |
| Bm | Gbm | G | D |
| Bm | Gbm | G | A |
| D | Gbm | G | A |
| D | Gbm | G | A |
| Bm | Gbm | G | D |
| Bm | E | G | G A |
| D |
__________________
ReaTrakStudio Chord Track for Reaper forum
www.reatrak.com
STASH Downloads https://stash.reaper.fm/u/ReaTrak

Last edited by MusoBob; 03-12-2020 at 06:20 PM.
MusoBob is offline   Reply With Quote
Old 03-17-2020, 04:29 PM   #1979
Teddy
Human being with feelings
 
Join Date: Sep 2011
Posts: 198
Default

Hello,

I'm trying to make a DIY portastudio with a raspberry pi loaded with reaper.
Currently I'm in the planning phase, and I'm testing out different techniques to see if it's doable.

So here's my script request:
I want to unarm the selected track at the start of the upcoming measure. Then I wan't to loop the clip/recording I just made on that track until the end of the song (say 5 minutes if I need to set a time). Hopefully this can be done seamlessly.

I tried to solve it with custom actions, but couldn't quite get it to work. Fingers crossed.

Thanks.
Teddy is offline   Reply With Quote
Old 03-18-2020, 04:41 PM   #1980
Teddy
Human being with feelings
 
Join Date: Sep 2011
Posts: 198
Default

I think I can figure this one out with reascript, but need a few pointers.

Right after unarming a track: what's the best way to get that newly recorded item as fast as possible?
Do I need to run a deferred function to check if the item count of the track has increased since the script was fired?
Teddy is offline   Reply With Quote
Old 03-23-2020, 04:18 PM   #1981
Phazma
Human being with feelings
 
Join Date: Jun 2019
Posts: 2,872
Default

I have a bit of a weird issue, wondering if a script could help me. Basically I noticed (specially in the Inspector view) that often I need to move a plugin to another track. I normally use the "Copy FX" action from the FX context menu, afterwards the "Delete FX" action, and then "Paste" on the other track. To make this a little faster I wanted to create a "Cut FX" custom action (consisting of copy + delete FX) and add that to the FX context menu, however it seems that the actions I need for this are only available within the FX context menu and not in the action list.
Could this be solved with a script? I guess it should be fairly easy as it is only 2 actions, if it is possible to make scripts with actions that are not available in the action list.
Phazma is offline   Reply With Quote
Old 04-03-2020, 05:16 PM   #1982
Kr3eM
Human being with feelings
 
Kr3eM's Avatar
 
Join Date: Apr 2019
Posts: 231
Default

I'm currently looking for a way to Activate/Bypass slot 2-13 on my FX: Monitor chain via a Toolbar.

I found scripts for doings FX bypass on ordinary tracks (if selected) but I have yet found one for the Monitor FX...except a toggle one, but that do not leave my toolbar icons in a active state.

Any help or directions to a script that would make this possible would be very much appreciated.
Kr3eM is offline   Reply With Quote
Old 04-03-2020, 09:21 PM   #1983
Edgemeal
Human being with feelings
 
Edgemeal's Avatar
 
Join Date: Apr 2016
Location: ASU`ogacihC
Posts: 3,913
Default

Quote:
Originally Posted by Kr3eM View Post
I'm currently looking for a way to Activate/Bypass slot 2-13 on my FX: Monitor chain via a Toolbar.

I found scripts for doings FX bypass on ordinary tracks (if selected) but I have yet found one for the Monitor FX...except a toggle one, but that do not leave my toolbar icons in a active state.

Any help or directions to a script that would make this possible would be very much appreciated.
See if these help,
Enable FX Monitor 2-13.lua
Disable FX Monitor 2-13.lua
Toggle bypass FX Monitor 2-13.lua

EDIT Eh, These don't do anything to toolbar button states, not sure how the logic for that would work.
I'll see myself out!

Last edited by Edgemeal; 04-04-2020 at 07:54 AM.
Edgemeal is offline   Reply With Quote
Old 04-03-2020, 10:19 PM   #1984
moonuel
Human being with feelings
 
Join Date: May 2018
Location: Scarborough, Ontario
Posts: 9
Default Load default input FX chain?

Hi! Hope everyone's health is well.

I am looking for someone to write a script that will load the default input FX chain for a selected track. I am intending to create a custom action that will create a new virtual instrument track and then load the default input FX so that I can record MIDI more efficiently.

If somebody would write this for me that would be incredibly appreciated and kind of you. Thanks in advance!
moonuel is offline   Reply With Quote
Old 04-03-2020, 10:56 PM   #1985
mpl
Human being with feelings
 
mpl's Avatar
 
Join Date: Oct 2013
Location: Moscow, Russia
Posts: 3,960
Default

Quote:
Originally Posted by moonuel View Post
Hi! Hope everyone's health is well.

I am looking for someone to write a script that will load the default input FX chain for a selected track. I am intending to create a custom action that will create a new virtual instrument track and then load the default input FX so that I can record MIDI more efficiently.

If somebody would write this for me that would be incredibly appreciated and kind of you. Thanks in advance!
Default input FX chain is empty unless you using some track template, no?
mpl is offline   Reply With Quote
Old 04-04-2020, 05:49 AM   #1986
Kr3eM
Human being with feelings
 
Kr3eM's Avatar
 
Join Date: Apr 2019
Posts: 231
Default

Quote:
Originally Posted by Edgemeal View Post
See if these help,
Enable FX Monitor 2-13.lua
Disable FX Monitor 2-13.lua
Toggle bypass FX Monitor 2-13.lua

EDIT Eh, These don't do anything to toolbar button states, not sure how the logic for that would work.
I'll see myself out!
Thank you, but perhaps I was a little bit unclear. I'm not looking for way to bypass or toggle all the 2-13 FX's at once but rather a way to set each of them in a bypass mode.

This script works the way I would like to have (for each one of Monitor FX slot from 2-13):

SWS/S&M: Toggle FX 2 bypass for selected tracks

Problem is that I can't use it for the Monitor FX section. This scipt also puts the toolbar icon in an active state when the fx is bypassed.

So I'm looking for the same behaviour for the Monitor as something like this

Toggle FX 2 bypass for Monitor FX
Toggle FX 3 bypass for Monitor FX
Toggle FX 4 bypass for Monitor FX
... up to 13

if that makes any sense. My plan is to have one toolbar icon for each slot from 2-13.
Kr3eM is offline   Reply With Quote
Old 04-04-2020, 07:51 AM   #1987
Edgemeal
Human being with feelings
 
Edgemeal's Avatar
 
Join Date: Apr 2016
Location: ASU`ogacihC
Posts: 3,913
Default

Quote:
Originally Posted by Kr3eM View Post
So I'm looking for the same behaviour for the Monitor as something like this

Toggle FX 2 bypass for Monitor FX
Toggle FX 3 bypass for Monitor FX
Toggle FX 4 bypass for Monitor FX
... up to 13

if that makes any sense. My plan is to have one toolbar icon for each slot from 2-13.
Copy this script file and rename the FX # for,
the FX slot number you want to toggle bypass.
For example,
Toggle FX 3 bypass for Monitor FX.lua
Toggle FX 4 bypass for Monitor FX.lua
Toggle FX 5 bypass for Monitor FX.lua
...
Toggle FX 13 bypass for Monitor FX.lua

Last edited by Edgemeal; 04-04-2020 at 10:46 AM.
Edgemeal is offline   Reply With Quote
Old 04-04-2020, 08:21 AM   #1988
Kr3eM
Human being with feelings
 
Kr3eM's Avatar
 
Join Date: Apr 2019
Posts: 231
Default

Quote:
Originally Posted by Edgemeal View Post
Copy this script file and rename the FX # for,
the FX slot number you want to toggle bypass.
For example,
Toggle FX 3 bypass for Monitor FX.lua
Toggle FX 4 bypass for Monitor FX.lua
Toggle FX 5 bypass for Monitor FX.lua
...
Toggle FX 13 bypass for Monitor FX.lua
Thanks, however this behaves the same as
cfillion_Toogle monitoring FX 2 bypass
which does not put the icon in active state, I need the toolbar icon to show me when the bypass is active.

This one does this to the icons
SWS/S&M: Toggle FX 2 bypass for selected tracks
... so whats the difference? I assume it should be doable with the Monitor FX slots as well.
Kr3eM is offline   Reply With Quote
Old 04-04-2020, 08:28 AM   #1989
Edgemeal
Human being with feelings
 
Edgemeal's Avatar
 
Join Date: Apr 2016
Location: ASU`ogacihC
Posts: 3,913
Default

Quote:
Originally Posted by Kr3eM View Post
I need the toolbar icon to show me when the bypass is active.

This one does this to the icons
SWS/S&M: Toggle FX 2 bypass for selected tracks
... so whats the difference? I assume it should be doable with the Monitor FX slots as well.
Monitor FX uses a different indexing # for FX slot,
Try this script on toolbar button,

Last edited by Edgemeal; 04-13-2022 at 12:47 PM.
Edgemeal is offline   Reply With Quote
Old 04-04-2020, 10:31 AM   #1990
Kr3eM
Human being with feelings
 
Kr3eM's Avatar
 
Join Date: Apr 2019
Posts: 231
Default

Quote:
Originally Posted by Edgemeal View Post
Monitor FX uses a different indexing # for FX slot,
Try this script on toolbar button,
Awesome, this one worked... thank you soooo much.
Kr3eM is offline   Reply With Quote
Old 04-05-2020, 09:15 AM   #1991
Edgemeal
Human being with feelings
 
Edgemeal's Avatar
 
Join Date: Apr 2016
Location: ASU`ogacihC
Posts: 3,913
Default

Quote:
Originally Posted by Kr3eM View Post
Awesome, this one worked... thank you soooo much.
Glad I could help!
It's amazing how many scripts/actions we already have yet its never enough LOL! Will it ever end?
Edgemeal is offline   Reply With Quote
Old 04-05-2020, 09:19 AM   #1992
Phazma
Human being with feelings
 
Join Date: Jun 2019
Posts: 2,872
Default

Quote:
Originally Posted by Edgemeal View Post
Glad I could help!
It's amazing how many scripts/actions we already have yet its never enough LOL! Will it ever end?

It's interesting to see how many different things different people want to do inside a DAW. And it is awesome that with Reaper a lot of these workflow ideas can become reality.
Phazma is offline   Reply With Quote
Old 04-06-2020, 05:24 AM   #1993
Kr3eM
Human being with feelings
 
Kr3eM's Avatar
 
Join Date: Apr 2019
Posts: 231
Default

Quote:
Originally Posted by Edgemeal View Post
Glad I could help!
It's amazing how many scripts/actions we already have yet its never enough LOL! Will it ever end?
The help is very much appreciated to say the least.

I've been making music since early 90's and allthough I tried reaper a few time I didn't commit to it until a year ago.

I'm still trying to adopt or figure out work arounds to my deeply rooted preferences and habits. I'm pretty sure I could come up with a decent amount of script jobs.

However, I first have to make sure it's worth the effort before I at least tried adapting the reaper way of doing things...that is if there actually are a reaper way.

Perhaps someone can enlighten me if the following thing is possible to do with a script or if it needs to be a feature request.

Is it possible to make a script that moves the a clips looping region according to selected grid size?

One can see it as "move item content" of clip but instead it should move the start and end points of the loop...(and the possibility to increase/decrease the loop region would make it perfect, but I'll take what I can)

This is a real major thing I lack in reaper and I't can't be replaced it with working with takes.

This is a video which show the basic function of it in a context of work flow.

https://www.youtube.com/watch?v=Hxlb4PNCt7M


I suspect it's not doable since reaper demands to disable looping of the section first and then move contents by dragging and loop again.
This is a very inefficient approach of working with loops.

In my naive mind there should not be that difficult to create a such function by building on the current Move Item Content function but change it to shift the start and end of the loop on the source file.

However, I do suspect that it's probably a feature request and not a thing that can be created with scripts...but hey, better to ask than not.

Perhaps someone is looking for a challenge
Kr3eM is offline   Reply With Quote
Old 04-12-2020, 11:17 PM   #1994
bamsehopp
Human being with feelings
 
Join Date: Sep 2018
Posts: 73
Default

I’m on the hunt for an easier way to work with multiple output instruments. I found out that you can record the output of an instrument to a multichannel wav file instead of routing it all to separate tracks, so much more handy and easier to edit! But there is no easy way to mix multichannel tracks... i found fxrack, a script that will split a track into 8 stereo channels and hande the routing when adding fx, but it doesnt seem to work when working with already multichannel tracks. The ideal solution would be a mixer window just like the regular reaper mixer with a fader and fx slots but with fader 1 controlling ch 1/2, fader 2 ch 3/4 etc. Anyone know of something like this or is feeling up for a quarantine challenge?
bamsehopp is offline   Reply With Quote
Old 04-12-2020, 11:29 PM   #1995
mpl
Human being with feelings
 
mpl's Avatar
 
Join Date: Oct 2013
Location: Moscow, Russia
Posts: 3,960
Default

Quote:
Originally Posted by bamsehopp View Post
The ideal solution would be a mixer window just like the regular reaper mixer with a fader and fx slots but with fader 1 controlling ch 1/2, fader 2 ch 3/4 etc.
Why not just use routing? Why it is "harder to edit" since you still edit single item?
mpl is offline   Reply With Quote
Old 04-13-2020, 12:08 AM   #1996
bamsehopp
Human being with feelings
 
Join Date: Sep 2018
Posts: 73
Default

Quote:
Originally Posted by mpl View Post
Why not just use routing? Why it is "harder to edit" since you still edit single item?
I like to record long passages and then cut and move things around and this is much more efficient than grouping lots of items and edit them together. In for example bitwig you can chop and move the group like its a regular item but as far as i know reaper doesnt work like that? Also its alot easier to navigate big sessions with just one item and track per multichannel vsti (Or real recordings as kenny showed in his video about recording multitrack drums to one track.) I mean the functionality is all there already its just a bit of a pain to manually route every fx to the right stereo channel.
bamsehopp is offline   Reply With Quote
Old 04-13-2020, 02:31 PM   #1997
mpl
Human being with feelings
 
mpl's Avatar
 
Join Date: Oct 2013
Location: Moscow, Russia
Posts: 3,960
Default

Quote:
Originally Posted by bamsehopp View Post
I mean the functionality is all there already its just a bit of a pain to manually route every fx to the right stereo channel.
Create sends from every channels pair of track with chopped/cropped/somehowedited multichannel items (like 1/2->1/2, 3/4->1/2 etc). You can do that with one script(that creates number of tracks and create sends respectively). No need to route something other. Specific mixer for each item with FX slot and faders - too clumsy, especially with already complex signal flow.
mpl is offline   Reply With Quote
Old 04-14-2020, 11:30 AM   #1998
AB1
Human being with feelings
 
Join Date: Apr 2020
Location: UK
Posts: 79
Default

Quote:
Originally Posted by TobyAM View Post
Hi, I have a request, willing to barter or trade,

I wish I could import an entire folder hierarchy into a project at once. Drag in a folder, and the whole tree of files and directories is imported as new tracks and folder tracks, respectively. Hol-e sh-t would that simple task save me so much time!

Like this?

AB1 Insert media to new tracks using source folder structure.lua

Sorry I do not know how to trigger this from a drag and drop. If you copy and paste from the address bar of Reapers own Media Explorer with keyboard shortcuts and also use a shortcut for the script it should be quick and easy enough.

Perhaps one of the regulars in here would be kind enough to test this script. You can use a copy of the same wav file or whatever and just distribute copies of it inside a whole mess of folders/sub-folders and see if they import into Reaper with the correct indent level. Seems to work for me.

-- Tags; directory, hierarchy.
AB1 is offline   Reply With Quote
Old 04-14-2020, 11:38 AM   #1999
Funkybot
Human being with feelings
 
Funkybot's Avatar
 
Join Date: Jul 2007
Location: New Joisey
Posts: 5,990
Default

I'd love a script that started with the Sexan Create VCA Master from Selection, and began the VCA master/slaves group starting with Group 1 and went up to the next available group for each subsequent run of the action.

I only use groups for VCA's and getting the groups starting on Group1 makes them work great with CSI. The current script works backwards from 64 or up from 32, neither one of which are good on control surfaces.

Not sure if that's just an easy tweak or a larger ask.
Funkybot is offline   Reply With Quote
Old 04-14-2020, 01:44 PM   #2000
Funkybot
Human being with feelings
 
Funkybot's Avatar
 
Join Date: Jul 2007
Location: New Joisey
Posts: 5,990
Default

Script Request #2: Export changed preference list.

Background
A default Reaper install is setup with a set of default preferences, folders, key commands, mouse modifiers, etc. But we've changed a million things over the years and you want to know what exactly you've changed from defautl.

Concept
The script has all the default Reaper settings programmed in and identifies any changes from default and spits them out in a text file or delimited format. For any changed entries it will tell you where the preference is located, what the name is, what the default value is, and what the current value is.

Use Case
1. I've got a theme that overwrites my current config to look right and I'm tired of fighting the theme.

2. I'm just curious about what I've changed and want to see what I've done.

3. I want to share some favorite preferences with others, but can't even keep track of where I've made keyboard shortcut or mouse modifier changes.
Funkybot is offline   Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -7. The time now is 11:41 PM.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2024, vBulletin Solutions Inc.