Hi, I'm a guitarist who has been using Guitar Pro.
The practical thing in that software is entering the notes with the virtual fretboard.
The notes entered are simultaneously entered according to cursor position in the score.

Of course the TAB is not necessary.
The idea is to simply input the notes on the fretboard and have them appear on the piano roll/notation.
Notes would stack when left-clicked and ultimately (if possible) placed one after the other when right-clicked.

@krahosk
This could theorically be possible, using native REAPER MIDI step recording mod for selected items, and using the ReaScript GUI to just send MIDI note via Virtual Keyboard.
But it would take days of dev to make this happen from what I got (the fretboard ^^)

I wonder if there isn't any third party software which could send midi note via fretboard interface... It could be a phone app or a desktop software. Is this something you have explored ?

I understand scope of the undertaking. Since your reply, I have looked around and found... RealGuitar which enable outputing of MIDI signal via the virtual fretboard!
Voilà, j'ai trouvé un "workaround" quand même très fonctionnel.
The neat feature is that it outputs the string number to a channel number too. Though not as readable as a guitar tab, the fretboard also displays notes on playback which is useful in playing, practicing and later recording my compositions.

Edit: Also found MIA (Midi Input Assistant) which is excellent but only for Ableton.

Edit 2: Alas, (in Reaper) when setting "Record MIDI output" in the TCP or MCP, RealGuitar's Fretboard output does work when recording in real-time, but does not in step recording.

Not sure how it works but maybe use this in a child track instead, so you can still have Midi Input (and not Output) for recording.

Tried, but doesn't work. It even cancels out the recording output of the virtual instrument's output.
Though implemented with RealGuitar, step time recording with virtual instrument using its MIDI output is not functional with Reaper.
Will try with another DAW I have, FL Studio.

EDIT: Not implemented in FL Studio and even tried it on Studio One 4 at a friend's house, neither.

Can actions be implemented throught scripts? If there were actions to insert notes at an exact position, not only "at the nearest C" (as currently) etc. + auditioning the note, I could make a functional fretboard with a toolbar 6 icons tall by 22 icons wide.

1) take various repetitive vocals audio tracks/files and crop them up into individual items ,,, I suppose, by removing the audio below a certain threshold and then auto-saving with some kind of auto-naming.

2) Load them into Kontakt which may be as simple as dropping the parts onto the plugin. (i'll look into that)

So, perhaps just one script - though super-keen to know if there's any Guru type ideas for this need.

Effectively I'm hoping to record my heart-felt:-) and regularly dodgy/pitchy singing. Then, run a super easy process or two that leads to being able to use my keyboard to trigger my vocal parts individually.

Hope I don't appear lazy with the above as I'm kinda sure I could find the "remove audio below a certain threshold" action. However, I'm hoping for something more elegant/complete/startling. :-))

1) take various repetitive vocals audio tracks/files and crop them up into individual items ,,, I suppose, by removing the audio below a certain threshold and then auto-saving with some kind of auto-naming.

Check the Dynamic Split, or maybe more adapeted to your need, the Auto-Trim action in the action list.

For info, I made a custom script for splitting audio silence (for Soundiron) cause Auto-trim didn't always fit there expectation. But give Auto-trim a try first !

Quote:

2) Load them into Kontakt which may be as simple as dropping the parts onto the plugin. (i'll look into that)

I don't think you can map REAPER items, pretty sure you have to render each files and import them in kontakt (if they are nicecly named, you can use the kontakt auto map feature).

So, here's my first think on your most helpful write. I will try stuff later this evening. I am wondering if there might be a cool way to export/render the individual items from a 'silence removed' audio track out to a folder with good names.

I don't know if there's any other scripts you might think good to try.

I assume that this first step, (silence removal at certain settable thresholds), is straight-forward, and I simply keep my eye on the tops and tails of created items, and done. When the track has had silence removed and separate items created I will have many items on the track instead of one long audio file.

I believe the track's name will propagate to the individually created items. There may be much nicer ways with a script which is of interest.

The big concern now is how elegantly and easily can I render the parts out to a folder as individual named items.

I think I can get them into KONTAKT easily. That manual step was pretty much expected.

So, the big puzzle is how best/easiest to render out the individual parts to a folder.

Just trying to discover the most clever elegant time-saving repeatable method(s).

@tweed
If your audio is single track, you just have to use a batch item renamer like SWS label processor and have a counter increment for each items (considering that you recorded soubds chromatically).I also propose more advanced renammers on my website.

yes empty audio items ..
samples (20000+) converted from old gem Lin Plug RMV to kontakt patches
i just semi-batch convert all RMV kits
now want to remove that tiny/empty samples automatically
(over 12000 and probably the all of the "18 KB" samples in the video)

but -if possible- i just want to be sure 100%
that i didn't delete even a single click sound.

I have a simple request. My workflow while mixing is to put a marker with the name "s" at the start of the mix to be made and one at the end of the mix named "e".

Is it possible to make a script that will look at the name of all the markers in the project and make a time selection that starts at "s" and ends at "e" so that I can then bounce the mix of that selection?

I know I can use a region but if it's easy to script I'd rather save the screen space for sections of the project.

I am looking for a script that will set the note velocity for all the notes inside the selected midi item. what I want is a script I can alter so I can set the velocities to 21, 31, 41, 51, 61, 71, 81, 91, 101, 111, 121, 127. I have a script that does this in the midi editor but I want to do this without opening the midi editor and selecting the notes. Very useful for bass guitar and some drum stuff when you need it to sound like Sterile Daryl.

Here is the list of things I used to do and miss after moving to Reaper from Cubase.

"Set fixed velocity for all notes inside a midi item to __"
I had programmed the logical editor to do this at the set values of 21, 31, 41 etc as I listed in the previous post on this thread. I have these buttons and they work in the midi editor but why do I have to open the midi editor?

Next.
"Compress and expand midi velocities"
again it works if I open the midi editor but if I know I need to do it why do I have to open the midi editor?

"Quantize to grid" I am using the Steve script sr_quantize to grid now and it works but I have to zoom in because the grid is only relative so if I hit Q when I am zoomed out I get whole notes or bigger. I wish it just would quantize to the grid. I use Shift Q for the human 50% quantize and these things together work great except for the fact I have to zoom in.

Does anyone have these or are you able to make them? If so I will sponsor them. Please let me sponsor them... This will save me about a day or two every year.

Here is the list of things I used to do and miss after moving to Reaper from Cubase.

"Set fixed velocity for all notes inside a midi item to __"
I had programmed the logical editor to do this at the set values of 21, 31, 41 etc as I listed in the previous post on this thread. I have these buttons and they work in the midi editor but why do I have to open the midi editor?

I'm not 100% sure, but I think there are no scripts that work in the arrangement. I will have a look, shouldn't be too hard.

Quote:

Next.
"Compress and expand midi velocities"
again it works if I open the midi editor but if I know I need to do it why do I have to open the midi editor?

Not sure if they work in the arrangement, but try these 2 scripts from Kawa:
kawa_MIDI_ReduceVelocity.lua
kawa_MIDI_ExpandVelocity.lua

If they don't work in the arrangement, I'll code some.

Quote:

"Quantize to grid" I am using the Steve script sr_quantize to grid now and it works but I have to zoom in because the grid is only relative so if I hit Q when I am zoomed out I get whole notes or bigger. I wish it just would quantize to the grid. I use Shift Q for the human 50% quantize and these things together work great except for the fact I have to zoom in.

What you need to do is unlock the grid from the zoom. Right click on the grid button and uncheck "Grid snap settings follow grid snap visibility".
Then "quantize to grid" will only obey to the grid value you have set manually!

I am looking for a script that will set the note velocity for all the notes inside the selected midi item. what I want is a script I can alter so I can set the velocities to 21, 31, 41, 51, 61, 71, 81, 91, 101, 111, 121, 127. I have a script that does this in the midi editor but I want to do this without opening the midi editor and selecting the notes. Very useful for bass guitar and some drum stuff when you need it to sound like Sterile Daryl.

Lua script:

Code:

-- Start off with a little 'trick' to prevent REAPER from automatically
-- creating an undo point if no changes are made.
function preventUndo()
end
reaper.defer(preventUndo)
-- Check whether the required version of REAPER is available
if not reaper.APIExists("MIDI_GetAllEvts") then
reaper.ShowMessageBox("This script requires REAPER v5.30 or higher.", "ERROR", 0)
return(false)
end
targetVelocity = 100
function SetVelocityOfSelectedMIDIItems()
-- First, loop through all selected items
for i = 0, reaper.CountSelectedMediaItems(0)-1 do
item = reaper.GetSelectedMediaItem(0, i)
-- Loop through all takes within each selected item
for t = 0, reaper.CountTakes(item)-1 do
take = reaper.GetTake(item, t)
if reaper.TakeIsMIDI(take) then
gotAllOK, MIDIstring = reaper.MIDI_GetAllEvts(take, "")
MIDIlen = MIDIstring:len()
-- As the MIDI string is parsed one-by-one, all events will be
-- stored in this table while awaiting re-concatenation.
tableEvents = {}
stringPos = 1 -- Position in MIDIstring while parsing through events.
-- Iterate through all events one-by-one
while stringPos < MIDIlen do
offset, flags, msg, stringPos = string.unpack("i4Bs4", MIDIstring, stringPos)
if msg:len() == 3
and msg:byte(1)>>4 == 9 -- Note-on MIDI event type
and not (msg:byte(3) == 0) -- Remember to exclude note-offs
then
msg = msg:sub(1,2) .. string.char(targetVelocity) -- Replace velocity
end
table.insert(tableEvents, string.pack("i4Bs4", offset, flags, msg))
end
-- Upload the edited MIDI into the take
reaper.MIDI_SetAllEvts(take, table.concat(tableEvents))
end -- if reaper.TakeIsMIDI(take)
end
end
reaper.Undo_OnStateChange("Script: Set velocity of selected MIDI items")
end
SetVelocityOfSelectedMIDIItems()

I will be trying this one out as soon as I get back to the studio.
Many thanks indeed.

I am happy to sponsor these if any wants to take them on and put them in reapack. I feel greedy asking here but...

Here is my list of other things I used to do without opening the midi editor.

1. force note legato (Different semantics in reaper endnotes where next note starts or sim)
no overlaps (shorten note end to next note beginning)

2. quantize to grid (without having to zoom in) Steve I am using yours mostly but I need to zoom in because of relative to visibility settings I think but I get the same result with all the quantize commands, meaning they all are affected if I am zoomed out they only go as far as the grid relative to visibility. meaning if I use the sr_quantize to 16h notes it will still quantize to whole notes or larger if I am zoomed out.
I have Q a Quantize to grid and shift Q human Quantize 50% to grid but I have to zoom. I wish I did not have to zoom or open the midi editor. I love having these I just wish I did not have to zoom in.

and similarly
quantize note ends to grid (without having to zoom in)

set note lengths ( similar to velocity I have buttons for setting note lengths in the midi editor that unfortunately only go up to a single bar or whole note. I wish they went up to 4 bars and I wish I could execute this without opening the midi editor)

set note velocity (done?)

Set item length to 1/8th 1/16th 1/4, half, whole without stretching ( this basically just moves the right edge of the item to make the items this length. very good for EDM related drum cutting stuff and general percussion editing.

I've just uploaded a slightly different version of above script to ReaPack which shows a user prompt to set target velocity on script start instead of 'hardcoded' value in the script as in the version above.
(Personally I find this more practical than having several script variants with hardcoded values.)

Note that my ReaPack repo isn't enabled by default in ReaPack and must first be imported (see link in my sig).

Generally I agree with your thoughts btw., there seem surprisingly few scripts for manipulating MIDI from arrange (i.e. work on selected items). It's also lacking in stock Reaper functionality sadly (afaik).

Fingers Groove Tool is one means to do certain MIDI notes quantize tasks from arrange for example.

Generally I agree with your thoughts btw., there seem surprisingly few scripts for manipulating MIDI from arrange (i.e. work on selected items). It's also lacking in stock Reaper functionality sadly (afaik).

In my scripts thread, there's always an indication of where the script will work (well, usually, I hope, haha).
But all the MIDI stuff like: delete CC11, delete all CCs, move notes by +/- ticks, etc... works also in the arrangement.

The other option would be for eth groove tool "Apply groove" shortcut to work but it does not work even if I try to run it in the actions list. I have to open the groove tool and then double click on the groove or click the button to make it stick.

Thank you again Steve, I had my pixels set at 20 or sometimes 40 so maybe that's the issue? editing at 20 pixels is so much faster and easier.

I will check all this out though. If there is a way to switch to a different snap setting the quantize then switch back, then that will likely work for me. I an auto zoom in then quantized then zoom out thing once but it was hard to look at and took too long.

I'm not sure why the sws groovetool "Apply groove" action (in the action list I tried both 16 and 32) does not work. I also wish I could use these grooves to set the grid or set the grid to the sws grooves.
I'm only about 4 or 5 months deep coming from Cubase (never going back) so I am still struggling to find a way to quantize simply by hitting Q. I have been living with my midi editor open on my left monitor ao I can adjust swings and grids there but I wish these controls were available on a toolbar. Or I just wish the sws groove tool could set the grid. Then I can use your quantize script.

Still frustrated with something so basic. Having the midi editor open seems like the only way to reference what my current grid/swing settings are.