Go Back   Cockos Incorporated Forums > REAPER Forums > MIDI Hardware, Control Surfaces, and OSC

Reply
 
Thread Tools Display Modes
Old 09-14-2016, 12:51 AM   #41
ivansc
Human being with feelings
 
Join Date: Aug 2007
Location: Near Cambridge UK and Near Questembert, France
Posts: 18,941
Default

With you on this, Julian. Snooks - I think this is more a case of deciding what is "zooM" and what is "scroll".

Automatically locating to the same section of a project aint going to work if you want to move, so some form of combination zoom/scroll is pretty much a given. Julian`s 1/2/3 bars is very much a step in the right direction, of course.

From dim hazy recollections, I seem to remember that BPP did this by intelligently scrolling either forward or backward to the nearest MIDI data on the selected track, but unfortunately with the "MIDI items" concept used by Reaper, that isn`t really a viable option. There again neither is a "go to" which pretty much limits how an intelligent scroll can work.

I hope I am not muddying the wates here, as I too think a clear unabiguous statement of the problem(s) and sensible suggestions as to how it might be fixed are more likely to get the devs attention.
__________________
Brexit Schmexit. Lets have a violent revolution instead. Bagsy the first go with a nuke! (Here, Moggy Moggy...)

Last edited by ivansc; 09-14-2016 at 02:32 PM. Reason: My fault - mis-typed zoom and meant scroll
ivansc is offline   Reply With Quote
Old 09-14-2016, 03:10 AM   #42
snooks
Human being with feelings
 
Join Date: Sep 2015
Posts: 1,631
Default

Zooming and scrolling are two separate and clearly defined concepts. In case they need clarifying, zooming is making things bigger or smaller and scrolling is moving a viewport around.

Currently, when there is no item within the current viewport on the clicked track/item in the track list, there is an auto-scroll and an auto-zoom. I propose neither when clicking on just the track name and only a scroll when clicking on an item within an expanded track in the track list.

When you say that some kind of auto-zoom is necessary, no it isn't. Cubase never auto-zooms and that is lauded as the king of MIDI. Cubase only scrolls when the part in the part dropdown is completely out of the current viewport. Then the viewport is scrolled (not zoomed) so that the left edge of the newly selected part is at the left side of the window. I prefer Reaper's scroll where the item contents are not hard against the left of the window.

I am very against only adding extra zoom actions. I'd settle for API access to zoom to monitor a change of take in the MIDI editor and rectify the auto-zoom, but I wouldn't be able to stop the GUI updating with the change so it would look glitchy.
snooks is offline   Reply With Quote
Old 09-14-2016, 02:36 PM   #43
ivansc
Human being with feelings
 
Join Date: Aug 2007
Location: Near Cambridge UK and Near Questembert, France
Posts: 18,941
Default

Quote:
Originally Posted by snooks View Post
Zooming and scrolling are two separate and clearly defined concepts. In case they need clarifying, zooming is making things bigger or smaller and scrolling is moving a viewport around.

Currently, when there is no item within the current viewport on the clicked track/item in the track list, there is an auto-scroll and an auto-zoom. I propose neither when clicking on just the track name and only a scroll when clicking on an item within an expanded track in the track list.

When you say that some kind of auto-zoom is necessary, no it isn't. Cubase never auto-zooms and that is lauded as the king of MIDI. Cubase only scrolls when the part in the part dropdown is completely out of the current viewport. Then the viewport is scrolled (not zoomed) so that the left edge of the newly selected part is at the left side of the window. I prefer Reaper's scroll where the item contents are not hard against the left of the window.

I am very against only adding extra zoom actions. I'd settle for API access to zoom to monitor a change of take in the MIDI editor and rectify the auto-zoom, but I wouldn't be able to stop the GUI updating with the change so it would look glitchy.
Edited my post above to say what I meant rather than what I typed! Sorry.
Cubase lauded as the king of MIDI... Hm. Not by me and not by many others. Never could get on with it at all. Clumsy in my opinion but chocolate and vanilla I suppose.
If and when my way of working gets trashed in an effort to find a compromise I shall follow Tod over to 100% single full track length MIDI items.
And start lobbying for a decent arranger like Bars n Pipes Pro has/had.
__________________
Brexit Schmexit. Lets have a violent revolution instead. Bagsy the first go with a nuke! (Here, Moggy Moggy...)
ivansc is offline   Reply With Quote
Old 09-14-2016, 03:54 PM   #44
snooks
Human being with feelings
 
