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

SDR-J-FM 3.0 Feedback #9

Open
andrewfer000 opened this issue Dec 14, 2022 · 66 comments
Open

SDR-J-FM 3.0 Feedback #9

andrewfer000 opened this issue Dec 14, 2022 · 66 comments

Comments

@andrewfer000
Copy link

Not an issue but just some feedback on the latest version of the sofrware. Most feedback is about the new UI.

First off, I got to say you got the RDS decoding is really good compared to the last version. The text cuts off by a few characters at times but still it's night and day better. However RDS kind of breaks when AFC is enabled but when that's disabled it's really good. There is no difference between RDS-1 and RDS-2 for the AFC and character thing I mentioned.

The new UI looks cool and is something I enjoy having on my TV. My only suggestion is that the RDS display is slightly larger and different parts can be resized, specifically the bookmarks.

I don't know if it's my KDE theme or sdr_j_fm but when clicking in the drop down menu text can be hard to see. It's still visible but I can see some people having trouble with it.

Also I found getting started pretty hard. As someone who is tech savvy I know what many of these options do. However a new user may have trouble. The tooltips are helpful but are still technical. Maybe a future version can have some settings presets such as "FM USA" or "FM Europe" etc. that a user can choose from to get up and running right away. I also didn't know about the new volume control and was wondering why I had no sound to realize the volume slider was at -999 which took me a few minutes to figure out.

Here's a screenshot of my setup if you're curious and/or you want to share it as a screenshot on the ReadMe

image

Btw, Here is what I'm talking about a few characters being cut off. It's not bad but I find it interesting how it's only 1-3 characters every time. Mostly it's been 1 character.

image

I see you put a lot of hard work in this version. Thanks again for maintaining and improving this program. This new version was a pleasant and unexpected surprise for me. Really made my day!

@JvanKatwijk
Copy link
Owner

JvanKatwijk commented Dec 14, 2022 via email

@andrewfer000
Copy link
Author

I did run into one problem however. The bookmarks I added did not save after the program was closed. Deleting the stations bin file in my hone directory and trying again did not fix it. The new stations bin file was not created. This is the appimage version.

@JvanKatwijk
Copy link
Owner

JvanKatwijk commented Dec 15, 2022 via email

@tomneda
Copy link
Contributor

tomneda commented Dec 16, 2022

Hello Andrew and Jan,

Andrew: "thank you for the flowers" (as we say for the commendation in Germany) :-). I could set up my improvements onto a well working, stable "basis" which Jan did and makes much fun to do that improvements.

Jan: Thank you also I could let include most of my changes in your code. They are still some issues open as Andrew found also some. I guess I could do some further work the next days and try to improve things.

Jan: the bad readable coloring in combo-boxes is still existing at my side (in Xubuntu, in Window I could not try yet). What it also bad on the "Adaptic" stylesheet are the check-boxes. They have green rectangles when they are checked. So far so good. But they also show that green rectangle when only the mouse is hovering over that check box even it is not checked; this clutters somehow. This was the reason I preferred the other stylesheet "Combinear". But your choose with "Adaptic" is quite more colorful what I would also prefer else. I know currently nothing about stylesheets but I could also try to change this behavior.

I would like write a bit more but it is late now I had to work tomorrow (better: today), but I will give a notice later of any progress.

Jan: I did not write you a mail to thank for the merge as the other three (in sequence) mails to you still "open". I did not want to create a further parallel thread :)

@JvanKatwijk
Copy link
Owner

JvanKatwijk commented Dec 16, 2022 via email

@andrewfer000
Copy link
Author

Andrew: "thank you for the flowers" (as we say for the commendation in Germany) :-). I could set up my improvements onto a well working, stable "basis" which Jan did and makes much fun to do that improvements.

Yeah your welcome I think you did an incredible job with this. All the features work very well and if you continue to work on features and/or fixes and need anything (testing, InputDumps, etc...) let me know.

I don't know about Germany. But in the USA we still use Analog radio everywhere and have no real good digital standard. We have something called HD Radio (NRSC5-C) for digital which is okay but when it comes to audio quality is drastically inferior compared to the global DAB+ and even DRM and HD is technically proprietary so HD Radios are rare and expensive unlike DAB radios you can get pretty much anywhere. Analog has less features but the sound quality is much better in many cases. This is why Analog radio programs that are easy to use and have cool features like RDS decoding is nice to have. So yeah thanks again for your hard work.

@andrewfer000
Copy link
Author

Hey one more thing about RDS-

I learned that the PTY codes are different in North America than they are in Europe.

https://www.fmsystems-inc.com/rbds-rds-pty-codes-program-types/

