Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Next revision Both sides next revision
playground:playground [2009/08/28 01:07]
msjulie
playground:playground [2018/02/08 13:57]
cannam
Line 1: Line 1:
-====== Welcome to the notation_toolbar_2 branch: ====== +====== PlayGround ======
-**Revision 2 -- 08/27/2009** +
- +
-This page is a working (draft) proposal for the notation_toolbar_2 branch. +
- +
-The contents within this wiki page are part of a collaborative effort to make RG Notation View a friendlier, more intuitive notation entering enviornment.  But the scope to obtaining that large goal is limited in focus to a primary task and a few secondary tasks. +
- +
-NOTE: This is not branch is not intended as a rewrite of the notation view interface, but is limited to a very focused aspect relating to notation entry. +
- +
-Your input is welcome, join the discussion via: //rosegarden-devel@lists.sourceforge.net// Just make certain you register first so your input doesn't get lost in the spam queue +
-===== Goal of branch: ===== +
-Create a consistent notation entry flow in notation view (mouse, keyboard, or MIDI device--step record.) +
- +
-  * Primary Task: +
-    * Creating a Notation Inserter tool +
-  * Secondary tasks:  +
-    * Cleaning up code associated with the duration toolbar +
-    * Set an example of cooperation and foster creativity, and communication. +
-     +
- +
-===== Primary task: ===== +
- +
-==== Draw Tool (Notation Inserter) for notation view ==== +
- +
-The Notation Inserter will: +
-  * treat the restInserter and noteInserter as two parts of a single tool. +
-  * remember its current state (noteInserter/restInserter mode, and duration information) when another mode is entered. +
-  * recall its prior state (noteInserter/restInserter, and duration) when reentering Notaiton Insertion mode. +
- +
- +
-GUI related information: +
- +
-  * Graphic: red pencil (data/pixmaps/stock/pencil.png) +
-  * Shortcut Key: F3 +
-  * Scope: Accessible on same level as Select Tool, and Erase Tool (From most places within notation view) +
-  * Location:  Tools Toolbar, and Tools pulldowm menu. +
- +
-Note: Notation Inserter will have one icon associated with it to match the Draw mode of other RG windows. +
- +
-Notation Inserter State Information: +
- +
-  Note: These states are listed to show how things will work, they do not imply how things will actually be coded.  Code that achieves the same effect in a relatively efficient matter is acceptable. +
- +
-Initial State: (When notation view first opens) +
-* Notation Inserter is selected as the current tool (Draw mode on the Tools toolbar.) +
-* Notation Inserter is set to noteInserter mode. +
-* Duration is set to a default based on the time signature of the earliest measure being viewed. +
-    * x/2 time = half note/rest +
-    * x/4 time = quarter note/rest  +
-    * x/8 time = eighth note/rest +
-    * etc.  +
-  NOTE: from this point onward there will always be a duration associated with the notation tool. +
-* the Notation Inserter enterer Active State +
- +
-Active State: +
-* Depress Notation Inserter button on Tools Toolbar. +
-* Recall Notation Inserter state +
-  * If recalled state is noteInserter: +
-    * Update the duration Toolbar to display the note pallete (honor dot settings from recall) +
-  * If the recalled state is restInserter: +
-    * Update the duration Toolbar to display the note pallete (honor dot settings from recall) +
-  * Accept 'Y' shortcut to toggle between noteInserter and restInserter +
-  * Accept '.' shortcut to toggle between dot durations and non-dotted durations. +
-  * Plus cursor used for pointer on canvas. +
-  * process commands via keyboard, mouse, etc. (see Entering Active State below) +
-   +
-Non-active State: +
-  Note: This state occurs when another tool (mode) is entered.  These actions outline what happens during this time visually and also mentions methods the will trigger Active State, but does not imply any special coding. +
-* New modes button is depressed (Cleft Inserter, Text Inserter, Selection Tool, Eraser, etc.) +
-* Last pallete on duration toolbar stays visible with note or rest duration remaining depressed. +
-  Note: This is new.  Trunk deselects the button.  This feature will help users understand what duration will be used upon entering active state (regardless of note / rest inserter mode).  This will also serve as a reminder as to which state the Note Inserter tool is in (though not currently active.) +
-* 'Y' keystroke does nothing. +
-   Note: we can debate the value of this, but this is the current implementation in trunk +
-* '.' keystroke does nothing. +
-   Note: This is new.  In trunk a message box appears saying "no durtation is selected."  We could do something, but it is currently wired to be processed, but what value does it add to process it.  So to be consistent with the 'Y' keystroke in this state, just ignore it. +
-   +
-Entering Active Mode: +
-  Note: These items outline commands that trigger active state along with the actions tied to the keys.  Basically, with all of the actions and ways to interact via keyboard, mouse, etc. a proper notationInsert mode or restInserter mode can be entered in a consistent (and hopefully sane matter) that allows for predictable keyboard sequences and predictable durations based on the state recall of the Notation Inserter. +
- +
-* duration shortcut keys +
-  Note: These keys are active in all modes in the notation view window.  These action are a result of a 'best' compromise between competing needs of keyboard entry, visual feedback, and hybrid keyboard/mouse entry (keyboard durations and mouse pitch and location actions.) +
-  keystrokes: 1 2 3 4 5 6 8 0 +
-  Actions attached to keystrokes: +
-    Note: the duration attached to the keystrokes have not changed.  This is a description "conceptually" as to what happens when these actions are selected. +
-    * the recall state of the Notation Inserter is set to note_mode +
-      Note: this is different than trunk.  This is a restoring of what happens in Classic when the shortcut is selected +
-    * the recall state of the Notation Inserter is set to no dots. +
-      Note: this is the current behavior in trunk and classic. +
-    * Process Duration Shortcut (where keystroke is processed and then enter Active mode) (see Process Duration Shortcut below) +
- +
-* note shortcuts keys +
-  Note: These keys are active in all modes in the notation view window.  This is the behavior in trunk, but not in classic.  Classic displays a message box that says "no duration was selected" +
-  keystrokes: A B C D E F J I K L M N O Q R S U V W X Z +
-  Actions attached to keystrokes: +
-    Note: The actual pitch assigned to the keys have not changes +
-    * the recall state of the Notation Inserter is set to noteInserter. +
-    Note: This is new. Classic inserted rests when restInserter or is active (probably a bug).  Trunk insert notes via switching to noteInserter briefly then restoring restInserter (which is better).  But just switching to noteInserter is more consistent and we loose nothing for inserting rests (see rest shortcut below) +
-    * Process Note Shortcut (where keystroke is processed and then enter Active mode) (see Process Note Shortcut below) +
-     +
-* Notation Inserter tool +
-  Note: this refers to selecting Notation Inserter from the keyboard, pulldown menu, or mouse selection +
-  * If not in Active State +
-    * Enter Active State +
-  else +
-     * do nothing. +
-   +
-  Note: This would design will allow the Notation Inserter tool to act in a consistent manner as the otrher tools. +
-     +
-===== Secondary Tasks: ===== +
-* Cleaning up code associated with the duration toolbar +
-  * Look as 'switch to rest', 'switch to note', and 'toggle dot' code to set if some refactoring is needed.  Current implementation has these coded differently, but essentially act in the same manner as toggles. +
-  * Try to eliminate the need for duplicate action names.  currently there are 'duration_' prefixed actions that have almost equivalent non-prefixed actions. +
-* Set an example of cooperation and foster creativity, and communication. +
- +
-     +
-     +
-===== Some terminology: ===== +
-These terms a used to help focus the discussion in a way top make this page readable and transparent.  So when these words are used, they are meant in the context as stated in this section. +
- +
-Draw (Tool): This name is given in the source code.  Draw is the draw mode, typically represented by a red pencil and accessed via the Tools toolbar button, the F3 key, or from the pulldown menu. +
- +
-Mode:  I refer to this as the current state of input activity.  Draw mode, Select Mode, Erase Mode.  So this suggests RG functions in modes or states. +
- +
-Inserter: In the RG source code, it appear to be anything that draw events.  Ther word inserter appears to be asscociated with clefs, text, notes, rest, etc. +
- +
-noteInserter: The name is given in the source code.  noteInserts deal with drawing notes. +
-restInserter: The name is given in the source code.  restInserters deal with drawing rests. +
- +
-Notation:  Notes and Rests.  Other items are notation, but not in the context of this page. +
- +
-Notation Inserter:  A Tool for drawing notes and rests.  The Draw (Tool) for notation view.  (See main text for details). +
- +
-current state / prior state: In reference to Notation Inserter, The tool remembers its last state (noteInserter/restInserter, and duration) upon returning to it from another mode (tool). +
- +
-Depress: to show that a current item of a group is selected (implies the other items in group an "deselecte." +
-     +
-     +
-     +
-     +
-   +
- +
-The problem: +
-In notation view there is no explicit icon to indicate draw mode.  In the main RG window, matrix editor, and percussion editor, there is a specific draw mode available to each which is activaed via a mouse click, pull down menu in Tools, and / or a F3 keyboard shortcut. +
- +
-Notation view is much more complicated.  It has many "drawing" modes.  There are many ways we can go about accomidating this.  Historically, it was just ignored and users selected notes, rest, clefs, etc. without much notice to the lack of a draw mode.  This is because notation entry (or drawing) has been handled by a variety of methods.  Most of these methods couple another action along with the entering a particualr draw mode. +
- +
-So, just providing a Draw tool as part of the Tools toolbar gives everyone one something to focus on. +
- +
-So far we've all generally agreed on some level that there should be only one draw tool.  And do that it has to be a smart tool. +
- +
-Draw Tool capabilities: +
-  * The draw tool will tie together the rest_inserter mode and note_inserter mode +
-  * It will function like other draw mode tools in other RG windows.  I will be an equal with Select mode, and erase mode as far as accessibility and scope of finctionality -- It will do a very specific thing -- Insert Notation (notes and rests). +
-  * rest_inserter (Rest Mode) +
-    * Find / create / or reuse icons for toolbar and menu actions +
-    * shortcut key: 'F3' or some variation on them +
-    * add to Tools Toolbar / menu, etc. +
-  * note_inserter (Insert Mode) +
-    * Find / create / or reuse icons for toolbar and menu actions +
-    * shortcut key: 'Shift+F3' or some variation on them +
-    * add to Tools Toolbar / menu, etc. +
-**Justification:** +
-These actions allow consistent keystroke behavior when switching modes. Trunk and classic required a break in the duration / rest_insert action upon re-entry to these modes from other notation modes. +
- +
-**Issues to consider / explore:** +
-  * Consider shortcut key alternatives for these modes. +
-    * 'T' not a candidate as since it is used to bring up the transport. +
- +
-==== Create an intelligent duration mechanism for notation view ==== +
-  * Upon opening notation view, select the default note/rest duration to equal the denominator of the time signature +
-    * x/2 time = half note/rest +
-    * x/4 time = quarter note/rest  +
-    * x/8 time = eighth note/rest +
-    * etc.  +
-  * Restore last used duration upon re-entering note_inserter mode or rest_inserter mode from another mode. +
-  * When not in note_inserter mode or rest_inserter mode, pressing '.' enters note_inserter mode with the last duration selected -- but dotted if not already.  (New and preliminary.)  Should discuss.  No change to trunk send the message box up. +
- +
-**Justification:** +
-This allows for the elimination of the 'no duration selected' message box and creates a consistent and sane expected behavior for note / rest entry. +
- +
-**Issues to consider / explore:** +
-  * How should a default be chosen when more than one time signature appears in the notation view frame? (earliest time signature?+
-  * How does trunk currently behave in this regard? +
- +
-===== Secondary Tasks: ===== +
-==== Explore cleaning up code associated with the duration toolbar ==== +
-  * Look as 'switch to rest', 'switch to note', and 'toggle dot' code to set if some refactoring is needed.  Current implementation has these coded differently, but essentially act in the same manner as toggles. +
-  * Try to eliminate the need for duplicate action names.  currently there are 'duration_' prefixed actions that have almost equivalent non-prefixed actions. +
- +
-===== SVN notation_toolbar_2 Branch Information: ===== +
-**Branch location:** +
-[[http://rosegarden.svn.sourceforge.net/viewvc/rosegarden/branches/notation_toolbar_2]] +
- +
-**Branch date:** +
-August 25, 2009 +
- +
-**Estimated branch merge date:** +
-September 6th, 2009 +
- +
-**Branch creation commit information:** +
-Committed revision 10761.+
  
 +Testing...
  
 
 
playground/playground.txt · Last modified: 2022/06/16 10:57 (external edit)
Recent changes RSS feed Creative Commons License Valid XHTML 1.0 Valid CSS Driven by DokuWiki