jcsteh / osara

OSARA: Open Source Accessibility for the REAPER Application
GNU General Public License v2.0
127 stars 46 forks source link

Support for take markers #339

Closed tbdalgaard closed 4 years ago

tbdalgaard commented 4 years ago

I recently played with the take markers in Reaper, and I can see a huge potential in these. Now, how can OSARA support this?

The closest thing I have found is stretch markers. They seem to be bounded to each item. That is also the case for take markers. So perhaps we could map the commands for jumping to next and previous take marker on ctrl-windows-colon and control-windows-shift-colon to jump to the previous take marker, or the ctrl-windows-apostrophe for jumping to next take marker. I think using colon and adding shift to this might be easier to remember, especially when the updated keymap is released.

In my experience with stretch markers OSARA will mention each marker as I jump through the project, and announce the end position by each item before moving to the next stretch marker. This seems to work for take markers too. However we need a way for OSARA to speak if the take changes, since items can have multiple takes and therefor different take markers in the same item.

Feedback from OSARA about the position on the timeline, or the item name might also be something to consider. We also need a way to delete and edit take markers as we can with project markers if possible. Hope we can get some great dialogue going on this, since take markers for editing can be a big thing, because they will be bound to certain parts of an item instead of tied to a certain position on the timeline which can change during edits or other movements in the project where content can be added, moved around etc. Here take markers can help us organise the project better, since edits and other changes will not effect the take markers. For adding take markers I suggest ctrl-windows-m and ctrl-shift-m. When shift is used the dialogue should come up and ask for a take marker name if possible.

jcsteh commented 4 years ago

I think this needs input from the key map overlords (@ScottChesworth and others). However, a question:

However we need a way for OSARA to speak if the take changes, since items can have multiple takes and therefor different take markers in the same item.

I don't follow this. Surely these commands should only move to markers in the active take? You can only hear the active take, so being able to move to take markers in inactive takes doesn't seem intuitive? Am I missing something here? Note that the stretch marker commands only move to markers in the active take as far as I know.

tbdalgaard commented 4 years ago

Sorry, it should absolutely work as stretch markers does - only on the active take. Sorry for the confusion.

tbdalgaard commented 4 years ago

@jcsteh you are very right on the points above. I misread some of the informations I found about take markers on the forum.

I have checked take markers out some more over the last week, and I found the following observations which might be interesting for someone who knows the API. This might be possible to change if OSARA can support take markers. After the observations I have some thoughts about the logic and user experience for working with take markers with OSARA support:

Take markers will only work if an item containing a take marker is selected. The only exception is when recording. Here take markers can be added.

To add a take marker you'll first need to select one or more items and then run one of the following actions: 42390 Item: Quick add take marker at play position or edit cursor 42385 Item: Add/edit take marker at play position or edit cursor

To delete a take marker use the action: 42386 Item: Delete take marker at cursor to delete all take markers use the action: 42387 Item: Delete all take markers

To go to the next or previous take marker, select one or more items and use the actions: 42394 Item: Set cursor to next take marker in selected items 42393 Item: Set cursor to previous take marker in selected items

Important notes:

If the item which contains a take marker is split, the take marker will be included for the rest items until a new take marker is set. Take markers can be shown in the region/marker window. From here there is a checkbox. If this checkbox is checked take markers will be a part of the list of markers.

My thoughts for OSARA support and take markers:

For inspiration on this, I ran a script from Reapack that creates project markers from take markers. Here the project markers only show the first instance of a take marker, even if it is expanded over multiple items, because the original item is split.

jcsteh commented 4 years ago

Thanks for your research and thoughts.

* If no items are selected when the user wants to add or edit a take marker OSARA may need to select the current item on the selected track.

I don't know that OSARA should really be doing this. We don't do it for anything else; e.g. we don't auto select an item if the user tries to add a stretch marker. Of course, there are commands to select the item under the cursor, so a user could do that first (and they could even have a custom action to do both if they wanted).

  _XENAKIOS_SELITEMSUNDEDCURSELTX Xenakios/SWS: Select items under edit cursor on selected tracks

I try to avoid OSARA itself depending on SWS, though that's fine in the key map.

* When the user wants to go to the next or previous take marker OSARA may have to run an action that selects all items. For example:
  40421 Item: Select all items in track
  before moving to the previous or next take marker.

Again, I don't think we do this for anything else (stretch markers, envelope points) and I'm not convinced it's wise. I'd argue project markers are more appropriate if you want to freely move between items. of course, a user could select all items on the track first if they wanted.