Join Date: Sep 2015
Posts: 1,631
Default

Yes, at least Cubase is attempting to declunk itself at the moment by copying Reaper MIDI editor features.

Incidentally, the way you open and close MIDI items with zoom intact wouldn't be affected by fixes to the Track List that you don't use at the moment. Maybe you'd use it if the behaviour was consistent with opening from arrange though.

I just want the zoom to stay at 6 bars at a time or whatever. I never want the view automatically changed to a 1/2 bar filling the full width of the screen, or 64 bars or anything else. The track list at the moment doesn't allow this and there should be an option to make zoom 100% manual.
snooks is offline   Reply With Quote
Old 09-15-2016, 02:09 AM   #45
ivansc
Human being with feelings
 
Join Date: Aug 2007
Location: Near Cambridge UK and Near Questembert, France
Posts: 18,941
Default

O.K. I think we both "get" each other now!
Have to say in my mind I am still so attached to my old MIDI sequencer that I used for donkeys years that it does colour my attitude towards other ways of skinning the MIDI cat!
Sorry about that.
__________________
Brexit Schmexit. Lets have a violent revolution instead. Bagsy the first go with a nuke! (Here, Moggy Moggy...)
ivansc is offline   Reply With Quote
Old 09-15-2016, 06:55 AM   #46
Nowhere Man
Human being with feelings
 
Nowhere Man's Avatar
 
Join Date: Mar 2009
Location: Nowhereland, Southern US
Posts: 44
Default

Quote:
Originally Posted by ivansc View Post
Have to say in my mind I am still so attached to my old MIDI sequencer that I used for donkeys years that it does colour my attitude towards other ways of skinning the MIDI cat!
Sorry about that.
A big +1 on that!

In fact, when I get fed up with the zoom shenanigans of REAPER's MIDI Editor, I just give up, export the MIDI, open VirtualBox and import it into Cakewalk 3.

I started using Calkwalk 3.01 back in 1995 and even 21 years ago it had features such as Groove Quantizing and Scripting support via CAL (Cakewalk Application Language) as well as many other standard features of a modern ME. It also uses Cakewalk instrument defintition files (.INS). In the second screen shot that I have attached below, I have a MT PowerDumKit2 INS file that I made loaded for channel 10.

So, what are the zoom and scroll behaviors in CW3's pianoroll editor?

Well, first of all let's take zoom since that is easy to explain. Cakwalk defaults to the last horizontal and vertical zoom levels used in the last opened pianoroll editor period. No further explanation necessary.

Scrolling (actually autoscrolling) works this way:

1. If there is no note data within the first 4 bars from the current play cursor position, then the pianoroll opens to that bar and C5 (middle C) as the top most note vertically displayed on the pianoroll.



http://i296.photobucket.com/albums/m...ll_no_data.png

2. If there is note data within the first 4 bars from the current play cursor position, then the pianoroll intelligently finds the highest note within those 4 bars and autoscrolls the pianoroll so that note is the top most note vertically displayed on the pianoroll.



http://i296.photobucket.com/albums/m...ll_no_data.png

The little icon with the Up and Down arrows in the bottom right corner of the pianoroll editor window is the Track List. Choosing a different track preforms the same behavior. The pianoroll is vertically scrolled automatically when changing tracks according to the same criteria.

Simple, elegant and sane.

Last edited by Nowhere Man; 09-15-2016 at 07:59 AM. Reason: Added links to full size images.
Nowhere Man is offline   Reply With Quote
Old 09-15-2016, 07:28 AM   #47
ivansc
Human being with feelings
 
Join Date: Aug 2007
Location: Near Cambridge UK and Near Questembert, France
Posts: 18,941
Default

Very similar to BPP.
And of course it will also allow you to manually select all or any of those, including piano roll bounds horizontal AND vertical, plus the option as to WHERE the piano roll for each track is centred, or do it globally within the project.
And this was around in 1990, if not earlier.
Cubase MIDI, Schmoobase MIDI
__________________
Brexit Schmexit. Lets have a violent revolution instead. Bagsy the first go with a nuke! (Here, Moggy Moggy...)
ivansc is offline   Reply With Quote
Old 09-15-2016, 08:09 AM   #48
snooks
Human being with feelings
 
Join Date: Sep 2015
Posts: 1,631
Default

I've noticed what makes the difference between remembered zoom level when opening from the arrange and what makes it zoom to fit (mostly separate from the track list behaviour, which always zooms to fit when the new item is out of view). It's....

Behavior for "open items in built-in MIDI editor"

.... which is a right-click option in the Track List or can be found in Preferences->MIDI Editor.

- When it is set to "Open all MIDI on the same track" it remembers zoom state.
- When it is set to "Open all MIDI in the project" it forgets and auto-zooms.

This possibly explains some of the different experiences outlined in this thread. Hopefully that should provide some refuge for some users who open and close the MIDI editor with every change of item for editing, but the track list still needs fixed (or auto-zoom added to the "same track" behaviour (fnar fnar) ).
snooks is offline   Reply With Quote
Old 09-15-2016, 10:16 AM   #49
Nowhere Man
Human being with feelings
 
Nowhere Man's Avatar
 
Join Date: Mar 2009
Location: Nowhereland, Southern US
Posts: 44
Default

Quote:
Originally Posted by snooks View Post
I've noticed what makes the difference between remembered zoom level when opening from the arrange and what makes it zoom to fit (mostly separate from the track list behaviour, which always zooms to fit when the new item is out of view). It's....

Behavior for "open items in built-in MIDI editor"

.... which is a right-click option in the Track List or can be found in Preferences->MIDI Editor.

- When it is set to "Open all MIDI on the same track" it remembers zoom state.
- When it is set to "Open all MIDI in the project" it forgets and auto-zooms.

This possibly explains some of the different experiences outlined in this thread. Hopefully that should provide some refuge for some users who open and close the MIDI editor with every change of item for editing, but the track list still needs fixed (or auto-zoom added to the "same track" behaviour (fnar fnar) ).
Yeah, I have been using that setting and it does help make things more tolerable and, TBO, I've been less inclined to use CW3 since figuring out how to work around REAPER's strange (to me) zooming and scrolling behaviors. Here are the other ME preferences I use:



I also use this:



I keep the ME docked.

These settings all help so I only have to deal with the auto zoom crap at least once per session. But I have to deal with it every time I close and then reopen REAPER. Let me explain...

I have a project with several MIDI tracks with multiple MID items on those tracks. NONE of those items is over 8 bars in length.

Let's say I open REAPER and it opens to the before mentioned project with no ME opened. The Arranger view is zoomed so that I am viewing bars 1 - 8 and I double click a MIDI item to open it in the ME. The ME opens the item but both the Arranger and ME auto zoom out so that bars 1 - 98 are viewable (the entire project length). ???

Now, if I click on the NEW project icon (and do not save the project) the ME does not close because that is the behavior I have set in Preferences. The Arranger and ME then magically zoom back in to bars 1 - 8. If I then reopen the Project, the ME retains the same 8 bar zoom level (no outer space zoom level) as does the Arranger.

I can then go from project to project and as long as I don't close the ME purposely, the zoom level is retained. The zoom level also persists switching tracks via the Track List.

BUT, if I close the ME and then reopen it, boom - outer space view...

What is the supposed purpose of this auto zooming. Is there a logical explanation for it? I would really like someone to explain to how this is a useful feature/behavior because for the life of me I don't understand it.
Attached Images
File Type: png midi_editor_prerferences.png (40.8 KB, 643 views)
File Type: png project_synced.png (24.5 KB, 649 views)
Nowhere Man is offline   Reply With Quote
Old 09-15-2016, 12:27 PM   #50
snooks
Human being with feelings
 
Join Date: Sep 2015
Posts: 1,631
Default

Good shout for the Piano roll timebase = Project sync'd. That stops the Track List madness, but unfortunately also syncs the MIDI editor with the arrange view, which I prefer as an arranging overview, not 6 bars or so. For me this would still mean a zoom fest.

But it's interesting that this is already mostly there.