Is there a place in the code or a file somewhere that I can change for these?

Also how do I compile on Linux? I used to know how but I forgot since the appimage release. Also since then I switched from Ubuntu to Fedora so I need to figure out the different libraries I need to install. Do you just use regular make or something like cmake or qumake?

@JvanKatwijk
Copy link
Owner

JvanKatwijk commented Dec 18, 2022 via email

@JvanKatwijk
Copy link
Owner

JvanKatwijk commented Dec 18, 2022 via email

@JvanKatwijk
Copy link
Owner

JvanKatwijk commented Dec 18, 2022 via email

@JvanKatwijk
Copy link
Owner

JvanKatwijk commented Dec 19, 2022 via email

@andrewfer000
Copy link
Author

Hey Jvan,

It works well. My bookmarks now save and the PTY makes a lot more sense now lol.

I think the PTY codes are only different in North America.

Like everything else when it comes to technology, North America always has to do something different and technically inferior compared to everyone else. (Looking at you too ATSC TV and HD Radio)

In any case, Thanks again for all your hard work. I use this program almost everyday to listen to my news and music so I appreciate it.

@JvanKatwijk
Copy link
Owner

JvanKatwijk commented Dec 19, 2022 via email

@andrewfer000
Copy link
Author

I run Linux specifically Fedora.

@JvanKatwijk
Copy link
Owner

JvanKatwijk commented Dec 19, 2022 via email

@tomneda
Copy link
Contributor

tomneda commented Dec 20, 2022

Hi Jan,
good to know that you mainly develop under Linux. I personally prefer Windows (where I use more "professional" (bought) SW) but I like the idea of a free OS. So I mainly develop this fmreceiver under Windows and check how it works under Linux. In work I also develop under Windows and Linux (Ubuntu and Yocto).

I use the QTCreator in Windows (Win10) and Linux (Xubuntu) and I used formerly the *.pro file for setup the project which worked fine. You provide also a CMakeLists-file etc. and I would like to turnover to this concept and not using the *.pro-file further. For Windows this does not work yet but I currently working on this.

Of course, I have some question to you :) :

  • Which develop tool (IDE) do you use?
  • Do you prefer the *-pro-file or also more CMake? (Maybe you/we could omit the *.pro at all in the future?)
  • What tab size has you chosen in your IDE that I have the same look at you see? (see comment below)
  • Can you easy explain how you build the windows setup? (seems you only works with Linux)

Regarding tab size: Some IDE uses 2, 4, 8, 10 spaces. Some align them on an equidistant step position, others inserts this number of (virtual) spaces. So finally it looks very different on different IDEs using tabs. This is the reason why my company forbids using tabs at all since a very long time. There the IDE must configured such way that the TAB key inserts a certain amount of numbers of real spaces (we use 2 spaces for indention). The source files grows up a bit bigger in size but they looks like the same in every editor. I mention this because it is a bit difficult for me to provide pull requests to you. Of course, I want to preserve your code style but this is difficult with this tabs in it. For a test, you could try to select another step size for a tab and you will see how different the code looks like. So, I asked the question above to you to setup my IDE with the same tab step size for a easier mergeable pull request.

