The Artisan Radio Blog


January 24, 2021 17:05 Pacific - Science

It is so refreshing to see the science-based decisions being made by Biden in only his first few days as President.

Now that Trump is gone, we're starting to hear what was really happening behind the scenes.  Under Trump, Dr. Fauci says that "science was distorted and/or rejected.".  Dr. Birx is saying that some in the White House believed that COVID was a hoax, and fed Trump parallel information.

Too bad that these people (and others) didn't speak out when it could have made more of a difference. The 'I was only following orders' defense is still alive and well today.

January 24, 2021 12:22 Pacific - Chinese Transmitters

I've posted previously that the often maligned Chinese transmitters CZH-7C and their relatives appear to have been FCC (and Industry Canada) Part 15 certified.  I first found out about that on RECNET, and subsequently found the appropriate certification information on the FCC and IC databases.

These come up for sale quite frequently on e-bay (used/open box) and are also available on Amazon new.  Up until recently, most of what I've seen haven't had any certification stickers, but I've started seeing some transmitters with those labels and the FCC/IC ID.  On Amazon, pictures are shown with the certification numbers on the back; on e-bay, I saw the labels on the top.

There's no way that the original transmitters could have been certified, as they had advertised ranges well above that possible from certified devices. I suspect they modified the firmware to add a super low power level.  The Decade CM-10, after all, was based on a CZH-05B board.  I opened mine up after it stopped working due to a static discharge, my bad, and the board was marked as such.  The firmware in my CM-10 had also been modified to take away the ability to change power levels - the original CZH-05B, for example, had several power levels from 10 microwatts up to 500 milliwatts.  The CM-10 may have used the 10 microwatt level, or that could have even been reduced further.

There's much more to certification, however, than power levels.  Certified transmitters have to output a 'clean' signal, with harmonics and adjacent channel interference reduced appropriately.  The Decade CM-10 (or the power reduced CZH-05B) obviously met those requirements, and the 'new' CZH transmitters have to as well to be certified.

There is a Part 15 Forum that delights in trashing all transmitters out of China as "junk", and illegal.  Guess they should do some further research on that statement, or risk spreading the misinformation that they often accuse others of doing.

January 23, 2021 16:59 Pacific - Part 15 Forums

I always like to see what's happening on the remaining Part 15 Forums.  Not much, apparently.  There have been very few posts since the new year, except for Hobbybroadcaster.  And most of those come from the site administrator.

Speaking of Hobbybroadcaster, after examining the posts I can see, I find it difficult to understand why anyone would subscribe to the one payware site.

Maybe if you can't spell Google, I guess.

January 22, 2021 15:12 Pacific - Waiting...

I am now awaiting delivery of the sound card necessary for the Artisan Radio production server to sample at 192 Khz so that it can generate a stereo signal with RDS.  The server is non expandable (running Windows Server 2008 R2), so it has to be an external USB device.  In the meantime, I have been running daily tests with simultaneous over-the-air broadcasting and streaming, and everything appears to be holding up nicely.

January 15, 2021 11:36 Pacific - Why I Hate Development Environments

I get why development environments such as QT (which was used for JMPX) were released.  They're supposed to simplify the complex task of developing software.

Unfortunately, for a number of reasons, they miss the boat for that objective.

Start of rant.

Development environments (or DEs) add complexity.  You have to learn how to use them before starting.  So immediately, some of the simplification is lost.

Next, DEs can encourage lazy thinking, and lazy programming.  If you're going to develop a software package, a lot of pre thought has to go into what you're trying to do, both at the design stage and the programming stage.  There's always the temptation with a DE to just jump right in and start programming.  Indeed, some DEs even market that idea.  Speed up your development cycle, they say.  Unfortunately, no thought beforehand leads to a thoughtless design and poorly laid out programming.

DEs even provide a debugging environment, supposedly to make it easier to get your software working.  But debugging, or testing as I like to call it, needs to also be thought about at the very beginning.  I always lay out how I'm going to test the software I'm building before a single line of code is written.  Testing becomes an integral part of the design, not an afterthought as it commonly becomes when using a DE.

And in fact, DEs can unduly restrict your design and programming.   If you want the DE to work effectively, you have to follow its idea of how to develop.  If you want to, say, develop a user interface that it provides tools for, then it can be relatively easy.  If you want to go outside the box and so something different, it can be exceedingly difficult.  Why limit your software design and implementation with the choice of DE before you've even begun?

And finally, when you get ready to deploy your software outside of the DE, the very fact that the DE hides a lot of internal messiness actually hurts.  I found that out attempting to deploy JMPX to my production radio automation computer.  A lot of the work of the DE is handled by dynamically linked libraries that are called at run time.  But in the version of QT I was using, it was not readily apparent exactly what those libraries were.  In later versions, QT came out with a tool to assist you in identifying those libraries, but in reading the documentation I don't think the process was simplified to any great extent.  I eventually had to download a tool from Microsoft - Process Explorer - that identified the dll's that a process was attempting to use, and then manually find them and copy them to the final release directory for JMPX.

