Go Back   Cockos Incorporated Forums > REAPER Forums > ReaScript, JSFX, REAPER Plug-in Extensions, Developer Forum

Reply
 
Thread Tools Display Modes
Old 05-19-2016, 01:01 PM   #41
gwok
Human being with feelings
 
gwok's Avatar
 
Join Date: Jun 2010
Location: canada
Posts: 3,396
Default extended notes

I do seem to be getting a bit of wonky behaviour with the 1 sided warp. Seems to start happening once I started apply the process to multiple pitches at the same time, though that could be wrong. I just noticed it after I had started working with multiple pitches. here is a video linked. You can also see sometimes undo has a different effect on wether the warp is undone, or just the extended note

https://www.dropbox.com/s/633m082980...notes.mov?dl=0
gwok is offline   Reply With Quote
Old 05-19-2016, 01:36 PM   #42
juliansader
Human being with feelings
 
Join Date: Jul 2009
Posts: 3,714
Default

Quote:
Originally Posted by gwok View Post
I do seem to be getting a bit of wonky behaviour with the 1 sided warp. Seems to start happening once I started apply the process to multiple pitches at the same time, though that could be wrong. I just noticed it after I had started working with multiple pitches. here is a video linked. You can also see sometimes undo has a different effect on wether the warp is undone, or just the extended note

https://www.dropbox.com/s/633m082980...notes.mov?dl=0
Could you perhaps PM me the project file or MIDI that gives that wonky behaviour?
juliansader is offline   Reply With Quote
Old 05-19-2016, 02:21 PM   #43
gwok
Human being with feelings
 
gwok's Avatar
 
Join Date: Jun 2010
Location: canada
Posts: 3,396
Default

I haven't been able to reproduce, though if/when it happens again, I'll send you a project. thanks!
gwok is offline   Reply With Quote
Old 05-19-2016, 07:25 PM   #44
pcartwright
Human being with feelings
 
Join Date: Jan 2009
Posts: 1,030
Default

These are excellent.

However, like others, I can't get the mouse-wheel functionality to work (everything else works beautifully). Using REAPER 5.2, SWS 2.8.7, Win-10 64.
pcartwright is offline   Reply With Quote
Old 05-20-2016, 12:16 AM   #45
juliansader
Human being with feelings
 
Join Date: Jul 2009
Posts: 3,714
Default

Quote:
Originally Posted by pcartwright View Post
These are excellent.

However, like others, I can't get the mouse-wheel functionality to work (everything else works beautifully). Using REAPER 5.2, SWS 2.8.7, Win-10 64.
I am not sure what the problem is, but the first step would probably be to check that the script is linked to two shortcuts:
1) a keyboard shortcut (such as Alt+C)
2) a mousewheel shortcut (such as Alt+Mousewheel)

The mousewheel scripts can be started using either of these shortcuts, but can only be quit using the keyboard shortcut (or by moving the mouse out of the MIDI editor).
juliansader is offline   Reply With Quote
Old 05-20-2016, 05:18 AM   #46
pcartwright
Human being with feelings
 
Join Date: Jan 2009
Posts: 1,030
Default

Got it.

Does anyone have any strategies for using mouse-wheel while keeping some of the zoom/scroll functions enables on the MIDI editor?
pcartwright is offline   Reply With Quote
Old 05-20-2016, 01:31 PM   #47
gwok
Human being with feelings
 
gwok's Avatar
 
Join Date: Jun 2010
Location: canada
Posts: 3,396
Default

mousewheel+modifier
gwok is offline   Reply With Quote
Old 05-21-2016, 12:56 PM   #48
pcartwright
Human being with feelings
 
Join Date: Jan 2009
Posts: 1,030
Default Script idea

The thread got me thinking about MIDI CC actions that would help my workflow. I came up with this script a little while ago for my own purposes, but others (cough juliansader cough) could run with the idea and make it much more robust.

Basically, the script enters a series of CC events under selected notes. I have it hard coded to CC# 2 (which is what most of my VSTis use for dynamics), but I bet a little tweaking could allow it to work with any number of CC numbers.

https://stash.reaper.fm/27653/Insert%...at%20pitch.lua

pcartwright is offline   Reply With Quote
Old 05-23-2016, 06:41 AM   #49
digitalfix
Human being with feelings
 
