Native FLAC via iRadio?

Yeah, I tried both ways, works fine in the browser and your station works too. Just not through the m3u list. Weird.

my current playlist.

Thanks :slight_smile:
Metadata in an OggFlac is a challenge as:

  1. Not all stations send metadata about the track. For example, Naim Jazz doesn’t, Radio Paradise does.
  2. I rely on FFmpeg to do the conversion from OggFlac to WAV. So, this is something handled by FFmpeg.
  3. WAV was never designed to support a rich set of metadata.

I’ll have a look into it.

thanks Kurt, is clear.

I can’t get the new JB Radio 2 stream to work through a playlist and I see others having problems getting it to work through their tuners but it still works through Kurt’s added station. Not sure what’s going on.

I don’t do magic; FWP converts an OggFlac envelope to a WAV stream to feed this into the Naim, based on the native URL.

For the list of radio stations supported, type in the following: URL/fwp/stations

In vTuner (or whatever control point) add: URL/Path (replace 9001 by 9000).

That’s all above my pay grade. I guess the url going through a M3U file is causing complications.

PS - Figured out I hadn’t refreshed my playlist in the Naim app since making changes. It’s working perfectly now.

Many thanks @Kurt thanks to your amazing work I can enjoy my favourite JB Radio again on my Uniti Nova :grinning: :grinning: :grinning:

:slight_smile: Being a happy Gen 1 user, and felt left alone/disappointed/frustrated, when Naim announced hi-res radio audio streaming would only for Gen 2 devices, I started programming, as this is my roots, my hobby and my job. As nothing is documented on the Naim side, it took me some time to see the forest through the trees. :slight_smile:

I initially wrote this application to run it at home on a Raspberry PI to support Naim Jazz. But, after all, it was very easy to support whatever radio station, even using different bit depths and sampling frequencies.

Other thing is that my wife wants to listen to some HD stations when she cycles daily to the revalidation center. This is why I decided to put it in the cloud and to provide some MP3 down samplings.

I figured out that the OggFlac > PCM conversion process is consuming very little CPU processing power (as by design in the flac format). I’m running this on a free Oracle Cloud instance in Frankfurt and Phoenix.

As it was never my intention to get any profit out of this, I shared it with the community.
I always love it to read that this alows people to survive with their Gen 1 devices… After all, this was/is my intention of having this. Enjoy! :slight_smile:

Cheers,
k

4 Likes

For me what Kurt has done is absolutely fantastic. I use his stream and its rock solid!

You are our MVP :clap:

1 Like

Just found this thread and tried it out. Kurt, you are the hero of the uni(ti)verse, thank you very much!

Thanks, but I guess that was/is Superman, not me :slight_smile:

Hello from France, north of France, 15km Lille, close to Belgian border …

Thanks Kurt, that’s a very reliable work !
And it operates well on my ND5XS I own since 2013 … Kind of Gen 1 :grinning:

I also pinged 158.101.168.33 and found 17ms … very confortable !
image

I’ll check your http://158.101.168.33:9001/wp/stations on regular basis and will add on my vtuner section webradios I consider good.

So far, Radio Paradise list, Naim list, Hi On Line and few others.

I listened to Naim Radio all afternoon yesterday (homeoffice! :ok_hand: :+1:) and it worked flawlessy.
On wednesday, I tried Hi On Line (still homeoffice) but faced 3 failures which needed a reboot of my ND5XS …

One more time, many many thanks !

Sincerly yours,
Bertrand Dubois

1 Like

Having read through this thread I thought I’d have a go at adding some stations. I’m no IT expert but it was so simple to do.

Thanks @Kurt

Salut Bertrand,

I grew up in Kortrijk and visited Lille a lot (something like 20km?). Your old city centre is very nice! :slight_smile:
I’ve an ND5XS as well and a Muso. Both are gen 1.

For me it was a nice challenge to see where I could get, as I was not familiar (yet) with programming streaming applications. I initially made this to listen to the Naim Jazz flac stream, but figured out it was fairly easy to extend it.

If some stations don’t play, don’t shoot me :slight_smile:
Currently, there are some issues with JB Radio 2 (they stopped broadcasting) and Mother Earth Radio (things with Metadata).

If some stations are missing, please let me know.

Tx for the nice comments!
Cheers,
k

Bonjour Kurt, génial et merci! En anglais…

I just finished reading the whole thread. In THIS previous post dated Aug, you reference version 6 while the software posted on GH dates from Jun (v3.x). Do you plan on updating the package on GH?