* If a take marker is expanded over multiple items, we must find a workaround so OSARA will ignore the take marker number and the name.

How do REAPER's next/previous take marker commands handle this case?

Lo-lo78 commented 4 years ago

Hi, is it possible to give feedback on the take marker name? Currently I browse the take markers and NVDA does not give, with OSARA, any information.I did a custom action to navigate between the take markers, it's still not good: Custom: Manolo - Go to the previous take marker Item: Set cursor to previous take marker in selected items OSARA: Report edit / play cursor position Transport: Play (skip time selection) Custom: Manolo - Go to the next take marker Item: Set cursor to next take marker in selected items OSARA: Report edit / play cursor position Transport: Play It's definitely not perfect because when they're not playback the take markers are played!

Reaper Action: Item: Add / edit take marker at play position or edit cursor On 01/11/2020 08:47, James Teh wrote:

Lo-lo78 commented 4 years ago

Hi, if it is useful I did two cycle actions to go to the previous take marker and the next take marker. I also used the OSARA action: OSARA: Report edit / play cursor position Obviously the take marker name has no feedback, but it is possible to know the position. Sorry if the name of the shares are in Italian, if needed in the future we can translate them. I also attach the .ini file.

1; Cycle action name: Manolo - Vai al take marker precedente

IF NOT; Description: If the next action is OFF 1007; Description: Transport: Play 42393; Description: Item: Set cursor to previous take marker in selected items _OSARA_CURSORPOS; Description: OSARA: Report edit/play cursor position ELSE; Description: Else 42393; Description: Item: Set cursor to previous take marker in selected items _OSARA_CURSORPOS; Description: OSARA: Report edit/play cursor position 1007; Description: Transport: Play ENDIF; Description: End of conditional statement

2; Cycle action name: Manolo - Vai al take marker successivo

IF NOT; Description: If the next action is OFF 1007; Description: Transport: Play 42394; Description: Item: Set cursor to next take marker in selected items _OSARA_CURSORPOS; Description: OSARA: Report edit/play cursor position ELSE; Description: Else 42394; Description: Item: Set cursor to next take marker in selected items _OSARA_CURSORPOS; Description: OSARA: Report edit/play cursor position 1007; Description: Transport: Play ENDIF; Description: End of conditional statement Switch to previous and next take marker with OSARA report.zip

ScottChesworth commented 4 years ago

Nice work! Can I translate the action names into English and upload these to the Reaper Dropbox please? Will credit you in the news file and accompanying text obviously, just let me know your name.

Lo-lo78 commented 4 years ago

Hi Scoth, ok, no problem! You can do whatever you think is good for OSARA!

Il 04/11/2020 13:55, ScottChesworth ha scritto:

Nice work! Can I translate the action names into English and upload these to the Reaper Dropbox please? Will credit you in the news file and accompanying text obviously, just let me know your name.

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/jcsteh/osara/issues/339#issuecomment-721715540, or unsubscribe https://github.com/notifications/unsubscribe-auth/AJO6K7AUCOQZPL7CBSJ4QKLSOFFN5ANCNFSM4SY3AG4A.

Lo-lo78 commented 4 years ago

Sorry Scoth, I forgot! My name is Manolo Vazquez. Thank you!

tbdalgaard commented 4 years ago

Hi!

Have now played with the newly added support for take markers and find something strange. I am not sure if this is an OSARA thing, or specifically to Reaper. @Lo-lo78 would you be interested to help me test this?

Do the following:

  1. Make a project with one track.
  2. Import one or more items.
  3. Put some take markers down during the items, remember to select all items first (I use ctrl-alt-a for that here). Make sure to name the take markers.
  4. Check that OSARA will report the named take markers using the actions for move cursor to next or previous take marker. There is no default keyboard shortcut for these actions yet.
  5. Now, try to insert empty space at the beginning of the project. I made a time selection about 10 seconds and used the action Time selection: Insert empty space at time selection (moving later items)
  6. Select all items *(using ctrl-alt-a)
  7. Now move the cursor to the first take marker. Here no name is spoken for the first item, but for later items this gives feedback. If I check by using either the action: Item: Add/edit take marker at play position or edit cursor or: Custom: Edit marker at cursor I get the same result.

I expect that OSARA will speak the name of the take marker even if the items are moved.

Is this an issue in Reaper itself, or is this something in OSARA?

jcsteh commented 4 years ago

The fact that the builtin REAPER edit take marker action does the same thing suggests this is not an OSARA issue. Note that OSARA doesn't change the behaviour of the next/previous take marker actions at all; it just reports where they moved after the fact.