Andrew: I wanted also say some words about your comment ( #9 (comment) ) but I have to shift this to a later time. I am still "under pressure" for X-mass things etc. I hope I can you answer soon.

BR
Thomas

@JvanKatwijk
Copy link
Owner

JvanKatwijk commented Dec 21, 2022 via email

@tomneda
Copy link
Contributor

tomneda commented Jan 7, 2023

Hello @JvanKatwijk ,

thanks for integrating the PSS feature fully into the master branch.

You mentioned above an issue in QT-DAB where rtlsdr.dll in Windows crashes somehow. I tried out the current (3 days old) 5.0 and 4.4.2 version and also older versions with (unfortunately) the same version numbers but older code and with all four I have no issue with the RTL stick while switching between channels (eg. 11d to 10d and others). It reacts stable within some seconds.

But I have an issue when I recall the device "dabstick" in the device list again:
grafik
(DAB stick not found. Please use a RTL2832U or similar chip set).

I got this only repaired when I restart the complete QT-DAB program. Only using other device between did not help.

BR
Thomas

@JvanKatwijk
Copy link
Owner

JvanKatwijk commented Jan 7, 2023 via email

@tomneda
Copy link
Contributor

tomneda commented Jan 7, 2023

Hi @andrewfer000 ,

Regarding your text above:

I don't know about Germany. But in the USA we still use Analog radio everywhere and have no real good digital standard. We have something called HD Radio (NRSC5-C) for digital which is okay but when it comes to audio quality is drastically inferior compared to the global DAB+ and even DRM and HD is technically proprietary so HD Radios are rare and expensive unlike DAB radios you can get pretty much anywhere. Analog has less features but the sound quality is much better in many cases. This is why Analog radio programs that are easy to use and have cool features like RDS decoding is nice to have. So yeah thanks again for your hard work.

In Germany analog FM is still important and will not die so soon even DAB+ exists here already a longer time in parallel. This is really because the quality of the FM signal is almost very good. All years some politician said that the FM should be switched off soon because of the good DAB+ network but there are still many FM users and because of the good quality they do not dared yet switching it off. (hope this is so still for a while)

But DAB+ has also some kind of a good quality relative to DAB (without plus). The former DAB has older audio codecs with lower compression rate and a worse data correction (missing Reed Solomon codecs).
The best improvement in DAB+ could be the SBR (https://en.wikipedia.org/wiki/Spectral_band_replication) which extents the upper frequency which (can) got lost while data compression. But this is only some kind of "workaround" reproducing a good sound.

For me FM is as good as DAB+. FM (Stereo) suffers more from noise if the signal strength is not high enough. DAB+ suffers from compression artifacts sometimes but has no noise. DAB+ is of course much better in transferring meta data like MOT.

I read that in Great Britain they use the older DAB and the audio quality due to the compression should be such bad that they should use mono instead of stereo to have more bandwidth left to avoid too much compression artifacts. I don't know if that is correct but sounds really bad (stereo is a very important thing to me). This is more worse that in GB analog FM got switched off very soon after introducing DAB many years ago (only read this, hope that is correct).

BR
Thomas

@tomneda
Copy link
Contributor

tomneda commented Jan 7, 2023

Hello @JvanKatwijk ,

you wrote that in your description formerly:

There is a pretty large group users of the Qt-DAB software and a number of these users use dabsticks. Now when scanning, the software switches from one channel to the next, ibviously. Since changing a channel is a major reset in the system (dozens of parameeters from the previous channel are to be saved, lots of parameters for the new channel have to be computed), so the normal way is to close the callback function that interacts with the use subsystem , and to restart that when everything is set for the next channel, Windows cannot handle that, it causes a crash somewhere deep in the rtlsdr.dll. I cannot debug windows, soI had to make separate versions of the support functions, a normal one for Linux and a stpid one for Windows.

So, I assumed that this happens while the channel change (direct or via scan) which would be a major issue of course.

When this only happens while re-selecting the dabstick then this is (for me) only a minor thing. I guess I can also not setup the develop system so fast in Windows in a shorter time but I hope I can do it soon.

I had a similar thing for SDRplay in Linux where I had to wait some seconds until restart the FMreceiver until the SDRplay driver was unloaded (i guess). Restarting too fast causes an driver access error (currently working in Windows, could not test it live for more detailed information).

In Windows I got the SDRPlay not to run in QT-DAB:
grafik

"sdrplay" is also not working.
grafik

I have SDRUno installed and very like the 3.10 driver. So I guess this is the reason for that. I use a SDRPlay RSPdx. maybe this device is also not supported yet fully by your driver. For me it is ok only using the DAB stick (I have also the HackRF but not tested with it yet).

Hope I could help you here soon.

BR
Thomas

@tomneda
Copy link
Contributor

tomneda commented Jan 7, 2023

Hi @JvanKatwijk ,

a proposal which would be quite fine: Could you increment the version number if you provide new setups? Because for my test I found two different 5.0 and two different 4.4.2 in my downloads. So, it is bad to distinguish which one is really newer (in this case I know that the dark new GUI style comes with the newer version).

I am sure you know the concept of semantic version which you already use somehow. Maybe do not know this site yet: https://semver.org/ :-)

BR
Thomas

@JvanKatwijk
Copy link
Owner

JvanKatwijk commented Jan 9, 2023 via email

@JvanKatwijk
Copy link
Owner

Yet another version is uploaded now, a version that contains (a.o) the PSS (Perfect Stereo Setting) from Thomas such that on the GUI you can see the error in the pilot phase used to re-create the stereo output
The Windows version is tested with the SDRplay RSP1A (I just found out that my DABstick is gone, it was mechanically weak
and now it is broken, so I cannot run tests with a DABstick), I did not see any problem in using the RSP

@andrewfer000
Copy link
Author

andrewfer000 commented Jan 11, 2023

Yet another version is uploaded now, a version that contains (a.o) the PSS (Perfect Stereo Setting) from Thomas such that on the GUI you can see the error in the pilot phase used to re-create the stereo output The Windows version is tested with the SDRplay RSP1A (I just found out that my DABstick is gone, it was mechanically weak and now it is broken, so I cannot run tests with a DABstick), I did not see any problem in using the RSP

I seem to be having RDS issues with this version. I don't know what the cause is but on the prevous versions it works and on this latest release many stations stopped working.

Older Version:
image

The previous version:
image

Most Recent Version:
image

This means something changed in the last few commits that caused this.

Speaking of version issues. I suggest you make a new release for each appimage/exe update so if there is a problem with the latest a user can download an older version. Each update should also have a new version number such as 3.0.1 etc..

Just noticed the recent PR. Maybe that has the fix.

@JvanKatwijk
Copy link
Owner

JvanKatwijk commented Jan 11, 2023 via email

@andrewfer000
Copy link
Author

andrewfer000 commented Jan 11, 2023

Okay I made an input dump and tested it in my older version of SDR-J-FM and it worked. So I'll upload it here. It's kind of big at 2.7GB so I compressed it to a Zip now it's around 2GB. The frequency I recorded is 104.500 MHz.

https://drive.google.com/file/d/1R_YGuTzvs-1VgTnGGJTm5VooCWJF038H/view?usp=sharing

Also what happened to the filereader on newer versions of SDR-J-FM? It was such a useful feature!

@tomneda
Copy link
Contributor

tomneda commented Jan 12, 2023

Hi Andrew,
hope Jan could help you soon that RDS and the filereader is working again.
I was interested also about your sample data as they come from a "complete different area of the world" :-)

I use may last working branch of my fork and it works fine with RDS:
Screenshot_2023-01-12_01-58-14
but the RDS signal degrades very fast with a more narrow IF filter. Maybe the nearby NRSC 5-C signal could disturb here something (but I had expected that a bit smaller IF filter would improve here something).

Because of the NRSC 5-C signal which is not existing in Germany or Netherlands, this sample file is very interesting. Could be a future work to decode this, too. Or Jan, isn't it? :-)
BR
Thomas

@JvanKatwijk
Copy link
Owner

JvanKatwijk commented Jan 12, 2023 via email

@andrewfer000
Copy link
Author

andrewfer000 commented Jan 12, 2023

The interesting thing is that the obvious change to the code that solved
Andrews problem causes the RDS decoding to fail completely for the
transmissions here.

Yeah this version works a lot better. Can I have more details about the change and what exactly happened? Also would it be possible to create an RDS 3 selection that turns the obvious change on and off?

@andrewfer000
Copy link
Author

andrewfer000 commented Jan 13, 2023

So yeah basically the audio dump that's already there but there's a checkbox that you can click and if it's selected all you have to do is choose a directory once and after that will you press the audio dump button it would just start dumping without you having to choose a file name first.

Another convenient way instead of the original suggestion would be to dump the audio to a temporary file and once you're done by clicking the button again have the file save dialog appear. I think that would be a lot more convenient and makes a lot more sense than the current way.

@JvanKatwijk
Copy link
Owner

JvanKatwijk commented Jan 13, 2023 via email

@JvanKatwijk
Copy link
Owner

JvanKatwijk commented Jan 13, 2023 via email

@andrewfer000
Copy link
Author

Works great! This is pretty much what I wanted. Hopefully you can get it working on Windows since I think many will appreciate this.

I'm not asking for this myself but you might see a question/request like this in the future:
can there be an ARM build or instructions to build on ARM Linux platforms?

You may want to look into that.

I'm shocked about how much progress this program has made in the past month. Great work.

I keep looking out for new builds/improvements, if you need or want any more input dumps just ask.

@andrewfer000
Copy link
Author

Hey Jvan,

just cheeked out version 3.1's appimage from 2 days ago and it works well here in the US. Seems to be no issues with the radio part! Also I like that the UI theme can now be changed in the UI which is a nice touch. Also thanks for bringing back the OG theme from 2.0.

One thing however is that the UI window size cannot be changed. While the width is fine and can be moved and changed the height is stuck. I feel like this makes the plots too small. Not sure if this is intentional or not so just wanted to mention it.

Overall good update. I like the less complicated U.I.

@JvanKatwijk
Copy link
Owner

JvanKatwijk commented Jan 29, 2023 via email

@tomneda
Copy link
Contributor

tomneda commented Jan 29, 2023

Hello Jan,

yes it is resizable now but looks quite strange making it bigger vertically. :-)

See here:
grafik

  • The three top left numbers have different sizes (but maybe indented?).
  • The program list is not growing but it would nice to see the content better.
  • The field of the squelch state grows much too big.
  • The elements jumps around depending of the length of the RDS running text output.
  • And I would expect like @andrewfer000 that the Scope outputs would grow with the resize because they are really small.

If it is ok for you I can immediately address this topics above and is hopefully ok for us all? :-)
Then I will try to delivery a pull request today.

PS: the problem that the config and device window is always behind the main windows seems only to be of my Xubuntu (Ubuntu with XFCE). On Windows and also on Fedora with Gnome (in a virtual machine) it works.

BR
Thomas

@JvanKatwijk
Copy link
Owner

JvanKatwijk commented Jan 29, 2023 via email

@tomneda
Copy link
Contributor

tomneda commented Jan 29, 2023

Hello Jan,

I finished my adaption of the GUI and made a bit other things too as you could see in the pull request description. Hope this works also for Windows and GNOME.

I added again the icons to minimize and maximize the main windows (see picture below, very likely not seen in GNOME, as GNOME has no icons like these).
You wrote in the code that you could not compile with that in Ubuntu 16. Maybe you use an older QT version there? I use 5.15.2 here (under Windows 5.12.12, but my last compilation is longer ago there).