Join Date: Nov 2015
Posts: 86
Default

These are great. If 1 and 2 sided stretch were available for audio then I would be so happy
digitalfix is offline   Reply With Quote
Old 05-23-2016, 07:47 AM   #50
musicbynumbers
Human being with feelings
 
musicbynumbers's Avatar
 
Join Date: Jun 2009
Location: South, UK
Posts: 14,214
Default

Quote:
Originally Posted by digitalfix View Post
These are great. If 1 and 2 sided stretch were available for audio then I would be so happy
Now that you mention it..

Anyone up for the challenge?
__________________
subproject FRs click here
note: don't search for my pseudonym on the web. The "musicbynumbers" you find is not me or the name I use for my own music.
musicbynumbers is offline   Reply With Quote
Old 05-27-2016, 08:17 PM   #51
juliansader
Human being with feelings
 
Join Date: Jul 2009
Posts: 3,714
Default

Quote:
Originally Posted by pcartwright View Post
The thread got me thinking about MIDI CC actions that would help my workflow. I came up with this script a little while ago for my own purposes, but others (cough juliansader cough) could run with the idea and make it much more robust.

Basically, the script enters a series of CC events under selected notes. I have it hard coded to CC# 2 (which is what most of my VSTis use for dynamics), but I bet a little tweaking could allow it to work with any number of CC numbers.
This is indeed a useful script! The rudimentary requirement of "insert CCs precisely at note position" is strangely missing from REAPER and has also been the motivation for several of my own scripts.

[EDIT: Your script fills an important lacuna in my scripts: how to precisely insert CCs at note position if the note is not quantized to the grid.]

I would actually like to compile a list of simple but useful MIDI CC actions (such as yours) that can be added to REAPER - particularly if they are already found in other DAWs.

[Much later EDIT: I have since added several scripts to position CCs at note position: here and here.]

Last edited by juliansader; 10-30-2016 at 05:48 AM.
juliansader is offline   Reply With Quote
Old 05-27-2016, 08:32 PM   #52
juliansader
Human being with feelings
 
Join Date: Jul 2009
Posts: 3,714
Default Remove redundant CCs

Remove redundant CCs:
* Simple, one-click action that works with 7-bit CCs, channel pressure and pitchwheel - useful for cleaning up after drawing LFOs, ramps etc.
* User can choose whether to limit to selected/all events, last clicked lane / lane under mouse / all lanes.


Direct download link: js_Remove redundant CCs.lua

EDIT: This script (like most of my other scripts) have several settings in the USER AREA that the user can customize. But in case the user doesn't want to edit scripts, here are two versions with slightly different presets:
js_Remove redundant CCs (from selected events in lane under mouse).lua
js_Remove redundant CCs (from selected events in last clicked lane).lua

Last edited by juliansader; 06-29-2016 at 12:24 PM.
juliansader is offline   Reply With Quote
Old 05-28-2016, 12:26 AM   #53
X-Raym
Human being with feelings
 
X-Raym's Avatar
 
Join Date: Apr 2013
Location: France
Posts: 9,875
Default

Nice

Edit: How can we send you private message ?

Last edited by X-Raym; 05-28-2016 at 12:33 AM.
X-Raym is offline   Reply With Quote
Old 05-29-2016, 06:52 PM   #54
pcartwright
Human being with feelings
 
Join Date: Jan 2009
Posts: 1,030
Default

Conversely, we probably need an action to select all CCs in a lane not under a note. Users can then set these to a value of their choice or delete them altogether.
pcartwright is offline   Reply With Quote
Old 06-03-2016, 01:18 PM   #55
juliansader
Human being with feelings
 
Join Date: Jul 2009
Posts: 3,714
Default

Quote:
Originally Posted by pcartwright View Post
Conversely, we probably need an action to select all CCs in a lane not under a note. Users can then set these to a value of their choice or delete them altogether.
This is already possible, albeit with a stepwise combination of four actions:

1) Make sure "CC selection follows note selection" is on.

2) Run action "Select all notes"

2b) Sometimes 2 does not trigger the CC selection, so one has to do something like wiggling the notes left and right, move them up or down, or cntl-click (toggle selection) on one of the notes to remind REAPER to select all the CCs. I am not sure if there is a better way to do this.

