Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Round frequency to 100Hz when clicking FFT display #172

Open
wants to merge 2 commits into
base: develop
Choose a base branch
from

Conversation

jwt27
Copy link

@jwt27 jwt27 commented Aug 30, 2020

Currently OWRX displays the tuner frequency in MHz with 4 decimal digits, omitting the last two. When clicking on the FFT waterfall it is then impossible to see which frequency you actually tuned to, and exactly 99 out of 100 times, it's not the one you want. Especially for SSB transmissions it's very impractical to tune by clicking, you end up always entering the frequency manually.

Solution: round the frequency to a multiple of 100Hz. I find that this one simple tweak is a massive increase in usability. Ideally I think the tuner window should show the full frequency in Hz, with a selection dropdown for grid/step size. I'd have to study the code more (and learn js) if I were to implement that, however. For now, I think this small change is already a step in the right direction.

@jketterl
Copy link
Owner

This will need to integrate with the actual frequency display in some way. I like the idea, but I know that some people have modified the frequency display to display more digits, and to them it will be rather odd. I think it's a good idea to make the frequency display precision configurable at some point, it already has most of the code.

Also, the idea to have some configurable steps to snap to has been around before, but has not been fully discussed yet. See #136.

@jwt27
Copy link
Author

jwt27 commented Aug 30, 2020

I just figured out how to make a dropdown menu so we're able to select the frequency step to snap to. It looks like this: (and yes, I also changed the display to show all digits. I really think that should be the default.)

image

Would you want me to force-push this here or should I make a new PR?

@jketterl
Copy link
Owner

I would like you to participate in the discussion before you build things. Otherwise you will find out very soon that I don't like the receiver controls to become cluttered with minor items.

Thank you.

@jwt27
Copy link
Author

jwt27 commented Aug 30, 2020

I'd like to push these changes somewhere so you can evaluate them, and we can discuss what needs to be changed. I'm all for constructive criticism, that's what PRs are for.

Where do you think such a control should be placed, and what it should look like?

@jketterl
Copy link
Owner

I don't think you understand. I don't have a space available where such controls should go at the moment, that's why I'm inviting you to the discussion.

I'm not a big UX designer, but I'm trying to keep the main receiver controls somewhat clean and easy to understand, they should be very intuitive to control, even for radio novices. I am reminded of what it looks like when one just keeps adding features with no concept every time I visit a KiwiSDR receiver, and I won't allow the same to happen here.

@jwt27
Copy link
Author

jwt27 commented Sep 1, 2020

I was not familiar with KiwiSDR, so I just looked up a public one. And yes... I see what you mean. There also seems to be no consistent visual style to it, which I think magnifies the subjective experience of clutter. Explicitly hiding features on the other hand, as with the scrollable frequency digits, makes for an even worse user experience, in my opinion.

Speaking as a novice to OWRX (and radio in general, I only very recently installed my first SDR), the tuning inaccuracy was the first thing that annoyed me, so a snap-to-grid option was the first thing I went looking for. When you see a transmission appear, your intuition is to quickly tune to it by clicking the FFT display. After some careful clicking, the frequency shows as a round number, eg. 1.2340 MHz, yet it still sounds off. Only until you click the frequency display (and it is not immediately obvious that this is possible) you find that it's actually set to something like 1,233,953 Hz. Then you have to fill in the frequency manually, remembering the number of digits, etc. You lose time here which is important in a real-time application, the transmission could be over by the time you tune in correctly. And then once you are tuned to a round number, you must be very careful to only use the scroll feature and not accidentally click on the spectrum. I find it not a user-friendly experience.

How would you feel about adding a settings panel above the receiver window? This would be closed on startup and only appear if you click the settings button in the top right. I've been trying to implement such a panel, it could look something like this:
image
A snap-to-grid setting could also be placed here, however personally I feel it is important enough that it should be visible somewhere on the receiver window. Let me know what you think.

@doccodyblue
Copy link