This is the code which could make this trouble (I did it a bit other way as it formerly was, with a combined enum for min and max):
setWindowFlag (Qt::WindowMinMaxButtonsHint, true);

If it still makes trouble, please comment it out.
There would be a theoretical better way set this flag in the constructor of the QDialog object but it behaves quite strange. In that case the closing cross was missing, even I try maintain the possibly already set flags.

grafik

I still had the problem, when I clicked on "Safe Frequency" the small dialog box was occurring and after writing a text and press return then the FM quit with an exception. I could not debug that because it happens somehow deep within the QT. I guess it is a memory access problem. I already tried to provide the parent-pointer of the caller to QLineEdit (maybe I did it wrong), but it does not help. Finally I made the QLineEdit object as a member of the radio dialog and only show() and hide() the dialog. So it works reliable.

Unfortunately, I got a other new problem today:
I guess it has nothing do to with this SW (or it is not a new problem).
Today, I set up a VM with VirtualPC to test with Fedora GNOME. There, I installed your latest AppImage from today which worked with the sample file from Andrew. I hear also a sound but it was very dark (low pass filtered). After that test I had problems outside the virtual machine with my sound system when I want use the FM under my Host in Xubuntu again. I hear no sound anymore, but only when I switch around the audio devices up and down, then suddenly the sound was there but very loud and stuttering. The audio mixer of Linux seems to be bypassed.

The strange thing is that even a complete PC shut down (power off) and restart of Linux does nor repair this anymore. And it looks like that it has something to do with the FM as other audio application like sounds from the web browser (Youtube) and Spotify still works well (together with the audio level mixer).
But I have (always as I remember) a similar issue with Audacity, where I also must switch around the audio outputs until the sound is suddenly occurring (also with bypassing the audio level mixer). Audacity works well under Windows.

Do you have any idea what happens here?

Hope you and finally @andrewfer000 will like my adaptions :-)

BR
Thomas

@JvanKatwijk
Copy link
Owner

JvanKatwijk commented Jan 30, 2023 via email

@andrewfer000
Copy link
Author

Works well! Thanks @tomneda and @JvanKatwijk for the UI improvements.

Also @tomneda since you worked on the new RDS algorithm would you mind looking at a few samples that I have. At times a few characters are cut off and I can't figure it out. If you don't mind looking let me know and I'll upload the input dumps for you.

@tomneda
Copy link
Contributor

tomneda commented Jan 31, 2023

Hi @andrewfer000 thanks for the appreciation :-)

Of course you can send me/us sample data. I had asked you nevertheless for such sample data because I am interested into decoding this NRSC5 stuff which we have not here in Europe. I try to use this FM radio framework to use the work of https://github.com/theori-io/nrsc5 , only to play around with that a bit. So if your files would contain also NRSC5 signals it would be nice. I see on your Github site that you forked already NRSC5 stuff. Could you succeed with that? (in the hope that the signal quality is good enough in the sample files).

Regarding your problem: Please describe a bit what for problem you experience.

@JvanKatwijk : Interesting, when I execute your AppImage (with XFCE) then the Config windows pops up in the front whereas in my compilation it is always hidden from the main window. Do you use maybe another QT version? I do not know yet how to look behind the content of the AppImage to look for myself.

@andrewfer000
Copy link
Author

andrewfer000 commented Jan 31, 2023

@tomneda Here is the sample. I used a lot of frequencies with mixed RDS signal strength so sorry for all the jumping around! I tried to include as little copyright music as possible. Even though I feel like this is considered fair use to some extent.