The bottom line is that a DE is a tool that may (or may not) be able to help you in the software development cycle.  There's no way to eliminate the steps of design, program, test and then release.  IMO, a DE might be able to help you speed up programming somewhat if you're familiar with it.  If your design fits into the parameters of the design tools that a DE might provide, it may help there also.  But overall, there are limits as to how much you can compress the time to develop software.  And it's entirely possible that a DE will elongate the time required, due to encouraging poor design and hack-like coding.

End of rant.

January 14, 2021 10:50 Pacific - More Sound

Found another preset (emulating the Optimod 8182) that gives a slightly fuller sound.  Again, modified it to eliminate the advanced clipper.

Almost there.  Really, there was very little difference between the 8500 & this preset.  The 8182 used both the simple & advanced clipper (and not much of the advanced), so it was easier to mod.  The problem with making modifications (and I'm sure this is no surprise to sound engineers) is that if you touch something in one place, it has potential ramifications throughout the audio chain, and a little change can make a big change overall.

January 13, 2021 22:19 Pacific - Sound

The modifications to JMPX were tested out today with a car radio, and worked just fine.  I would be more than willing to share the mods with anyone running Zara and interested in experimenting with RDS.  The source needs more cleaning up in the user interface, but I'm shelving that right now to work on improving the sound of the station.

Speaking of which, my admiration for radio sound engineers has grown appreciably over the past few days.  It's really difficult to make these audio processing tools sound good, particularly over a wide range of music.

I've actually changed my original strategy, and will be using the freeware parts of Stereo Tool to generate the audio that will feed into JMPX.  It's the payware parts of Stereo Tool that take up the vast majority of the CPU.  I've found an Optimod 8500 emulator preset that seems to work extremely well on all sorts of music, particularly classical.  But it sounds almost as good on 50s and 60s Oldies.  At least to me.  Originally, the preset used the Advanced Clipper within Stereo Tool (payware), but I modified it to use the basic clipper with hard limiting to take care of the extra peaks, and I don't notice much difference in the sound.  It's nice and clean, exactly what you want for classical/opera (and I like it for other music as well).  Most presets I've found muddy the sound somewhat (maybe the word I'm looking for is make it more dense), and enhance the bass far beyond what was originally intended.  I prefer something that generates audio closer to the original intent (but louder for broadcasting/streaming purposes).

I wouldn't want to try to create this preset on my own, I'll tell you.  Or any one for that matter.

Oh, and I fogot in the description of the station to include my homemade voice tracking, consisting of a scheduler, TTS software and a decent voice.  It's not perfect, but for most tracks it sounds OK.  The stream will display metadata, over-the-air will have RDS and for everything else (including those just listening without looking at a screen), the voice tracking.  Programming identification will be no problem.

January 12, 2021 22:19 Pacific - Success!

As a proof of concept, today I was able to successfully receive a (Canadian rules) Part 15 FM signal with stereo/RDS at a distance of about 100 meters from the transmitter.

The tools used included the software packages Zara Radio, Virtual Audio Cable & Stereo Tool.  Hardware included the ESI Waveterminal 192L sound card I just received, and a Decade mono transmitter.

Some interesting tidbits.  RDS uses a slow, digital transmission that is somewhat difficult to receive - I had to have a solid FM signal to get the RDS data.  I can play around with the strength of the RDS signals, but I don't know what effect that will have overall.  Stereo Tool introduces adware about itself in the unregistered version fairly often in the RDS stream.  It's useable, but not desirable.  And finally, as a plus, Stereo Tool completely sets up the audio sampling rate for its output.  More on that later.

I then moved on to looking at the open source JMPX as a solution, since it's free.  I was able to fairly easily modify it to take RDS info from the Zara currentsong.txt file.  It's hard-coded, but I'm not going to tackle modifying the user interface until everything else is working.  The biggest problem I had doing the modification was deciphering the development tools and environment classes.

I then added another mod to display the current song title in the default RT text field in the user interface (which originally was constant with whatever you initially put in there.  That was mainly for debugging purposes, but I think I'm going to keep it that way.  It's pretty useful.

I haven't tested the output on a radio yet, but I did notice (in the Waveterminal sound card monitoring software) that JMPX did not set up the proper audio output sampling rate - it just used whatever the default was.  I had to go in and set that up in the Sounds control panel tab to 192Khz.  Testing with a car radio will be done tomorrow.

I will also ensure that Airomate also works, but I don't anticipate any issues there.  If for some reason I can't get JMPX working, Airomate would be worth the 29 Euro price.

There just don't seem to be any other options available for software RDS.  As I mentioned previously, Hellfire will generate stereo, but doesn't seem to do RDS.  At least, I never found anything to indicate that it does.

Stereo Coder, which is freeware, is no longer available.  Perhaps I can get a copy from Boomer, but until then, it's off the table.

Another open source project, MPXGen, is self admittedly a work in progress, and seems to be Mac-based only.

All in all, a very productive day.

Right now, it looks as if the station will consist of Zara Radio, VST with compressor, equalizer & clipper plugins, and JMPX.  That will do over-the-air FM.  Streaming will be accomplished with IceCast & EdCast (stereo mp3 with a bit rate yet to be determined).  Virtual Audio Cable or VBCable will be used to connect everything together.

January 11, 2021 15:25 Pacific - Freedom of Speech

Twitter, Facebook and others were quite within their rights to ban Trump from their platform.  They are private companies, and anyone wanting to deal with them signs a Terms of Service agreement when registering.  If someone, anyone, violates those terms, the companies have every right to take suitable action, including banning.

As far as I'm concerned, Trump should have been banned ages ago.  Anyone else posting the things that he posted would have been.  Those screaming about the First Amendment in the U.S. (usually those that have been banned, or their followers) appear to be ignorant about what the First Amendment and freedom of speech is (what a big surprise).  They don't realize that it only generally only applies to Government attempting to suppress free speech from individuals.  Private companies are exempt.

Now, you can disagree with those decisions.  That's your right.  But it's their platforms.  Their money to build those platforms.  Their rules.  If you don't like the rules, you can go play elsewhere.

That's what I did when I realized that two of the remaining Part 15 Forums were run by alt right wingers, and that was affecting their actions, decisions and moderation.  I didn't want to play, and left.  I express my opinions in this blog, which is probably read by as many people as when I was in those Forums (which is not many).  But that's OK.  I find it therapeutic to write and give my opinions, however unwanted (or wanted) they may be.

January 10, 2021 22:03 Pacific - Debugging RDS/MPX

I've gotten both Airomate & Stereo Tool to generate stereo/RDS output.  But output from my transmitter is still only mono, likely because it has a low pass filter and is getting rid of the stereo pilot and all frequencies above it (the stereo info at 38Khz & the RDS info at 57Khz).

I wasn't sure at first where the problem was.  The software might not be generating the proper signals.  The virtual audio cables might not be working correctly.  The existing sound card, which does go up to 96Khz sampling might not be working (it would support MPX, but not RDS).

I found bug(s) in Virtual Audio Cable - the Airomate software was not able to open a cable with a sampling rate above 48Khz and errored out (as did the VAC Audio Repeater utility).  So I used VBCable, a freeware alternative, and it worked.

I needed something to verify the audio output, and I found another freeware VST plugin - SPAN - that does a nice job of displaying the audio spectrum up to 96Khz (so you can see the stereo info, but not RDS).  Stereo Tool supposedly show it to you as well, but I wanted independent confirmation that it was getting out of that software.

That leaves the transmitter as the likely problem.  I'll try another one I have lying around, but the irony is that generating your own stereo audio/RDS works better with an el cheapo mono transmitter with no filtering.  The ones I have are certified and probably too good.  Go figure.

I might end up having to get another transmitter as well.

January 10, 2021 8:53 Pacific - Hellfire

Took a quick look at the Hellfire software also mentioned by Boomer.

This is a complicated package, with lots of options and processing.  The big advantage is that it's free, at least right now.

Downsides include it takes a ton of CPU, even more than Stereo Tool, the interface is crude at best, and it doesn't appear to have RDS (although it does have stereo generation).

It's also self-admittedly a work in progress.  I managed to crash it in the first few minutes I was playing around with it.

This would be a good tool for a licensed radio station, once the bugs are all worked out.  IMO, too much for a Part 15 station with limited computer and human resources, and audio sources with quality all over the map, i.e., Artisan Radio.

I kinda like my relatively simple setup, and it still sounds good for what it is, if I do say so myself.

January 9, 2021 14:08 Pacific - More RDS Software

Boomer, a regular contributor to the Blare Blog pointed me to another possible Stereo/RDS generator tool - StereoCoder.  This is a freeware program, but unfortunately the company that developed it doesn't appear to offer it as a download any more.  A quick perusal of the Internet for it yielded no results.  Perhaps Boomer could send me a copy, via the contact information on the Artisan Radio main page.  I'll also make that appeal through Carl's blog.

StereoCoder appears to have been replaced by a payware product (with a short, free trial) called Airomate.  It does appear to work well, and offers everything that is required to get RDS up and running from the Zara Radio/VST automation tools.  I may just spring for it (it's 29 euros, currently on sale).

In my search for StereoCoder, I also ran across yet another tool - MPXGen.  It's open source and that source can be downloaded from github.  The bad - it appears to be a work in progress, and is Linux-centric.  The good - it's written in C, which would make it a lot easier for me to modify.

I'm moving ahead with the mods for JMPX in any event, and getting ready for my sound card to arrive.

January 9, 2021 9:38 Pacific - Audio Adventures

I have to admit.  I'm not a broadcast, or sound, engineer.  I'm willing to say that, unlike others in the Part 15 field who brag about being, say, computer engineers, when they are anything but. Google allows otherwise ignorant hacks to sound knowledgeable.  But back to the original thought.  Mucking about with the sound of Artisan Radio is always an adventure in learning.  I do know what I want the station to sound like but it's not always obvious (to me, at any rate) how to get there.

For my own personal listening experience, I have playlists of obscure 50s and 60s songs.  For those, I want the audio to be relatively loud, without distortion, but still have some dynamic range.  A lack of dynamic range can make listening very tiring after a while.  I also want to amplify the bass and treble frequencies, as generally they're somewhat lacking in these songs.

For public consumption, I use public domain (in Canada) opera and classical.  There, I want the music to retain much more of its dynamic range, while still being loud enough to hear, leave the frequencies relatively intact and minimize clipping.

Now, audio processing (how much or little) is generally dependent on the source.  But when you have a playlist of thousands upon thousands of songs, going through each and every one manually (unless you don't have a life) is virtually impossible.  I've decided to aim for everything sounding reasonable.

The 50s and 60s music comes from a variety of sources, and ranges from poor to excellent in sonic quality.  To accomplish the 'reasonable' goal, I use a middle of the road compression setting of 5:1, with a fairly high threshold (the volume level at which the compression activates).  That leaves the very low volume stuff intact, while crunching the higher volumes.  I boost the extreme low and high frequencies, leaving all the mids intact.  Then, the overall volume is raised so that it peaks at 0db for most of the time.  Finally, a clipper is introduced at the end of the audio chain.  It uses soft clipping (it doesn't just cut off high volumes, which is known as hard clipping, but reduces them more slowly according to various, selectable functions).  If any audio files are overall way too soft or too loud, I deal with them individually within Audacity as I find them.

For opera and classical music, I use much lower compression (still haven't finalized it yet, I'm going with 2:1 right now).  The threshold is also lower, recognizing that much of classical music is very soft, volume-wise.  This is a compromise between retaining the original sound, and being able to broadcast and hear it.  I'm also still playing around with equalization, but generally it's relatively flat.  The clipper remains the same.

I'm not an audiophile, which is probably obvious.  I don't need 'perfection' in sound, which is highly individual anyway.  And I'm not interested in achieving it, even if I could.  I'm more interested in the overall programming than anything else.

The above gives the station everything I believe it needs, and it sounds just as good (to my ears anyway) as the 'big boys'.

I even managed to describe what I'm doing without using audio techno garble (generally used to show how wonderfully intelligent the speaker is, while the consumer is not).  I hope I did, anyway.

January 8, 2021 21:57 Pacific - Twitter

Now that they're getting rid of the low lifes on Twitter, I might actually join.

January 8, 2021 17:28 Pacific - A Change in Strategy

The updates to the recovered server are now complete.  The audio processing software has been installed, but to my horror, I find that Stereo Tool is hammering the CPU and causing all sorts of buffer, delay and dropout issues.  With Stereo Tool, CPU utilization is between 70-95% with the preset I wanted (and it's not the heaviest in terms of CPU by far).  I even turned off stereo and RDS generation, and it didn't change much, if at all.

My normal processing using VST with compressor, equalizer and mono conversion processing takes less than 10% (usually hovering around 5%).  When the home grown automated voice tracking software kicks in every minute, it surges to 15% or so.

I don't think there's much choice here.  I also want to run streaming (IceCast, Edcast) on the server, and there's no way to with Stereo Tool.

The positive out of all of this is that I've found I like the audio from VST more than that from Stereo Tool.  It sounds far more natural and less processed (which it is), with more dynamic range.  I'll take the potentially reduced range.  What I think I will do is to add a clipper plugin at the end of the audio chain (freeclip) and play around with that a bit as well.

I'm left with attempting to modify the open source JMPX software if I want RDS.  If that doesn't work, I'll have to live without it.  Stereo Tool just won't cut it with the equipment that I currently have.

January 8, 2021 10:36 Pacific - Success!

I've managed to successfully resurrect the computer server that recently failed.

I'm still not sure of the exact reasons behind the failure, but they were definitely software-related.  Somehow, the O/S (Windows Server 2008 R2) became corrupted.  The attempted recovery then failed because of a recovery software/firmware/hardware mismatch.  I fell back to recovery software that had worked in the past (in first initializing the server) and now I'm waiting for the hundreds of O/S updates to complete.

Moral of the story.  Newer isn't always better, particularly with software.

In the process of doing all this, I also upgraded the server memory to speed things up, and there's a noticeable difference.

After the server is back up and running, I will then decide exactly where to put things.  Generally, one computer will be used for radio automation, one for radio programming production and general use, and one will be set up as backup for both of these uses (in the event of another failure).

I still will be looking for another computer as a secondary backup, although now the need is not so urgent.

January 8, 2021 9:01 Pacific - Too Little Too Late

I'm not all that impressed with the recent wave of criticism and resignations within Trump's administration and party for his attempted coup.

Where were all their supposed principles when he stated that there were "some very good people" amongst white supremicists?

Or when he separated migrant children from their families and placed them in cages?

Or when he went full on Mafia boss, using the resources and might of the U.S. government in an attempt to bully the Ukraine to provide dirt on Hunter Biden for his personal political gain?  Or the attempt to bully the Georgia legislators to overturn Biden's win in the election?

In fact, he (and his family) inciting a riot and encouraging a huge mob to storm the political capitol was just the logical culmination of his authoritarian presidency.  American democracy was strong enough to survive, but it lost something in the process.

These resignations and the apparent move away from Trump are for self serving political gain only.  All political appointees are expected to tender their resignation during the transition period between presidents.  Trump has just been lax in calling for them.  All of them (except for members of Congress & the Senate) would have been gone within 2 weeks in any event.

Even the apparent about face of McConnell & company is for a purpose.  The Republicans have lost control of the Senate - they have to appear to want to work with the Democrats, at least for now.  And don't forget that over half of the sitting Congress Republicans were willing to follow Trump & vote to throw out the election results in Arizona & Pennsylvania.

The only reason Trump appears to have backed down slightly is the threat of loss of his social media accounts.  That would take away the major avenue of communication with his base.  He'll be back.

Biden, Harris & the Democrats, over the next months, have to show leadership.  They have to demonstrate that bullying and threats isn't strength.  That when a leader succeeds, it's everyone's win; a true leader takes the blame for failure.  That the truth, even when it's difficult, is far preferable to lies.

Do that, and Trumpism will fade away.  Ignore the factors that caused it's rise, and it will come back with a vengeance.

As for Trump and his family themselves, I suspect that they will be worrying more about avoiding wearing orange jumpsuits than anything else over the next little while.  While Trump may be able to pardon his family, and and even attempt to pardon himself, that only applies to Federal crimes.  I'm sure there are a list of states, New York at the front of the line, most interested in pursuing potential criminal activities in their past.

January 6, 2021 17:27 Pacific - Politics

I don't intend to dwell too much on politics here in the blog, but today's events in the U.S. are so extraordinary that they have to be commented on further.

I never thought I would see the day when Mitch McConnell, Lindsey Graham, Mike Pence et al would line up on the side of the Democrats, but Trump managed that feat today.

Rather than gain political allies, Trump has managed, with his false accusations of election fraud and inciting a riot, to totally alienate almost every ally he had left.  Even those that have absolutely no integrity and stuck with him through scandal after scandal are sensing which way the wind is now blowing, and moving away.

In the end, Trump will be remembered as as incompetent in politics as he was in business.

The people have said... "You're fired!"

January 6, 2021 14:04 Pacific - Biden Won, Trump 0

There's doom and gloom in much of Part 15-land today.  It looks as if the Democrats are going to sweep the Georgia runoff elections, and control the Senate.  That means that they will control both Houses, as well as the Presidency, as of January 20 (although I believe the new Senate members are put into place January 22, so call it that).

At least 2 Part 15 Forums are controlled by staunch Trump supporters.  The third is open to question.  That allegiance and the mindset it creates affects moderation, i.e., the type of posts that are allowed (and not allowed).  Those 2 Part 15 Forums have had most of their most prolific posters leave, and are almost dead.

Speaking of the Presidency, Trump managed to partially delay the inevitable by inciting the Washington protests to riot status.  That's not going to change anything, however, and Biden will soon be officially named President.  Pence put the last nail in the coffin of Trump's coup attempt by declaring that he wasn't going to breach the constitution and throw out lawful electoral votes.  Considering that he swore an oath to uphold the Constitution, that's awfully good of him.  Better than the few remaining Trump sycophants in both the Senate and Congress that are challenging the State appointed electoral votes at Trump's behest.

Under Trump, the Republicans have managed to lose control of each and every branch of the government.  A fitting end to a disaster of a President.

January 6, 2021 10:55 Pacific - Stereo Tool

While I attempt to fix the damaged computer (there's hope - it may have been a software problem initially, as well as in the recovery) here, I'm also playing around more with Stereo Tool.

I've upgraded to the latest version.  It has a lot more features, ones that I will probably never use.  It appears to have built-in streaming, AM transmitter processing-related stuff, etc.

Unfortunately, it seems to take the same CPU processing power for the presets I've been playing around with.  Which means it takes a lot.  I was hoping that it would take less than V7.23 for the same presets.  That's what they advertise, anyway.

The core software is still freeware, but you have to license many of the good extras.

I'll probably keep the latest version, as I've had issues with certain presets clobbering the older version (as well as software around it).  They were likely meant for the newer version, and the old version didn't handle them properly.  I'm going to go on a search for the best freeware presets, other than the FM transmitter processing (which I'm going to need).  I'll live with the voice over tag in the short term - I still haven't heard it yet.

January 4, 2021 16:30 Pacific - Computer Failures

Well, we had another computer failure here at the Artisan Radio studios.  This time it was the target production music server - a hard drive controller I'm thinking.  No data was lost, in part due to RAID redundancy.  But now I have to rethink the future configuration.  That's the problem with aging computer systems - you never know when they're going to give up the ghost.  Redundancy of all types, as well as backups, are essential.

Luckily, we're not in production right now.  While I wait for the 192Khz sound card I ordered, I'll move stuff around and look for another computer as well.  As I've proven over the years, you can never have too many.

January 2, 2021 11:46 Pacific - StereoTool

I've been playing around with StereoTool, but an older version (7.23).  For the past 2 days, I've been testing the standalone version, using Virtual Audio Cable to connect it to ZaraRadio (and Edcast for streaming).

There are tons of options in the software.  It comes as Freeware, with a limited set of options enabled.  A lot of the desired features are payware, requiring a license (such as an advanced clipper and FM processing).  I've found that it's possible to get decent sound for streaming with the freeware features.  However, many of the available presets (almost required, since it's very complicated) use the payware features.  And, of course, if you want to use RDS, and preemphasis for over-the-air FM, that's payware as well.

Getting a license is optional.  If you don't, depending on the feature, you'll get various sounds and voiceovers introduced into your audio at various intervals.  For FM processing, it's every 12 hours, and I might be able to live with it.  I haven't even heard one yet in several days of testing.  Others are more annoying, such as the advanced clipper, which plays a tone every minute - I turn off that particular feature.

V7.23 of the software seems somewhat unstable.  I've managed to totally crash the ZaraRadio/StereoTool/VAC chain when loading a preset.  I had to uninstall and then reinstall everything to get things working again.  I might look at the latest version of StereoTool, V9.62 (I believe), but we'll see.

StereoTool can be CPU intensive.  I've had to discard at least one of the available presets because it caused intermittent audio stream 'skipping'.  Most play OK.

Once I get my 192Khz soundcard I'll start testing RDS with the open source JMPX and StereoTool.

December 30, 2020 16:44 Pacific - Everything Old is New Again

My work with RDS, in particular Stereo Tool, inspired me to look at Winamp again and the possibilities of using it for Radio Automation.

In addition to the Stereo Tool plugin, (I'm using V7.4, an older version), I also found WShed (a simple scheduler), Edcast (for streaming) and DSP_Stacker.  The latter allows you to chain multiple plugins, so that you can enhance audio for streaming, as well as FM.  I've only done simple testing, but it all appears to work.

I suspect that this combination, along with perhaps more audio processing, would be more than what most Part 15 broadcasters need.  If you're not doing advertising spots, and maybe a few jingles, this software would be perfectly adequate.

December 29, 2020 17:30 Pacific - Stereo Tool

Took a quick look at Stereo Tool today.  It's pretty impressive, and gives the budding (and experienced) Part 15 broadcaster everything he/she needs to operate.

What is most important with regard to what I've been discussing recently is that RDS is complete, and works.  You can easily take the RDS data from a file, at least in the standalone version.  You can use ID tags in the Winamp plug-in version to generate text.  I didn't test using a file with it, as there didn't seem much point.

Unfortunately, the license is pretty expensive, at least for Part 15 use.  135 Euros for the basic FM license, and more for the advanced features (although I don't see a need for them).  You can download the software and use it for free for an unlimited time, but it inserts a voice over at intervals.  I used it for about 30 minutes and never heard the trial announcement, so it's not horribly annoying.  Good for testing, at any rate.

I noticed that Stereo Tool was using an idea I had come up with independently for taking input from a file - use tags in the default RDS text to define the file name path.  That way, I don't have to change the JMPX UI at all - just process the default RDS text, check if a file name is present, and pass it along to the appropriate class functions to assist in determining if the song title has changed.

Good to see that idea validated, and it was worth playing around with Stereo Tool just for that.

December 29, 2020 14:57 Pacific - JMPX Changes

I now have a working IDE environment.

With it, I managed to build JMPX from the latest source.  Interestingly enough, the source from the supplied binary release (a few years old) did not compile.  The perils of of open source, I guess.  I had to use the latest source from about a year ago, which has a number of changes.  Whether it works is anybody's guess.

I've found where to modify the source to take the song title from the Zara currentsong.txt file.  I'm not sure I feel confident enough to modify the user interface yet - it's all dependent on the IDE UI classes and there's quite a learning curve.  The path will probably be hard-coded for the time being, and it's really no worse than what's in there now.

This is pretty tough sledding, as I'm not all that familiar with C++, and not at all familiar with the IDE.  Add that to no documentation, class diagrams & flows for the JMPX software.  I'm having to go through the code line by line.

Now all I have to do is to wait & get /install my 192Khz sound card.  Then I'll see if I've been wasting my time.

At least the sound card will work with Stereo Tool if I decide to go down that path next.  Believe me, I'm thinking about it.

December 28, 2020 20:57 Pacific - JMPX with QT

I had a feeling that it would be the software development tools, rather than the actual software, that would cause me grief in the JMPX project.  I was right.

The developer used an IDE (Integrated Development Environment) called QT.  But V6, the latest, didn't appear to be compatible with the source.

On reading the relatively sparse release notes on github, it appears that V5 is the one to use.  But there are multiple versions of V5, and it's not clear which one is the right one.  I guess I'll start with V5.0 and work my way up.

I've never particularly liked IDE's.  I find them too restrictive, forcing you to work the way they want you to work.  The only potential advantage is that they can speed up development of a User Interface, but even then, I'm not sure that the learning curve is worth the hassle.  I prefer to take my time and design from the bottom up, and do what I want to do, rather than what the IDE wants me to do.  That way, I'm also not dependent on code, or in the case of C++, classes, that may change across different versions.

December 26, 2020 17:30 Pacific - One More Thing

I also have to determine whether the transmitters that will be used in conjunction with this software have low pass filters, i.e., will they filter out the higher frequencies that are used to encode RDS.

December 26, 2020 16:44 Pacific - JMPX

Well, I think that modifying this open source software may take a while longer than anticipated.

First off, it's written in C++, and not very well either.  No documentation, few comments (particularly of the overview type) and all sorts of hard coding and 'magic numbers' (those with a background in software development will know what I mean with the latter).

I'm old school, preferring to code in C.  All C++ is is an object-oriented layer placed on top of C, supposedly to make things easier.  In reality, you can create bad software just as easily, maybe even easier, in C++ than in C.  In C, you're forced to think out your entire design, as you are working at a fairly low level.  C++ bills itself as being easier, so software developers tend to just jump in with far less thought.

C puts you closer to the actual workings of the computer and the Operating System, whatever it might be.

It took a while, but I finally found where the RT RDS data was sent through to be modulated into the output audio, and I discovered that the origin of the data was quite literally hacked in (it relies on the song title information being in the Winamp/Media Monkey Window title).  That's the Winamp interface referred to in the writeup!  It's not going to be a huge difficulty to change that to a file, fortunately.

However, when I attempted to build the JMPX source as it was distributed, I received tons of compilation warnings and errors and the make failed.  The developer used tools contained within a package called QT to build the UI, and that's where most of the errors came from.  I suspect a new release of QT since the source was released (2017) as the culprit, but obviously more investigation is required.  I'm done for today.

There's also at least one additional open source library (OPUS) missing that I will have to build from its source, so who knows what adventures will occur with it?

What gets me is that generic software development hasn't changed all that much from when I got started in the early 70's.  The tools are different and the terminology is different (although really just the renaming old terminology).  It's computer hardware that's really improved exponentially.  I've always said that if  hardware was developed in the same manner as most software, there literally wouldn't be working computers.

December 26, 2020 9:33 Pacific - RDS Continued

Well, we're moving forward with the software RDS solution here at Artisan Radio.

A suitable sound card has been purchased.  This is a used Waveterminal 192L, an older semi-professional sound card with a PCI interface (the only type of slot I have open in my desktop computer).  It's capable of 192Khz sampling for stereo output (hence the name).  The cost was reasonable, in the event that things don't work out, and we await delivery.

Now, I have to load the appropriate tools for Windows 7 to compile and link (i.e., make) the open source JMPX software.  The changes to that software should be relatively straightforward, although I'll probably do a quick hack for the proof of concept before making the more general changes.  The intention is, in addition to the current Winamp interface,  allow the user to point the software to a text file which will contain song data - in the case of Zara, currentsong.txt.  The will allow the user to specify the name and location of that file, and how often to check that file for changes.  The hack will just hard code the file name and location, and leave everything else the same.

Once everything is working, and the concept proven, I'll probably invest in a more modern (and expensive) external USB sound device.  That will allow the station to easily move to different computers, in the event of a hardware failure.

December 26, 2020 8:52 Pacific - Thoughts

Those who claim to be the absolute authority on anything, usually aren't.  When someone claims that they are, put your b*s* filter on.

It's easy to sound authoritative if you know how to use Google.  Those that really know what they're doing have actually done it.  And, they understand that there's still lots more to learn.

To learn, you have to be humble.

It used to be that information was somewhat fact checked before being publicly accessible via books, magazines, libraries, etc.  Now, everyone has a virtually instantaneous voice with social media, websites, Forums, etc..  Unfortunately, most people don't have the knowledge and/or experience to deserve that voice, other than for their own personal circumstances or experiences.  Certainly not for anything requiring deep thought.  This has led to a flood of misinformation and conspiracy theories, usually directed by those who have something to personally gain from it (including ego).

The field of Part 15 broadcasting is not exempt from the above.

December 23, 2020 17:01 Pacific - Software RDS Solutions

RDS data can be encoded into your Part 15 audio stream at the computer side, before it is input into your transmitter.

To do so, you first have to have a sound card capable of doing 192Khz sampling on the output, which takes you into the audiophile category (read, expensive).

There are several software tools that can encode the RDS signal.

One is StereoTool, which is payware in its current incarnation.  The RDS encoding is unlocked if you obtain the broadcasting license for that software, and obtaining the license also enables other broadcasting functionality.  That particular license is rather expensive.

In general, most RDS capable software is payware.

There is also open source software called JMPX.  It doesn't obtain the RDS data from a file (as the control software for the already described RDS transmitters do) but through a Winamp interface.   I'm still not sure exactly what that interface is, but it is supported by other media players such as Media Monkey.  Unfortunately, neither Winamp or Media Monkey are radio automation programs per say, and it is unknown whether automation programs such as Zara have such a capability.  Earlier versions of Zara did support Winamp plugins, so there may be hope.  Artisan Radio also does software audio processing prior to feeding the transmitter, so that interface would have to be preserved across it as well (since JMPX would fit between the audio processing software and the computer audio output.

Unfortunately, the end result of all this research is that there is no ideal and short-term solution to transmit RDS data.  We will be continuing our investigations with JMPX once an appropriate sound card is obtained, as it seems the most likely solution, all things considered.  We may have to dive into the provided code and modify it to allow the program to get the RDS data from the Zara currentsong.txt file.

In the meantime, c'mon manufacturers.  Get your act together and enter modern times.  It's almost criminal that the uncertified, overpowered Chinese transmitters are light years ahead in capability of what we have currently (and legally) available now in North America.

December 23, 2020 16:36 Pacific - Part 15 Broadcasting & RDS

RDS, or Radio Data Systems, is a protocol that allows broadcasters to send digital data to appropriately equipped receivers, encoded into the analog audio stream.  It allows you to display, among other things, the name of your station and the currently playing song.  It is the over-the-air equivalent of streaming meta-data.

Now, you would assume that this technology would be leaped upon by Part 15 FM transmitter manufacturers.  After all, most Part 15 stations merely transmit music, with little if no live (or even automated) DJ chatter in between the songs.  It's a perfect way for listeners to identify what you're playing, particularly if it's something obscure.

That is not the case, however.  There are no FCC Part 15 (or Industry Canada) certified RDS capable transmitters, at least in ones that can achieve something close to the maximum range legally allowed.  There are some car transmitters, but they're generally designed to transmit only a few meters (usually a limitation of the tiny antennas they have, if they have any at all).  These transmitters can be modified to add an antenna, and even run at a higher voltage, to get greater range, but that voids the certification.  And usually these transmitters obtain the RDS data from the ID tags of music contained on SD cards, so you really can't use radio automation with them.

I've only found two transmitters that appear to suit the needs of a Part 15 broadcaster, both from China.  They are not certified, but they claim that their output power can be reduced down to almost nothing, which is what Part 15 has (unfortunately).

The first comes from a company called Vast International, and is targeted towards the Christmas light show marketplace.  It can be completely controlled by a PC, and comes with the appropriate software to run it.  Power output is variable between 0 to 200 milliwatts, and is a user modifiable field in the control software, so theoretically you can set it as low or as high as you want.  This one looks most promising, although as Chinese transmitters go it's rather expensive at US$150-200.

A second appears more oriented towards the broadcasting pirate, and is from the (in)famous company CZerf (which makes a number of overpowered transmitters, but was also the source of the certified Decade CM-10, so they can make clean transmitters when motivated).  This transmitter is supposedly capable of outputting 0-15 watts, and can be fully PC controlled.  However, reviews I've found on the Internet indicate that power output variation is much coarser than that of the Vast transmitter (only 11 levels), and at the lowest setting is approximately 300-400 milliwatts.  Use it even at the lowest power setting and you're inviting a visit from the FCC or Industry Canada.  Plus, the software only appears to be in Chinese.  I'd give this one a pass by a wide margin.

There are software solutions available for RDS, and I'll deal with those in another post.

December 22, 2020 8:53 Pacific - The Berne Convention

The Berne Convention, first signed in 1887 by a host of countries (including Canada, the United States), was established to protect literary and artistic works.  In practical terms, that means, to ensure that those creating literary and artistic works get fair compensation for their efforts.  It also establishes a point beyond which that compensation is no longer required - i.e., what is in the public domain.  There are no restrictions as to what can be done with a work in the public domain.

It determines copyright protection for both works that are published in the origin country, as well as other countries that have signed the convention.

It makes a series of recommendations for the length of protection, but individual countries are free to choose whatever protections they feel are reasonable.

Finally, and most importantly, it provides a framework for determining copyright protection within a country for those works produced outside that country (i.e., foreign works).  This is most important for smaller countries such as Canada, which heavily use foreign works.

In a nutshell, the protections for foreign works from countries that adhere to the Berne Convention are as follows.

If the work would be in the public domain if it had been published in Canada, then it is in the public domain in Canada.

If not, then you look at the copyright status in the country of origin.  If it is in the public domain there, then it is in the public domain in Canada.

If either of those is not true, then the work is not in the public domain in Canada.

Canada's copyright rules for music are complicated, but similar to those in the U.K. and Europe.  They are not nearly as onerous as those in the United States.  In general, that means that there are many more works in the public domain in Canada than in the U.S.

In the case of music, Canada has various rights attached.  There is a copyright attached to the music creation itself.  There is a copyright attached to an individual performance of that music.  And there are various other rights, such as reproduction, that do not apply to broadcasting (although they would apply, as an example, if one were to, say, publish a link to a musical performance on a website).

In Canada, copyrights in the music creation persisted for 50 calendar years after the death of the last creator, at least until 2016.  That may have been extended to 70 years when the Trans Pacific Partnership was signed in 2016.  It is unclear, because the U.S. under Trump later withdrew (in 2017) and it was not ratified as written, and replaced with another agreement sans the U.S. that was signed in 2018.  What is clear is that the 50 year rule was in force until at least 2016.

Copyrights in musical performances in Canada up to 2015 were in effect for 50 years after the performance was published (a record release, a musical broadcast, etc.).  The laws were changed in 2015 to extend that again to 70 years.

However, in both these cases, any music or musical performance that had fallen into the public domain prior to the laws being changed remained in the public domain.  For all practical purposes, that means that any musical performance published prior to 1965, or any music written whose creative team had all passed away prior to 1966, is in the public domain today.

Artisan Radio will be broadcasting and streaming (from Canada) only works that meet those two criteria.