3) Run action "Invert selection"

4) Run SWS action "Delete selected events in last clicked lane"

Unfortunately, because of 2b, these steps can probably not be combined in a custom action.

(The "Deselect all MIDI events outside time selection" script can be used to limit the deletion to the time selection.)
juliansader is offline   Reply With Quote
Old 06-07-2016, 08:40 PM   #56
juliansader
Human being with feelings
 
Join Date: Jul 2009
Posts: 3,714
Default

Quote:
Originally Posted by pcartwright View Post
The thread got me thinking about MIDI CC actions that would help my workflow. I came up with this script a little while ago for my own purposes, but others (cough juliansader cough) could run with the idea and make it much more robust.
I have added an option to the LFO Tool to insert CCs under selected notes instead of in the time selection. I think it works well since it gives immediate access to CC shaping tools, and the user can define a default shape.




I have also submitted a Feature Request.
juliansader is offline   Reply With Quote
Old 06-08-2016, 11:46 AM   #57
lowellben
Human being with feelings
 
lowellben's Avatar
 
Join Date: Aug 2010
Location: They put me in a home.
Posts: 3,432
Default

Quote:
Originally Posted by juliansader View Post
Draw linear or curved ramps in real time, chasing start values:
(An improvement over REAPER's built-in "Linear ramp CC events" mouse action.)
* If snap to grid is enabled in the MIDI editor, the endpoints of the ramp will snap to grid, allowing precise positioning of the ramp (allowing, for example, the insertion of a pitch riser at the exact position of a note).
* By using the mousewheel, the shape of the ramp can be changed from linear to curved (allowing the easy insertion of parabolic shapes).
* The script can optionally chase existing CC values, instead of starting at the mouse's vertical position. This ensures that CC values change smoothly.
* The script inserts new CCs, instead of only editing existing CCs.
* The script does not change or delete existing events until execution ends, so there are no 'overshoot remnants' if the mouse movement overshoots the target endpoint.
* The events in the newly inserted ramp are automatically selected and other events are deselected, which allows immediate further shaping of the ramp (using, for example, the 2-sided warp (and stretch) script).




Drawing at low resolution:
Preferences -> MIDI editor -> Events per quarter note = 4 (1/16th notes).
Endpoint snap-to-grid either enabled (at 1/4 note grid) or disabled.




https://raw.githubusercontent.com/Re...t%20values.lua
The mouse wheel doesn't work to curve the parabolic on my computer. It does the default "zoom" function when it's over the CC lane. I can do a linear with this "chasing" script, but mouse wheel does not curve it. Why not? How can I curve my CC like your video?

My video:

__________________
47.8% of statistics are made up.

Last edited by lowellben; 06-08-2016 at 12:04 PM.
lowellben is offline   Reply With Quote
Old 06-08-2016, 12:08 PM   #58
juliansader
Human being with feelings
 
Join Date: Jul 2009
Posts: 3,714
Default

Quote:
Originally Posted by lowellben View Post
The mouse wheel doesn't work to curve the parabolic on my computer. It does the default "zoom" function when it's over the CC lane. I can do a linear with this "chasing" script, but mouse wheel does not curve it. Why not? How can I curve my CC like your video?
I am not sure what the problem is, but the first step would probably be to check that the script is linked to two shortcuts:
1) a keyboard shortcut (such as Alt+C)
2) a mousewheel shortcut (such as Alt+Mousewheel)

The mousewheel scripts can be started using either of these shortcuts, but can only be quit using the keyboard shortcut (or by moving the mouse out of the MIDI editor).

P.S. Some of my scripts can be customized: For example, you can choose whether or not this "Draw ramps in real-time" script should chase pre-existing values - the info is given in the Description and Instructions at the beginning of the scripts.

Last edited by juliansader; 06-08-2016 at 12:30 PM.
juliansader is offline   Reply With Quote
Old 06-08-2016, 12:22 PM   #59
lowellben
Human being with feelings
 
lowellben's Avatar
 
Join Date: Aug 2010
Location: They put me in a home.
Posts: 3,432
Default

Quote:
Originally Posted by juliansader View Post
I am not sure what the problem is, but the first step would probably be to check that the script is linked to two shortcuts:
1) a keyboard shortcut (such as Alt+C)
2) a mousewheel shortcut (such as Alt+Mousewheel)

The mousewheel scripts can be started using either of these shortcuts, but can only be quit using the keyboard shortcut (or by moving the mouse out of the MIDI editor).
Ok, I think I understand.

So, I go into actions? Or no. How would I make a mousewheel shortcut, for example? Can you give me an example? Thank you kindly!
__________________
47.8% of statistics are made up.
lowellben is offline   Reply With Quote
Old 06-08-2016, 03:02 PM   #60
juliansader
Human being with feelings
 
Join Date: Jul 2009
Posts: 3,714
Default

The Insert linear or shaped ramps between selected events script has been updated with easier-to-customize parameters in the script's User Area.

Quote:
Originally Posted by lowellben View Post
Ok, I think I understand.

So, I go into actions? Or no. How would I make a mousewheel shortcut, for example? Can you give me an example? Thank you kindly!
It is very similar to adding a keyboard shortcut:
- Open the Actions window, select the script and click on "Add" near the bottom left corner of the window.
- When the "Keyboard/MIDI/OSC Input" dialog box opens, instead of typing a keyboard shortcut (such as Alt+Cntl+C), simply move the mousewheel while holding down some combination of keyboard modifier keys (these are Alt, Control, Shift or Win). For example, hold down Alt and Ctrl while moving the mousewheel. The dialog box will show the mousewheel shortcut that you entered, something like "Ctrl+Alt+Mousewheel".

(Do not use a combination of modifier keys that you are already using for another mousewheel shortcut, such as zooming.)
juliansader is offline   Reply With Quote
Old 06-08-2016, 07:48 PM   #61
lowellben
Human being with feelings
 
lowellben's Avatar
 
Join Date: Aug 2010
Location: They put me in a home.
Posts: 3,432
Default

Quote:
Originally Posted by juliansader View Post
The Insert linear or shaped ramps between selected events script has been updated with easier-to-customize parameters in the script's User Area.



It is very similar to adding a keyboard shortcut:
- Open the Actions window, select the script and click on "Add" near the bottom left corner of the window.
- When the "Keyboard/MIDI/OSC Input" dialog box opens, instead of typing a keyboard shortcut (such as Alt+Cntl+C), simply move the mousewheel while holding down some combination of keyboard modifier keys (these are Alt, Control, Shift or Win). For example, hold down Alt and Ctrl while moving the mousewheel. The dialog box will show the mousewheel shortcut that you entered, something like "Ctrl+Alt+Mousewheel".

(Do not use a combination of modifier keys that you are already using for another mousewheel shortcut, such as zooming.)
Oh awesome, I think I understand. Thanks for the new script. I will try the mousewheel combo now and let you know how it goes.
__________________
47.8% of statistics are made up.
lowellben is offline   Reply With Quote
Old 06-08-2016, 08:07 PM   #62
pcartwright
Human being with feelings
 
Join Date: Jan 2009
Posts: 1,030
Default

Quote:
Originally Posted by juliansader View Post
I have added an option to the LFO Tool to insert CCs under selected notes instead of in the time selection. I think it works well since it gives immediate access to CC shaping tools, and the user can define a default shape.


I have also submitted a Feature Request.
Very cool.
pcartwright is offline   Reply With Quote
Old 06-08-2016, 09:16 PM   #63
lowellben
Human being with feelings
 
lowellben's Avatar
 
Join Date: Aug 2010
Location: They put me in a home.
Posts: 3,432
Default

Quote:
Originally Posted by juliansader View Post
It is very similar to adding a keyboard shortcut:
- Open the Actions window, select the script and click on "Add" near the bottom left corner of the window.
- When the "Keyboard/MIDI/OSC Input" dialog box opens, instead of typing a keyboard shortcut (such as Alt+Cntl+C), simply move the mousewheel while holding down some combination of keyboard modifier keys (these are Alt, Control, Shift or Win). For example, hold down Alt and Ctrl while moving the mousewheel. The dialog box will show the mousewheel shortcut that you entered, something like "Ctrl+Alt+Mousewheel".

