Go Back   Cockos Incorporated Forums > REAPER Forums > REAPER Feature Requests

Reply
 
Thread Tools Display Modes
Old 08-31-2017, 10:16 AM   #1
zediiiii
Human being with feelings
 
Join Date: Aug 2017
Posts: 24
Default Better Support for Midi CC Channel Editing

Newly entered midi CC events (and notes) usually default to midi channel 1. Though Reaper sometimes tries to intelligently determine which channel surrounding notes are, this doesn't work reliably, especially when multiple channels are being used on the same midi object. Attempting to draw or enter new CC events by hand usually results in channel 1 CC events - which makes using multiple midi channels difficult without also using control surface input that supports proper selection of midi channels output.

Presently, editing a particular CC midi channel requires using the "filter" button in the bottom right of the midi editor to only display events on that instrument on that channel. This is a bit restricting and tedious - though intuitive once you know the setting is there (I had a hard time finding that documentation with searches like "midi cc event channel reaper").

Suggestion: Make a midi entry dialogue that allows the following settings

-Forcing particular instruments or midi objects to particular midi channels for notes AND CC events.
-A simple "global" midi channel selector that forces all note and CC entry to a certain channel, perhaps in the main ui near the filter settings in the bottom right of the midi editor.
-A checkbox that turns global channel entry override on and off (also in main ui)
-Create a global CC event writer for a midi object or bus such that EVERY channel is written to at the same time. This could be an option in the dropdown for the global channel selector, as well as allowed in the i/o routing dialogue.

Ideas? Discussion? Improvement? Does this feature already exist somewhere I haven't found?
zediiiii is offline   Reply With Quote
Old 08-31-2017, 10:24 AM   #2
EvilDragon
Human being with feelings
 
EvilDragon's Avatar
 
Join Date: Jun 2009
Location: Croatia
Posts: 24,798
Default

There are actions to set any new events to a particular MIDI channel, you can assign those to a toolbar or keyboard shortcuts (I like to do keyboard shortcuts, so I just use 1, 2, 3, ... 9, 0, A, B, C, D, E, F ).
EvilDragon is offline   Reply With Quote
Old 09-01-2017, 04:14 AM   #3
juliansader
Human being with feelings
 
Join Date: Jul 2009
Posts: 3,714
Default

REAPER's multi-channel capabilities were greatly improved a few months ago, and I still hope that someone will make a nice Youtube video about these colorful features.


Quote:
Originally Posted by zediiiii View Post
Forcing particular instruments or midi objects to particular midi channels for notes AND CC events.
In current versions of REAPER, the typical way to force all MIDI playback into a single channel is to either use track routing, or to use a JSFX, such as MIDI Tool II, as a track or take FX. For more complex routings, the MIDI routing matrix JSFX is particularly handy. (If these tools are used, the MIDI inside the track can freely be assigned to any channel, and channels can be employed as 16 all-purpose groups that can be independently edited, similar to FL Studio's "color groups".)



The JSFX (as a take FX) can be added/opened by a toolbar button in the MIDI editor, so that it looks and feels like a native part of the editor. Simply use the following script (replace "midi_routing_matrix.js" with whatever filename you saved the JSFX as):
Code:
take = reaper.MIDIEditor_GetTake(reaper.MIDIEditor_GetActive())
FXindex = reaper.TakeFX_AddByName(take, "midi_routing_matrix.js", 1)
reaper.TakeFX_Show(take, FXindex, 3)
(Save the standard diagonal routing as default preset for the FX.)


Quote:
Originally Posted by zediiiii View Post
Presently, editing a particular CC midi channel requires using the "filter" button in the bottom right of the midi editor to only display events on that instrument on that channel.
It is not actually necessary to filter out and hide other channels. When the channel dropdown is set to a specific channel, most of the mouse modifier editing actions (such as marquee select) will only affect the selected channel, even though the other channels are still visible. For all other cases, use the script js_Deselect all MIDI except in active channel of active take to quickly limit selection and subsequent editing to only the active channel. (Link the script to a shortcut such as "D".)


Quote:
Originally Posted by zediiiii View Post
A simple "global" midi channel selector that forces all note and CC entry to a certain channel, perhaps in the main ui near the filter settings in the bottom right of the midi editor.
This is indeed what the channel dropdown at the bottom right of the MIDI editor does.


Quote:
Originally Posted by zediiiii View Post
Newly entered midi CC events (and notes) usually default to midi channel 1. Though Reaper sometimes tries to intelligently determine which channel surrounding notes are, this doesn't work reliably, especially when multiple channels are being used on the same midi object.
There are several other scripts that can make multi-channel editing more powerful, as discussed in:

MIDI editor: Channel dropdown menu, and Option: Selecting note sets new channel [DONE]

Multi-channel CCs disappear and/or display with incorrect channel color (FIXED)

MIDI editor: Option to limit selection/editing to active channel [DONE in script]


Some descriptions from another thread:
Quote:
Originally Posted by juliansader View Post
Inserting new events in the wrong channel in the MIDI editor is an all-too-easy mistake to make, particularly after switching the active track. I have therefore uploaded three new scripts to ReaPack that will hopefully make it easier to set the appropriate MIDI channels for new events (and for track sends):

js_Option - Selecting single note or CC in active take sets channel for new events:

With this new option, the user can switch to the correct channel by simply clicking a note or CC of the new track. It is intended to be similar to the built-in action "Option: Drawing or selecting a note sets the new note length" (but for channel instead of note length).

js_Option - Switching active take sets channel for new events to channel of existing events:

If this option is activated, the default MIDI channel for new events will automatically be set to the channel of existing MIDI events in the newly active track, whenever the active track is switched. (If the existing MIDI events in the track use more than one channel, the default channel will be set one of these channels, usually - but not always - the channel of the very first event in the take.) The first MIDI event written to a track therefore determines the channel of subsequent events. This option emulates having a default channel per track, with the advantage that the user can still override the default channel when necessary.

js_Set MIDI send channel of selected tracks to channel of existing MIDI events in track:

Similar to the older js_Autoincrement MIDI send channels of selected tracks script, the new script is particularly useful when opening large MIDI files, to ensure that each track's MIDI is sent to a single, unique channel.

P.S. There is a lingering bug in the channel indicator, which always shows channel 1 being used.

Last edited by juliansader; 09-01-2017 at 12:43 PM.
juliansader is offline   Reply With Quote
Old 11-09-2017, 03:01 PM   #4
zediiiii
Human being with feelings
 
Join Date: Aug 2017
Posts: 24
Default Great

Thanks for the great response. I especially like the scripts you shared. I hope this gets integrated into the program in the future.
zediiiii is offline   Reply With Quote
Old 11-10-2017, 10:48 AM   #5
ivansc
Human being with feelings
 
Join Date: Aug 2007
Location: Near Cambridge UK and Near Questembert, France
Posts: 22,754
Default

It already can be.

Reapack is your friend here. Install it run it and you are in script heaven.
__________________
Ici on parles Franglais
ivansc 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 05:59 PM.


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