Re the question about who wants auto-zoom, I can see how it might be useful, but it's not something that should be always on imo. I can't for the life of me see what the point of it is with the notation view though.
snooks is offline   Reply With Quote
Old 09-28-2016, 06:36 AM   #51
snooks
Human being with feelings
 
Join Date: Sep 2015
Posts: 1,631
Default

So I tried to write a script that approached this from the opposite direction, by controlling the zoom level of arrange when sync'd to have an arrange zoom and MIDI editor zoom.
Code:
local function getMidiEditorTake()
  local ame=reaper.MIDIEditor_GetActive()
  local mode=reaper.MIDIEditor_GetMode(ame)
  if mode > -1 then -- we are in a MIDI editor, -1 if ME not focused
    tk=reaper.MIDIEditor_GetTake(ame)
    --check that it's an actual take (in case of empty MIDI editor)
    if not reaper.ValidatePtr(tk, 'MediaItem_Take*') then return nil end
  else
    return nil
  end
  return tk
end


local state_name="ReaMIDI_MIDIZoom" 
local key_arrange_view_start="last_arrangeview_start"
local key_arrange_view_end="last_arrangeview_end"
local key_midi_view_start="last_midiview_start"
local key_midi_view_end="last_midiview_end"

local CLOSE_MIDI_EDITOR_IF_NOT_DOCKED = 40477

local OPEN_MIDI_EDITOR = 40153
local ok

reaper.PreventUIRefresh(1)


if getMidiEditorTake() == nil then
  -- we should be in arrange view
  local start_time, end_time = reaper.GetSet_ArrangeView2(0, false, 0, 0, 0, 5)
  reaper.SetProjExtState(0, state_name, key_arrange_view_start, start_time, true)
  reaper.SetProjExtState(0, state_name, key_arrange_view_end, end_time, true)  
  ok, start_time = reaper.GetProjExtState(0, state_name, key_midi_view_start)
  ok, end_time = reaper.GetProjExtState(0, state_name, key_midi_view_end)
  reaper.GetSet_ArrangeView2(0, true, 0, 0, start_time, end_time)
  reaper.Main_OnCommand(OPEN_MIDI_EDITOR, 0)
else
  -- we are in MIDI editor
  -- close, save arrange view (which is really MIDI editor view) and 
  -- restore saved arrange view (if it exists)
  reaper.MIDIEditor_OnCommand(reaper.MIDIEditor_GetActive(), CLOSE_MIDI_EDITOR_IF_NOT_DOCKED)
  local start_time, end_time = reaper.GetSet_ArrangeView2(0, false, 0, 0, 0, 5)
  reaper.SetProjExtState(0, state_name, key_midi_view_start, start_time, true)
  reaper.SetProjExtState(0, state_name, key_midi_view_end, end_time, true)
  ok, start_time = reaper.GetProjExtState(0, state_name, key_arrange_view_start)
  ok, end_time = reaper.GetProjExtState(0, state_name, key_arrange_view_end)
  reaper.GetSet_ArrangeView2(0, true, 0, 0, start_time, end_time)
end

reaper.PreventUIRefresh(-1)
It seems to work okay with one track, one item but not so much when multiple tracks/items are involved.

Ho di hum.
snooks is offline   Reply With Quote
Old 10-08-2016, 06:22 AM   #52
snooks
Human being with feelings
 
Join Date: Sep 2015
Posts: 1,631
Default

So it seems as though an option to disable auto-zoom is the only way to control zoom via a script (although backwards at the moment, by adjusting zoom in the main view)? In any case that option would make perfect sense for everybody, since it would be an option.
snooks is offline   Reply With Quote
Old 08-08-2018, 09:32 AM   #53
rayultine
Human being with feelings
 
Join Date: Oct 2015
Posts: 30
Default

Necro'd!
Lord, I would love the Reaper MIDI editor to work more like Cakewalk.
It doesn't look like there was ever some kind of consensus or feature request for the default MIDI zoom? Current behavior drives me bonkers.
rayultine is offline   Reply With Quote
Old 08-08-2018, 10:32 AM   #54
juliansader
Human being with feelings
 
Join Date: Jul 2009
Posts: 2,752
Default

There was a long list of improvements, just a few releases ago.

Most of the users in the pre-release forum were mightily chuffed with the changes.
juliansader 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 03:59 PM.


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