Old 05-14-2016, 11:40 PM   #1
juliansader
Human being with feelings
 
Join Date: Jul 2009
Posts: 2,836
Default MIDI editor tools: warp, stretch, deselect etc

A variety of scripts for useful MIDI editor tools.

This GIF demonstrates some of the CC editing tools:



INSTALLATION: All the scripts can be easily installed via the ReaPack extension.

HELP: Most of the scripts contain extensive Descriptions and Instructions inside the script file itself. These can be read in REAPER's built-in script editor (by clicking the "Edit" button in the Actions list), or in ReaPack's "About" window. To help you get going, also refer to the next post, and if you have any queries, please post them in this thread.

PERFORMANCE TIP: If the MIDI editor gets slow and jerky when a certain VST plugin is loaded, check for graphics driver incompatibility by disabling graphics acceleration in the plugin.

PIN-ON-TOP: if the ReaScriptAPI extension is installed, script GUIs will automatically attach pin-on-top buttons.

MULTI-CHANNEL MIDI EDITING: REAPER has advanced multi-channel editing features (particularly if combined with the channel-related scripts below). Channels can be employed as 16 all-purpose groups that can be independently edited, similar to FL Studio's "color groups". In particular, if "nodes" are drawn in one channel and the connecting curve in another (which the "Connect nodes" script can easily do), it is easy to re-selected and edit the nodes separately.


MOUSE EDITING SCRIPTS vs LEFT-DRAG MOUSE MODIFIERS

The "js_Mouse editing" scripts (such as Warp, Stretch and Arch) resemble Reaper's own left-drag mouse modifier actions (such as "Draw CCs", Arpeggiate, "Paint notes", etc), in that the scripts follow mouse movement and continue to run until the user stops the script.

However, the scripts are more advanced than the native actions:

* The scripts' functioning (such as the ramp shape or the channel of inserted CCs) can be tweaked while the script is running, using the mousewheel, mouse middle button and right button.

* Whereas native actions can only be started and stopped by left-dragging and lifting the mouse button, the scripts be started and stopped in multiple ways (in addition to left-dragging), allowing a more customized and streamlined workflow.



KEYBOARD SHORTCUTS vs TOOLBAR BUTTONS

* All the scripts can be linked to easy-to-remember keyboard shortcuts such as "S" = Stretch, "1" = 1-sided Warp, "A" = Arch, etc.

* Alternatively (or additionally), the "Mouse editing" scripts can be linked to toolbar buttons and executed using REAPER's native "toolbar arming" features, or a scripted alternative (instructions in the script file, or this later post). This GIF is old and outdated, but still demonstrates toolbar arming:




-----------------------------------------------------------------------

LFO Tool
The mighty LFO Tool has its own thread.


General tools
* MIDI Inspector: A MIDI Inspector that improves on the native Properties windows in several ways.
* Insert empty space in time selection -- without moving MIDI and tempo markers off the grid

MIDI editing tools
* Quick draw linear, sine or LFO curves
* Arch and Tilt CC curves to mouse position
* 1-sided warp (accelerate)
* 2-sided warp (and stretch)
* Insert CC at mouse position, leaving others selected
* Stretch and Compress
* Connect CCs with smooth Bézier curves or any other weird and warped ramps
* Remove redundant CCs
* Deselect all MIDI events outside time selection

* 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

* Split / Trim notes by drawing a line with the mouse
* Select and deselect MIDI notes by step pattern

Tools for multi-channel MIDI editing
(Described in another thread.)
* Option - Selecting single note or CC in active take sets channel for new events
* Option - Switching active take sets channel for new events to channel of existing events
* Set MIDI send channel of selected tracks to channel of existing MIDI events in track
* Deselect all MIDI except in active channel of active take
* Set MIDI send channel of selected tracks to channel of existing MIDI events in track
* Autoincrement MIDI send channels of selected tracks
* Select active MIDI channel

Notation scripts
* Select all notes that have customized display lengths or positions
* Set beaming of selected notes to custom rhythm
* Set display length of selected notes to double and add staccato articulation
* Set display length of selected notes to quadruple and add staccatissimo articulation
* Set displayed length of selected notes to custom value

Inline MIDI editor
Most of the MIDI editing scripts will also work in the inline editor.
* Select active MIDI channel
* Select CC lanes to show

... and many other scripts! Please browse through the ReaPack repository for the "js_" scripts.

--------------------
Donations

