Hi all,
My application didn't get selected to GSoC. But I would like to contribute
to this project since I developed an interest in it.
Best Regards!
Samadhi.
On 23 March 2016 at 16:02, Samadhi Poornima <
samadhipoornima...@cse.mrt.ac.lk> wrote:
> Hi all,
>
> Regarding the implementation of support for screen-reader, Orca on Linux,
> I am planning to use qt-at-spi in order to bridge QAccessible API’s to
> the AT-SPI 2 protocol enabling MuseScore to be used with Orca.
>
> I also added that to the proposal, but If you guys have any better
> alternatives please let me know.
>
> Best Regards!
> Samadhi.
>
>
>
>
>
> On 22 March 2016 at 20:13, Samadhi Poornima <
> samadhipoornima...@cse.mrt.ac.lk> wrote:
>
>> Hi all,
>>
>> Taking into account all the facts you guys pointed out, I created my
>> draft proposal. You can view it here.
>>
>> https://docs.google.com/document/d/1ofiRCitgEps9N8rvWYcCjmgdyu4QvUO-RBFKhoduXX4/edit?usp=sharing
>>
>>
>> Waiting for some feedback!
>>
>> Best Regards,
>> Samadhi.
>>
>> On 21 March 2016 at 21:16, Marc Sabatella <m...@outsideshore.com> wrote:
>>
>>> Andrei explained things well. I'll just add a couple of things:
>>>
>>> Whether we modify the existing "next element" command or add a new one
>>> is not important; actually we should get user feedback on that. If we do
>>> add a new one, there would be a choice between a single command that
>>> traverses all commands (and thus one would use *instead* of the existing
>>> command if one wanted to traverse all elements), or perhaps a command that
>>> just traverses the "children" of a given element. Any of these designs
>>> could conceivably work. And indeed, there is no single "child" concept in
>>> the Element class; different elements have different children. We *could*
>>> conceivably add a new virtual function "children" to the Element class and
>>> instantiate it as necessary for each sub-class that actually has child
>>> elements.
>>>
>>> Marc
>>>
>>> On Mon, Mar 21, 2016 at 3:47 AM Andrei Tuicu <andrei.tu...@gmail.com>
>>> wrote:
>>>
>>>> Sorry, accidentally hit send without finishing my email.
>>>>
>>>> 2016-03-21 11:35 GMT+02:00 Andrei Tuicu <andrei.tu...@gmail.com>:
>>>>
>>>>> Hello,
>>>>>
>>>>> I'm sorry if I wasn't clear before.
>>>>>
>>>>> 2016-03-21 5:44 GMT+02:00 Samadhi Poornima <
>>>>> samadhipoornima...@cse.mrt.ac.lk>:
>>>>>
>>>>>> Hi all,
>>>>>>
>>>>>>
>>>>>>
>>>>>> Here are some points that I need to clarify with you guys.
>>>>>>
>>>>>>
>>>>>> 2) Enable the use of keyboard to navigate to a text element or
>>>>>> an articulation or a crescendo marking.
>>>>>>
>>>>>> Use the existing “next element” code to traverse the "annotations"
>>>>>> for each ChordRest segment, the Articulations for each ChordRest, etc.
>>>>>> Here
>>>>>> what is remaining, according to my opinion, is to implement a method to
>>>>>> dynamically alter the string which is displayed in the status bar to
>>>>>> include attached elements. Andrei, please do share your original
>>>>>> plan to implement this. I think it will be helpful here.
>>>>>>
>>>>>>
>>>>> First of all, there is a distinction that needs to be made between
>>>>> what is in the status bar and what the screen reader reports.
>>>>> The screen-reader usually says more then the it is in the status bar.
>>>>> In the status bar you will see only the selected element, the
>>>>> screen-reader
>>>>> will also say informations about attached elements.
>>>>> Visual impaired musicians will rely on screen-reader feedback only,
>>>>> they don't have access to the status bar itself. The status bar info is
>>>>> for
>>>>> non-visually impaired users. I hope that I explained this part clearly. If
>>>>> not please ask about specific points where you are not sure.
>>>>>
>>>>> Looking at the code from here:
>>>>> https://github.com/musescore/MuseScore/blob/master/libmscore/element.h#L587
>>>>>
>>>>> - Status bar: accessibleInfo
>>>>> - Screen-reader: screenReaderInfo + accessibleExtraInfo (attached
>>>>> elements)
>>>>>
>>>>>
>>>>> Ok, at this point here is what you have:
>>>>>
>>>>> - Screen-reader feedback when selecting an element (for *all*
>>>>> elements, including annotations, articulations, text elements, etc.).
>>>>> - Screen-reader feedback for all the attached elements when
>>>>> selecting notes/rests/barlines/clefs (might be others, but I don't
>>>>> remember
>>>>> specifically)
>>>>> - Status bar info on the selected element (for all elements).
>>>>> - A "nextElement" command for reading a score, that will select
>>>>> step by step notes/rests/barlines/clefs, basically all the elements
>>>>> that
>>>>> are standalone (non-attached). Using this command a user can traverse
>>>>> the
>>>>> score and find out about all the elements that are there, because the
>>>>> screen-reader will tell them about the current selected element and
>>>>> about
>>>>> all the elements attached to it.
>>>>>
>>>>> I don't think Marc was saying that you should modify the existing code
>>>>> for "nextElement" command (Marc, please correct me if I'm wrong here). You
>>>>> can look and see how I did things there in order to help you with your
>>>>> implementation.
>>>>>
>>>>> What you have to do:
>>>>>
>>>>> Create a command that can traverse *all* the elements. You don't need
>>>>> to change the existing code in order to have screen-reader feedback, just
>>>>> if you want to improve it, otherwise just selecting elements is enough.
>>>>> Users will use this command for editing the score, as opposed to the
>>>>> previous one which is used for reading only. My plan to implement this was
>>>>> as following: Look at the score as a tree data structure (which it is -
>>>>> each element has "children" and a parent: the Score object is the root,
>>>>> its
>>>>> children are the measures; the measures have as children segments, etc.
>>>>> Marc can give you a crash course in the structure of the score, he
>>>>> explained it to me as well) and implement a preorder traversal of this
>>>>> tree. My idea of algorithm was as following:
>>>>>
>>>>> 1. if nothing is selected: select the first element (you have code
>>>>> for selecting the first element)
>>>>> 2. if the current selected element has children, select the first
>>>>> one.
>>>>> 3. else go to parent and select the next child.
>>>>>
>>>>> I don't remember if there is an actual field in the Element class
>>>>> "children", so each type of element has children defined differently.
>>>>> There
>>>>> will also be some other corner cases for Spanners object, but you will
>>>>> figure this things out as you go.
>>>>>
>>>>>
>>>>>> 5) Support for other screen-readers- VoiceOver on OS X and
>>>>>> also Orca on Linux.
>>>>>>
>>>>>> When implementing support for VoiceOver on OS X , I will face a
>>>>>> problem since I do not own a Macintosh
>>>>>> <https://en.wikipedia.org/wiki/Macintosh> computer. Any word of
>>>>>> advice on this issue will be helpful.
>>>>>>
>>>>>> As Lasconic said, if you don't have a Macintosh don't include this
>>>>> in your proposal. Focus on making everything work smooth with NVDA, then
>>>>> look at Orca (which is free and open source). If you finish everything
>>>>> else
>>>>> and have time to spare you can try to get an OS X. My advice is to try and
>>>>> look at ways to virtualise an OS X rather than trying to get an actual
>>>>> Macintosh computer. I don't know much about Apple products, but you may be
>>>>> able to find trial versions for OS X and there are free solutions for
>>>>> virtualisation that support it like VMWare player and VirtualBox. If not,
>>>>> you could try cloud solutions. I don't know if Amazon has support for OS
>>>>> X,
>>>>> but there is http://www.macincloud.com/ (never tried it, just googled
>>>>> it) and they seem to have a student pay plan. What I'm trying to say is
>>>>> that there might be solutions to get access for free to a OS X just for a
>>>>> number of day which are necessary to take a look at VoiceOver.
>>>>> JAWS is another alternative of screen reader on Windows that has a lot
>>>>> of users. It has a trial version that requires you to restart your
>>>>> computer
>>>>> at every 30 minutes or so, but at least you don't have to pay for it. :)
>>>>>
>>>>> In addition, I add the following point to my list.
>>>>>>
>>>>>>
>>>>>> 6) Make the palettes accessible to the screen reader.
>>>>>>
>>>>>> If we have the implementation for QAccessibleWidget for the Palette
>>>>>> object already, I think it remains only to implement the part which
>>>>>> gathers
>>>>>> the information from the selected element and creates the string which is
>>>>>> displayed in the status bar and exposed to the Screen Reader.
>>>>>>
>>>>>> I think what I said was a bit confusing, in the code from my branch
>>>> you have to following:
>>>>
>>>> - support for traversing the palettes using just the keyboard
>>>> - screen-reader feedback for the selected element
>>>>
>>>> In addition you have in the MuseScores master branch from the offical
>>>> repository:
>>>>
>>>> - support for adding the selecting element when Enter/Return is
>>>> pressed (implemented by Marc)
>>>>
>>>> What you have to do here is:
>>>>
>>>> - rebase/cherry pick my commits on the master branch and resolve
>>>> the eventual conflicts
>>>> - see if there are improvements to be made, or bugs to fix
>>>>
>>>> And aside from this comes the idea for searchable palettes that you
>>>> will have to implement from scratch.
>>>> As explained at 2), there is no direct correlation between the status
>>>> bar and the screen reader feedback. The status bar is extra.
>>>> Once the QAccessibleWidget is implemented for a QWidget,
>>>> QAccessibleInterface for QObject and registered you have screen-reader
>>>> support. You might have to implement yourself a QAccessibleWidget depending
>>>> on how you design your search feature for the palettes.
>>>>
>>>> Hope this helps!
>>>> Good luck!
>>>>
>>>> Andrei
>>>>
>>>>
>>>>>
>>>>>>
>>>>>> Best Regards,
>>>>>>
>>>>>> Samadhi.
>>>>>>
>>>>>> On 20 March 2016 at 20:30, Lasconic <lasco...@gmail.com> wrote:
>>>>>>
>>>>>>> Just want to add that Braille output is a huge project by itself if
>>>>>>> we want to do it from scratch... So I wouldn't focus on this during a
>>>>>>> GSoC
>>>>>>> project. Your point 1, 2, 4 and 5 are more focused on MuseScore's
>>>>>>> accessibility.
>>>>>>>
>>>>>>> Regarding braille though...
>>>>>>> We could of course integrate with freedots, but the project is
>>>>>>> currently inactive. However it's the shortest road.
>>>>>>> I currently operate http://musicxml2braille.appspot.com/. Doing a
>>>>>>> REST API call from a plugin to get Braille out is probably doable. But,
>>>>>>> of
>>>>>>> course, the plugin needs to be accessible... Not sure it's the case for
>>>>>>> any
>>>>>>> plugin right now.
>>>>>>>
>>>>>>> lasconic
>>>>>>>
>>>>>>> 2016-03-20 7:48 GMT+04:00 Marc Sabatella <m...@outsideshore.com>:
>>>>>>>
>>>>>>>> On Sat, Mar 19, 2016 at 1:51 AM Samadhi Poornima <
>>>>>>>> samadhipoornima...@cse.mrt.ac.lk> wrote:
>>>>>>>>
>>>>>>>>
>>>>>>>>> 2). Enable the use of keyboard to navigate to a text element or an
>>>>>>>>> articulation or a crescendo marking.
>>>>>>>>>
>>>>>>>>
>>>>>>>> I think there is probably a pretty straightforward model for how
>>>>>>>> this could work, based on the existing "next element" code Andrei added
>>>>>>>> (which navigates clefs and barlines and some other elements, but not
>>>>>>>> articulations, text, or crescendos) but making sure to also traverse
>>>>>>>> the
>>>>>>>> "annotations" for each ChordRest segment, the Articulations for each
>>>>>>>> ChordRest, etc. Here as elsewhere, feedback from actusal blind users
>>>>>>>> would
>>>>>>>> be useful.
>>>>>>>>
>>>>>>>>> 3). Braille output- I plan on doing this by calling the FreeDots
>>>>>>>>> executable once the user enters the command to import the file to
>>>>>>>>> braille.
>>>>>>>>> However, this would not be the optimum solution to this since
>>>>>>>>> FreeDots is
>>>>>>>>> written in java.
>>>>>>>>>
>>>>>>>>
>>>>>>>> There are other concerns here too. FreeDots is a good thing, but
>>>>>>>> it is pretty limited in what it can do. There are other automatic or
>>>>>>>> semi-automatic MusicXML->Braille converter, each of which also has
>>>>>>>> limitations but different progrsams have different strengths and
>>>>>>>> weaknesses. There are a few people out there in the world who have
>>>>>>>> done
>>>>>>>> fairly extensive study of these issues that you might want to consult,
>>>>>>>> also
>>>>>>>> it might be good to contact the develoeprs of these tools to get a
>>>>>>>> sense of
>>>>>>>> their plans for the future to see which tool might make the most sense
>>>>>>>> for
>>>>>>>> us to focus our integration efforts on. Frankly, I'm not 100%
>>>>>>>> convinced it
>>>>>>>> wouldn't someday be worth implementing out own Braille export, working
>>>>>>>> directly from our own score representation (although I recognize that
>>>>>>>> this
>>>>>>>> becomes one more thing to maintain over time, so I don't make this
>>>>>>>> statement lightly).
>>>>>>>>
>>>>>>>> Marc
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> ------------------------------------------------------------------------------
>>>>>>>> Transform Data into Opportunity.
>>>>>>>> Accelerate data analysis in your applications with
>>>>>>>> Intel Data Analytics Acceleration Library.
>>>>>>>> Click to learn more.
>>>>>>>> http://pubads.g.doubleclick.net/gampad/clk?id=278785231&iu=/4140
>>>>>>>> _______________________________________________
>>>>>>>> Mscore-developer mailing list
>>>>>>>> Mscore-developer@lists.sourceforge.net
>>>>>>>> https://lists.sourceforge.net/lists/listinfo/mscore-developer
>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> ------------------------------------------------------------------------------
>>>>>>> Transform Data into Opportunity.
>>>>>>> Accelerate data analysis in your applications with
>>>>>>> Intel Data Analytics Acceleration Library.
>>>>>>> Click to learn more.
>>>>>>> http://pubads.g.doubleclick.net/gampad/clk?id=278785231&iu=/4140
>>>>>>> _______________________________________________
>>>>>>> Mscore-developer mailing list
>>>>>>> Mscore-developer@lists.sourceforge.net
>>>>>>> https://lists.sourceforge.net/lists/listinfo/mscore-developer
>>>>>>>
>>>>>>>
>>>>>>
>>>>>>
>>>>>> ------------------------------------------------------------------------------
>>>>>> Transform Data into Opportunity.
>>>>>> Accelerate data analysis in your applications with
>>>>>> Intel Data Analytics Acceleration Library.
>>>>>> Click to learn more.
>>>>>> http://pubads.g.doubleclick.net/gampad/clk?id=278785351&iu=/4140
>>>>>> _______________________________________________
>>>>>> Mscore-developer mailing list
>>>>>> Mscore-developer@lists.sourceforge.net
>>>>>> https://lists.sourceforge.net/lists/listinfo/mscore-developer
>>>>>>
>>>>>>
>>>>>
>>>> ------------------------------------------------------------------------------
>>>> Transform Data into Opportunity.
>>>> Accelerate data analysis in your applications with
>>>> Intel Data Analytics Acceleration Library.
>>>> Click to learn more.
>>>> http://pubads.g.doubleclick.net/gampad/clk?id=278785351&iu=/4140
>>>> _______________________________________________
>>>> Mscore-developer mailing list
>>>> Mscore-developer@lists.sourceforge.net
>>>> https://lists.sourceforge.net/lists/listinfo/mscore-developer
>>>>
>>>
>>>
>>> ------------------------------------------------------------------------------
>>> Transform Data into Opportunity.
>>> Accelerate data analysis in your applications with
>>> Intel Data Analytics Acceleration Library.
>>> Click to learn more.
>>> http://pubads.g.doubleclick.net/gampad/clk?id=278785351&iu=/4140
>>> _______________________________________________
>>> Mscore-developer mailing list
>>> Mscore-developer@lists.sourceforge.net
>>> https://lists.sourceforge.net/lists/listinfo/mscore-developer
>>>
>>>
>>
>
------------------------------------------------------------------------------
Find and fix application performance issues faster with Applications Manager
Applications Manager provides deep performance insights into multiple tiers of
your business applications. It resolves application problems quickly and
reduces your MTTR. Get your free trial!
https://ad.doubleclick.net/ddm/clk/302982198;130105516;z
_______________________________________________
Mscore-developer mailing list
Mscore-developer@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mscore-developer