(Do not use a combination of modifier keys that you are already using for another mousewheel shortcut, such as zooming.)
Oh, boo. I already have all those modifiers already selected for various zooms and CC edit with wheel Is there anyway it can be triggered by another combo without wheel or with wheel? The mousewheel is so popular for zoom and stuff, it's hard to sacrifice that
__________________
47.8% of statistics are made up.
lowellben is offline   Reply With Quote
Old 06-08-2016, 10:07 PM   #64
juliansader
Human being with feelings
 
Join Date: Jul 2009
Posts: 3,714
Default

Quote:
Originally Posted by lowellben View Post
Oh, boo. I already have all those modifiers already selected for various zooms and CC edit with wheel Is there anyway it can be triggered by another combo without wheel or with wheel? The mousewheel is so popular for zoom and stuff, it's hard to sacrifice that
Unfortunately, the limited number of available modifier combinations is indeed a big problem.

1) There are Feature Requests to allow additional modifier keys, but it is probably futile:
http://forum.cockos.com/showthread.php?t=175804
http://forum.cockos.com/showthread.php?t=177917
http://forum.cockos.com/project.php?issueid=891

2) Using the 1-sided warp (accelerate) script immediately after painting a linear ramp will give you the same shape as using the mousewheel during painting.

3) I have never tried it, but perhaps a MIDI controller can be linked to the Action similar to the mousewheel?
juliansader is offline   Reply With Quote
Old 06-08-2016, 10:15 PM   #65
lowellben
Human being with feelings
 
lowellben's Avatar
 
Join Date: Aug 2010
Location: They put me in a home.
Posts: 3,432
Default

Quote:
Originally Posted by juliansader View Post
Unfortunately, the limited number of available modifier combinations is indeed a big problem.

1) There are Feature Requests to allow additional modifier keys, but it is probably futile:
http://forum.cockos.com/showthread.php?t=175804
http://forum.cockos.com/showthread.php?t=177917
http://forum.cockos.com/project.php?issueid=891

2) Using the 1-sided warp (accelerate) script immediately after painting a linear ramp will give you the same shape as using the mousewheel during painting.

3) I have never tried it, but perhaps a MIDI controller can be linked to the Action similar to the mousewheel?
1) Ah, oh well So limited.
2) Oh, so you're sure it's 100% the same thing as the mouse wheel scroll ramping curve, I can just spread out the task over 2 scripts? Paint linear ramp, then run accel script 1 warp and it will let me curve? I love crazy shapes in my CC lane Thank you!

3) BRILLIANT. I bet an endless rotary knob would work, no? It should!! I'll try it now.
__________________
47.8% of statistics are made up.
lowellben is offline   Reply With Quote
Old 06-11-2016, 08:16 AM   #66
juliansader
Human being with feelings
 
Join Date: Jul 2009
Posts: 3,714
Default

New scripts to fit events to time selection, and vice versa (particularly useful to precisely position CC curves underneath notes):
* Fit selected events to time selection in last clicked lane
* Fit selected events to time selection in lane under mouse
* Fit all selected events to time selection
* Set time selection to selected events in last clicked lane
* Set time selection to selected events in lane under mouse

As an example: the perfect pitch curve can be drawn anywhere, and is then fitted precisely into the note's time span using a "Fit events to time selection" script:


Last edited by juliansader; 10-30-2016 at 05:42 AM.
juliansader is offline   Reply With Quote
Old 06-11-2016, 02:08 PM   #67
musicbynumbers
Human being with feelings
 
musicbynumbers's Avatar
 
Join Date: Jun 2009
Location: South, UK
Posts: 14,214
Default

Thanks!
__________________
subproject FRs click here
note: don't search for my pseudonym on the web. The "musicbynumbers" you find is not me or the name I use for my own music.
musicbynumbers is offline   Reply With Quote
Old 06-14-2016, 08:01 PM   #68
Fergler
Human being with feelings
 
Fergler's Avatar
 
Join Date: Jan 2014
Posts: 5,207
Default

This seems to be affecting much more than just the selected notes, e.g.:

Before:
http://puu.sh/ptamy/2067033266.png

After:
http://puu.sh/ptann/f783758985.png

Now it's all f'd up past where I made the edit.

Sometimes undo/redo fixes it, too, which is bizarre.