https://drive.google.com/file/d/1hpISaQUMVGxvbP2kNMeJ4cz1JDoYY1JQ/view?usp=sharing

Due to my G-Drive space running low. I will delete this in 48 hours. So download it soon. That goes for my old sample too.

NOTES: Look out for these!

"WHYY - The Worl" is supposed to be "WHYY- The World"
"Spandau Ballet - Tr" is supposed to be Spandau Ballet - True.
"Alt 104.5 My Hero Foo Fight" is supposed to be "Alt 104.5 My Hero Foo Fighters"
"Guns N' Roses- November Ra" is supposed to be "Guns N' Roses- November Rain"
WRTI (90.1) and NJ-101.5 and Big 98.1 are complete and normal in this capture.

As you can see, it's always 1-5 characters are missing. Some songs and program names are worse than others. Feel free to look around the other frequencies I did not mention and see what you can catch.

I'm assuming it has to do with the termination character (I think it's an s with an accent mark. Can't remember.) or some kind of CRC or hash thing. Not sure how you implemented it.

If you can fix it let me know. Also a high level explanation on how RDS and this decoder works would be nice. I always wanted to learn how it works.

Lastly,
if you want more NRSC-5 specific recordings let me know. If you can get NRSC-5 decoding within SDR-J-FM working with proper hybrid mode like a real "HD Radio" device that would be awesome however it will be a challenge and I am unsure if it's even possible. However I will help you with samples and testing if you want to do anything with NRSC-5. I can get you dumps from SDR-J-FM or NRSC-5 itself. Oh and my NRSC-5 fork is just an extra mirror with the latest code that works from the main repo, I wish I can contribute to these programs but I don't know how to get started!

@tomneda
Copy link
Contributor

tomneda commented Jan 31, 2023

I hope this text do not come twice here because I answered it first via email but it is not shown here, yet.

Hi @andrewfer000 ,

got your file, you could delete it if you want, but maybe Jan is also interested in it. I guess the old file could have been deleted since a longer time.

I will look deeper into it after my job.

Only short yet:

Have you ever see the full length of the RDS text?

If yes then I guess the decoding was never able to decode the letter position without checksum error because its only written to the display if all letters from begin to a certain position are received without error. In other words: If the full text would have 30 letters and you have a receive error on letter 9 you will only be shown the letter 1 to 8 but not 9 to 30. If the letter 9 is suddenly received well then the whole 30 letter text is shown. This filter should made the output more nice looking but maybe it is to harsh (then I would apply a switch to make the filter strength switchable). I will look into this later give also answer to your other question then. I have to work now... :-)

@tomneda
Copy link
Contributor

tomneda commented Feb 1, 2023

I found a memory overflow issue (I already made a pull request) which could make trouble when RDS text with more than 54 letters are received.

But this does not explain your seen behavior. As I could read here
https://tech.ebu.ch/docs/techreview/trev_255-beale.pdf
there are more differences in the RDS protocol to be considered. I have to dig into that first. This could take some days.

I learned most of RDS directly from the ETSI standard here:
http://www.interactive-radio-system.com/docs/EN50067_RDS_Standard.pdf

@andrewfer000
Copy link
Author

@tomneda take your time to figure it out there's no rush.

The standards are very similar and as you know the dumps I gave you work fine for the most part except for the cutoff letters on some stations. One of the big differences is the PTY codes which has already been fixed in the program. If you make any RBDS changes that may affect the European RDS it would be a good idea to have it so when a user selects USA it will apply the changes. If you need more input dumps with other RDS data let me know.

Also I'm not sure if this has much to do with the differences between the two standards because-

First, SDR-J-FM 2.x used to show all the text however it disappeared really fast due to the design of the old program.

Second, depending on the text that is sent out it can be complete or incomplete. Also it's only ever the last 1-5 characters.

@andrewfer000
Copy link
Author

Some examples:

image

image

Comparison: (This was so hard to get with the text in 2.x disappearing so fast lol)
Latest SDR-J-FM:
image

SDR-J-FM 2.x:
image

@tomneda
Copy link
Contributor

tomneda commented Feb 5, 2023

Hi @andrewfer000

I just deliver a pull request to Jan for your found problem.
Unfortunately, Jan has also worked partly on the same things so I got merge conflicts which I could not solve (it is late and I did not want to let you wait any longer :-) ). Hope, Jan can handle this.

I also make a change in the RDS text "filtering" as my last one was quite restrictive before (works only fine with good RDS reception). I make it switchable to maintain the older version also. See the tool tip in the config dialog where the new switch can be found. The tool tip is quite long and described that feature in detail.

What it seems special in the USA that the "Program Service Name" field is misused for changing content as the RDS text is not indented for. I though this was a special mode/RDS code but I did not find any special which could allow another way showing the content better. In the RDS specification is explicit mentioned that it is not allowed using this field other then for the Service name. I copy the content as a picture below:

grafik

Here in Germany the field has always the same content (the real station name or at least a shortcut of it if it is longer than 8 characters).

I would have the idea to provide a scrolling text that changed values are rolled into the field from the right.

Nevertheless, hope you like my changes. For me it works much better with poorer RDS reception now and the missing letter on end and is fixed.

  • @JvanKatwijk : on the main GUI bottom right are now the received RDS Group Type Codes listed. So, we could see whether a station sends special information which could be worth to decode in future.

BR
Thomas

@andrewfer000
Copy link
Author

andrewfer000 commented Feb 6, 2023

I am trying to figure out how to compile on Ubuntu 20.04 and after follwing the steps I get this

Cannot read /features/qwt.prf: No such file or directory

Also when I run make

/usr/bin/ld: cannot find -lqwt: No such file or directory
collect2: error: ld returned 1 exit status

What does it mean and how do I fix it?

@andrewfer000
Copy link
Author

Hey I got it to compile (yay!) Seems like checking out a branch fixed it somehow on my Debian 11 VM. I checked out @tomneda's RDS branch and yeah it works great. I'm happy to see this issue fixed it's nice to see the whole RDS message now. In my opinion the program is pretty much complete now. I can't think of anything else except maybe to write better documentation on developing and compiling to attract other developers and testers in the SDR community.

I know I keep thanking you and it's probably getting old at this point but I understand how complex and difficult developing software and well working features for a program this complex is and I want to commend your dedication and hard work. I thank you for all the things you've done since version 3.0.

I hope the merge conflict gets resolved and a new official build is released soon so Windows users and Non-savvy Linux users can try it too. Once that is done I'd love to share this program around with the SDR community.

Also if you want more FM or NRSC5 dumps let me know. I'll be more than happy to give you samples.

@andrewfer000
Copy link
Author

@JvanKatwijk

I see you made a lot of changes in the few past weeks. Would you mind building a new appimage and exe for Windows? Even if the code isn't complete yet incremental updates are good.

In my testing your changes work well and works better in weak signal environments. However the RDS has the weird looking S at the end of the text line. Tomneda's version seems to have that fixed.

@tomneda
Copy link
Contributor

tomneda commented Feb 25, 2023

Hi @andrewfer000 ,
yes, Jan changed much so he will very likely not able anymore to include my pull request 3 weeks ago. But I did a further pull request some days ago, still based on the current master. See #20 .
There, the problem with the weird looking S is fixed and my RDS implementation (is RDS 2 in the combo box) is working again.
But there is not more the switch in the config menu available which I provided in the first pull merge. It would be too much work to include that again and I am not sure whether Jan likes that. Also I am not sure if the switch is really useful (what is your opinion?). The current mainline works also well when the problem with the "S" is solved, I guess.

@JvanKatwijk
Copy link
Owner

JvanKatwijk commented Feb 26, 2023 via email

@andrewfer000
Copy link
Author

@JvanKatwijk It's cool. I really like how this turned out. It's also nice to hear that you're cleaning up the code it might make it easier for others to contribute to and maintain in the future.

Also one issue I like to bring up is that the appimage version always lags severely on my order laptop when recording audio. The compiled version works fine however when recording audio. I think that issue is out of your control anyway because it's probably an appimage file system issue (FUSE maybe?). This laptop is a 12 year old business laptop so my expectations for CPU intensive things are low. I can use OBS to record audio on that laptop just fine so it's not a problem that bothers me.

Overall a great job! I literally cannot ask for anything else. You and Tomneda fixed/added everything I could have ever wanted and then some! Now that the updated installer and appimage is released I'm going to share this program with my friends.

Hope you can get all of your work done. Don't burn yourself out though. Talk to you later

  • Andrew

@tomneda
Copy link
Contributor

tomneda commented Feb 27, 2023

@andrewfer000
Thanks for the commendation. I tried out also the AppImage and the audio recording works fine, same for the own compiled version. I only can guess that the AppImage uses other (older or not to your system optimized) libraries. Hope, Jan could give a better explanation.

@JvanKatwijk :
I hope it is ok when I provided a further pull request to you because the mainline has still some things open which works before (it would be pity if formerly working things are not working anymore). I described the details in the pull request #21 .

In my opinion the findings are not so important for a new AppImage / Windows installer.

As you mentioned to have only little time for this project, I hope the pull request fits your ideas and you could simple merge it to the mainline.

