Skip to content

Improve tuning on touch devices #29

@daveisadork

Description

@daveisadork

Current State

Tuning a slice to a new frequency is one of the most common interactions users will need to perform. But, slice tuning on touch devices can be painful today. At the band-zoom level on an iPad, a user's screen will look like this:

Image

If we assume that a user is, for example, POTA hunting, then they will want to monitor the entire band for activity and quickly tune to different signals. Currently, there are 3 different ways to do this:

1. Enter the frequency directly

Image

A user can directly enter a frequency using the frequency input on the slice flag. This approach works, and is maximally precise, but editing text on touch devices is very tedious and error-prone, and it requires the user to know the exact frequency of the signal they see in the panafall. If the assumed frequency is realized to be off once tuned, fine tuning is required.

2. Double-tap

A user can double tap in the panadapter or waterfall area to instantly tune the active slice to that spot. However, precision is low and the slice will frequently end up 1kHz above or below the intended frequency, and then require fine tuning.

3. Touch and Drag

A user can touch the slice (either the vertical bar on the current frequency, or anywhere in the filter visualization area) to drag and move the slice to a new frequency. This interaction is intuitive and works well in many cases, but has some problems:

Sensitive to panadapter height

Image

It's possible for users to size the panadapter such that the touch target for moving the slice is almost entirely obscured by the slice flag itself.

Zoom level and step size affect precision

When zoomed out, it can be very difficult or actually impossible to precisely drag the slice to the desired frequency. It may require single-pixel precision, or if the bandwidth per pixel exceeds the step size in Hz, it could actually be impossible to tune to the desired frequency without zooming in.

What is needed?

Users need a quick way to finely control the tuning of a slice. As I see it, this essentially takes 2 different forms:

  1. The user has tuned to a new frequency by entering it directly or double-tapping on a signal, and now needs to finely adjust the frequency, potentially only moving up or down a few steps.
  2. The user has touched and coarsely dragged the slice near the desired frequency, and needs to transition to fine-tuning to precisely stop dragging on the desired frequency.

Some proposed solutions

Below are some proposed solutions. An ideal solution would be easily discoverable or obvious, and if it represents a separate "mode," should be quick and easy to transition to/from.

Nudge buttons

We could have buttons for "nudging" the slice left or right by the current step size. Do the buttons live on or near the slice flag (and therefore move when you touch them)? Or do we have fixed buttons somewhere that just affect the active slice?

Non-linear dragging

We could have some way of entering a fine tuning mode where dragging the slice is non-linear, allowing higher precision. How do we enter and leave this mode? If you are currently dragging, can you somehow enter fine tuning mode to finish your dragging operation or do you need to stop and then do something else to entire fine tuning mode?

Touch-optimized frequency entry/editing

We could have a touch-specific interface for directly editing the frequency that avoids text entry. We should probably do this no matter what. We could do something like SDR++ where each digit has increment/decrement buttons, or a touch-scrollable entry like iOS alarms.

A virtual tuning knob or wheel

We could have a velocity-sensitive control that functions like a tuning wheel (similar to the iOS version of SmartSDR). Where would this live, and how would it be shown or hidden?

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions