you would have to know the amount of shift you need, which as you have discovered you can find out using Reatune...
then there are various actions [search Item properties: Pitch] that will move the pitch up or down by various amounts..
so let's imagine you want to pitch up by 3 semitones and 1 cent...
so you create a custom action to do that and run it...
you could create the custom action to operate on one item, and then also select the next item, ...that way you could just repeat the key stroke for it...
so you could made your own set of custom actions like:
Up 2 semitones
Up 3 semitones
etc
or
Down 2 semitones
Down 3 semitones
etc
get the drift?
thanks for the reply
i understand , and it looks like ill be doing just that - however , i still would love an automatic action (potentially with a dialog for setting the note (and maybe even frequency)) .
not exactly sure if the api has the capability to (even roughly) detect pitch .. but i think this type of script/action would be fundamental , as it could even be a building block for more scripts/variations/custom actions such as items in a scale, easily set up item chords.
It could be something that compares a midi item(without having to tap) to a folder with midi files. I'm thinking something that analyses notes like C1, C2, etc.
I already made script to automate saving track templates in Windows 10, so if that sounds like it will work for you then PM me, I'll send you something to test.
BTW, does anyone know if there is a setting in Media Explorer so REAPER automatically refreshes the file list when you save a file?
Like when viewing the track template folder and I save a track template, the file doesn't show up unless I manually click that refresh button. EDIT Never mind, posting mouse down/up msgs to the Refresh button window from my script did the trick!
Great, I was thinking a dialog that pops up and allows you to select the folder would be useful, similar to a “Save As” window. If not, then selected folder in the media explorer would work too.
I feel a need for a dedicated click sound plugin, which can do what no other similar plugin (that I've tried) can do, nor "Insert click source" in Reaper.
Could anyone create a script that works just like Reaper's "Save all FX as chain..." for the selected track?
I am aware there exist:
mpl_Save selected tracks FX chains
nofish_Save track FX chains (for selected tracks)
But both these create a subfolder in which they put the saved FX chain which I don't like. Also they force the FX chain name to be the track name and I would rather like to type a custom name when saving (like in Reaper's native action).
The reason I don't use Reaper's native action is that it is only accessible through the FX chain window and I almost never open that. I would like to just add the script to the FX extended mixer context menu.
For me it is no issue if it works only for one selected track but should you feel like supporting multiple selected tracks I guess the best option would be to just re-open the save dialog several times in a row until each Chain is saved or cancelled and probably it makes sense to set the "Save as:_____" name to default to the track name (so that the user knows what chain he is saving).
Can anyone make a script like the trackspacer vst? Basically takes in a side chain audio, calculates 32 band eq from it, and applies the opposite to the track.
split@ transients multiple tracks & group all across tracks @ each split
split@ transients multiple tracks & group all across tracks @ each split
for example...lets say i have 4 guitar tacks all recorded sep.
each track is the same music.
id like to split them all according to transients and then group each split with the corresponding split from the other 3 tracks below thus creating 4 moveable splits across tracks ..so in reality hundreds of splits.all grouped separate.
Basically I'm looking for a way to turn a folder structure in my OS into a structure of folder tracks with children. Does anyone know of, or can create, a script for this?
Possible to make a script that select all "offline" items?
Want to be able to export a file list of which files that are not found by Reaper.
Could cycle thru all items detecting active take's source status with CF_GetMediaSourceOnline and then GetMediaItemTake_Source to get each (broken?) path
Would it be possible to have a script trigger "Import item from arrange" on focused RS5K instance?
I know that it is generally possible to trigger "Import item from arrange" via script, as there are mpl scripts that do it, but his scripts only work for RS5K as track FX while I would need it also (or actually exclusively) as take FX.
so i made screenset changing custom actions , some of them i would like to trigger 'always on top' with separate actions/scripts , for on (Always on Top) and off (not Always on Top)
The easiest way if you are on Win is use www.AutoHotkey.com
This is set ctrl+spacebar to toggle active window always on top.
Save As "Always on top.ahk"
Code:
#NoEnv
#SingleInstance Force
^SPACE:: Winset, Alwaysontop, , A
i already use keypads to select screensets and i got one for always on top toggle. as triggers.
i use sononym sample finder alongside reaper, which gets hidden behind reaper when i turn on reapers always on top, purposely
i need explicit actions for the off state and on state . some keys (screenset actions) require sononym to be present , some dont.. i use an (always on top) toggle switch on the keypad currently alongside the screenshot changing buttons , but would really like a way to (always on top) turn it on and off dynamically with the screenset keypad buttons..
soo:
1 action : always on top active;
1 action : always on top disabled
i looked into the API and i just get confused lol
thank you
MusoBob : thank you. the toggle is in the action list , i need the on and off as separate actions.. i really appreciate your response, and if i misunderstood .. lmk
have a good day guys
Quote:
Originally Posted by MusoBob
The easiest way if you are on Win is use www.AutoHotkey.com
This is set ctrl+spacebar to toggle active window always on top.
Save As "Always on top.ahk"
Code:
#NoEnv
#SingleInstance Force
^SPACE:: Winset, Alwaysontop, , A
Hello Reaper friends. I am really trying to figure this out but I'm stuck totally. Hope someone can please help.
I am looking for an action or simple script that simply splits a media item randomly. That's it. I've tried the KAWA morse code one but it's very buggy and sometimes selects totally unselected clips to split and gets all screwy.
I can only find certain split at X scripts and actions that do grid stuff.
Is there any way to split a media item in Reaper randomly into X number of random splits? That's it.
@lowellben
I have a unreleased premium one which split according to random section size in a interval:
X-Raym_Split selected items randomly according to min and max section length value.lua
But I haven't made a script to split in X items of various sizes.
Oh wow that looks promising. I'm a little confused by the wording of the script name and the dialog box shown in your GIF file. It goes so fast! lol Can you explain it please? How is the item split, based on millseconds? grid? totally random? (awesome)
Does this do what I'm looking for or is it tied to only ms/duration or what?
My goal is something like:
Split selected items randomly according to min/max section length (%) value.lua
Yours is awesome. Because this looks like it's great
__________________ 47.8% of statistics are made up.
@lowellben
Currently mine propose minimum length section, maximum length section, both in seconds, and delete incomplete last item if isn't longer than minimum length section.
I have added item percentage and multi unit support:
I have added the script to my item randomization pack, who definitely needed some content (almost all my randomization scripts have been shared free already :P)
Thx for your support if you consider getting the pack!
Hi, is there anyone that can program a script that automatically detect track names and act accordingly without running it every time? A bit like SWS autocolor, that detect track name and change the track color immediatelly
For example: I change track name to "Master Bus" and the script automatically SoloDefeat the track... or any other function
I'm able to modify existing scripts, but I'm not sure I can create such script from scratch
Hi, is there anyone that can program a script that automatically detect track names and act accordingly without running it every time? A bit like SWS autocolor, that detect track name and change the track color immediatelly
For example: I change track name to "Master Bus" and the script automatically SoloDefeat the track... or any other function
I'm able to modify existing scripts, but I'm not sure I can create such script from scratch
Thanks
I made one of those by combining the rename track action with a script that runs functions dependent on track name. I'll post a snippet when I get a moment.
I made one of those by combining the rename track action with a script that runs functions dependent on track name. I'll post a snippet when I get a moment.
selNum = reaper.CountSelectedTracks(0)
containedcharacter = "REHEARSAL"
for j=0, selNum-1 do
local track = reaper.GetSelectedTrack(0, j)
if track ~= nil then
local retval, name = reaper.GetTrackName(track, "")
if retval then
for w=0, selNum-1 do
if string.match(name, containedcharacter) then
reaper.Main_OnCommand(reaper.NamedCommandLookup('_S&M_CYCLACTION_108'),0) -- Set Selected Track to channel 18
elseif string.match(name, "DULC") then
reaper.Main_OnCommand(reaper.NamedCommandLookup('_S&M_CYCLACTION_109'),0) -- Set Selected Track to channel 18
elseif string.match(name, "ROOM") then
reaper.Main_OnCommand(reaper.NamedCommandLookup('_S&M_APPLY_TRTEMPLATE5'),0)
elseif string.match(name, "PLATE") then
reaper.Main_OnCommand(reaper.NamedCommandLookup('_S&M_APPLY_TRTEMPLATE3'),0)
end
return -- Track named "X" found -> return
end
end
end
end
end
This was itself adapted from another user's script so there might be some things not needed. Strip my things out and use as required. Put in a macro after "rename selected tracks" and it will run after you have renamed the tracks. As you can see I had it set input if I named (with capitals) in a certain way. Also opens a track template for a plate if I type PLATE when creating a track for instance. The template needs setting up separately though.
Cheers
Hello respected scripters and happy New Year!
Is there a script that can display the MIDI channel on the note?
Not really a MIDI user so not sure, but I'd like that to be shown in tooltip when I place mouse over note, so heres a quick script idea based on code from two other members.
Edit v0.4: Clear tooltip when mouse not over note area. Edit v0.3: Clear tooltip instantly when script deactivated. Edit v0.2: Highlight toolbar button for script when active.
Code:
-- Show note, channel, row and measure in tooltip
-- v0.4 -- Edgemeal -- Dec 30, 2021
-- TESTED: Win10_x64, REAPER v6.43/x64, SWS v2.12.1.3
-- Posted, https://forum.cockos.com/showpost.php?p=2511265&postcount=2669
--
-- Thanks to Sexan, https://forum.cockos.com/showpost.php?p=2057978&postcount=16
-- Thanks to nofish, Get note ch under mouse based on code in, "Smart toggle mute note(s) (under mouse)".
local oct_tbl = {"C", "C#", "D", "D#", "E", "F", "F#", "G", "G#", "A", "A#", "B"}
local note_channel = ""
local last_x, last_y = -1, -1
local tt_show = false
function ToolbarButton(enable)
local _, _, section_id, command_id = reaper.get_action_context()
reaper.SetToggleCommandState(section_id, command_id, enable)
reaper.RefreshToolbar2(section_id, command_id)
end
function round(num, numDecimalPlaces)
local mult = 10^(numDecimalPlaces or 0)
return math.floor(num * mult + 0.5) / mult
end
function GetNoteChUnderMouse()
local hwnd = reaper.MIDIEditor_GetActive()
if hwnd then
local take = reaper.MIDIEditor_GetTake(hwnd)
local notes = reaper.MIDI_CountEvts(take)
local __, __, noteRow, __, __, __ = reaper.BR_GetMouseCursorContext_MIDI()
if noteRow > -1 then
local mouse_time = reaper.BR_GetMouseCursorContext_Position()
local mouse_ppq_pos = reaper.MIDI_GetPPQPosFromProjTime(take, mouse_time)
for i = 0, notes - 1 do
local _, _, _, start_note, end_note, chan, pitch = reaper.MIDI_GetNote(take, i)
if start_note < mouse_ppq_pos and end_note > mouse_ppq_pos and noteRow == pitch then
return "CH: " .. chan + 1 .. ", "
end
end
end
end
return ""
end
function main()
local x,y = reaper.GetMousePosition()
local window, segment, details = reaper.BR_GetMouseCursorContext()
if segment == "notes" and window == "midi_editor" then
local retval, inlineEditor, noteRow, ccLane, ccLaneVal, ccLaneId = reaper.BR_GetMouseCursorContext_MIDI()
local pos = reaper.BR_GetMouseCursorContext_Position()
local retval, measures, cml, fullbeats, cdenom = reaper.TimeMap2_timeToBeats(0, pos)
local beats = retval + 1
local oct = math.floor(noteRow / 12) -- get OCTAVE (1,2,3,4....)
local cur_oct = oct * 12 -- GET OCAVE RANGE (12,24,36...)
local cur_oct_note = ((cur_oct - noteRow ) * -1) + 1 -- GET OCTAVE NOTE (1,2,3,4...)
for i = 1,#oct_tbl do
if i == cur_oct_note then
if last_x ~= x or last_y ~= y then -- DO NOT UPDATE ALL THE TIME, JUST IF MOUSE POSITION CHANGED
tt_show = true
note_channel = GetNoteChUnderMouse()
reaper.TrackCtl_SetToolTip(note_channel .. oct_tbl[i] .. oct-1 .. " (" .. noteRow ..")" .." - " .. measures .. "." .. round(beats,2),x,y-25, true) -- MOVE IT 25 PIXELS ABOVE CURSOR
last_x, last_y = x, y
end
break
end
end
elseif tt_show then tt_show = false reaper.TrackCtl_SetToolTip("",0,0,false) end
reaper.defer(main)
end
function Exit()
ToolbarButton(0)
reaper.TrackCtl_SetToolTip("",0,0,false)
end
reaper.atexit(Exit)
ToolbarButton(1)
main()
Thank you Edgemeal and Malfunction. I will be trying both scripts for sure! I'm on Linux. Hoping that they will work.
EDIT:
- I've saved the script in a text editor and added .lua as the extension.
- I've placed the script in the script folder of REAPER. It doesn't show up when I search for the action.
What am I obviously doing wrong?
That will be my last question for 2021. :-)
Last edited by krahosk; 12-31-2021 at 09:35 AM.
Reason: I have a noob question
Hi folks,I am looking for a way to add a FX button to my midi editor toolbar, I have seen some info regarding this (I think) but not sure how it´s done. Can some one explain how to do it to a newbie please. What I have seen so far is that if there is a script for this action I am supposed to open up Reascript and past it in there. I have never used reascript. So I need help, I can not find a tutorial on this, maybe someone knows something that could help me.
Thanks
You already have the script for the thing you are trying to achieve ? Or you want/need to code one from scratch?
To add buttons at toolbar right click it it should have an option to edit it
I do not have found the code yet
I have right clicked the midi editor tool bar but no FX to be seen
I guess I do need a code from scratch that can put an FX icon in my midi editor custom toolbar
Last edited by loreto.z; 01-07-2022 at 10:45 AM.
Reason: last thoughts
I do not have found the code yet
I have right clicked the midi editor tool bar but no FX to be seen
I guess I do need a code from scratch that can put an FX icon in my midi editor custom toolbar
As mentioned in the other thread mpl's script 'mpl_Float instrument relevant to MIDI editor' should do what you want I think.
Then it's just a matter of installing ReaPack, install that script
and additionally 'Various_functions' by MPL
and assign the 'mpl_Float instrument relevant to MIDI editor' script to a toolbar button in the MIDI editor.
As mentioned in the other thread mpl's script 'mpl_Float instrument relevant to MIDI editor' should do what you want I think.
Then it's just a matter of installing ReaPack, install that script
and additionally 'Various_functions' by MPL
and assign the 'mpl_Float instrument relevant to MIDI editor' script to a toolbar button in the MIDI editor.
OK, I have reinstalled v103 but the....
(and additionally 'Various_functions' by MPL
and assign the 'mpl_Float instrument relevant to MIDI editor' script to a toolbar button in the MIDI editor.) I do not understand
OK, I have reinstalled v103 but the....
(and additionally 'Various_functions' by MPL
and assign the 'mpl_Float instrument relevant to MIDI editor' script to a toolbar button in the MIDI editor.) I do not understand
Ok I think I did something, I will try to post a capture so you can see what poped up
Ok I think I did something, I will try to post a capture so you can see what poped up
Ok, I got it to work somewhat. I got the fx icon in the midi editor tool bar,so far so good, but on the midi items that have their own fx assigned it will not open that fx.Problem is it opens up the track´s FX and not the midi item´s FX. I have some tracks with fx that control the midi items within, and that´s when it works, but I have tracks that only have the fx chosen in each midi item within other tracks, and in those midi editor toolbars the fx icon does nothing.
Holy moly I hope I am explaining myself correctly.
Can I upload a video showing what I mean? Is there a size limit that the video can be?
Last edited by loreto.z; 01-07-2022 at 12:09 PM.
Reason: maybe I can show a video with the problem
Great idea, +1!
This would help if I show Reaper to someone and he wants to switch over and use it similarly to me.
I would give him my configuration file but he might dislike some or many of my shortcuts and when he later looks up how to do some things he would be lost because nothing works as in the manual. With such a script it could be avoided that he turns to me with every question but he can just check the text file to see what I have changed and revert it easily if he dislikes it.
I've searched the thread, but found nothing relevant. Has there been any reply on this?