I'm using 1-sided and 2-sided to test this

Another version of this I can reproduce:
1. Select some MIDI events in between 2 other chunks of MIDI (like I did in the screenshots)
2. Use either 1 sided or 2 sided hotkey
3. Alter, press hotkey again to stop
4. Appears fine but does not play back correctly
5. Glue, reveal why it doesn't play back correctly. Entire MIDI is bonkers
Fergler is online now   Reply With Quote
Old 06-15-2016, 09:05 AM   #69
juliansader
Human being with feelings
 
Join Date: Jul 2009
Posts: 3,714
Default

Quote:
Originally Posted by Fergler View Post
This seems to be affecting much more than just the selected notes, e.g.:

Before:
http://puu.sh/ptamy/2067033266.png

After:
http://puu.sh/ptann/f783758985.png

Now it's all f'd up past where I made the edit.

Sometimes undo/redo fixes it, too, which is bizarre.

I'm using 1-sided and 2-sided to test this

Another version of this I can reproduce:
1. Select some MIDI events in between 2 other chunks of MIDI (like I did in the screenshots)
2. Use either 1 sided or 2 sided hotkey
3. Alter, press hotkey again to stop
4. Appears fine but does not play back correctly
5. Glue, reveal why it doesn't play back correctly. Entire MIDI is bonkers
Weird...

You are welcome to send me any MIDI or RPP that would allow me to reproduce the problem.

EDIT:
The fact that each of the notes at the bottom pitch has been weirdly extended to the beginning of the next note makes me think that there is some mix-up of note-ons and note-offs. It may be related to the bug report Overlapping notes problem. I have encountered the bug when moving or stretching notes onto existing notes, but not yet when using the warping scripts.

The MIDI in your example looks like drumkit MIDI. Are there perhaps overlapping notes or notes of zero length? The selected note at the bottom left looks suspiciously short, and may be overlapping with the preceding unselected one.

EDIT 2:
The good news is that I have been able to reproduce the problem.

The bad news is that the problem appears to be caused by overlapping notes, and unfortunately there is no way around it: ReaScript simply cannot handle overlapping notes. I have tested REAPER's native functions such as MIDI_SetEvt, MIDI_SetNote and MIDI_InsertNote, as well as SWS's alternative FNG functions, but no luck.

I suggest that the best solution is to simply avoid using any ReaScript when there are overlapping notes. (In fact, given the innumerable bug reports related to overlapping notes that have nothing to do with scripts, it is probably prudent to avoid overlapping notes altogether in REAPER.)

P.S. The problems with overlapping notes are not actually REAPER's own fault, since the standard MIDI specifications themselves do not allow for overlapping notes. REAPER's MIDI editor can visually represent overlapping notes and can 'remember' them in its internal memory, but as soon as the notes are converted to actual MIDI, overlapping notes get jumbled up.

EDIT: REAPER v5.32 has fixed the API bugs with overlapping and zero-length notes! These should not cause problems any more.

Last edited by juliansader; 02-06-2017 at 10:56 PM.
juliansader is offline   Reply With Quote
Old 06-24-2016, 06:46 PM   #70
juliansader
Human being with feelings
 
Join Date: Jul 2009
Posts: 3,714
Default Split notes by drawing a line with the mouse

Split notes by drawing a line with the mouse:
* Intended to mimic the functionality of FL Studio's Slice Tool.



Available in ReaPack, or direct download links:
js_Split selected notes by drawing a line with the mouse
js_Split notes by drawing a line with the mouse

[EDIT: There is useful discussion regarding this script in the original Feature Request thread: diagonal line split - midi notes.]

EDIT 2016-07-08: The new Trim notes script works similarly:


Last edited by juliansader; 07-08-2016 at 05:46 AM.
juliansader is offline   Reply With Quote
Old 06-27-2016, 09:08 AM   #71
musicbynumbers
Human being with feelings
 
musicbynumbers's Avatar
 
Join Date: Jun 2009
Location: South, UK
Posts: 14,214
Default

Nice! loving all of these thanks!
__________________
subproject FRs click here
note: don't search for my pseudonym on the web. The "musicbynumbers" you find is not me or the name I use for my own music.
musicbynumbers is offline   Reply With Quote
Old 06-27-2016, 09:41 AM   #72
Jae.Thomas
Human being with feelings
 
