NSoiffer / MathCATForPython

A Python Interface and NVDA plugin to MathCAT
MIT License
7 stars 7 forks source link

Relative rate #10

Closed NSoiffer closed 2 years ago

NSoiffer commented 2 years ago

For Richard:

For Neil:

ways2read commented 2 years ago

Lable is changed in #11

NSoiffer commented 2 years ago

Relative Rate still isn't speaking sensible numbers.

Two thoughts:

  1. Add a text field that mirrors the slider value
  2. Replace the slider with a text field and do a sensible number check of the result (or maybe there is a way to say 'only values in this range are allowed')
ways2read commented 2 years ago

Neil: Add a text field that mirrors the slider value

The speech would be really confusing I think.

Neil: Replace the slider with a text field and do a sensible number check of the result (or maybe there is a way to say 'only values in this range are allowed')

Perhaps we can separate what we present to the user from the requirement to write a number into the preferences file.

We could offer choices such as slowest, slower, slow, same, fast, faster, much faster, very fast and fastest. Maybe not enough granularity?

Or the option to choose between Slower and faster (like a great selector), and then amount (like the throttle)?

Richard


From: NSoiffer @.> Sent: Monday, March 21, 2022 7:32:10 AM To: NSoiffer/MathCATForPython @.> Cc: Richard Orme @.>; Assign @.> Subject: Re: [NSoiffer/MathCATForPython] Relative rate (Issue #10)

Relative Rate still isn't speaking sensible numbers.

Two thoughts:

  1. Add a text field that mirrors the slider value
  2. Replace the slider with a text field and do a sensible number check of the result (or maybe there is a way to say 'only values in this range are allowed')

— Reply to this email directly, view it on GitHubhttps://github.com/NSoiffer/MathCATForPython/issues/10#issuecomment-1073554114, or unsubscribehttps://github.com/notifications/unsubscribe-auth/ACFL5666GXVJHZFGTYHGZGDVBAQXVANCNFSM5REXQV5Q. You are receiving this because you were assigned.Message ID: @.***>

NSoiffer commented 2 years ago

I like the slower/faster idea, with each decreasing/increasing by 10% or so. I'm not sure whether the 10% would be from the current value or just an absolute -10/+10 so that the 10% is relative to normal speech rate. Also, a reset to 100% button would be good.

On Mon, Mar 21, 2022 at 10:29 AM Richard Orme @.***> wrote:

Neil: Add a text field that mirrors the slider value

The speech would be really confusing I think.

Neil: Replace the slider with a text field and do a sensible number check of the result (or maybe there is a way to say 'only values in this range are allowed')

Perhaps we can separate what we present to the user from the requirement to write a number into the preferences file.

We could offer choices such as slowest, slower, slow, same, fast, faster, much faster, very fast and fastest. Maybe not enough granularity?

Or the option to choose between Slower and faster (like a great selector), and then amount (like the throttle)?

Richard


From: NSoiffer @.> Sent: Monday, March 21, 2022 7:32:10 AM To: NSoiffer/MathCATForPython @.> Cc: Richard Orme @.>; Assign @.> Subject: Re: [NSoiffer/MathCATForPython] Relative rate (Issue #10)

Relative Rate still isn't speaking sensible numbers.

Two thoughts:

  1. Add a text field that mirrors the slider value
  2. Replace the slider with a text field and do a sensible number check of the result (or maybe there is a way to say 'only values in this range are allowed')

— Reply to this email directly, view it on GitHub< https://github.com/NSoiffer/MathCATForPython/issues/10#issuecomment-1073554114>, or unsubscribe< https://github.com/notifications/unsubscribe-auth/ACFL5666GXVJHZFGTYHGZGDVBAQXVANCNFSM5REXQV5Q

. You are receiving this because you were assigned.Message ID: @.***>

— Reply to this email directly, view it on GitHub https://github.com/NSoiffer/MathCATForPython/issues/10#issuecomment-1074202909, or unsubscribe https://github.com/notifications/unsubscribe-auth/AALZM3BWNDMWEUHPGCQGKRLVBCWYHANCNFSM5REXQV5Q . You are receiving this because you were assigned.Message ID: @.***>

ways2read commented 2 years ago

A slider control reports a value between 0 and 100. If the user can choose a speed slower/faster by this value, then to me this would mean they could make it speak up to twice the speed, or twice as slow (i.e. half the speed).

Is that the intention? If so, I just need to know what these values would map to for the MathRate value.

NSoiffer commented 2 years ago

My current feeling is that no one would want to slow it down below 20% of the current text reading speed or more than 200% of the current text reading speed.

That means 0 -> 20 (in prefs.yaml) and 100->200. If you can make it jump in steps of 10, that's 18 steps.

The unfortunate UIX about this is that 100% really should be in the middle, so maybe make it go from 0 to 200. So:

Alternatively, 20 - 180 would also center 100% and would avoid a need to check for 0. I can't imagine many people wanting to speed up the math, so even 180% is pretty fast.

NSoiffer commented 2 years ago

[capturing an email reply]

I think asking the maths group makes some sense, but usually people are better at saying "I like this" or "I don't like this".

One thing I think we should do regardless of what we decide for sliders/buttons/text box is have a speed preview so people hear the speed change. What MathCAT generates is a string like

the square root of x squared plus y squared end root This is then sent to a function in `___init___.py`: `_processMpSpeech(text, language)` and the whole call for speech is ``` speech.speak(_processMpSpeech(text, self.provider._language)) ``` `_processMpSpeech()` converts the string into what NVDA's speech engine needs. If we want to call that, I'll need to restructure `___init___.py` and break out the non-init parts into a separate file so that it can be imported by MathCATPreferences.py. I should probably do that regardless of this change. However, that function does a bunch of other things that aren't needed for this and so I think it makes more sense to just have a local function to MathCATPreferences.py which would be just a few lines and maybe clearer what is being done. One the other, maybe it is good to keep it all in one place... The bottom line is that if someone makes a change, they should immediately hear what the change will sound like. Does that immediate feedback make you rethink the design at all? Maybe the numerical audio feedback from the slider can be replaced by the speech. Or maybe the "slower"/"reset to text speed"/"faster" buttons make sense (hopefully users would figure out they can click on slower/faster multiple times).