A taste of the other nifty scripts in ReaPack:
Kawa's script pack / X-Raym's script pack / Lokasenna's Theory Helper / mpl's script pack / eugen's TrackFXs Routing Matrix / airon's Color Swatch Tool
Attached Images
File Type: png MIDI Inspector with FileBox eXtender pin-on-top button.png (9.4 KB, 7054 views)

Last edited by juliansader; 02-13-2019 at 02:49 PM.
juliansader is offline   Reply With Quote
Old 05-14-2016, 11:40 PM   #2
juliansader
Human being with feelings
 
Join Date: Jul 2009
Posts: 2,836
Default Instructions for "Mouse editing" scripts

EDIT 2019-02-10: Instructions for "Mouse editing" scripts.


MOUSE EDITING SCRIPTS vs REAPER's LEFT-DRAG MOUSE MODIFIER ACTIONS

The "js_Mouse editing" scripts resemble REAPER's own left-drag mouse modifier actions (such as "Draw CCs", "Arpeggiate", "Paint notes", etc), in that the scripts follow mouse movement and continue to run until the user stops the script.

However, the scripts are more advanced than the native actions:

* The scripts' functioning (such as the ramp shape or the channel of inserted CCs) can be tweaked while the script is running, using the mousewheel, mouse middle button and right button.

* Whereas native actions can only be started and stopped by left-dragging and lifting the mouse button, the scripts be started and stopped in multiple ways, allowing a more customized and streamlined workflow. (You can even use left-dragging, but it gets a bit uncomfortable while rolling the mouse wheel and clicking other mouse buttons...)


INITIAL MOUSE POSITION

Similar to the "mouse smart tool" of most DAWs, the function of a script is determined by the position of the mouse when the script starts:

* If the initial mouse position is *inside* a CC lane, only events within that single CC lane will be edited.

* Some scripts can edit all selected events in all lanes together. To activate this mode, the initial mouse position must be over a lane divider or over the ruler -- that is, *outside* any CC lane, but still within the piano roll.

* If the initial mouse position is completely outside the piano roll, the script would not know which events to edit, and will instead arm itself for later execution, as described below in "Running scripts from the toolbar".



STARTING A SCRIPT

* Shortcut: Similar to any action in the Actions list, the script can be assigned a keyboard or mouse wheel shortcut. To start and stop the script using a shortcut, you have two options:

1) Two keystrokes: To start, press the shortcut key once *without holding the key down* and then press the same or any other key to stop;

2) Press and hold: Press the shortcut key and hold it down for as long as the script should run. If the key is held down for more than one second, the script will terminate when the key is released.

* Mouse modifier: Similar to mouse modifier actions, assign the script to a left-click or double-click mouse modifier in Preferences -> Mouse modifiers.
(NOTE: In current versions of REAPER, actions can not be assigned to left-drag mouse modifiers, but the script will automatically detect a left-drag movement. To use left-drag, assign the script to a *double*-click mouse modifier.)
(NOTE 2: There is a long-standing REAPER bug: Clicking in the CC lane is hard-coded to deselect all events. This means that left-click mouse modifiers can only be used with scripts that do not require selected events, such as "Swipe select" and "Slice notes".)

* Toolbar: Arming a toolbar button, as described below.


STOPPING A SCRIPT

* Mouse: Left clicking

* Mouse: Left-dragging and lifting the left button.

* Keyboard: Pressing any key (the shortcut, or even Esc or mouse modifiers such as Shift).

* Keyboard: Releasing the shortcut key after holding it down for more than one second.


RUNNING SCRIPTS FROM THE TOOLBAR

Since the functioning of the script depends on initial mouse position (similar to some of REAPER's own mouse modifier actions, or actions such as "Insert note at mouse cursor"), the script cannot be run directly from a toolbar button.

This problem is solved by "toolbar arming", in which an action is "armed" by clicking its toolbar button, but only executed once the mouse is moved into position.


REAPER's NATIVE TOOLBAR ARMING:

To solve this problem, REAPER natively provides a "toolbar arming" feature: right-click the toolbar button to arm the script (the button will light up with an alternative color, and the mouse cursor will display an "A"), and then left-click to run the script after moving the mouse into position over the piano roll.

There are two niggles with this feature, though:

1) Left-drag is very sensitive: and if the mouse is even slightly moved while left-clicking, the left-drag mouse modifier action will be run instead of the armed toolbar action;

2) Multiple clicks: The user has to right-click the toolbar (or press Esc) to disarm the toolbar and use left-click normally again, then right-click the toolbar again to use the script.


ALTERNATIVE TOOLBAR ARMING:

When the original versions of the Mouse editing scripts were released, REAPER's native toolbar arming did not work in the MIDI editor. The scripts therefore had to provide an alternative, scripted solution for toolbar arming:

* If the mouse is positioned over a toolbar or over the Actions list (or anywhere else outside the MIDI piano roll and CC lanes) when the script starts, the script will arm itself and the button will light up with the normal "activated" color.

* The armed script can then be run by the "js_Mouse editing - Run the script that is armed in toolbar" script.

* By using this feature, each "mouse editing" script does need not be linked to its own shortcut key. Instead, only the accompanying "Run" script needs to be linked to a shortcut.


CONTROLLING SCRIPTS WITH THE MOUSE

The Mouse editing scripts can be controlled by the mouse while the script is running:

* Left-click: Terminates the script.

* Middle-click: Usually, switches between a sine curve and a linear/power curve.

* Right-click: Usually, switches the script mode. For example, the "Compress" script can switch between one-sided and symmetrical compression, and the "Draw ramp" script can switch between using chased values as starting values for the ramp, or using the mouse position.

* Mousewheel: Usually, the mousewheel tweaks the smoothness/steepness of the curve. In the case of the "Draw LFO" script, the mousewheel scrolls through the various LFO shapes.

Last edited by juliansader; 07-14-2019 at 03:54 AM.
juliansader is offline   Reply With Quote
Old 05-14-2016, 11:43 PM   #3
juliansader
Human being with feelings
 
Join Date: Jul 2009
Posts: 2,836
Default Connect nodes

The "Multi tool" script combines several functions into one:



As soon as the shortcut key is pressed, colored zones will light up on screens, indicating the available functions.

Each zone may either be left-click/dragged, mousewheel-triggered, or right-clicked. The zones and their associated left-button / mousewheel functions are:

* Compress lane from top / Flip values absolute
* Compress lane from bottom / Flip values absolute
* Scale values from top / Flip values relative
* Scale value from bottom / Flip values relative
* Warp left/right or up/down (depending on initial mouse movement)
* Stretch from left / Reverse positions
* Stretch from right / Reverse positions
* Tilt left side / Snap to chased values on left
* Tilt right side / Snap to chased values on right
* Undo
* Redo

Last edited by juliansader; 12-05-2019 at 03:41 AM.
juliansader is offline   Reply With Quote
Old 05-14-2016, 11:43 PM   #4
juliansader
Human being with feelings
 
Join Date: Jul 2009
Posts: 2,836
Default 1-sided Warp

1-sided warp (accelerate) selected events in lane under mouse:
* Useful for changing a linear ramp into a parabolic (or other power) curve.
* Useful for accelerating or decelerating a series of evenly spaced notes.


Warp multiple lanes together, if initial mouse position is over lane divider:



Warp left/right or up/down, depending on initial mouse movement (similar to REAPER's "in one direction only" mouse modifiers):

(This GIF is of an old version of the script that didn't yet change the mouse cursor.)

Last edited by juliansader; 07-14-2019 at 04:04 AM.
juliansader is offline   Reply With Quote
Old 05-14-2016, 11:43 PM   #5
juliansader
Human being with feelings
 
Join Date: Jul 2009
Posts: 2,836
Default Connect nodes

A versatile script for inserting curves between CC nodes.

MODES: WARP and BÉZIER:

The script offers two modes (selected by right-clicking the mouse):

* Warp: The user can the shape of the connecting ramps by moving the mouse. Middle-click switches between linear/power curves and sine curves. This mode is particularly useful for replacing existing LFOs with new shapes:




* Bézier: The script tries to find the smoothest curve to connect all selected nodes. Useful for smoothing transitions between CCs that were drawn at low resolution, or smoothing jagged curves:




MOUSEWHEEL AND MIDI CHANNELS:

* The mousewheel changes the channel of the inserted MIDI events.
* If the MIDI editor is set to "Edit only the active MIDI channel", the script will only select nodes that are in the active channel.

These channel features are very useful for keeping the ramps and the nodes in separate channels, so that the nodes can easily be re-selected and edited:

juliansader is offline   Reply With Quote
Old 05-14-2016, 11:43 PM   #6
juliansader
Human being with feelings
 
Join Date: Jul 2009
Posts: 2,836
Default 2-sided warp (and stretch) selected events in lane under mouse:

2-sided warp (and stretch) selected events in lane under mouse:
* Events to the left of the mouse are stretched separately from events to the right. Moving the mouse up or down warps the events toward or away from the mouse.
* Useful for changing a linear ramp into a more complex logistic-type curve.
* Useful for accelerating and decelerating a series of evenly spaced notes, as is typical in a trill.


Last edited by juliansader; 02-07-2017 at 02:06 AM.
juliansader is offline   Reply With Quote
Old 05-14-2016, 11:45 PM   #7
juliansader
Human being with feelings
 
Join Date: Jul 2009
Posts: 2,836
Default Stretch and Compress

Stretch or Compress selected events:

* REAPER has mouse actions for stretching notes together with all CCs in all lanes underneath them, but not for stretching CCs (or sysex events) in individual lanes, separate from other lanes. (See also http://forum.cockos.com/showpost.php...&postcount=138)

Similar to any DAW's "smart tool" the script's mode is determined by the initial position of the mouse:

* If the initial mouse position is within a CC lane or the piano roll, the script will stretch only events in that lane.

* Depending on initial mouse position relative to the selected events inside the lane, the script will stretch from the left side, right, top or bottom.

* If the initial position is over a lane divider and the mouse is moved to the left or right, the script will stretch ALL selected events in all lanes together.

* If the initial position is over a lane divider and the mouse is moved up or down into a lane, Compress mode is activated.

* In Compress mode, the mousewheel, middle- and right-click can adjust the compression curve. In Stretch mode, the mousewheel inverts the selected events.


Last edited by juliansader; 02-09-2019 at 03:25 PM.
juliansader is offline   Reply With Quote
Old 05-14-2016, 11:45 PM   #8
juliansader
Human being with feelings
 
Join Date: Jul 2009
Posts: 2,836
Default Arch and Tilt

Arch and Tilt:

This script arches the selected events towards the mouse.

* If the mouse is outside the range of the selected events, either to the left or to the right, the events are Tilted towards the mouse.

* The steepness of the arch can be changed using the mousewheel, and middle-click switches between a sine curve and a linear curve.

* Useful for when you want to tweak an existing, complex CC or velocity curve up or down, so that you do not need to re-draw the curve.

* Useful for quickly applying and auditioning crescendo-decrescendo (fade-in and fade-out) curves.


Last edited by juliansader; 05-17-2019 at 12:47 PM.
juliansader is offline   Reply With Quote
Old 05-14-2016, 11:46 PM   #9
juliansader
Human being with feelings
 
Join Date: Jul 2009
Posts: 2,836
Default Split or trim notes by drawing a line with the mouse

Split or trim notes by drawing a line with the mouse:


Last edited by juliansader; 02-13-2019 at 12:23 PM.
juliansader is offline   Reply With Quote
Old 05-14-2016, 11:46 PM   #10
juliansader
Human being with feelings
 
Join Date: Jul 2009
Posts: 2,836
Default Deselect all MIDI events outside time selection (from all tracks)

Deselect all MIDI events outside time selection (from all tracks):



https://raw.githubusercontent.com/Re...0tracks%29.lua
juliansader is offline   Reply With Quote
Old 05-15-2016, 01:11 AM   #11
juliansader
Human being with feelings
 
Join Date: Jul 2009
Posts: 2,836
Default Insert CC or pitchwheel event at mouse position, leaving others selected

Insert CC or pitchwheel event at mouse position, leaving others selected:
* One of the simplest imaginable functions: inserting a single CC or pitchwheel event. But due to an unfortunate idiosyncracy of the MIDI editor, it is not possible to use a mouse modifier to insert a CC or pitchwheel event while leaving others selected.
* With snap-to-grid enabled, it is useful for inserting endpoint 'nodes' beneath notes.



https://raw.githubusercontent.com/Re...20selected.lua

Last edited by juliansader; 02-07-2017 at 02:08 AM.
juliansader is offline   Reply With Quote
Old 05-15-2016, 01:11 AM   #12
juliansader
Human being with feelings
 
Join Date: Jul 2009
Posts: 2,836
Default Select and deselect MIDI notes by step pattern

EDIT 08-01-2016:


TIPS:
If it seems that the script does not apply the correct pattern, perhaps check the following:
~ Are the notes in the editor's active take?
~ Are the MIDI editor's grid setting correct? If the grid length is longer than the distance between the notes' start positions, the script will regard all these notes as a single chord or glissando.

This script works well with the "js_Deselect all notes outside time selection (from all takes).lua" script. Use the piano roll keys to select all notes in a range of pitches, and then run the Deselect script to limit the note selection to the time selection.

Last edited by juliansader; 05-25-2018 at 05:46 AM.
juliansader is offline   Reply With Quote
Old 05-15-2016, 01:11 AM   #13
juliansader
Human being with feelings
 
Join Date: Jul 2009
Posts: 2,836
Default MIDI Inspector

EDIT 2019-02-17:

js_MIDI Inspector:

A script that shows important information about the active MIDI take, selected notes, and selected CCs.

The script can open a separate GUI window, or it can be "docked" inside the regions/markers lane of the MIDI editor:





The MIDI Inspector improves on REAPER's native Properties windows in several ways:
* The GUI is continuously updated and does not interfere with MIDI editing.
* If multiple events are selected, value ranges are shown.
* Note, CC and take information are all shown simultaneously.
* Note and CC positions can be displayed in any of REAPER's time formats - as well as additional, more accurate formats.
* When using multiple editors, the script will automatically switch to the active editor.

When docked, the script will try to use theme colors. However, the user can also specify custom colors in script's USER AREA, for the GUI as well as the docked modes.

Last edited by juliansader; 02-17-2019 at 12:09 PM.
juliansader is offline   Reply With Quote
Old 05-15-2016, 01:11 AM   #14
juliansader
Human being with feelings
 
Join Date: Jul 2009
Posts: 2,836
Default Draw linear or curved ramps -- or even LFOs -- in real time

Draw linear or curved ramps -- or even LFOs -- in real time:

* If snap to grid is enabled in the MIDI editor, the endpoints of the ramp or LFO will snap to grid, allowing precise positioning of the inserted CCs (allowing, for example, the insertion of a pitch riser at the exact position of a note).

* When drawing linear or sine ramps, the mousewheel warps the shape of the ramp (allowing the easy insertion of parabolic shapes). When drawing LFOs, the mousewheel scroll through the available 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.

Draw LFO:




Draw ramp:

The following GIF is of an old, outdated version of the Draw ramp script:


Last edited by juliansader; 02-13-2019 at 01:17 PM.
juliansader is offline   Reply With Quote
Old 05-15-2016, 03:16 AM   #15
X-Raym
Human being with feelings
 
X-Raym's Avatar
 
Join Date: Apr 2013
Location: France
Posts: 6,101
Default

Impressive set of scripts ! well done !
X-Raym is offline   Reply With Quote
Old 05-15-2016, 03:39 AM   #16
Sju
Human being with feelings
 
Join Date: Jun 2015
Posts: 686
Default

Cool stuff, thank you! One question though: how do you bind these scripts to the mouse modifiers?

EDIT: Looks like the instructions are in the script file, nevermind I wish we could run the scripts using the mouse modifiers though...

Last edited by Sju; 05-15-2016 at 03:55 AM.
Sju is offline   Reply With Quote
Old 05-15-2016, 05:21 AM   #17
vanhaze
Human being with feelings
 
vanhaze's Avatar
 
Join Date: Jul 2012
Location: Netherlands
Posts: 4,805
Default

This is great stuff, thanks very much !
vanhaze is offline   Reply With Quote
Old 05-15-2016, 07:54 AM   #18
mpl
Human being with feelings
 
mpl's Avatar
 
Join Date: Oct 2013
Location: Moscow, Russia
Posts: 2,548
Default

Cool. I already find it useful for myself.
Did you saw our ReaPack stuff? What do you think about sharing your scripts this way?
__________________
SoundCloud | MPL Scripts discussion | ReaPack | Donate
mpl is offline   Reply With Quote
Old 05-15-2016, 09:53 AM   #19
juliansader
Human being with feelings
 
Join Date: Jul 2009
Posts: 2,836
Default

Quote:
Originally Posted by mpl View Post
Cool. I already find it useful for myself.
Did you saw our ReaPack stuff? What do you think about sharing your scripts this way?
I have been following the development of ReaPack with interest and I would feel very honoured to have my scripts included in the library! I am not familiar with Github, however - would it be possible to simply add these scripts to the ReaTeam repo?

BTW, I do not see gofer/spk77's very useful "Smooth CC values" script among spk77's other scripts in the collection.
juliansader is offline   Reply With Quote
Old 05-15-2016, 10:01 AM   #20
mpl
Human being with feelings
 
mpl's Avatar
 
Join Date: Oct 2013
Location: Moscow, Russia
Posts: 2,548
Default

If you not against, I can simply add these scripts to repo with proper header and your credits on main page and then commit new index for extension later. I may didn`t find "smooth cc" before, just browsed stash and some forum threads, so it is ok I could forget to add something interesting.
__________________
SoundCloud | MPL Scripts discussion | ReaPack | Donate

Last edited by mpl; 05-15-2016 at 10:37 AM.
mpl is offline   Reply With Quote
Old 05-15-2016, 10:53 AM   #21
juliansader
Human being with feelings
 
Join Date: Jul 2009
Posts: 2,836
Default

Quote:
Originally Posted by mpl View Post
If you not against, I can simply add these scripts to repo with proper header and your credits on main page and then commit new index for extension later.
Great!
juliansader is offline   Reply With Quote
Old 05-15-2016, 12:05 PM   #22
dea-man
Human being with feelings
 
dea-man's Avatar
 
Join Date: Oct 2009
Posts: 6,131
Default

These seem fabulously useful.

Good work!

Thank you.
__________________
Please check out my REAPER produced music here: http://soundcloud.com/dea-man
dea-man is offline   Reply With Quote
Old 05-15-2016, 12:25 PM   #23
musicbynumbers
Human being with feelings
 
musicbynumbers's Avatar
 
Join Date: Jun 2009
Location: brighton, uk
Posts: 12,770
Default

What kind of witch craft is this!

Really great stuff here 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 05-15-2016, 12:47 PM   #24
G-Sun
Human being with feelings
 
G-Sun's Avatar
 
Join Date: May 2010
Location: Norway
Posts: 7,255
Default

Looking first class
__________________
Reaper x64, win 8.1
My music on Bandcamp
G-Sun is offline   Reply With Quote
Old 05-17-2016, 07:33 AM   #25
musicbynumbers
Human being with feelings
 
musicbynumbers's Avatar
 
Join Date: Jun 2009
Location: brighton, uk
Posts: 12,770
Default

This is quite bizarre I think.

I can't get any of these to work as either keyboard assigned scripts in the midi editor action list or the normal arrange page action list.

I've read the instructions too and am on the latest pre-release just in case.

I wonder if there's something obvious I'm doing wrong.

One thing it could be is that I use a wacom pen and not a mouse so maybe it's not picking up on the absolute position of the pen?

Will try a mouse in a sec.

EDIT: nope, mouse didn't work either. Could it be having the midi editor docked under the arrange and synced up that's causing it?
__________________
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.

Last edited by musicbynumbers; 05-17-2016 at 07:38 AM.
musicbynumbers is offline   Reply With Quote
Old 05-17-2016, 07:37 AM   #26
juliansader
Human being with feelings
 
Join Date: Jul 2009
Posts: 2,836
Default

Quote:
Originally Posted by musicbynumbers View Post
This is quite bizarre I think.

I can't get any of these to work as either keyboard assigned scripts in the midi editor action list or the normal arrange page action list.

I've read the instructions too and am on the latest pre-release just in case.

I wonder if there's something obvious I'm doing wrong.

One thing it could be is that I use a wacom pen and not a mouse so maybe it's not picking up on the absolute position of the pen?

Will try a mouse in a sec.
Since these functions are user scripts, the way they respond to shortcut keys and mouse buttons is opposite to that of REAPER's built-in mouse actions with mouse modifiers: To run a script, press the shortcut key *once* to start the script and then move the mouse or mousewheel *without* pressing any mouse buttons. Press the shortcut key again once to stop the script.

(The first time that a 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".)
juliansader is offline   Reply With Quote
Old 05-17-2016, 08:22 AM   #27
musicbynumbers
Human being with feelings
 
musicbynumbers's Avatar
 
Join Date: Jun 2009
Location: brighton, uk
Posts: 12,770
Default

Quote:
Originally Posted by juliansader View Post
Since these functions are user scripts, the way they respond to shortcut keys and mouse buttons is opposite to that of REAPER's built-in mouse actions with mouse modifiers: To run a script, press the shortcut key *once* to start the script and then move the mouse or mousewheel *without* pressing any mouse buttons. Press the shortcut key again once to stop the script.

(The first time that a 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".)
Thanks. I did try that and what's interesting is that I don't even get the terminate window like I do with most scripts. Should I be running them from the normal action window or the midi action window? I've tried both though?
__________________
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-17-2016, 09:08 AM   #28
Soli Deo Gloria
Human being with feelings
 
Soli Deo Gloria's Avatar
 
Join Date: Oct 2013
Location: Buenos Aires, Argentina
Posts: 916
Default

Quote:
Originally Posted by musicbynumbers View Post
Thanks. I did try that and what's interesting is that I don't even get the terminate window like I do with most scripts. Should I be running them from the normal action window or the midi action window? I've tried both though?
I have the same issue; I haven´t been able to use them since I find the same situation as musicbynumbers. Running them either with shortcuts or through the action windows does not seem to do anything, no matter what combination of mouse/mousewheel movements movements I use.
Soli Deo Gloria is offline   Reply With Quote
Old 05-17-2016, 09:23 AM   #29
juliansader
Human being with feelings
 
Join Date: Jul 2009
Posts: 2,836
Default

Quote:
Originally Posted by musicbynumbers View Post
Thanks. I did try that and what's interesting is that I don't even get the terminate window like I do with most scripts. Should I be running them from the normal action window or the midi action window? I've tried both though?
Quote:
Originally Posted by Soli Deo Gloria View Post
I have the same issue; I haven´t been able to use them since I find the same situation as musicbynumbers. Running them either with shortcuts or through the action windows does not seem to do anything, no matter what combination of mouse/mousewheel movements movements I use.
Curiouser and curiouser... I quickly tested the scripts on a new installation of REAPER, and they seem to work OK.

Perhaps you could check the following?
1) The events that you want to manipulate are selected
2) The MIDI editor is active
3) The mouse is over the lane

If the mouse is not positioned over a suitable part of REAPER's interface, the script will not run.

Do you have the same problems with the Deselect script (which does not involve the mouse)?
juliansader is offline   Reply With Quote
Old 05-17-2016, 10:22 AM   #30
Soli Deo Gloria
Human being with feelings
 
Soli Deo Gloria's Avatar
 
Join Date: Oct 2013
Location: Buenos Aires, Argentina
Posts: 916
Default

I try everything as you say, but the scripts do not seem to respond. The deselect one does indeed work, though...
Soli Deo Gloria is offline   Reply With Quote
Old 05-17-2016, 10:59 AM   #31
musicbynumbers
Human being with feelings
 
musicbynumbers's Avatar
 
Join Date: Jun 2009
Location: brighton, uk
Posts: 12,770
Default

Quote:
Originally Posted by juliansader View Post
Curiouser and curiouser... I quickly tested the scripts on a new installation of REAPER, and they seem to work OK.

Perhaps you could check the following?
1) The events that you want to manipulate are selected
2) The MIDI editor is active
3) The mouse is over the lane

If the mouse is not positioned over a suitable part of REAPER's interface, the script will not run.

Do you have the same problems with the Deselect script (which does not involve the mouse)?
Well, the good news is the deselect script works and that's run from the midi editor section of the actions window. but even with the above, the others do nothing at all

I've been assigning the script to single keys on the keyboard and just tried to detach the midi editor as well as unsync it just in case and nothing still.

Weird!

Will try my 2nd computer when I get time. Very curious to know what it could be!
__________________
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-17-2016, 11:01 AM   #32
musicbynumbers
Human being with feelings
 
musicbynumbers's Avatar
 
Join Date: Jun 2009
Location: brighton, uk
Posts: 12,770
Default

Is there a dependency/API thingy we need outside of reaper that most people may have but for some reason we don't?
__________________
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-17-2016, 11:36 AM   #33
gwok
Human being with feelings
 
gwok's Avatar
 
Join Date: Jun 2010
Location: Nelson, BC
Posts: 3,315
Default

hmm, not working here either, mavericks, 5.20 64bit.

Tried a bunch of tweaks, including unassigning the mousewheel, no luck though. THey are meant to be installed as midi actions not "main" actions I assume?
__________________
MacPro Xeon, 10.9.5
Reaper 5
gwok is offline   Reply With Quote
Old 05-17-2016, 12:27 PM   #34
juliansader
Human being with feelings
 
Join Date: Jul 2009
Posts: 2,836
Default

Quote:
Originally Posted by musicbynumbers View Post
Is there a dependency/API thingy we need outside of reaper that most people may have but for some reason we don't?
It does need SWS.
juliansader is offline   Reply With Quote
Old 05-17-2016, 12:37 PM   #35
gwok
Human being with feelings
 
gwok's Avatar
 
Join Date: Jun 2010
Location: Nelson, BC
Posts: 3,315
Default

hmm, just updated SWS from the official to the beta, no improvement.

I do notice that when I run the action compress or expand select cc\vel using mousewheel, some of the cc's move just a slight little bit left or right upon running the action. The mousewheel doesnt do anything though.

Also, is there a possibility of action\mouse modifier assignments creating some sort of conflict that breaks the functionality?

thanks!

edit: also tested on 32bit, and on my laptop (mavericks) same result.
__________________
MacPro Xeon, 10.9.5
Reaper 5

Last edited by gwok; 05-17-2016 at 12:48 PM.
gwok is offline   Reply With Quote
Old 05-17-2016, 12:40 PM   #36
Soli Deo Gloria
Human being with feelings
 
Soli Deo Gloria's Avatar
 
Join Date: Oct 2013
Location: Buenos Aires, Argentina
Posts: 916
Default

I´m on Win 7 x64, Reaper 5.20 and latest SWS pre v8.7.0, by the way...
Soli Deo Gloria is offline   Reply With Quote
Old 05-17-2016, 01:54 PM   #37
ELP
Human being with feelings
 
Join Date: Apr 2014
Posts: 943
Default

the problem is that his scripts need exactly stable sws version 2.8.3..
newer betas 2.8.6 or 2.8.7 and also lower versions others then stable SWS 2.8.3 do not work...
for this scripts

some of the br_xxxx things like reaper.BR_GetMouseCursorContext() seems to be broken within newer betas... or maybe complete missing like Breeder^^
(have looked not yet accurate...)

With SWS 2.8.3 x86 & x64 all his/this great scripts work..

really good & much useful scripts. but need exact sws 2.8.3

Greetings
__________________
I hope you can understand me? Without german beer my written english is always very bad, with beer it becomes unbearable!.
Less is more! To much limited the own creativity.

Last edited by ELP; 05-17-2016 at 02:01 PM.
ELP is offline   Reply With Quote
Old 05-17-2016, 03:18 PM   #38
musicbynumbers
Human being with feelings
 
musicbynumbers's Avatar
 
Join Date: Jun 2009
Location: brighton, uk
Posts: 12,770
Default

That's probably it. I'm on the latest beta for sws.

And so it begins.. the slow but sure "unwinding" of all the lovely sws tapestry as buts of it start to break and there's no one to fix them. Really sad..

Thought it would last a bit longer than this!

Quote:
Originally Posted by ELP View Post
the problem is that his scripts need exactly stable sws version 2.8.3..
newer betas 2.8.6 or 2.8.7 and also lower versions others then stable SWS 2.8.3 do not work...
for this scripts

some of the br_xxxx things like reaper.BR_GetMouseCursorContext() seems to be broken within newer betas... or maybe complete missing like Breeder^^
(have looked not yet accurate...)

With SWS 2.8.3 x86 & x64 all his/this great scripts work..

really good & much useful scripts. but need exact sws 2.8.3

Greetings
__________________
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-17-2016, 05:33 PM   #39
juliansader
Human being with feelings
 
Join Date: Jul 2009
Posts: 2,836
Default

Quote:
Originally Posted by ELP View Post
the problem is that his scripts need exactly stable sws version 2.8.3..
newer betas 2.8.6 or 2.8.7 and also lower versions others then stable SWS 2.8.3 do not work...
for this scripts

some of the br_xxxx things like reaper.BR_GetMouseCursorContext() seems to be broken within newer betas... or maybe complete missing like Breeder^^
(have looked not yet accurate...)

With SWS 2.8.3 x86 & x64 all his/this great scripts work..

really good & much useful scripts. but need exact sws 2.8.3

Greetings
Thanks for the insight!

Good news: the problems with the scripts appear not to be due to anything being broken in the new pre-release, but actually due to a bug fix. In fact, I noted in the scripts that:
-- ! SWS documentation is incorrect: NO retval is returned
-- ! by BR_GetMouseCursorContext_MIDI()
It seems that this was indeed a bug, and that it is now fixed in the new pre-release.

I would not be difficult to adapt the scripts to the new version. (Simply add an extra "_," before each call to BR_GetMouseCursorContext_MIDI().) When I corrected this in the scripts, they all worked fine with the new SWS pre-release.

(Perhaps I can even include a test to distinguish between the two versions, so that the scripts can handle both versions.)
juliansader is offline   Reply With Quote
Old 05-17-2016, 06:07 PM   #40
Fergler
Human being with feelings
 
Fergler's Avatar
 
Join Date: Jan 2014
Posts: 3,947
Default

THANK YOU. THANK YOU SO MUCH I have needed this for so long. It has baffled me since day 1 that this is not included natively. In some way, I hate you for doing this because now Justin can just point to this when people bitch about it.

Imo if you can stretch audio, a complex series of sample values, then having tools for stretching much more basic values like CC is a no-brainer.

The way Cubase does it is absolutely perfect as far as I'm concerned. And I'm sure there's other DAWs with equally useable tools.
__________________
Check out my hip-hop, funk-rock band Theatre Crisp
Fergler 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 09:20 PM.


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