...because the Law of Unintended Consequences is a biiiiiiiiitch.
Josh Hawley said the quiet part loud, AGAIN, when he opined that today's ruling would strengthen Republican presence in the electoral college, because by his logic, pro-choice people in red states would move elsewhere. Except...hey, asshole, do you think they wouldn't have already if they could have?! No, what this is going to do is produce very large blocks of very poor people who have a very obvious and well-known set of villains to blame for their misery. This, in other words, is a recipe for turning red states blue, NOT vice-versa. I am looking forward to the collective freakout when this moron realizes he's forbidden people from, essentially, aborting future Democrats :)
Exhibit B: Justice Clarence ("Uncle [Ruckus]") Thomas sees today's destruction of Roe vs. Wade as the thin end of the wedge to dismantling other recent rulings like marriage equality, and even not-so-recent ones like access to contraception. In other words, this is the full-steam-ahead signal for the hideous theocracy the Birchers and their ilk want to implement. This wholesale slaughter of precedent, however, is...let's say, extremely inadvisable. Why?
Simple: Loving vs. Virginina. Brown vs. Board of Ed. Hell, Plessy vs Ferguson! Maybe we can save time and money by trying these cases "separately but equally," hmm...? If Thomas really believes that his white colleagues won't throw him under the bus the instant it becomes convenient and he's no longer needed, he's an even bigger fool than I thought he was, and I already thought he was such a gigantic fool that he visibly bends light around himself with the sheer density of his malignant judicial incompetence.
Karma is a bitch. Don't say you've not been warned.
A RISC-V laptop or mini PC with Rockchip RK3588-class performance may be coming soon
Mark Himelstein, Chief Technology Officer, RISC-V International, and Dr. Philipp Tomsich, Chief Technologist & Founder, VRULL GmbH hinted that we may see a RISC-V laptop in 2022 in a presentation entitled “From Technology to Product – Maturing the RISC-V Ecosystem” with one of the slides showing what could be a RISC-V laptop prototype and The Register suspected it might come from the Institute of Software at the Chinese Academy of Sciences (ISCAS) since it was planning to build 2,000 RISC-V laptops by the end of 2022.
But there’s at least one more potential RISC-V laptop project coming our way with StarFive asking users to fill out a survey about a laptop, mini PC, or development board/SBC based on a RISC-V SoC with performance comparable to Rockchip RK3588 or MediaTek MT8192 octa-core Cortex-A76/Cortex-A55 processors.
The hardware and software specifications of the device will depend on the answers to the survey. First, it’s not sure we’ll get a RISC-V laptop since respondents will first be asked for the type of product, so we may end up with a fairly powerful RISC-V mini PC or/and SBC first instead.
[...] As a side note, they’ll select 5 winners from the respondents and send them one VisionFive RISC-V SBC with the results announced sometime in July on RVSpace community.
I searched for 5D storage stories and found an update on Project Silica:
Microsoft to Store World’s Music Collection on Quartz Wafers
Everyone knows that if the apocalypse ever arrives, we will need to keep certain items safe for future generations. We’ve already taken care of our collections of plant species with the Global Seed Vault, aka the Doomsday Vault. That currently holds 1,145,693 backup copies of the world’s seed varieties. They will soon be joined by a new vault, which will attempt to backup the world’s music collection. It’ll be called the Global Music Vault, and it will join the seed collection in Svalbard, Norway.
[...] Each quartz wafer (top) will be the size of a drink coaster, at 75 x 75mm and 2mm thick. Each plate will be able to store 100GB of data. Data is added to the wafers via a laser that creates “three-dimensional nanoscale gratings and deformations.” To retrieve the data, a polarized light is used to shine through the glass. From there a machine learning algorithm can decode it. The group says the proof of concept should allow data to be preserved for “many thousands of years.” Project Silica has been in the works for several years now. Back in 2019 Microsoft successfully encoded and decoded the original Superman movie on behalf of Warner Brothers. Glass as a storage medium has also been touted recently by a project involving a 5D disk that could hold data for over 13 billion years.
[...] Though this isn’t a huge data dump, the group envisions it will eventually add tens of petabytes a year.
First off, the concept image shows what looks like racks with enough space for hundreds of thousands of these. How many petabytes of music is in existence, anyway, and at what average bitrate will they store it?
The Project Silica 2019 demo stored Superman on a disc of the same size. 75mm x 75mm x 2mm. That was storing up to a 75.6 GB copy:
Project Silica's glass square that contains Superman measures 7.5 cm x 7.5 cm x 2 mm and holds 75.6 GB of data. That may not sound so impressive given that a dual-layer Blu-ray holds 50 GB on 12 cm disc. But as Microsoft develops the technology, the company is creating discs with higher and higher capacities. Plus, the main benefit of this new medium is longevity and stability, not capacity. Research teams have put the square discs through their paces, ensuring the data is still readable even after baking them in ovens, dunking them in boiling water, heating them in microwaves and scratching them with steel wool.
[...] The technology still needs to mature and engineers need to create a unified read/write device similar to today's optical disc burners.
So now they are fitting 100 GB on the square and making lots of them. Maybe they could fit 100 GB on one 3 years ago but the movie was smaller than the disc capacity. Not impressive. The nice part is that it appears to have near-infinite longevity as long as it isn't shattered into pieces, so it directly beats similar Blu-ray/Archival Discs for long term storage, and can be a superior option to HDDs, SSDs, and tape if the storage density is acceptable. There's no word on whether read/write is remotely comparable to CD/DVD/Blu-ray and if it would ever be accessible to home users.
What we want is something with the same properties but around 1,000x the density, like this:
5D Optical Storage Could Mean 500 TB of Data on Small Glass Disc
In addition, if the technology does become viable for commercial use, organizations will have to be careful about how it’s used and who uses it.
“This kind of media would be ideal for anyone wanting to steal data in large quantities and have access to the hardware,” Enderle said. “Think [Edward] Snowden on steroids. The write speed limits this, but an employee could pull the data slowly over time and then remove the medium. But as write speeds increase, the viability of this storage medium for data theft will increase substantially.”
Thanks, Enterprise Storage Forum. Future Snowdens in the NSA would probably be destroyed by internal security alerts, but other organizations have lax security so sneakernet that shit out.
I would like to see one of these holographic crystal storage concepts make it into the hands of millions of people. Many people could use something with greater storage density than HDDs and SSDs, and better endurance/reliability than Blu-ray discs and tape (indefinite lifespan instead of 10-50 years). The read/write speeds are one of the main problems. Maybe it would end up as another spinning 12 cm disc format for practical purposes. Rewritability is unlikely, but the capacity would be so large that it might not matter.
As of June 15, 2022, all of Webb’s instruments are on and have taken their first images. Additionally, four imaging modes, three time series modes and three spectroscopic modes have been tested and certified, leaving just three to go.
On July 12, NASA plans to release a suite of teaser observations that illustrate Webb’s capabilities. These will show the beauty of Webb imagery and also give astronomers a real taste of the quality of data they will receive.
After July 12, the James Webb Space Telescope will start working full time on its science mission. The detailed schedule for the coming year hasn’t yet been released, but astronomers across the world are eagerly waiting to get the first data back from the most powerful space telescope ever built.
I expect they'll throw the Pillars of Creation or something like that in the first batch, but I'd like to see a dwarf planet like Sedna. Neptune might also be a good choice, assuming the JWST can beat the VLT.
AMD made a number of announcements about its future CPUs and GPUs at its 2022 Financial Analyst Day:
CPUs
APUs/GPUs
AMD Zen 4 Update: 8% to 10% IPC Uplift, 25% More Perf-Per-Watt, V-Cache Chips Coming
AMD RDNA 3/Navi 3X GPU Update: 50% Better Perf-Per-Watt, Using Chiplets For First Time
AMD: Combining CDNA 3 and Zen 4 for MI300 Data Center APU in 2023
AMD Updated EPYC Roadmap: 5th Gen EPYC "Turin" Announced, Coming by End of 2024
AMD Unveils Siena, A Lower Cost EPYC Family With Up to 64 Zen 4 Cores
AMD Announces Genoa-X: 4th Gen EPYC with Up to 96 Zen 4 Cores and 1GB L3 V-Cache
Updated AMD Notebook Roadmap: Zen 4 on 4nm in 2023, Zen 5 By End of 2024
AMD's Desktop CPU Roadmap: 2024 Brings Zen 5-based "Granite Ridge"
AMD’s 2022-2024 Client GPU Roadmap: RDNA 3 This Year, RDNA 4 Lands in 2024
AMD Zen Architecture Roadmap: Zen 5 in 2024 With All-New Microarchitecture
End of week 1: "The hardware was broken. It has not been fixed. The chicken replace-inator(TM) was not available. The staff have worked evenings and weekends. We have slipped by a week."
End of week 2: "The hardware was broken again in a different way. The cause has not been identified. The chicken replace-inator(TM) was in use by another project, preventing testing. The staff have worked evenings and weekends. We have slipped by another week."
End of week 3: "The hardware was broken and it was taken off site. It has not been fixed. No one has been able to attempt to identify the root cause let alone fix it. The chicken replace-inator(TM) was in use by another project and is now broken. The staff have worked evenings, weekends and on their death beds. Spouses have filed for divorce. Engineers are being carted off in straight jackets by men in white coats. We have slipped by yet another week. The project has now slipped by three weeks. The deadline will be missed by three weeks."
PHB: "What will you do to recover the time?"
I'll let Pink Floyd do most of my talking. They do it far better than I ever could.
Divided we fall. As we single out minority groups as scapegoats for the ills of the modern day, we weaken ourselves. Life is hard enough without making it arbitrarily harder and more unpleasant, or even dangerous, for some demographics.
It should be pretty apparent to anyone who has read any books on Evolution that people come in all sorts of shapes and sizes, with all sorts of differences.
I dare say they'd find a reason to put me up against their wall too.
I'm saying this, not because I'm scared for myself. I have white, male privilege. I'm technically middle class. I can afford to eat and heat my house. I have something of an education. I was born in an English-speaking country that used to have an Empire covering one quarter of the Earth.
For several years now there has been the nasty undercurrent of a fascist revival. They call themselves things like "the new right." They elected Trump and the got us Brexit. There's also a war in Ukraine, started by a foreign dictator who has been using Orwellian rhetoric for two decades to brainwash an entire nation. These things are all linked.
It's the little things that we have to be vigilant about on a daily basis, when arbitrary groups are picked on and used as scapegoats. Whether that's refugees fleeing war-torn countries, people with a certain religion, people who can't work for a living, people who work but are still poor, "undemocratic marxists," gays, lesbians and now "trannies."
Whether you're a righty complaining that "trannies" are costing you money, corrupting your children or holding you to ransom in some way, or whether you're a TERF with a paranoid and arbitrary hatred of male-to-female transsexuals because they might use the same bathroom as you. (As a friend pointed out, nobody is naked in a public toilet so where's the issue?)
Final words from Bertrand Russell, "Love is wise. Hatred is foolish."
Based on your suggestions and more I found around the Web.
Links
BAGeL Radio • https://ais-sa3.cdnstream1.com/2606_128.mp3
BBC World Service • http://stream.live.vc.bbcmedia.co.uk/bbc_world_service
Conyers Old Time Radio • https://s2.yesstreaming.net:17161/stream
⚠ Has ads: Costa Del Mar: Chillout • http://radio4.vip-radios.fm:8020/stream-mp3-Chill_autodj
⚠ Has ads: Costa Del Mar: Deep House • https://radio4.cdm-radio.com:18012/stream-mp3-Deep
⚠ Has ads: Costa Del Mar: Smooth Sax • https://radio4.cdm-radio.com:18024/stream-mp3-Smooth
⚠ Has ads: Costa Del Mar: Dance • https://radio4.cdm-radio.com:18000/stream-mp3-Dance
⚠ Has ads: Costa Del Mar: Funky • https://radio4.cdm-radio.com:18008/stream-mp3-Funk
⚠ Has ads: Costa Del Mar: Zen • https://radio4.cdm-radio.com:18004/stream-mp3-Zen
CVGM.net (chiptune) • http://slacker.cvgm.net/cvgm192.ogg
Dublab • https://dublab.out.airtime.pro/dublab_a
JAZZ.FM91 / CJRT-FM (Toronto, ON, Canada) • https://jazzfm91.streamb.live/SB00009
KCRW (Santa Monica, CA) • https://kcrw.streamguys1.com/kcrw_192k_mp3_on_air
KEXP (Seattle, WA) • https://kexp-mp3-128.streamguys1.com/kexp128.mp3
Lainchan: Cafe • https://lainon.life/radio/cafe.ogg
Lainchan: Cyberia • https://lainon.life/radio/cyberia.ogg
Lainchan: Everything • https://lainon.life/radio/everything.ogg
Lainchan: Swing • https://lainon.life/radio/swing.ogg
Lumpen Radio (Chicago, IL) • https://radio.mensajito.mx/lumpenradio
NTS Radio • http://stream-relay-geo.ntslive.net/stream
NTS Radio 2 • http://stream-relay-geo.ntslive.net/stream2
Resonance FM (London, UK) • https://stream.resonance.fm/resonance
Rinse FM (London, UK) • https://streamer-uk.rinse.fm:8443/stream
SceneSat • http://sentinel.scenesat.com:8000/scenesatmax
Wave Anime Radio • https://otsu.s04.radio-tochka.com:5475/mount?audio.mp3
WFMU (East Orange, NJ) • http://stream0.wfmu.org/freeform-128k
WHUM (Columbus, IN) • https://ais-edge37-live365-dal02.cdnstream.com/a79383
WWNO (New Orleans, LA) • https://tektite.streamguys1.com:5145/wwnolive
---
SomaFM: Beat Blender • https://ice1.somafm.com/beatblender-128-mp3
SomaFM: Black Rock FM • https://ice1.somafm.com/brfm-128-mp3
SomaFM: Boot Liquor • https://ice1.somafm.com/bootliquor-320-mp3
SomaFM: Christmas Lounge • https://ice1.somafm.com/christmas-256-mp3
SomaFM: Christmas Rocks! • https://ice1.somafm.com/xmasrocks-128-mp3
SomaFM: cliqhop idm • https://ice1.somafm.com/cliqhop-256-mp3
SomaFM: Covers • https://ice1.somafm.com/covers-128-mp3
SomaFM: Deep Space One • https://ice1.somafm.com/deepspaceone-128-mp3
SomaFM: DEF CON Radio • https://ice1.somafm.com/defcon-256-mp3
SomaFM: Department Store Christmas • https://ice1.somafm.com/specials-128-mp3
SomaFM: Digitalis • https://ice1.somafm.com/digitalis-128-mp3
SomaFM: Drone Zone • https://ice1.somafm.com/dronezone-256-mp3
SomaFM: Dub Step Beyond • https://ice1.somafm.com/dubstep-256-mp3
SomaFM: Fluid • https://ice1.somafm.com/fluid-128-mp3
SomaFM: Folk Forward • https://ice1.somafm.com/folkfwd-128-mp3
SomaFM: Groove Salad • https://ice1.somafm.com/groovesalad-256-mp3
SomaFM: Groove Salad Classic • https://ice1.somafm.com/gsclassic-128-mp3
SomaFM: Heavyweight Reggae • https://ice1.somafm.com/reggae-256-mp3
SomaFM: Illinois Street Lounge • https://ice1.somafm.com/illstreet-128-mp3
SomaFM: Indie Pop Rocks! • https://ice1.somafm.com/indiepop-128-mp3
SomaFM: Jolly Ol’ Soul • https://ice1.somafm.com/jollysoul-128-mp3
SomaFM: Left Coast 70s • https://ice1.somafm.com/seventies-320-mp3
SomaFM: Lush • https://ice1.somafm.com/lush-128-mp3
SomaFM: Metal Detector • https://ice1.somafm.com/metal-128-mp3
SomaFM: Mission Control • https://ice1.somafm.com/missioncontrol-128-mp3
SomaFM: n5MD Radio • https://ice1.somafm.com/n5md-128-mp3
SomaFM: PopTron • https://ice1.somafm.com/poptron-128-mp3
SomaFM: Secret Agent • https://ice1.somafm.com/secretagent-128-mp3
SomaFM: Seven Inch Soul • https://ice1.somafm.com/7soul-128-mp3
SomaFM: SF 10-33 • https://ice1.somafm.com/sf1033-128-mp3
SomaFM: SomaFM Live • https://ice1.somafm.com/live-128-mp3
SomaFM: Sonic Universe • https://ice1.somafm.com/sonicuniverse-256-mp3
SomaFM: Space Station Soma • https://ice1.somafm.com/spacestation-128-mp3
SomaFM: Suburbs of Goa • https://ice1.somafm.com/suburbsofgoa-128-mp3
SomaFM: Synphaera Radio • https://ice1.somafm.com/synphaera-256-mp3
SomaFM: The Trip • https://ice1.somafm.com/thetrip-128-mp3
SomaFM: ThistleRadio • https://ice1.somafm.com/thistle-128-mp3
SomaFM: Underground 80s • https://ice1.somafm.com/u80s-256-mp3
SomaFM: Vaporwaves • https://ice1.somafm.com/vaporwaves-128-mp3
SomaFM: Xmas in Frisko • https://ice1.somafm.com/xmasinfrisko-128-mp3
---
Jouluradio (Finnish Christmas radio) • https://c0.toivon.net/toivon/toivon_0?mp=/stream
⚠ Disabled: Jouluradio: Julradion • https://c1.toivon.net/toivon/toivon_1?mp=/stream
⚠ Disabled: Jouluradio: Kauneimmat joululaulut (Christmas carols) • https://c2.toivon.net/toivon/toivon_2?mp=/stream
⚠ Disabled: Jouluradio: Lasten jouluradio (Children’s Christmas radio) • https://c3.toivon.net/toivon/toivon_3?mp=/stream
⚠ Disabled: Jouluradio: Pikkujouluradio (Little Christmas radio) • https://c4.toivon.net/toivon/toivon_4?mp=/stream
⚠ Disabled: Jouluradio: Rouhea joulu (Merry Christmas) • https://c5.toivon.net/toivon/toivon_5?mp=/stream
⚠ Disabled: Jouluradio: Klassinen joulu (Classic Christmas) • https://c6.toivon.net/toivon/toivon_6?mp=/stream
⚠ Disabled: Jouluradio: Happy Holidays • https://c7.toivon.net/toivon/toivon_7?mp=/stream
⚠ Disabled: Jouluradio: Jazzjoulu (Jazz Christmas) • https://c8.toivon.net/toivon/toivon_8?mp=/stream
⚠ Disabled: Jouluradio: Indiejoulu (Indie Christmas) • https://c9.toivon.net/toivon/toivon_9?mp=/stream
JSON Format
[{"name":"3 Triple R 102.7 FM (Melbourne, VIC, Australia)","url":"https://www.rrr.org.au/","wiki":"https://en.wikipedia.org/wiki/3RRR","audio":"https://realtime.rrr.org.au/p1h"},
{"name":"BAGeL Radio","url":"https://www.bagelradio.com/","audio":"https://ais-sa3.cdnstream1.com/2606_128.mp3"},
{"name":"BBC World Service","url":"https://www.bbc.co.uk/sounds/player/bbc_world_service","wiki":"https://en.wikipedia.org/wiki/BBC_World_Service","audio":"http://stream.live.vc.bbcmedia.co.uk/bbc_world_service"},
{"name":"CBC","url":"https://www.cbc.ca/listen/live-radio","wiki":"https://en.wikipedia.org/wiki/CBC","audio":false},
{"name":"Conyers Old Time Radio","url":"https://www.conyersradio.net/","audio":"https://s2.yesstreaming.net:17161/stream"},
{"name":"Costa Del Mar: Chillout","url":"https://www.costadelmar-radio.com/chillout/","audio":"http://radio4.vip-radios.fm:8020/stream-mp3-Chill_autodj","audio2":"https://radio4.cdm-radio.com:18020/stream-mp3-Chill"},
{"name":"Costa Del Mar: Deep House","url":"https://www.costadelmar-radio.com/deep-house/","audio":"https://radio4.cdm-radio.com:18012/stream-mp3-Deep"},
{"name":"Costa Del Mar: Smooth Sax","url":"https://www.costadelmar-radio.com/smooth-sax/","audio":"https://radio4.cdm-radio.com:18024/stream-mp3-Smooth"},
{"name":"Costa Del Mar: Dance","url":"https://www.costadelmar-radio.com/dance/","audio":"https://radio4.cdm-radio.com:18000/stream-mp3-Dance"},
{"name":"Costa Del Mar: Funky","url":"https://www.costadelmar-radio.com/funky/","audio":"https://radio4.cdm-radio.com:18008/stream-mp3-Funk"},
{"name":"Costa Del Mar: Zen","url":"https://www.costadelmar-radio.com/zen/","audio":"https://radio4.cdm-radio.com:18004/stream-mp3-Zen"},
{"name":"CVGM.net (chiptune)","url":"https://radio.cvgm.net/","audio":"http://slacker.cvgm.net/cvgm192.ogg"},
{"name":"Dublab","url":"https://www.dublab.com/","wiki":"https://en.wikipedia.org/wiki/Dublab","audio":"https://dublab.out.airtime.pro/dublab_a"},
{"name":"JAZZ.FM91 / CJRT-FM (Toronto, ON, Canada)","url":"https://jazz.fm/","wiki":"https://en.wikipedia.org/wiki/CJRT-FM","audio":"https://jazzfm91.streamb.live/SB00009"},
{"name":"KCRW (Santa Monica, CA)","url":"https://www.kcrw.com/","wiki":"https://en.wikipedia.org/wiki/KCRW","audio":"https://kcrw.streamguys1.com/kcrw_192k_mp3_on_air"},
{"name":"KEXP (Seattle, WA)","url":"https://kexp.org/","wiki":"https://en.wikipedia.org/wiki/KEXP-FM","audio":"https://kexp-mp3-128.streamguys1.com/kexp128.mp3"},
{"name":"Lainchan: Cafe","url":"https://lainchan.org/radio.html","audio":"https://lainon.life/radio/cafe.ogg"},
{"name":"Lainchan: Cyberia","url":"https://lainchan.org/radio.html","audio":"https://lainon.life/radio/cyberia.ogg"},
{"name":"Lainchan: Everything","url":"https://lainchan.org/radio.html","audio":"https://lainon.life/radio/everything.ogg"},
{"name":"Lainchan: Swing","url":"https://lainchan.org/radio.html","audio":"https://lainon.life/radio/swing.ogg"},
{"name":"Lumpen Radio (Chicago, IL)","url":"https://lumpenradio.com/","wiki":"https://en.wikipedia.org/wiki/WLPN-LP","audio":"https://radio.mensajito.mx/lumpenradio"},
{"name":"NTS Radio","url":"https://www.nts.live/radio","wiki":"https://en.wikipedia.org/wiki/NTS_Radio","audio":"http://stream-relay-geo.ntslive.net/stream"},
{"name":"NTS Radio 2","url":"https://www.nts.live/radio","audio":"http://stream-relay-geo.ntslive.net/stream2"},
{"name":"Resonance FM (London, UK)","url":"https://www.resonancefm.com/","wiki":"https://en.wikipedia.org/wiki/Resonance_FM","audio":"https://stream.resonance.fm/resonance"},
{"name":"Rinse FM (London, UK)","url":"https://rinse.fm/","wiki":"https://en.wikipedia.org/wiki/Rinse_FM","audio":"https://streamer-uk.rinse.fm:8443/stream"},
{"name":"SceneSat","url":"https://scenesat.com/listenmenu","audio":"http://sentinel.scenesat.com:8000/scenesatmax"},
{"name":"SLAYRadio","url":"https://www.slayradio.org/home.php","audio":false},
{"name":"triple j (Australia)","url":"https://www.abc.net.au/triplej/listen-live/","wiki":"https://en.wikipedia.org/wiki/Triple_J","audio":false},
{"name":"Wave Anime Radio","url":"https://t.me/s/waveanime","audio":"https://otsu.s04.radio-tochka.com:5475/mount?audio.mp3"},
{"name":"WFMU (East Orange, NJ)","url":"https://wfmu.org/","wiki":"https://en.wikipedia.org/wiki/WFMU","audio":"http://stream0.wfmu.org/freeform-128k"},
{"name":"WHUM (Columbus, IN)","url":"https://whumradio.org/","audio":"https://ais-edge37-live365-dal02.cdnstream.com/a79383"},
{"name":"WWNO (New Orleans, LA)","url":"https://www.wwno.org/","wiki":"https://en.wikipedia.org/wiki/WWNO","audio":"https://tektite.streamguys1.com:5145/wwnolive"},{"name":"SomaFM","url":"https://somafm.com/","wiki":"https://en.wikipedia.org/wiki/SomaFM","audio":false},
{"name":"SomaFM: Beat Blender","url":"https://somafm.com/beatblender/","audio":"https://ice1.somafm.com/beatblender-128-mp3"},
{"name":"SomaFM: Black Rock FM","url":"https://somafm.com/brfm/","audio":"https://ice1.somafm.com/brfm-128-mp3"},
{"name":"SomaFM: Boot Liquor","url":"https://somafm.com/bootliquor/","audio":"https://ice1.somafm.com/bootliquor-320-mp3"},
{"name":"SomaFM: Christmas Lounge","url":"https://somafm.com/christmas/","audio":"https://ice1.somafm.com/christmas-256-mp3"},
{"name":"SomaFM: Christmas Rocks!","url":"https://somafm.com/xmasrocks/","audio":"https://ice1.somafm.com/xmasrocks-128-mp3"},
{"name":"SomaFM: cliqhop idm","url":"https://somafm.com/cliqhop/","audio":"https://ice1.somafm.com/cliqhop-256-mp3"},
{"name":"SomaFM: Covers","url":"https://somafm.com/covers/","audio":"https://ice1.somafm.com/covers-128-mp3"},
{"name":"SomaFM: Deep Space One","url":"https://somafm.com/deepspaceone/","audio":"https://ice1.somafm.com/deepspaceone-128-mp3"},
{"name":"SomaFM: DEF CON Radio","url":"https://somafm.com/defcon/","audio":"https://ice1.somafm.com/defcon-256-mp3"},
{"name":"SomaFM: Department Store Christmas","url":"https://somafm.com/specials/","audio":"https://ice1.somafm.com/specials-128-mp3"},
{"name":"SomaFM: Digitalis","url":"https://somafm.com/digitalis/","audio":"https://ice1.somafm.com/digitalis-128-mp3"},
{"name":"SomaFM: Drone Zone","url":"https://somafm.com/dronezone/","audio":"https://ice1.somafm.com/dronezone-256-mp3"},
{"name":"SomaFM: Dub Step Beyond","url":"https://somafm.com/dubstep/","audio":"https://ice1.somafm.com/dubstep-256-mp3"},
{"name":"SomaFM: Fluid","url":"https://somafm.com/fluid/","audio":"https://ice1.somafm.com/fluid-128-mp3"},
{"name":"SomaFM: Folk Forward","url":"https://somafm.com/folkfwd/","audio":"https://ice1.somafm.com/folkfwd-128-mp3"},
{"name":"SomaFM: Groove Salad","url":"https://somafm.com/groovesalad/","audio":"https://ice1.somafm.com/groovesalad-256-mp3"},
{"name":"SomaFM: Groove Salad Classic","url":"https://somafm.com/gsclassic/","audio":"https://ice1.somafm.com/gsclassic-128-mp3"},
{"name":"SomaFM: Heavyweight Reggae","url":"https://somafm.com/reggae/","audio":"https://ice1.somafm.com/reggae-256-mp3"},
{"name":"SomaFM: Illinois Street Lounge","url":"https://somafm.com/illstreet/","audio":"https://ice1.somafm.com/illstreet-128-mp3"},
{"name":"SomaFM: Indie Pop Rocks!","url":"https://somafm.com/indiepop/","audio":"https://ice1.somafm.com/indiepop-128-mp3"},
{"name":"SomaFM: Jolly Ol\u2019 Soul","url":"https://somafm.com/jollysoul/","audio":"https://ice1.somafm.com/jollysoul-128-mp3"},
{"name":"SomaFM: Left Coast 70s","url":"https://somafm.com/seventies/","audio":"https://ice1.somafm.com/seventies-320-mp3"},
{"name":"SomaFM: Lush","url":"https://somafm.com/lush/","audio":"https://ice1.somafm.com/lush-128-mp3"},
{"name":"SomaFM: Metal Detector","url":"https://somafm.com/metal/","audio":"https://ice1.somafm.com/metal-128-mp3"},
{"name":"SomaFM: Mission Control","url":"https://somafm.com/missioncontrol/","audio":"https://ice1.somafm.com/missioncontrol-128-mp3"},
{"name":"SomaFM: n5MD Radio","url":"https://somafm.com/n5md/","audio":"https://ice1.somafm.com/n5md-128-mp3"},
{"name":"SomaFM: PopTron","url":"https://somafm.com/poptron/","audio":"https://ice1.somafm.com/poptron-128-mp3"},
{"name":"SomaFM: Secret Agent","url":"https://somafm.com/secretagent/","audio":"https://ice1.somafm.com/secretagent-128-mp3"},
{"name":"SomaFM: Seven Inch Soul","url":"https://somafm.com/7soul/","audio":"https://ice1.somafm.com/7soul-128-mp3"},
{"name":"SomaFM: SF 10-33","url":"https://somafm.com/sf1033/","audio":"https://ice1.somafm.com/sf1033-128-mp3"},
{"name":"SomaFM: SomaFM Live","url":"https://somafm.com/live/","audio":"https://ice1.somafm.com/live-128-mp3"},
{"name":"SomaFM: Sonic Universe","url":"https://somafm.com/sonicuniverse/","audio":"https://ice1.somafm.com/sonicuniverse-256-mp3"},
{"name":"SomaFM: Space Station Soma","url":"https://somafm.com/spacestation/","audio":"https://ice1.somafm.com/spacestation-128-mp3"},
{"name":"SomaFM: Suburbs of Goa","url":"https://somafm.com/suburbsofgoa/","audio":"https://ice1.somafm.com/suburbsofgoa-128-mp3"},
{"name":"SomaFM: Synphaera Radio","url":"https://somafm.com/synphaera/","audio":"https://ice1.somafm.com/synphaera-256-mp3"},
{"name":"SomaFM: The Trip","url":"https://somafm.com/thetrip/","audio":"https://ice1.somafm.com/thetrip-128-mp3"},
{"name":"SomaFM: ThistleRadio","url":"https://somafm.com/thistle/","audio":"https://ice1.somafm.com/thistle-128-mp3"},
{"name":"SomaFM: Underground 80s","url":"https://somafm.com/u80s/","audio":"https://ice1.somafm.com/u80s-256-mp3"},
{"name":"SomaFM: Vaporwaves","url":"https://somafm.com/vaporwaves/","audio":"https://ice1.somafm.com/vaporwaves-128-mp3"},
{"name":"SomaFM: Xmas in Frisko","url":"https://somafm.com/xmasinfrisko/","audio":"https://ice1.somafm.com/xmasinfrisko-128-mp3"},{"name":"Jouluradio (Finnish Christmas radio)","url":"https://www.jouluradio.fi/info?lang=en","wiki":"https://fi.wikipedia.org/wiki/Jouluradio","audio":"https://c0.toivon.net/toivon/toivon_0?mp=/stream"},
{"name":"Jouluradio: Julradion","url":"https://www.jouluradio.fi/info?lang=en","audio":"https://c1.toivon.net/toivon/toivon_1?mp=/stream"},
{"name":"Jouluradio: Kauneimmat joululaulut (Christmas carols)","url":"https://www.jouluradio.fi/info?lang=en","audio":"https://c2.toivon.net/toivon/toivon_2?mp=/stream"},
{"name":"Jouluradio: Lasten jouluradio (Children\u2019s Christmas radio)","url":"https://www.jouluradio.fi/info?lang=en","audio":"https://c3.toivon.net/toivon/toivon_3?mp=/stream"},
{"name":"Jouluradio: Pikkujouluradio (Little Christmas radio)","url":"https://www.jouluradio.fi/info?lang=en","audio":"https://c4.toivon.net/toivon/toivon_4?mp=/stream"},
{"name":"Jouluradio: Rouhea joulu (Merry Christmas)","url":"https://www.jouluradio.fi/info?lang=en","audio":"https://c5.toivon.net/toivon/toivon_5?mp=/stream"},
{"name":"Jouluradio: Klassinen joulu (Classic Christmas)","url":"https://www.jouluradio.fi/info?lang=en","audio":"https://c6.toivon.net/toivon/toivon_6?mp=/stream"},
{"name":"Jouluradio: Happy Holidays","url":"https://www.jouluradio.fi/info?lang=en","audio":"https://c7.toivon.net/toivon/toivon_7?mp=/stream"},
{"name":"Jouluradio: Jazzjoulu (Jazz Christmas)","url":"https://www.jouluradio.fi/info?lang=en","audio":"https://c8.toivon.net/toivon/toivon_8?mp=/stream"},
{"name":"Jouluradio: Indiejoulu (Indie Christmas)","url":"https://www.jouluradio.fi/info?lang=en","audio":"https://c9.toivon.net/toivon/toivon_9?mp=/stream"}]
You can run the JSON through here to pretty it up.
HTML Player
<html>
<head><title>Radio Stations</title>
<style type="text/css">
.link .sublink {color:#09F; cursor:pointer; font-size:125%; padding:0 0.25em 0 0.25em; text-decoration:none; vertical-align:middle; visibility:hidden;}
.link:hover .sublink {visibility:visible;}
</style></head>
<body>
<div class="link"><a href="https://www.rrr.org.au/" target="_blank">3 Triple R 102.7 FM (Melbourne, VIC, Australia)</a> <a class="sublink" href="https://en.wikipedia.org/wiki/3RRR" target="_blank">W</a> <span class="sublink" onclick="document.getElementById('radioName').innerHTML='3 Triple R 102.7 FM (Melbourne, Australia)'; document.getElementById('radioPlayer').src='https://realtime.rrr.org.au/p1h'; document.getElementById('radioPlayer').load(); document.getElementById('radioPlayer').play();">📻</span> <a class="sublink" href="https://realtime.rrr.org.au/p1h" target="_blank">🔗</a></div>
<div class="link"><a href="https://www.bagelradio.com/" target="_blank">BAGeL Radio</a> <span class="sublink" onclick="document.getElementById('radioName').innerHTML='BAGeL Radio'; document.getElementById('radioPlayer').src='https://ais-sa3.cdnstream1.com/2606_128.mp3'; document.getElementById('radioPlayer').load(); document.getElementById('radioPlayer').play();">📻</span> <a class="sublink" href="https://ais-sa3.cdnstream1.com/2606_128.mp3" target="_blank">🔗</a></div>
<div class="link"><a href="https://www.bbc.co.uk/sounds/player/bbc_world_service" target="_blank">BBC World Service</a> <a class="sublink" href="https://en.wikipedia.org/wiki/BBC_World_Service" target="_blank">W</a> <span class="sublink" onclick="document.getElementById('radioName').innerHTML='BBC World Service'; document.getElementById('radioPlayer').src='http://stream.live.vc.bbcmedia.co.uk/bbc_world_service'; document.getElementById('radioPlayer').load(); document.getElementById('radioPlayer').play();">📻</span> <a class="sublink" href="http://stream.live.vc.bbcmedia.co.uk/bbc_world_service" target="_blank">🔗</a></div>
<div class="link"><a href="https://www.cbc.ca/listen/live-radio" target="_blank">CBC</a> <a class="sublink" href="https://en.wikipedia.org/wiki/CBC" target="_blank">W</a></div>
<div class="link"><a href="https://www.conyersradio.net/" target="_blank">Conyers Old Time Radio</a> <span class="sublink" onclick="document.getElementById('radioName').innerHTML='Conyers Old Time Radio'; document.getElementById('radioPlayer').src='https://s2.yesstreaming.net:17161/stream'; document.getElementById('radioPlayer').load(); document.getElementById('radioPlayer').play();">📻</span> <a class="sublink" href="https://s2.yesstreaming.net:17161/stream" target="_blank">🔗</a></div>
<div class="link">⚠ Has ads ⚠ <a href="https://www.costadelmar-radio.com/chillout/" target="_blank">Costa Del Mar: Chillout</a> <span class="sublink" onclick="document.getElementById('radioName').innerHTML='Costa Del Mar: Chillout'; document.getElementById('radioPlayer').src='http://radio4.vip-radios.fm:8020/stream-mp3-Chill_autodj'; document.getElementById('radioPlayer').load(); document.getElementById('radioPlayer').play();">📻</span> <a class="sublink" href="http://radio4.vip-radios.fm:8020/stream-mp3-Chill_autodj" target="_blank">🔗</a></div>
<div class="link">⚠ Has ads ⚠ <a href="https://www.costadelmar-radio.com/deep-house/" target="_blank">Costa Del Mar: Deep House</a> <span class="sublink" onclick="document.getElementById('radioName').innerHTML='Costa Del Mar: Deep House'; document.getElementById('radioPlayer').src='https://radio4.cdm-radio.com:18012/stream-mp3-Deep'; document.getElementById('radioPlayer').load(); document.getElementById('radioPlayer').play();">📻</span> <a class="sublink" href="https://radio4.cdm-radio.com:18012/stream-mp3-Deep" target="_blank">🔗</a></div>
<div class="link">⚠ Has ads ⚠ <a href="https://www.costadelmar-radio.com/smooth-sax/" target="_blank">Costa Del Mar: Smooth Sax</a> <span class="sublink" onclick="document.getElementById('radioName').innerHTML='Costa Del Mar: Smooth Sax'; document.getElementById('radioPlayer').src='https://radio4.cdm-radio.com:18024/stream-mp3-Smooth'; document.getElementById('radioPlayer').load(); document.getElementById('radioPlayer').play();">📻</span> <a class="sublink" href="https://radio4.cdm-radio.com:18024/stream-mp3-Smooth" target="_blank">🔗</a></div>
<div class="link">⚠ Has ads ⚠ <a href="https://www.costadelmar-radio.com/dance/" target="_blank">Costa Del Mar: Dance</a> <span class="sublink" onclick="document.getElementById('radioName').innerHTML='Costa Del Mar: Dance'; document.getElementById('radioPlayer').src='https://radio4.cdm-radio.com:18000/stream-mp3-Dance'; document.getElementById('radioPlayer').load(); document.getElementById('radioPlayer').play();">📻</span> <a class="sublink" href="https://radio4.cdm-radio.com:18000/stream-mp3-Dance" target="_blank">🔗</a></div>
<div class="link">⚠ Has ads ⚠ <a href="https://www.costadelmar-radio.com/funky/" target="_blank">Costa Del Mar: Funky</a> <span class="sublink" onclick="document.getElementById('radioName').innerHTML='Costa Del Mar: Funky'; document.getElementById('radioPlayer').src='https://radio4.cdm-radio.com:18008/stream-mp3-Funk'; document.getElementById('radioPlayer').load(); document.getElementById('radioPlayer').play();">📻</span> <a class="sublink" href="https://radio4.cdm-radio.com:18008/stream-mp3-Funk" target="_blank">🔗</a></div>
<div class="link">⚠ Has ads ⚠ <a href="https://www.costadelmar-radio.com/zen/" target="_blank">Costa Del Mar: Zen</a> <span class="sublink" onclick="document.getElementById('radioName').innerHTML='Costa Del Mar: Zen'; document.getElementById('radioPlayer').src='https://radio4.cdm-radio.com:18004/stream-mp3-Zen'; document.getElementById('radioPlayer').load(); document.getElementById('radioPlayer').play();">📻</span> <a class="sublink" href="https://radio4.cdm-radio.com:18004/stream-mp3-Zen" target="_blank">🔗</a></div>
<div class="link"><a href="https://radio.cvgm.net/" target="_blank">CVGM.net (chiptune)</a> <span class="sublink" onclick="document.getElementById('radioName').innerHTML='CVGM.net (chiptune)'; document.getElementById('radioPlayer').src='http://slacker.cvgm.net/cvgm192.ogg'; document.getElementById('radioPlayer').load(); document.getElementById('radioPlayer').play();">📻</span> <a class="sublink" href="http://slacker.cvgm.net/cvgm192.ogg" target="_blank">🔗</a></div>
<div class="link"><a href="https://www.dublab.com/" target="_blank">Dublab</a> <a class="sublink" href="https://en.wikipedia.org/wiki/Dublab" target="_blank">W</a> <span class="sublink" onclick="document.getElementById('radioName').innerHTML='Dublab'; document.getElementById('radioPlayer').src='https://dublab.out.airtime.pro/dublab_a'; document.getElementById('radioPlayer').load(); document.getElementById('radioPlayer').play();">📻</span> <a class="sublink" href="https://dublab.out.airtime.pro/dublab_a" target="_blank">🔗</a></div>
<div class="link"><a href="https://jazz.fm/" target="_blank">JAZZ.FM91 / CJRT-FM (Toronto, ON, Canada)</a> <a class="sublink" href="https://en.wikipedia.org/wiki/CJRT-FM" target="_blank">W</a> <span class="sublink" onclick="document.getElementById('radioName').innerHTML='JAZZ.FM91 / CJRT-FM (Toronto)'; document.getElementById('radioPlayer').src='https://jazzfm91.streamb.live/SB00009'; document.getElementById('radioPlayer').load(); document.getElementById('radioPlayer').play();">📻</span> <a class="sublink" href="https://jazzfm91.streamb.live/SB00009" target="_blank">🔗</a></div>
<div class="link"><a href="https://www.kcrw.com/" target="_blank">KCRW (Santa Monica, CA)</a> <a class="sublink" href="https://en.wikipedia.org/wiki/KCRW" target="_blank">W</a> <span class="sublink" onclick="document.getElementById('radioName').innerHTML='KCRW (Santa Monica, CA)'; document.getElementById('radioPlayer').src='https://kcrw.streamguys1.com/kcrw_192k_mp3_on_air'; document.getElementById('radioPlayer').load(); document.getElementById('radioPlayer').play();">📻</span> <a class="sublink" href="https://kcrw.streamguys1.com/kcrw_192k_mp3_on_air" target="_blank">🔗</a></div>
<div class="link"><a href="https://kexp.org/" target="_blank">KEXP (Seattle, WA)</a> <a class="sublink" href="https://en.wikipedia.org/wiki/KEXP-FM" target="_blank">W</a> <span class="sublink" onclick="document.getElementById('radioName').innerHTML='KEXP (Seattle)'; document.getElementById('radioPlayer').src='https://kexp-mp3-128.streamguys1.com/kexp128.mp3'; document.getElementById('radioPlayer').load(); document.getElementById('radioPlayer').play();">📻</span> <a class="sublink" href="https://kexp-mp3-128.streamguys1.com/kexp128.mp3" target="_blank">🔗</a></div>
<div class="link"><a href="https://lainchan.org/radio.html" target="_blank">Lainchan: Cafe</a> <span class="sublink" onclick="document.getElementById('radioName').innerHTML='Lainchan: Cafe'; document.getElementById('radioPlayer').src='https://lainon.life/radio/cafe.ogg'; document.getElementById('radioPlayer').load(); document.getElementById('radioPlayer').play();">📻</span> <a class="sublink" href="https://lainon.life/radio/cafe.ogg" target="_blank">🔗</a></div>
<div class="link"><a href="https://lainchan.org/radio.html" target="_blank">Lainchan: Cyberia</a> <span class="sublink" onclick="document.getElementById('radioName').innerHTML='Lainchan: Cyberia'; document.getElementById('radioPlayer').src='https://lainon.life/radio/cyberia.ogg'; document.getElementById('radioPlayer').load(); document.getElementById('radioPlayer').play();">📻</span> <a class="sublink" href="https://lainon.life/radio/cyberia.ogg" target="_blank">🔗</a></div>
<div class="link"><a href="https://lainchan.org/radio.html" target="_blank">Lainchan: Everything</a> <span class="sublink" onclick="document.getElementById('radioName').innerHTML='Lainchan: Everything'; document.getElementById('radioPlayer').src='https://lainon.life/radio/everything.ogg'; document.getElementById('radioPlayer').load(); document.getElementById('radioPlayer').play();">📻</span> <a class="sublink" href="https://lainon.life/radio/everything.ogg" target="_blank">🔗</a></div>
<div class="link"><a href="https://lainchan.org/radio.html" target="_blank">Lainchan: Swing</a> <span class="sublink" onclick="document.getElementById('radioName').innerHTML='Lainchan: Swing'; document.getElementById('radioPlayer').src='https://lainon.life/radio/swing.ogg'; document.getElementById('radioPlayer').load(); document.getElementById('radioPlayer').play();">📻</span> <a class="sublink" href="https://lainon.life/radio/swing.ogg" target="_blank">🔗</a></div>
<div class="link"><a href="https://lumpenradio.com/" target="_blank">Lumpen Radio (Chicago, IL)</a> <a class="sublink" href="https://en.wikipedia.org/wiki/WLPN-LP" target="_blank">W</a> <span class="sublink" onclick="document.getElementById('radioName').innerHTML='Lumpen Radio (Chicago)'; document.getElementById('radioPlayer').src='https://radio.mensajito.mx/lumpenradio'; document.getElementById('radioPlayer').load(); document.getElementById('radioPlayer').play();">📻</span> <a class="sublink" href="https://radio.mensajito.mx/lumpenradio" target="_blank">🔗</a></div>
<div class="link"><a href="https://www.nts.live/radio" target="_blank">NTS Radio</a> <a class="sublink" href="https://en.wikipedia.org/wiki/NTS_Radio" target="_blank">W</a> <span class="sublink" onclick="document.getElementById('radioName').innerHTML='NTS Radio'; document.getElementById('radioPlayer').src='http://stream-relay-geo.ntslive.net/stream'; document.getElementById('radioPlayer').load(); document.getElementById('radioPlayer').play();">📻</span> <a class="sublink" href="http://stream-relay-geo.ntslive.net/stream" target="_blank">🔗</a></div>
<div class="link"><a href="https://www.nts.live/radio" target="_blank">NTS Radio 2</a> <span class="sublink" onclick="document.getElementById('radioName').innerHTML='NTS Radio 2'; document.getElementById('radioPlayer').src='http://stream-relay-geo.ntslive.net/stream2'; document.getElementById('radioPlayer').load(); document.getElementById('radioPlayer').play();">📻</span> <a class="sublink" href="http://stream-relay-geo.ntslive.net/stream2" target="_blank">🔗</a></div>
<div class="link"><a href="https://www.resonancefm.com/" target="_blank">Resonance FM (London, UK)</a> <a class="sublink" href="https://en.wikipedia.org/wiki/Resonance_FM" target="_blank">W</a> <span class="sublink" onclick="document.getElementById('radioName').innerHTML='Resonance FM (London, UK)'; document.getElementById('radioPlayer').src='https://stream.resonance.fm/resonance'; document.getElementById('radioPlayer').load(); document.getElementById('radioPlayer').play();">📻</span> <a class="sublink" href="https://stream.resonance.fm/resonance" target="_blank">🔗</a></div>
<div class="link"><a href="https://rinse.fm/" target="_blank">Rinse FM (London, UK)</a> <a class="sublink" href="https://en.wikipedia.org/wiki/Rinse_FM" target="_blank">W</a> <span class="sublink" onclick="document.getElementById('radioName').innerHTML='Rinse FM (London, UK)'; document.getElementById('radioPlayer').src='https://streamer-uk.rinse.fm:8443/stream'; document.getElementById('radioPlayer').load(); document.getElementById('radioPlayer').play();">📻</span> <a class="sublink" href="https://streamer-uk.rinse.fm:8443/stream" target="_blank">🔗</a></div>
<div class="link"><a href="https://scenesat.com/listenmenu" target="_blank">SceneSat</a> <span class="sublink" onclick="document.getElementById('radioName').innerHTML='SceneSat'; document.getElementById('radioPlayer').src='http://sentinel.scenesat.com:8000/scenesatmax'; document.getElementById('radioPlayer').load(); document.getElementById('radioPlayer').play();">📻</span> <a class="sublink" href="http://sentinel.scenesat.com:8000/scenesatmax" target="_blank">🔗</a></div>
<div class="link"><a href="https://www.slayradio.org/home.php" target="_blank">SLAYRadio</a></div>
<div class="link"><a href="https://www.abc.net.au/triplej/listen-live/" target="_blank">triple j (Australia)</a> <a class="sublink" href="https://en.wikipedia.org/wiki/Triple_J" target="_blank">W</a></div>
<div class="link"><a href="https://t.me/waveanime" target="_blank">Wave Anime Radio</a> <span class="sublink" onclick="document.getElementById('radioName').innerHTML='Wave Anime Radio'; document.getElementById('radioPlayer').src='https://otsu.s04.radio-tochka.com:5475/mount?audio.mp3'; document.getElementById('radioPlayer').load(); document.getElementById('radioPlayer').play();">📻</span> <a class="sublink" href="https://otsu.s04.radio-tochka.com:5475/mount?audio.mp3" target="_blank">🔗</a></div>
<div class="link"><a href="https://wfmu.org/" target="_blank">WFMU (East Orange, NJ)</a> <a class="sublink" href="https://en.wikipedia.org/wiki/WFMU" target="_blank">W</a> <span class="sublink" onclick="document.getElementById('radioName').innerHTML='WFMU (East Orange, NJ)'; document.getElementById('radioPlayer').src='http://stream0.wfmu.org/freeform-128k'; document.getElementById('radioPlayer').load(); document.getElementById('radioPlayer').play();">📻</span> <a class="sublink" href="http://stream0.wfmu.org/freeform-128k" target="_blank">🔗</a></div>
<div class="link"><a href="https://whumradio.org/" target="_blank">WHUM (Columbus, IN)</a> <span class="sublink" onclick="document.getElementById('radioName').innerHTML='WHUM (Columbus, IN)'; document.getElementById('radioPlayer').src='https://ais-edge37-live365-dal02.cdnstream.com/a79383'; document.getElementById('radioPlayer').load(); document.getElementById('radioPlayer').play();">📻</span> <a class="sublink" href="https://ais-edge37-live365-dal02.cdnstream.com/a79383" target="_blank">🔗</a></div>
<div class="link"><a href="https://www.wwno.org/" target="_blank">WWNO (New Orleans, LA)</a> <a class="sublink" href="https://en.wikipedia.org/wiki/WWNO" target="_blank">W</a> <span class="sublink" onclick="document.getElementById('radioName').innerHTML='WWNO (New Orleans, LA)'; document.getElementById('radioPlayer').src='https://tektite.streamguys1.com:5145/wwnolive'; document.getElementById('radioPlayer').load(); document.getElementById('radioPlayer').play();">📻</span> <a class="sublink" href="https://tektite.streamguys1.com:5145/wwnolive" target="_blank">🔗</a></div>
<hr>
<div class="link"><a href="https://somafm.com/" target="_blank">SomaFM</a> <a class="sublink" href="https://en.wikipedia.org/wiki/SomaFM" target="_blank">W</a></div>
<div class="link"><a href="https://somafm.com/beatblender/" target="_blank">SomaFM: Beat Blender</a> <span class="sublink" onclick="document.getElementById('radioName').innerHTML='SomaFM: Beat Blender'; document.getElementById('radioPlayer').src='https://ice1.somafm.com/beatblender-128-mp3'; document.getElementById('radioPlayer').load(); document.getElementById('radioPlayer').play();">📻</span> <a class="sublink" href="https://ice1.somafm.com/beatblender-128-mp3" target="_blank">🔗</a></div>
<div class="link"><a href="https://somafm.com/brfm/" target="_blank">SomaFM: Black Rock FM</a> <span class="sublink" onclick="document.getElementById('radioName').innerHTML='SomaFM: Black Rock FM'; document.getElementById('radioPlayer').src='https://ice1.somafm.com/brfm-128-mp3'; document.getElementById('radioPlayer').load(); document.getElementById('radioPlayer').play();">📻</span> <a class="sublink" href="https://ice1.somafm.com/brfm-128-mp3" target="_blank">🔗</a></div>
<div class="link"><a href="https://somafm.com/bootliquor/" target="_blank">SomaFM: Boot Liquor</a> <span class="sublink" onclick="document.getElementById('radioName').innerHTML='SomaFM: Boot Liquor'; document.getElementById('radioPlayer').src='https://ice1.somafm.com/bootliquor-320-mp3'; document.getElementById('radioPlayer').load(); document.getElementById('radioPlayer').play();">📻</span> <a class="sublink" href="https://ice1.somafm.com/bootliquor-320-mp3" target="_blank">🔗</a></div>
<div class="link"><a href="https://somafm.com/christmas/" target="_blank">SomaFM: Christmas Lounge</a> <span class="sublink" onclick="document.getElementById('radioName').innerHTML='SomaFM: Christmas Lounge'; document.getElementById('radioPlayer').src='https://ice1.somafm.com/christmas-256-mp3'; document.getElementById('radioPlayer').load(); document.getElementById('radioPlayer').play();">📻</span> <a class="sublink" href="https://ice1.somafm.com/christmas-256-mp3" target="_blank">🔗</a></div>
<div class="link"><a href="https://somafm.com/xmasrocks/" target="_blank">SomaFM: Christmas Rocks!</a> <span class="sublink" onclick="document.getElementById('radioName').innerHTML='SomaFM: Christmas Rocks!'; document.getElementById('radioPlayer').src='https://ice1.somafm.com/xmasrocks-128-mp3'; document.getElementById('radioPlayer').load(); document.getElementById('radioPlayer').play();">📻</span> <a class="sublink" href="https://ice1.somafm.com/xmasrocks-128-mp3" target="_blank">🔗</a></div>
<div class="link"><a href="https://somafm.com/cliqhop/" target="_blank">SomaFM: cliqhop idm</a> <span class="sublink" onclick="document.getElementById('radioName').innerHTML='SomaFM: cliqhop idm'; document.getElementById('radioPlayer').src='https://ice1.somafm.com/cliqhop-256-mp3'; document.getElementById('radioPlayer').load(); document.getElementById('radioPlayer').play();">📻</span> <a class="sublink" href="https://ice1.somafm.com/cliqhop-256-mp3" target="_blank">🔗</a></div>
<div class="link"><a href="https://somafm.com/covers/" target="_blank">SomaFM: Covers</a> <span class="sublink" onclick="document.getElementById('radioName').innerHTML='SomaFM: Covers'; document.getElementById('radioPlayer').src='https://ice1.somafm.com/covers-128-mp3'; document.getElementById('radioPlayer').load(); document.getElementById('radioPlayer').play();">📻</span> <a class="sublink" href="https://ice1.somafm.com/covers-128-mp3" target="_blank">🔗</a></div>
<div class="link"><a href="https://somafm.com/deepspaceone/" target="_blank">SomaFM: Deep Space One</a> <span class="sublink" onclick="document.getElementById('radioName').innerHTML='SomaFM: Deep Space One'; document.getElementById('radioPlayer').src='https://ice1.somafm.com/deepspaceone-128-mp3'; document.getElementById('radioPlayer').load(); document.getElementById('radioPlayer').play();">📻</span> <a class="sublink" href="https://ice1.somafm.com/deepspaceone-128-mp3" target="_blank">🔗</a></div>
<div class="link"><a href="https://somafm.com/defcon/" target="_blank">SomaFM: DEF CON Radio</a> <span class="sublink" onclick="document.getElementById('radioName').innerHTML='SomaFM: DEF CON Radio'; document.getElementById('radioPlayer').src='https://ice1.somafm.com/defcon-256-mp3'; document.getElementById('radioPlayer').load(); document.getElementById('radioPlayer').play();">📻</span> <a class="sublink" href="https://ice1.somafm.com/defcon-256-mp3" target="_blank">🔗</a></div>
<div class="link"><a href="https://somafm.com/specials/" target="_blank">SomaFM: Department Store Christmas</a> <span class="sublink" onclick="document.getElementById('radioName').innerHTML='SomaFM: Department Store Christmas'; document.getElementById('radioPlayer').src='https://ice1.somafm.com/specials-128-mp3'; document.getElementById('radioPlayer').load(); document.getElementById('radioPlayer').play();">📻</span> <a class="sublink" href="https://ice1.somafm.com/specials-128-mp3" target="_blank">🔗</a></div>
<div class="link"><a href="https://somafm.com/digitalis/" target="_blank">SomaFM: Digitalis</a> <span class="sublink" onclick="document.getElementById('radioName').innerHTML='SomaFM: Digitalis'; document.getElementById('radioPlayer').src='https://ice1.somafm.com/digitalis-128-mp3'; document.getElementById('radioPlayer').load(); document.getElementById('radioPlayer').play();">📻</span> <a class="sublink" href="https://ice1.somafm.com/digitalis-128-mp3" target="_blank">🔗</a></div>
<div class="link"><a href="https://somafm.com/dronezone/" target="_blank">SomaFM: Drone Zone</a> <span class="sublink" onclick="document.getElementById('radioName').innerHTML='SomaFM: Drone Zone'; document.getElementById('radioPlayer').src='https://ice1.somafm.com/dronezone-256-mp3'; document.getElementById('radioPlayer').load(); document.getElementById('radioPlayer').play();">📻</span> <a class="sublink" href="https://ice1.somafm.com/dronezone-256-mp3" target="_blank">🔗</a></div>
<div class="link"><a href="https://somafm.com/dubstep/" target="_blank">SomaFM: Dub Step Beyond</a> <span class="sublink" onclick="document.getElementById('radioName').innerHTML='SomaFM: Dub Step Beyond'; document.getElementById('radioPlayer').src='https://ice1.somafm.com/dubstep-256-mp3'; document.getElementById('radioPlayer').load(); document.getElementById('radioPlayer').play();">📻</span> <a class="sublink" href="https://ice1.somafm.com/dubstep-256-mp3" target="_blank">🔗</a></div>
<div class="link"><a href="https://somafm.com/fluid/" target="_blank">SomaFM: Fluid</a> <span class="sublink" onclick="document.getElementById('radioName').innerHTML='SomaFM: Fluid'; document.getElementById('radioPlayer').src='https://ice1.somafm.com/fluid-128-mp3'; document.getElementById('radioPlayer').load(); document.getElementById('radioPlayer').play();">📻</span> <a class="sublink" href="https://ice1.somafm.com/fluid-128-mp3" target="_blank">🔗</a></div>
<div class="link"><a href="https://somafm.com/folkfwd/" target="_blank">SomaFM: Folk Forward</a> <span class="sublink" onclick="document.getElementById('radioName').innerHTML='SomaFM: Folk Forward'; document.getElementById('radioPlayer').src='https://ice1.somafm.com/folkfwd-128-mp3'; document.getElementById('radioPlayer').load(); document.getElementById('radioPlayer').play();">📻</span> <a class="sublink" href="https://ice1.somafm.com/folkfwd-128-mp3" target="_blank">🔗</a></div>
<div class="link"><a href="https://somafm.com/groovesalad/" target="_blank">SomaFM: Groove Salad</a> <span class="sublink" onclick="document.getElementById('radioName').innerHTML='SomaFM: Groove Salad'; document.getElementById('radioPlayer').src='https://ice1.somafm.com/groovesalad-256-mp3'; document.getElementById('radioPlayer').load(); document.getElementById('radioPlayer').play();">📻</span> <a class="sublink" href="https://ice1.somafm.com/groovesalad-256-mp3" target="_blank">🔗</a></div>
<div class="link"><a href="https://somafm.com/gsclassic/" target="_blank">SomaFM: Groove Salad Classic</a> <span class="sublink" onclick="document.getElementById('radioName').innerHTML='SomaFM: Groove Salad Classic'; document.getElementById('radioPlayer').src='https://ice1.somafm.com/gsclassic-128-mp3'; document.getElementById('radioPlayer').load(); document.getElementById('radioPlayer').play();">📻</span> <a class="sublink" href="https://ice1.somafm.com/gsclassic-128-mp3" target="_blank">🔗</a></div>
<div class="link"><a href="https://somafm.com/reggae/" target="_blank">SomaFM: Heavyweight Reggae</a> <span class="sublink" onclick="document.getElementById('radioName').innerHTML='SomaFM: Heavyweight Reggae'; document.getElementById('radioPlayer').src='https://ice1.somafm.com/reggae-256-mp3'; document.getElementById('radioPlayer').load(); document.getElementById('radioPlayer').play();">📻</span> <a class="sublink" href="https://ice1.somafm.com/reggae-256-mp3" target="_blank">🔗</a></div>
<div class="link"><a href="https://somafm.com/illstreet/" target="_blank">SomaFM: Illinois Street Lounge</a> <span class="sublink" onclick="document.getElementById('radioName').innerHTML='SomaFM: Illinois Street Lounge'; document.getElementById('radioPlayer').src='https://ice1.somafm.com/illstreet-128-mp3'; document.getElementById('radioPlayer').load(); document.getElementById('radioPlayer').play();">📻</span> <a class="sublink" href="https://ice1.somafm.com/illstreet-128-mp3" target="_blank">🔗</a></div>
<div class="link"><a href="https://somafm.com/indiepop/" target="_blank">SomaFM: Indie Pop Rocks!</a> <span class="sublink" onclick="document.getElementById('radioName').innerHTML='SomaFM: Indie Pop Rocks!'; document.getElementById('radioPlayer').src='https://ice1.somafm.com/indiepop-128-mp3'; document.getElementById('radioPlayer').load(); document.getElementById('radioPlayer').play();">📻</span> <a class="sublink" href="https://ice1.somafm.com/indiepop-128-mp3" target="_blank">🔗</a></div>
<div class="link"><a href="https://somafm.com/jollysoul/" target="_blank">SomaFM: Jolly Ol’ Soul</a> <span class="sublink" onclick="document.getElementById('radioName').innerHTML='SomaFM: Jolly Ol’ Soul'; document.getElementById('radioPlayer').src='https://ice1.somafm.com/jollysoul-128-mp3'; document.getElementById('radioPlayer').load(); document.getElementById('radioPlayer').play();">📻</span> <a class="sublink" href="https://ice1.somafm.com/jollysoul-128-mp3" target="_blank">🔗</a></div>
<div class="link"><a href="https://somafm.com/seventies/" target="_blank">SomaFM: Left Coast 70s</a> <span class="sublink" onclick="document.getElementById('radioName').innerHTML='SomaFM: Left Coast 70s'; document.getElementById('radioPlayer').src='https://ice1.somafm.com/seventies-320-mp3'; document.getElementById('radioPlayer').load(); document.getElementById('radioPlayer').play();">📻</span> <a class="sublink" href="https://ice1.somafm.com/seventies-320-mp3" target="_blank">🔗</a></div>
<div class="link"><a href="https://somafm.com/lush/" target="_blank">SomaFM: Lush</a> <span class="sublink" onclick="document.getElementById('radioName').innerHTML='SomaFM: Lush'; document.getElementById('radioPlayer').src='https://ice1.somafm.com/lush-128-mp3'; document.getElementById('radioPlayer').load(); document.getElementById('radioPlayer').play();">📻</span> <a class="sublink" href="https://ice1.somafm.com/lush-128-mp3" target="_blank">🔗</a></div>
<div class="link"><a href="https://somafm.com/metal/" target="_blank">SomaFM: Metal Detector</a> <span class="sublink" onclick="document.getElementById('radioName').innerHTML='SomaFM: Metal Detector'; document.getElementById('radioPlayer').src='https://ice1.somafm.com/metal-128-mp3'; document.getElementById('radioPlayer').load(); document.getElementById('radioPlayer').play();">📻</span> <a class="sublink" href="https://ice1.somafm.com/metal-128-mp3" target="_blank">🔗</a></div>
<div class="link"><a href="https://somafm.com/missioncontrol/" target="_blank">SomaFM: Mission Control</a> <span class="sublink" onclick="document.getElementById('radioName').innerHTML='SomaFM: Mission Control'; document.getElementById('radioPlayer').src='https://ice1.somafm.com/missioncontrol-128-mp3'; document.getElementById('radioPlayer').load(); document.getElementById('radioPlayer').play();">📻</span> <a class="sublink" href="https://ice1.somafm.com/missioncontrol-128-mp3" target="_blank">🔗</a></div>
<div class="link"><a href="https://somafm.com/n5md/" target="_blank">SomaFM: n5MD Radio</a> <span class="sublink" onclick="document.getElementById('radioName').innerHTML='SomaFM: n5MD Radio'; document.getElementById('radioPlayer').src='https://ice1.somafm.com/n5md-128-mp3'; document.getElementById('radioPlayer').load(); document.getElementById('radioPlayer').play();">📻</span> <a class="sublink" href="https://ice1.somafm.com/n5md-128-mp3" target="_blank">🔗</a></div>
<div class="link"><a href="https://somafm.com/poptron/" target="_blank">SomaFM: PopTron</a> <span class="sublink" onclick="document.getElementById('radioName').innerHTML='SomaFM: PopTron'; document.getElementById('radioPlayer').src='https://ice1.somafm.com/poptron-128-mp3'; document.getElementById('radioPlayer').load(); document.getElementById('radioPlayer').play();">📻</span> <a class="sublink" href="https://ice1.somafm.com/poptron-128-mp3" target="_blank">🔗</a></div>
<div class="link"><a href="https://somafm.com/secretagent/" target="_blank">SomaFM: Secret Agent</a> <span class="sublink" onclick="document.getElementById('radioName').innerHTML='SomaFM: Secret Agent'; document.getElementById('radioPlayer').src='https://ice1.somafm.com/secretagent-128-mp3'; document.getElementById('radioPlayer').load(); document.getElementById('radioPlayer').play();">📻</span> <a class="sublink" href="https://ice1.somafm.com/secretagent-128-mp3" target="_blank">🔗</a></div>
<div class="link"><a href="https://somafm.com/7soul/" target="_blank">SomaFM: Seven Inch Soul</a> <span class="sublink" onclick="document.getElementById('radioName').innerHTML='SomaFM: Seven Inch Soul'; document.getElementById('radioPlayer').src='https://ice1.somafm.com/7soul-128-mp3'; document.getElementById('radioPlayer').load(); document.getElementById('radioPlayer').play();">📻</span> <a class="sublink" href="https://ice1.somafm.com/7soul-128-mp3" target="_blank">🔗</a></div>
<div class="link"><a href="https://somafm.com/sf1033/" target="_blank">SomaFM: SF 10-33</a> <span class="sublink" onclick="document.getElementById('radioName').innerHTML='SomaFM: SF 10-33'; document.getElementById('radioPlayer').src='https://ice1.somafm.com/sf1033-128-mp3'; document.getElementById('radioPlayer').load(); document.getElementById('radioPlayer').play();">📻</span> <a class="sublink" href="https://ice1.somafm.com/sf1033-128-mp3" target="_blank">🔗</a></div>
<div class="link"><a href="https://somafm.com/live/" target="_blank">SomaFM: SomaFM Live</a> <span class="sublink" onclick="document.getElementById('radioName').innerHTML='SomaFM: SomaFM Live'; document.getElementById('radioPlayer').src='https://ice1.somafm.com/live-128-mp3'; document.getElementById('radioPlayer').load(); document.getElementById('radioPlayer').play();">📻</span> <a class="sublink" href="https://ice1.somafm.com/live-128-mp3" target="_blank">🔗</a></div>
<div class="link"><a href="https://somafm.com/sonicuniverse/" target="_blank">SomaFM: Sonic Universe</a> <span class="sublink" onclick="document.getElementById('radioName').innerHTML='SomaFM: Sonic Universe'; document.getElementById('radioPlayer').src='https://ice1.somafm.com/sonicuniverse-256-mp3'; document.getElementById('radioPlayer').load(); document.getElementById('radioPlayer').play();">📻</span> <a class="sublink" href="https://ice1.somafm.com/sonicuniverse-256-mp3" target="_blank">🔗</a></div>
<div class="link"><a href="https://somafm.com/spacestation/" target="_blank">SomaFM: Space Station Soma</a> <span class="sublink" onclick="document.getElementById('radioName').innerHTML='SomaFM: Space Station Soma'; document.getElementById('radioPlayer').src='https://ice1.somafm.com/spacestation-128-mp3'; document.getElementById('radioPlayer').load(); document.getElementById('radioPlayer').play();">📻</span> <a class="sublink" href="https://ice1.somafm.com/spacestation-128-mp3" target="_blank">🔗</a></div>
<div class="link"><a href="https://somafm.com/suburbsofgoa/" target="_blank">SomaFM: Suburbs of Goa</a> <span class="sublink" onclick="document.getElementById('radioName').innerHTML='SomaFM: Suburbs of Goa'; document.getElementById('radioPlayer').src='https://ice1.somafm.com/suburbsofgoa-128-mp3'; document.getElementById('radioPlayer').load(); document.getElementById('radioPlayer').play();">📻</span> <a class="sublink" href="https://ice1.somafm.com/suburbsofgoa-128-mp3" target="_blank">🔗</a></div>
<div class="link"><a href="https://somafm.com/synphaera/" target="_blank">SomaFM: Synphaera Radio</a> <span class="sublink" onclick="document.getElementById('radioName').innerHTML='SomaFM: Synphaera Radio'; document.getElementById('radioPlayer').src='https://ice1.somafm.com/synphaera-256-mp3'; document.getElementById('radioPlayer').load(); document.getElementById('radioPlayer').play();">📻</span> <a class="sublink" href="https://ice1.somafm.com/synphaera-256-mp3" target="_blank">🔗</a></div>
<div class="link"><a href="https://somafm.com/thetrip/" target="_blank">SomaFM: The Trip</a> <span class="sublink" onclick="document.getElementById('radioName').innerHTML='SomaFM: The Trip'; document.getElementById('radioPlayer').src='https://ice1.somafm.com/thetrip-128-mp3'; document.getElementById('radioPlayer').load(); document.getElementById('radioPlayer').play();">📻</span> <a class="sublink" href="https://ice1.somafm.com/thetrip-128-mp3" target="_blank">🔗</a></div>
<div class="link"><a href="https://somafm.com/thistle/" target="_blank">SomaFM: ThistleRadio</a> <span class="sublink" onclick="document.getElementById('radioName').innerHTML='SomaFM: ThistleRadio'; document.getElementById('radioPlayer').src='https://ice1.somafm.com/thistle-128-mp3'; document.getElementById('radioPlayer').load(); document.getElementById('radioPlayer').play();">📻</span> <a class="sublink" href="https://ice1.somafm.com/thistle-128-mp3" target="_blank">🔗</a></div>
<div class="link"><a href="https://somafm.com/u80s/" target="_blank">SomaFM: Underground 80s</a> <span class="sublink" onclick="document.getElementById('radioName').innerHTML='SomaFM: Underground 80s'; document.getElementById('radioPlayer').src='https://ice1.somafm.com/u80s-256-mp3'; document.getElementById('radioPlayer').load(); document.getElementById('radioPlayer').play();">📻</span> <a class="sublink" href="https://ice1.somafm.com/u80s-256-mp3" target="_blank">🔗</a></div>
<div class="link"><a href="https://somafm.com/vaporwaves/" target="_blank">SomaFM: Vaporwaves</a> <span class="sublink" onclick="document.getElementById('radioName').innerHTML='SomaFM: Vaporwaves'; document.getElementById('radioPlayer').src='https://ice1.somafm.com/vaporwaves-128-mp3'; document.getElementById('radioPlayer').load(); document.getElementById('radioPlayer').play();">📻</span> <a class="sublink" href="https://ice1.somafm.com/vaporwaves-128-mp3" target="_blank">🔗</a></div>
<div class="link"><a href="https://somafm.com/xmasinfrisko/" target="_blank">SomaFM: Xmas in Frisko</a> <span class="sublink" onclick="document.getElementById('radioName').innerHTML='SomaFM: Xmas in Frisko'; document.getElementById('radioPlayer').src='https://ice1.somafm.com/xmasinfrisko-128-mp3'; document.getElementById('radioPlayer').load(); document.getElementById('radioPlayer').play();">📻</span> <a class="sublink" href="https://ice1.somafm.com/xmasinfrisko-128-mp3" target="_blank">🔗</a></div>
<hr>
<div class="link"><a href="https://www.jouluradio.fi/info?lang=en" target="_blank">Jouluradio (Finnish Christmas radio)</a> <a class="sublink" href="https://fi.wikipedia.org/wiki/Jouluradio" target="_blank">W</a> <span class="sublink" onclick="document.getElementById('radioName').innerHTML='Jouluradio (Finnish Christmas radio)'; document.getElementById('radioPlayer').src='https://c0.toivon.net/toivon/toivon_0?mp=/stream'; document.getElementById('radioPlayer').load(); document.getElementById('radioPlayer').play();">📻</span> <a class="sublink" href="https://c0.toivon.net/toivon/toivon_0?mp=/stream" target="_blank">🔗</a></div>
<div class="link">⚠ DISABLED ⚠ <a href="https://www.jouluradio.fi/info?lang=en" target="_blank">Jouluradio: Julradion</a> <span class="sublink" onclick="document.getElementById('radioName').innerHTML='Jouluradio: Julradion'; document.getElementById('radioPlayer').src='https://c1.toivon.net/toivon/toivon_1?mp=/stream'; document.getElementById('radioPlayer').load(); document.getElementById('radioPlayer').play();">📻</span> <a class="sublink" href="https://c1.toivon.net/toivon/toivon_1?mp=/stream" target="_blank">🔗</a></div>
<div class="link">⚠ DISABLED ⚠ <a href="https://www.jouluradio.fi/info?lang=en" target="_blank">Jouluradio: Kauneimmat joululaulut (Christmas carols)</a> <span class="sublink" onclick="document.getElementById('radioName').innerHTML='Jouluradio: Kauneimmat joululaulut (Christmas carols)'; document.getElementById('radioPlayer').src='https://c2.toivon.net/toivon/toivon_2?mp=/stream'; document.getElementById('radioPlayer').load(); document.getElementById('radioPlayer').play();">📻</span> <a class="sublink" href="https://c2.toivon.net/toivon/toivon_2?mp=/stream" target="_blank">🔗</a></div>
<div class="link">⚠ DISABLED ⚠ <a href="https://www.jouluradio.fi/info?lang=en" target="_blank">Jouluradio: Lasten jouluradio (Children’s Christmas radio)</a> <span class="sublink" onclick="document.getElementById('radioName').innerHTML='Jouluradio: Lasten jouluradio (Children’s Christmas radio)'; document.getElementById('radioPlayer').src='https://c3.toivon.net/toivon/toivon_3?mp=/stream'; document.getElementById('radioPlayer').load(); document.getElementById('radioPlayer').play();">📻</span> <a class="sublink" href="https://c3.toivon.net/toivon/toivon_3?mp=/stream" target="_blank">🔗</a></div>
<div class="link">⚠ DISABLED ⚠ <a href="https://www.jouluradio.fi/info?lang=en" target="_blank">Jouluradio: Pikkujouluradio (Little Christmas radio)</a> <span class="sublink" onclick="document.getElementById('radioName').innerHTML='Jouluradio: Pikkujouluradio (Little Christmas radio)'; document.getElementById('radioPlayer').src='https://c4.toivon.net/toivon/toivon_4?mp=/stream'; document.getElementById('radioPlayer').load(); document.getElementById('radioPlayer').play();">📻</span> <a class="sublink" href="https://c4.toivon.net/toivon/toivon_4?mp=/stream" target="_blank">🔗</a></div>
<div class="link">⚠ DISABLED ⚠ <a href="https://www.jouluradio.fi/info?lang=en" target="_blank">Jouluradio: Rouhea joulu (Merry Christmas)</a> <span class="sublink" onclick="document.getElementById('radioName').innerHTML='Jouluradio: Rouhea joulu (Merry Christmas)'; document.getElementById('radioPlayer').src='https://c5.toivon.net/toivon/toivon_5?mp=/stream'; document.getElementById('radioPlayer').load(); document.getElementById('radioPlayer').play();">📻</span> <a class="sublink" href="https://c5.toivon.net/toivon/toivon_5?mp=/stream" target="_blank">🔗</a></div>
<div class="link">⚠ DISABLED ⚠ <a href="https://www.jouluradio.fi/info?lang=en" target="_blank">Jouluradio: Klassinen joulu (Classic Christmas)</a> <span class="sublink" onclick="document.getElementById('radioName').innerHTML='Jouluradio: Klassinen joulu (Classic Christmas)'; document.getElementById('radioPlayer').src='https://c6.toivon.net/toivon/toivon_6?mp=/stream'; document.getElementById('radioPlayer').load(); document.getElementById('radioPlayer').play();">📻</span> <a class="sublink" href="https://c6.toivon.net/toivon/toivon_6?mp=/stream" target="_blank">🔗</a></div>
<div class="link">⚠ DISABLED ⚠ <a href="https://www.jouluradio.fi/info?lang=en" target="_blank">Jouluradio: Happy Holidays</a> <span class="sublink" onclick="document.getElementById('radioName').innerHTML='Jouluradio: Happy Holidays'; document.getElementById('radioPlayer').src='https://c7.toivon.net/toivon/toivon_7?mp=/stream'; document.getElementById('radioPlayer').load(); document.getElementById('radioPlayer').play();">📻</span> <a class="sublink" href="https://c7.toivon.net/toivon/toivon_7?mp=/stream" target="_blank">🔗</a></div>
<div class="link">⚠ DISABLED ⚠ <a href="https://www.jouluradio.fi/info?lang=en" target="_blank">Jouluradio: Jazzjoulu (Jazz Christmas)</a> <span class="sublink" onclick="document.getElementById('radioName').innerHTML='Jouluradio: Jazzjoulu (Jazz Christmas)'; document.getElementById('radioPlayer').src='https://c8.toivon.net/toivon/toivon_8?mp=/stream'; document.getElementById('radioPlayer').load(); document.getElementById('radioPlayer').play();">📻</span> <a class="sublink" href="https://c8.toivon.net/toivon/toivon_8?mp=/stream" target="_blank">🔗</a></div>
<div class="link">⚠ DISABLED ⚠ <a href="https://www.jouluradio.fi/info?lang=en" target="_blank">Jouluradio: Indiejoulu (Indie Christmas)</a> <span class="sublink" onclick="document.getElementById('radioName').innerHTML='Jouluradio: Indiejoulu (Indie Christmas)'; document.getElementById('radioPlayer').src='https://c9.toivon.net/toivon/toivon_9?mp=/stream'; document.getElementById('radioPlayer').load(); document.getElementById('radioPlayer').play();">📻</span> <a class="sublink" href="https://c9.toivon.net/toivon/toivon_9?mp=/stream" target="_blank">🔗</a></div>
<p><audio id="radioPlayer" src="" preload="none" autoplay="" controls="" style="vertical-align:middle;">
</audio><span> </span>
<span style="border:solid 1px #F00; color:#F00; cursor:pointer; font-size:16pt; font-weight:bold; padding:2px;" onclick="document.getElementById('radioPlayer').pause(); document.getElementById('radioPlayer').src = ''; document.getElementById('radioName').innerHTML='';">Stop</span>
<table>
<tbody><tr><td id="radioName"></td></tr>
<tr><td id="radioMeta"></td></tr>
</tbody></table>
</p></body>
</html>
.M3U8 File
Save as .M3U8, load into VLC.
Notes:
Audio URLs for CBC Radio One Vancouver and SLAYRadio became broken at some point, so I removed them. The 9 alternate Jouluradio stations do not work but are expected to resume operation around Christmas.
Why do you need to add a "Stop" button next to an HTML5 audio element? Because there is no stop/square button control by default and merely pausing it will continue to download live audio.
I did not add metadata (track title) detection, which would have almost certainly required a 241 KB javascript library and not worked in all cases. I'll look into it some more.
You might need to disable a script blocker for the HTML page to be able to load in audio from non-same-origin sources.
As you know, the UK is sliding backwards rapidly to the 19th century following democracy's final decision, the one and only Will of the People(TM) decided on 23rd June 2016. This "will" is being imposed on all parts of the UK whether they voted for it or not by the Mother of Parliaments.
We have an unelected, hereditary head of state (Her Majesty Queen Elizabeth II) and the second chamber of our parliament, the House of Lords is also unelected, largely hereditary but also by appointment by the Establishment (the Monarchy, but nominated by the ruling political party of the day).
When "the country" (England, mostly....) chose the final answer to democracy once and for all on 23rd June 2016 this was touted as the beginning of a new era of freedom, hope and prosperity.
So far we are back to 1970s levels of inflation, there's a labour shortage, people starving and having to rely on food banks, people waiting so long for emergency ambulances that they are dropping dead before they arrive, people waiting in ambulances for tens of hours to get into hospitals, school buildings falling down, racial tensions and buying and selling things across borders is becoming much more expensive. Companies have gone out of business and/or have had to relocate. There are queues of commercial vehicles at the ports. There are tantrums from the "unionists" (the ones who don't believe in dinosaurs or women's rights) in Northern Ireland which have effectively halted democracy and threaten a return to the violence and terror of decades past.
Scientific research collaborations are falling apart, contracts are being lost, people are being forced to "go back to where they came from" particularly if they are well-educated professionals paying tax and so on.
However, to cheer us all up, next weekend is the Queen's Platinum Jubilee. In February, she passed 70 years in the post, the longest-serving British monarch. So we need to put up bunting featuring the Butcher's Apron, drink a toast and sing patriotic ditties.
But what's even better, to really get the party started, our Prime Minister, Boorish Johnson, now that we are truly free of the Undemocratic Marxist Liberal Fascist Globalist Protectionist Utra Free Market Socialist Captialist EUSSR, is proposing to bring back imperial measurements. We'll be able to have our fish and chips in feet and inches furlongs per fortnight again as God intended.
There are other things on their to-do list, like repealing the Human Rights Act, you know the thing that gives us in law the right to life, the right to a fair trial with due process, the right to free speech, freedom of thought, freedom of religion and so on.
What's really cunning about getting rid of Human Rights in law is that it paves the way for the reintroduction of the Death Penalty.
There are Death Penalty enthusiasts in the current government.
This is Britannia Unhinged. They knew what they were voting for.
"Aw, it's a funny old world," Said Henry's Cat.
So I went from being the engineer doing something while training up the PHB above to being a PHB organising a bunch of people to being...?
This is the thing: what am I?
I did the PHB stuff because it needed doing. I put in new processes, got some infrastructure in place and got some stuff going, LART'd more senior people, did lots and lots of work outside business hours, just about lost the plot... and then got some more technical stuff to do.
Here I am, compiler, interpreter and VM in hand, fixing bugs, telling people that compiler warnings are Useful(TM), stopping things from crashing and generally doing stuff.
I'm not sure I can do it fast enough, though. We'll see.
They gave me a pay rise (hooray!) and so I thought I might treat myself to some new second-hand toys (junk) from Ebay and today I got a motherboard, CPU and RAM bundle (AMD Phenom II X6 3.2GHz, 16GB ECC RAM), and a new case and got it all up and running.
Yesterday, my Phenom II X4 940 BE broke. It boots, and crashes (in the kernel) after a few seconds. I'm sad. That CPU goes back a long way, and it keeps my feet warm under my desk during the day while I'm working, but no more. I have tried cleaning out the heatsink, a different power supply and I have run memtest86+ on it. Single-threaded it passes. Multi-threaded it fails. I wonder whether years of being a little too hot have broken it?
Fortunately, the CPU I got today will work in the old motherboard of the X4. This motherboard will take an AMD FX processor. I'll look out for one of those. That should really keep my feet warm.
And I finally wrote a line of Python on company time!