From this state on, I will do also my further ideas but I guess I will not propose to this project new things the next time.

@andrewfer000 , if you are interested, you can follow my further work ( https://github.com/tomneda/sdr-j-fm ). But, I do not intend to provide AppImages (but I will try to learn how to do this). I use this software (and others from Jan and other developers) to learn and have programming fun, not to build a perfect (saleable) product.

Jan, hope it is ok to make a bit self-promotion here :-) .

There are still my former pull requests open, as you integrate (almost) my changes "by hand" into your master branch. Can you somehow close them? Or should I simply delete the belonging branches?

BR
Thomas

@andrewfer000
Copy link
Author

I use this software (and others from Jan and other developers) to learn and have programming fun, not to build a perfect (saleable) product.

That's true. Most open source Developers code because they enjoy it not to build a "sellable" product. It's why I'm happy with every contribution and issue you and Jan address.

The reason I like appimages and exe installers is because it opens this application up to the wider SDR community. I want to see more people use it since you and Jan put so much work into it. I feel like this program deserves a lot more stars than it has.

Also, I plan to use this program at my university as a way to break people into SDR. Doing something familiar is a great way to get someone into something new. For example, almost everyone listens to FM Radio and knows what it is so showing them how to do it on their computer with an SDR could break them into the hobby. Especially since RTL-SDR dongles are so cheap.

I'll go follow your repo and watch your commits. Every once in a while I'll compile your builds and leave feedback on your Repository. And as always if you need more/longer input dumps for testing let me know.

@tomneda
Copy link
Contributor

tomneda commented Apr 2, 2023

@JvanKatwijk
Hello Jan, I was the last weeks abroad and did nothing on this project and was delighted that you include my last pull request finally. But as you did that by hand again there are still issues in there.

I wrote you the former problems in detail in a private email weeks ago but I got no answer from this and also not from former emails. So I do not know if your email is still working and so I has to describe it here:

Despite of you do not include my Pull Request automatically, I nevertheless made one for you where only the necessary changes are included: #22

The remaining problems were:

  • The scope with "wide" (showing negative and positive frequencies, e.g. "IF Filtered") did not change the scaling with the zoom factor.
  • The limitation of the zoom factor was not working (the reference to ioZoomFactor is important, therefore the "io" in the prefix to signal "input and ouput")
  • The not initialized member currAttSliderValue still caused issues when it became zero. As the debugging switch DO_STEREO_SEPARATION_TEST was still active this issued did not play a role.
  • For my RDS decoder 2 you included the line "#ifdef DO_STEREO_SEPARATION_TEST" before the Costas loop, but this must be an #ifndef, not #ifdef. Same as above: the problem was not shown because DO_STEREO_SEPARATION_TEST was set and so the Costas loop active.
  • I switch-off the DO_STEREO_SEPARATION_TEST (again). It is important to fix the above two things when doing this!

@andrewfer000 :
As I have no contact data from you, I say it here shortly: I managed some weeks ago to build up an AppImage from my last working state (which above things included) here: https://github.com/tomneda/sdr-j-fm/releases/tag/TN-V3.15.3

AppImages are quite new to me and I tried a lot. Because of Appimages should work also on older system so the program must be build on an older system, here Ubuntu 16.04. On 16.04 and 18.04 it worked but I got problems with the newest 22.04 with ALSA/Pulsaudio where the program crashes. Jan's AppImages are working well on 22.04, he seems to know the trick but I did not want to investigate more time solving this.
For me, AppImage is a good thing for easy installation/starting but it could cause problems if the older (with the AppImage delivered) libraries does not fit well with the libs on the newer OS. So, it would be always be better to build the software completely on the target system as you could already manage. Nevertheless, I am curious whether my AppImage is working at your side. Could you check this out? You can answer me via private email to thomas.neder at freenet.de , except the answer could also be interesting to Jan. Thanks for the test.

@tomneda
Copy link
Contributor

tomneda commented Apr 2, 2023

@JvanKatwijk Hi Jan, I got your email from gmail today and already wrote back to you quite swiftly. Did you get my email? Please send a confirmation (per email) if you got it (or not). Would be nice to know if it works. BR Thomas

@andrewfer000
Copy link
Author

@tomneda Yeah I tried your Appimage. It works well on Fedroa 36. The only problem with Appimage is that it does not match system theme. When you use a compiled version themes work.

In the future maybe Flatpak may work well. I've seen it gain quite a lot of popularity in Fedrora and also it's popular in the Steam Deck community.

@JvanKatwijk
Copy link
Owner

JvanKatwijk commented Apr 4, 2023 via email

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

No branches or pull requests

3 participants