Join Date: Jun 2006
Posts: 22,567
Default

These are all excellent, thank you!~
Jae.Thomas is offline   Reply With Quote
Old 07-04-2016, 02:34 PM   #73
juliansader
Human being with feelings
 
Join Date: Jul 2009
Posts: 3,714
Default

Major update:

I am trying to replicate the user interface and user experience of FL Studio and Cubase. In these DAWs, MIDI editing functions can be selected by means of toolbar buttons, so the user is not limited to using (and remembering) keyboard shortcuts.

My scripts that edit the "lane under mouse" (such as Stretch, Tilt, Draw, Arch etc) could previously not be selected using toolbar buttons, since the mouse needs to be positioned over the CC lane when the script starts.

In the new versions of these scripts:
1) The scripts can be linked to toolbar buttons. Clicking a toolbar button will select ('arm') the script to be applied next.
2) A single keyboard shortcut and a single mousewheel shortcut are all that is needed to run any selected ('armed') script.

EDIT 2017-01-30: New update: Any of the scripts that use the mousewheel can now be controlled via the single mousewheel modifier that is linked to the "js_Run..." 'control script' - even if those scripts are called from their own keyboard shortcuts.

I.e. if you prefer to run the scripts via easy-to-remember keyboard shortcuts such as "C" = Compress/Expand, "A" = Arch linear, "shift+A" = Arch sine, etc., all these scripts can now be controlled via the single mousewheel shortcut. No need anymore to remember a different mousewheel modifier combination for each script!


This keyboard shortcut and mousewheel shortcut must be linked to the new 'control script' with the long (but hopefully descriptive) name of
"js_Run the js_'lane under mouse' script that is selected in toolbar (link this to shortcut and mousewheel).lua".

This script will call the 'armed' script that has been selected in the toolbar.

For detailed instructions, please read the header of the abovementioned ""js_Run..." script (in REAPER's script editor, or in ReaPack's "About" window), or follow the discussions in the posts below.

Example of a MIDI editor toolbar:


Demonstration of toolbar-linked scripts:



EDIT:

The following instructions are included inside the js_Run script:

[TL/DR version:
1) Add all of the 'lane under mouse' scripts to the toolbar.
2) Link the js_Run script to a keyboard shortcut as well as a mousewheel shortcut.
3) Now any 'lane under mouse' script that is activated in toolbar can be run using the shortcuts assigned in step 2.
4) EDIT 2017-01-30: Moreover, even if the script was called from its own keyboard shortcut, it can still be controlled via the single mousewheel modifier that is linked to "js_Run...".]


Description:
This script helps to improve the UI by allowing js_ MIDI editing functions to be selected via toolbar buttons, similar to FL Studio and other DAWs.

Any js_ script that edits the 'lane under mouse' and that has been linked to a toolbar button can be run using a single keyboard shortcut that has been linked to this script -- therefore no more need to remember a different shortcut for each script.

This script currently works with the following js_ MIDI editing scripts:
~ Arch with sine curve
~ Arch with linear or power curve
~ Stretch
~ Tilt
~ Compress or expand
~ 1-sided warp (accelerate)
~ 2-sided warp (and stretch)
~ Draw linear or curved ramp in real time
~ Draw linear or curved ramp in real time (chasing start values)
~ Draw sine curve in real time
~ Draw sine curve in real time (chasing start values)
~ Split notes
~ Split selected notes
~ Trim notes
~ Trim selected notes
~ Remove redundancies (in lane under mouse)
~ Move ALL selected events to mouse position

Any user-customized variants of these scripts can also be added to the toolbar.

NOTE: The scripts listed above are those that work with events in the lane under mouse. Since the mouse needs to be positioned over the MIDI editor's CC lanes or notes area for these scripts to work, they cannot be run directly from toolbar buttons.

Scripts that work with events in the last-clicked lane (such as variants the LFO Tool or the Remove Redundancies script) can be run directly from the toolbar.

Instructions:
* This script must be linked to a keyboard shortcut (such as "S") as well as a mousewheel shortcut (such as Ctrl+mousewheel).
* This script should not be linked to a toolbar button.
* The js_ MIDI functions listed above should each be linked to a toolbar button. (They can also be linked to their own keyboard shortcuts, but this is not necessary.)
* To run the selected js_ MIDI function:
* 1) click its button, which will light up,
* 2) move the mouse to its position in the CC lane or notes area, and
* 3) press the shortcut key for this "Run the js_..." script.

Note: Since this script is a user script, the way it responds to shortcut keys and mouse buttons is opposite to that of REAPER's built-in mouse actions with mouse modifiers: To run the script, press the shortcut key *once* to start the script and then move the mouse *without* pressing any mouse buttons. Press the shortcut key again once to stop the script.

(The first time that the script is stopped, REAPER will pop up a dialog box asking whether to terminate or restart the script. Select "Terminate" and "Remember my answer for this script".)


EDIT:
The standard arming method (right-click to arm and then left-click to run the action) actually does work - but only in the piano roll area, not in the CC lane. For some reason, REAPER's toolbar arming does not work in the CC lane. The Trim notes script, for example, can be run via the standard toolbar arming method.


Last edited by juliansader; 09-17-2017 at 10:30 PM.
juliansader is offline   Reply With Quote
Old 07-04-2016, 04:30 PM   #74
X-Raym
Human being with feelings
 
X-Raym's Avatar
 
Join Date: Apr 2013
Location: France
Posts: 9,875
Default

Very ambitious project and very promising Thanks for your work !!
X-Raym is offline   Reply With Quote
Old 07-04-2016, 04:41 PM   #75
musicbynumbers
Human being with feelings
 
musicbynumbers's Avatar
 
Join Date: Jun 2009
Location: South, UK
Posts: 14,214
Default

very cool! will try asap!
__________________
subproject FRs click here
note: don't search for my pseudonym on the web. The "musicbynumbers" you find is not me or the name I use for my own music.
musicbynumbers is offline   Reply With Quote
Old 07-04-2016, 05:27 PM   #76
kkostovas
Human being with feelings
 
Join Date: Sep 2015
Posts: 71
Default

What now??

If this is a dream...please say so.


Thank you...
kkostovas is offline   Reply With Quote
Old 07-04-2016, 08:49 PM   #77
ceanganb
Human being with feelings
 
Join Date: May 2009
Location: Brazil
Posts: 323
Default

I have one complaint: how dare you call it simple? It's phenomenal, and f... useful. Thanks a lot for that!
__________________
Ceanganb
ceanganb is offline   Reply With Quote
Old 07-05-2016, 05:26 AM   #78
kkostovas
Human being with feelings
 
Join Date: Sep 2015
Posts: 71
Default

They are beautiful.
I have a question/request...

Just out of curiosity I placed one action in the contextual menu in the midi editor.
When I engage the action from the toolbar I can see the "tick" in the contextual menu but I can't actually engage it from there or disengage it.``

Is something like that possible?
Not a necessity really, just a personal preference and maybe will help to keep them organised in sub-menus.

Thank you again

EDIT: Nevermind, I added them in a contextual toolbar which is actually better.

Last edited by kkostovas; 07-05-2016 at 12:36 PM.
kkostovas is offline   Reply With Quote
Old 07-05-2016, 07:04 AM   #79
G-Sun
Human being with feelings
 
G-Sun's Avatar
 
Join Date: May 2010
Location: Norway
Posts: 7,318
Default

ReaTeam?
__________________
Reaper x64, win 11
Composer, text-writer, producer
Bandcamp
G-Sun is offline   Reply With Quote
Old 07-05-2016, 07:13 AM   #80
lowellben
Human being with feelings
 
lowellben's Avatar
 
Join Date: Aug 2010
Location: They put me in a home.
Posts: 3,432
Default

Quote:
Originally Posted by juliansader View Post
Major update:

My scripts that edit the "lane under mouse" (such as Stretch, Tilt, etc) could previously not be selected using toolbar buttons, since the mouse needs to be positioned over the CC lane when the script starts.
This was a huge problem for me, yes! So frustrating having to position the mouse over the CC lane without toolbar options!! This is AMAZING. AMAZING UPDATE. PLEASE keep this going! You rock!!
__________________
47.8% of statistics are made up.
lowellben 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 12:41 PM.


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