1 Like

I forgot, as I do the development on my private repo. Apologies…

I just updated the public repo with the latest version, 6.10. The current version running in the Cloud is 6.9, but 6.10 is just a minor “cosmetic” update.

You can find all changes in the file history.txt, as part of the source code distribution. For convenience, I posted it here below as well (formatting is not that great…).

If you’ll check the history, you’ll find out the core engine was quite good as from day one. I added some “nice to haves”, did some code refactoring, but the routines taking care of transmitting the sound didn’t change.

Enjoy :slight_smile:

Version | Comment
-------------±-----------------------------------------------------------------
1.0.060321 | Initial release
1.1.070321 | Added searchpath in showInfo()
1.2.070321 | Improved debugging of incoming requests
1.3.070321 | Sorted radio stations when displaying them
1.4.080321 | Added StaleThreadMonitor + Health monitor has dedicated port
1.5.090321 | Added “log” property in config file to enable/disable logging
1.6.090321 | Added debug & logging info to info web page
1.7.090321 | Increased socket timeout
1.8.090321 | Cosmetic update in showInfo()
2.0.110321 | Non audio content interception. Better stale thread handling
| Multiple decoding scripts support, new scripts & config file
2.1.130321 | Show active stations in showInfo()
2.2.180321 | Added “compatibility_mode” parameter in config file
2.3.240321 | Added “content_type” parameter in config file
| Removed icy-br metadata in favor of the real bitrate
2.4.080421 | Added ip address logging
2.5.120421 | Replaced p.destroy() with killDecodeProcess()
| Changed path from fwdhealth to fwphealth
3.0.300521 | Multi music format support per station
3.1.300521 | Cosmetic update for station list
3.2.050621 | Performance optimization in indexOf() routines
4.0.190621 | New stale decoder thread detection (ThreadMonitor)
4.1.190621 | Made decClientCount() & incClientCount() synchronized in ProxyURL
4.2.190621 | Added “max_connections” property in config file
4.3.190621 | Minor optimizations
4.4.190621 | Smarter checking for “icy-br” tags. Happens in a loop now
| Added checking for “ice-audio-info” tags for some radio stations
| Changed: /fwphealth > /fwp/status
| Added: /fpw/reloadconfig to dynamically reload the configuration
4.5.260621 | Corrected typo’s
4.6.260621 | Optimized “icy-br” removal routine
4.7.260621 | Added Result class for return codes + return text. Minor fixes
4.8.290621 | removed deb() in ProxyLog. Use log() instead
4.9.300621 | MAX_CONNECTIONS can be updated. Fixed bug when reading request
4.10.010721 | Made “Cannot read request: bytesRead: -1” as debug info
4.11.030721 | Bugfix in CHECK_INTERVAL_NS. Value was in µs instead of ns
4.12.040721 | Remove “icy-metaint” tag (Mother Earth Radio). Added # stations
5.0.050721 | Created robust streamer response (based on icy-name)
5.1.050721 | Modified copyright banner
5.2.090721 | Improved searchPath detection
5.3.190721 | Added /fwp/stations
5.4.240721 | Minor optimizations in getInstance() calls
5.5.270721 | Modified status info
5.6.100821 | Added optional max_connection_lifetime_hr parameter
5.7.100821 | Bugfix in in check long running connections in ThreadMonitor
6.0.240821 | Rewrite of main class + use of FWPBufferedInputStream
| Added io_buffer_count param in config file
6.1.240821 | Bugfix: Don’t loose boot time when reloading config
6.2.240821 | Removed transfer rate statistics in OggDecoder
6.3.260821 | Added station playing time when stopping
6.4.310821 | Upgraded ffmpeg manually + retry mechanism
6.5.310821 | Reset retry counter when playing > MIN_DECODER_RUNTIME_MS
6.6.220921 | Added total playing time
6.7.250921 | Bugfix: totalPlayingTime display + corrected version date
6.8.091121 | When starting decode script fails, retry instead of exit
6.9.101121 | Added Java runtime and instance name information
6.10.191121 | OggDecoder: Do not retry when decodeX.sh cannot be executed
-------------±-----------------------------------------------------------------

2 Likes

Good news! JB Radio 2 is back in the air!
Enjoy! :slight_smile:

1 Like

Thank you, you are very kind! I tried the cloud based service, works awesome. Given I have many rpi’s, I wanted to install/run instance in my LAN. Fun project for this weekend : )

Is the flac stream available?