This has been a while now but still is relevant somehow. As a HF listener it is somehow painful to tune in to a SSB station. Nowadays these stations are most of the time really accurate tuned to a frequency ending on 0 in the 100Hz digit. At least most stations have a 0 in the 10Hz digit. My conclusion here would be: If we round the "clicked" frequency to the nearest 0 we have a better rate on hitting the "right" frequency at first try. In my opinion this would lead to a better tune experience.
Another approach could be: Click close to a wanted signal (this is a coarse tune) and then tune digits with the mouse wheel. The current workflow is: Take your mouse on the last digit, put it to 0. Put the mouse on the next digit (10Hz), scroll it to 0. Go to the next digit and tune in. Thats a lot "put to 0" steps. Instead we could simply we could tune the 100Hz digit with the mouse and set the lower digits (10Hz, 1Hz) to 0 on change. That would possibly be a mild change to the code but eases up the tuning process a lot.
No change to the UI involved. Maybe an additional line in the settings.

@ageras1
Copy link

ageras1 commented Oct 31, 2021

It could be an additional option in profile settings so you can set it 12.5kHz in in the FM profile and 100Hz in the HF profiles or whatever you want. But there still has to be a way to disable it, i don't know if you want another button or what the icon could be so it is obvious. I wouldn't like it to be cluttered also, until now it in nice and simple.

@doccodyblue
Copy link

But there still has to be a way to disable it,

But why? you always have the option to tune manually with the mouse wheel or by typing in the frequency. (Provided that the "snapping" or "rounding" only takes place by clicking in the waterfall.

It would be great to link the settings to a mode though. Listening to broadcast FM takes way other tuning steps compared to CW or SSB

@jketterl
Copy link
Owner

jketterl commented Nov 5, 2021

It would be great to link the settings to a mode though.

Please also consider that this is not a 1:1 relation. Example: AM tuning is 9kHz steps on MW, but 10kHz on SW. NFM tuning may be 12.5kHz or 25kHz. The latter example may not be the critical one since that's a multiple.

@ageras1
Copy link

ageras1 commented Nov 5, 2021

In my setup i would put a step of 100Hz on every ham band, because when i click on a signal i am usually off by less than 400Hz. Then i can quickly correct with the mouse wheel on the frequency display.
For FM the step would be 1000Hz and on AM either 100Hz or 1000Hz (on gqrx default is 100Hz and it is fine for me).

I would suggest when you scroll the wheel on top of the waterfall (on the ruler?) , the frequency moves by the predefined steps for the band (same way it works on gqrx and sdr++). Or zoom on the ruler and frequency steps on the waterfall (as in gqrx).

Only the first part would be fine, the second is just a shortcut not so importand.

@doccodyblue
Copy link

Would it be helpful to have something like

"tuning_grid": { "cw": 10, "usb": 100, "am": 9000 },

as an OPTION attached to each profile?

If you have a "MW Broadcast" profile, you can do "big" steps, if you have a "40m HAM" profile, you can go with smaller steps or even no grid at all (no entry = no grid maybe?)

@jketterl
Copy link
Owner

jketterl commented Nov 8, 2021

This may make sense as a default, but I don't think it's a good idea to force it. The user should be able to override this.

@doccodyblue
Copy link

Ok, so we may need a UI-way to toggle between grid and "free tuning" without introducing new buttons.
I could think of clicking while holding "shift" or "command" = free tuning, without = "snap to grid"
Another idea could be: Click the yellow tuning indicator (the filter curve) with RMB -> turns to red -> snap to grid. Click with RMB again -> back to free tuning

@jketterl
Copy link
Owner

jketterl commented Nov 8, 2021

Well I don't know about the others, but for me, that's even less intuitive than just spamming buttons. Still looking for better UX ideas.

@ageras1
Copy link

ageras1 commented Nov 9, 2021

The default is as it is. In (localhost)/settings/sdr/sdrplay/profile/20m you have the default options (profile name, sample rate ....). You can create a new profile and fill in the required settings as it is. On the bottom there are some "Additional optional settings" that are not required.

The end user can only use the profiles you already configured. For each profile you (as admin) can set extra options like IF Mode or whatever is on "Additional optional settings" (as it is right now).

So i suggest to just add another "Additional optional settings" for Frequency Step. It will exist there as an option, not default. It would be unique for each profile separately (as every other "Additional optional settings").

That is how i think it can be implement without changing the default behavior (or adding another complexity). BUT i don't know how it could be implemented on code. When you click on the waterfall to change frequency you have to take acount if the "Frequency Step" is set or not and then just round the value to "set" number or not.

edit? i am just making suggestions that i think are constructive. i can't code and i am happy with the software as it is. this is not a request.

@ElectroMW
Copy link

As for UX - how about small tab(s) to the left side of the receiver with a small, contextual icon which when clicked animates an additional panel for additional settings such as this.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants