Skip to content

Changelog

foonerd edited this page Oct 6, 2026 · 17 revisions

Changelog

What changed in each version of the plugin, newest first. Versions are published as pre-releases on GitHub (the Preview update channel) before they reach the Volumio plugin store; see Updating the Plugin.

v1.4.12

  • Song recognition asks less and less on talk. Where nothing is recognised the next question came after a minute and a half, however long the talk went on, which spent a listener's questions on speech. The wait now doubles after each empty answer, a minute and a half, three minutes, six, until a song is recognised or another station plays
  • The FM Sample Rate choices say what the rate does: how wide the receiver listens, half the rate either side of the station. 171 kHz keeps a strong neighbour 200 kHz away out; the higher rates give a little more treble and let it in. "Best Audio" said the opposite
  • The FM Oversampling setting is gone. It read the dongle at 2.7 million samples a second with the station at the edge of what the tuner passes. Measured by a user on an RTL-SDR Blog V4: 17 dB of reception lost at a gain set by hand, and with automatic gain the measurement driven to the top step and the tuner overloaded by the strong neighbours. The setting dates from before the gain was measured per station, which is what it was meant to help with. A configuration that has it on is set straight

v1.4.11

  • Song recognition has a switch of its own, on the settings page and in Station Manager > Maintenance > Song Recognition. Off keeps the token, so it can be switched on again without pasting it. In 1.4.10 the switch on the settings page only unfolded the fields, and recognition ran whenever a token was set
  • The token can be seen: the Station Manager's field shows it on a press of the eye beside it, and the settings page shows it in clear
  • The log line about song recognition says in words when it asks ("on, asks when the station's text names no song (token …0c7c)") instead of the setting's stored value
  • Station Manager API: on in /api/recognition; GET /api/recognition/key

v1.4.10

  • Song recognition from the sound itself, with a key of your own from AudD: where a station's text names no song, the plugin sends twenty seconds of the sound and shows the artist, title and cover the service names, as the apps that listen to a song do. Set under Song Recognition on the settings page or in Station Manager > Maintenance; both doors set the same token. Off without a token; nothing leaves the player without one. A song is shown once two answers agree, nothing is asked again until it is over, and a refused token stops it. See Artwork and Metadata
  • Station Manager API: /api/recognition

v1.4.9

  • The East Asia region receives with 75 µs de-emphasis. South Korea and Taiwan, the countries on its band and raster, broadcast with 75 µs (Taiwan's regulation was pointed out by a user). Until now the region had 50 µs and FM there sounded dull unless 75 µs was chosen by hand
  • The tune dialog's Keep now also updates Volumio's playlists and favourites: entries that are the station follow it to the new frequency, as the queue's items did already
  • FM scan: the channels beside a strong signal the scan refuses (what a stronger station spills, a signal made in the tuner, the tuner's mirror) are no longer listed as stations of their own at the sensitive settings: they are that signal's skirt. A weak station, however distant, is listed as before: the scan shows what is on the air, and what is not wanted is yours to delete
  • Tune dialog: the reception line shows the level of the latest reading, not the one the player holds for a few seconds, and the reading in dB when it is too weak for a level. A frequency being tried out that no open dialog asks about for three minutes (the page closed without a word) is ended, and the player put back
  • The log line about a station's sound names the noise of a weak station that reached full scale for what it is, instead of "cut off at full scale"

v1.4.8

  • A tune dialog for FM stations in the Station Manager. A press on a station's frequency opens it. Step a channel up or down, or type a frequency, and it plays at once with its reception shown. Find best looks at the station's channel and five either side and lists what a scan would say of each, with the nearest station that no other entry of the list holds marked. Keep gives the station the frequency: its name, logo, favourite mark and play count stay, and its items in Volumio's queue follow. Where another station holds that frequency the dialog asks which of the two stays. Cancel changes nothing, and the player goes back to what it was on. See Station Manager
  • The frequency of an FM station is no longer a number field that changed the list as soon as it was left. A change of frequency made in the dialog takes the station's logo with it, which a change in the field did not
  • Station Manager API: /api/tune/survey, /api/tune/listen, /api/tune/end and /api/tune/keep; the status tells the band, the frequency being tried and the reception in dB. See Station Manager API

v1.4.7

  • FM de-emphasis can be chosen apart from the region: FM Radio Region > FM De-emphasis offers the region's own, 50 µs, 75 µs or off, in every region. For a country whose stations do not match its region: South Korea has the band and raster of East Asia and broadcasts with 75 µs. The Custom region's own is 50 µs; a Custom region set up in an earlier version keeps what its switch said. See Scanning
  • A station that sends no stereo pilot is marked MONO on the player, between "FM" and the reception dots. The mark follows what is received: it appears when a station drops its pilot and goes when the pilot is back
  • The FM list in the browse view counted one station too many, and the Hidden list said 1 when it was empty. Both count their stations now

v1.4.6

  • FM stations without a stereo pilot (mono stations) are found by the scan, and shown with a reception level when played. They are recognised by their carrier: it must stand clear of the noise and be moved by a programme. A mono station that is silent at the moment of the scan is not found; one already in the list stays
  • FM scan: Fast or Detailed, chosen in FM Radio Settings > FM Scan or in the Station Manager's Rescan dialog. A fast scan listens to the channels that stand out from their neighbours and to the stations already in the list. A detailed scan listens to every channel and also finds weak stations that do not stand out. On a Raspberry Pi 5 the band is surveyed in about 40 seconds (fast) or 50 seconds (detailed); it was 32. See Scanning
  • FM scan, what it lists. A weak station is listed on its own channel, not on the one next to it. Two weak stations 100 kHz apart are both listed. What a strong station spills 200 kHz from its carrier is not listed, although it carries that station's pilot. A station already in the list stays on a little less than a new one must show, so stations at the edge of reception stop coming and going from scan to scan. Beside a very strong station, signals made in the tuner are refused more strictly
  • FM: a dongle that tunes off frequency is corrected without a setting. Low-cost dongles tune every station 1 to 6 kHz off. A scan tells the error from the stations' carriers, and the receiver, the gain measurement and later scans are corrected by it for that dongle. See Gain, Frequency and Loudness
  • FM de-emphasis is the region's: 50 µs in Europe, Asia and Australia, 75 µs in the Americas. Until now 75 µs was applied everywhere. In the 50 µs regions FM now has the treble the broadcast intends, up to 3 dB more above 5 kHz
  • FM reception level while playing: it read 1 to 3 dB too low, and a station sending a subsidiary carrier at 67 kHz (the Americas) read "poor" at any strength. Both corrected
  • Dongle Report: says how far the dongle tunes off, marks stations without a pilot, and names the kind of scan it surveyed with
  • The texts that promised an FM scan in 10 to 30 seconds say about a minute, which is what a scan with the naming of stations takes

v1.4.5

  • FM: a station near a very strong one is no longer played overdriven. The gain for a station was measured on 1.2 MHz around it, while the receiver takes in up to 2.4 MHz to one side. A very strong station inside the receiver's part and outside the measured one went unnoticed, and the station was played with far too much gain (on the test player: 81% of the samples cut off). The gain is now measured on exactly what the receiver takes in. Every station is measured afresh when it is next played
  • FM gain on dongles with an E4000 tuner (the Nooelec "XTR" models) was 6 to 15 dB lower than it should be, in the scan and when playing. Two causes, both measured: the tuner's gain steps are not what they are named (the step named 29 to 34 dB adds 0.1 dB), and the tuner leaves noise of its own around the frequency it is set to. The overload check now reads the gain change from the stations themselves and leaves that noise out
  • FM scan: a real station beside a very strong one is no longer refused now and then as "made in the tuner" (seen with an E4000 dongle), and a faint signal that the tuner did make is refused at the sensitive settings too: with the gain lowered it has no pilot left. The second look at lower gain is as long as the first
  • Dongle Report: the gain for the strongest stations is measured as it is for playing

v1.4.4

  • FM scan with an E4000 dongle at the most sensitive setting (+3 dB): the second look at a channel that may be the tuner's mirror is now judged as the first one is, by the pilot and by its weakest moment. With the pilot alone, the empty place of a mirror passed now and then on a chance reading of noise

v1.4.3

  • FM scan with an E4000 dongle (the Nooelec "XTR" models): the tuner's mirror of a strong station is no longer listed as a station. Such a tuner delivers every station a second time, weaker, as far on the other side of the frequency it is set to, stereo pilot and all; where the band was empty there, the scan took the copy for a station. A channel that is largely such a copy is now listened to once more with the tuner set elsewhere: a copy is gone then, a station is still there. A station that had a copy lying on it is listed with the reception level it shows by itself. Nothing changes for other tuners, which make no such copies
  • Dongle Report: the mirrors refused are named in the summary; the last report stays on offer after the player has been restarted; a dongle without a serial number is named without the empty "SN:"

v1.4.2

  • Dongle Report (Station Manager > Maintenance). Runs the plugin's own measurements on the dongle that is plugged in and puts what they find into one ZIP file: what the dongle says it is, its tuner and gain steps, whether it loses samples, the survey of the FM band a scan is made from, the gain for the strongest stations, and, if wanted, short recordings of what the dongle delivers. For when a dongle misbehaves, and to tell the project how a dongle does that it has not seen. A summary can be read on the page. See https://github.com/foonerd/rtlsdr-radio/wiki/Dongle-Report
  • The line in the log about a station's sound tells a few samples at full scale (what a resampler makes of a broadcast that is already as loud as it can be) from sound that was cut off: "touched full scale now and then, too seldom to hear" for the first

v1.4.1

  • FM Level and DAB Level. Two new settings, each from 0 dB (the default, as before) down to -12 dB, for a player on which the radio is louder than the other sources. They apply from the next station played
  • FM: the level is now applied after the sound has been brought down to the output rate. Before, what the receiver delivers above the audio band (the stereo pilot and subcarriers, the noise of a weak station) counted against full scale and could be cut off there
  • When a station ends, the log says whether its sound stayed below full scale or how many samples were cut off there ("Sound of FM 100.0 MHz, level 0 dB: stayed below full scale"). It is what to look at when loud passages sound distorted
  • The requirements name dongles with an E4000 tuner too: two Nooelec models have played FM and DAB with the plugin

v1.4.0

  • The version submitted to the Volumio plugin store. It carries everything since 1.3.12, the version the store had before, and is the same in function as 1.3.31. What is new for those coming from the store's version:
  • Gain is measured, not set by hand. For FM once per station, for DAB at every tuning, at the highest step the receiver takes without overload. For FM the tuner is checked too: next to a very strong station it invents signals, and the gain is taken down until it does not
  • A new FM scan. It measures every channel and lists stations, recognised by their stereo pilot, with their reception level; signals an overloaded tuner invents are not listed. A rescan keeps the stations you named, marked or played
  • DAB works with cheap dongles without a PPM value. The decoder and the scan find the frequency error of the dongle's crystal and follow it, up to 35 kHz either way. Leave PPM Correction at 0
  • FM plays at the level of DAB and of music tracks. It was 7 to 11 dB quieter: expect FM to be louder than before at the same volume setting
  • Station logos for DAB and FM stations, published by the broadcasters; FM stations are named and found by their RDS code. A logo of your own can be set for any station in the Station Manager, and goes into the stations backup
  • Artwork is steadier: the picture follows the song, not every change of the station's text; the pictures a DAB station sends are shown; a new Cool-off setting
  • When a station cannot be played the player shows it as stopped and says why: no usable DAB signal on the channel, or a dongle that delivers nothing. Pause stops a station and shows it as stopped
  • The documentation is now in the wiki: https://github.com/foonerd/rtlsdr-radio/wiki
  • Updating from 1.3.9 or earlier: create a backup in the Station Manager (Maintenance) first. The update removes the old plugin folder, where 1.3.9 kept the station list; this version then restores the newest backup by itself

v1.3.31

  • FM oversampling is applied at the 171k sample rate only. Combined with a higher rate it asks the dongle for more samples than it can deliver, and the receiver then gives noise at full level (the "do not combine" of the settings' help). The setting is now ignored at 200k, 240k and 300k, with a line in the log, instead of producing that

v1.3.30

  • A dongle that opens and then delivers no signal (seen on a cheap one after a run of starts, until it was unplugged) no longer leaves a station "playing" over silence or a start that never ends. Every wait for the dongle has a time limit, for FM and for DAB; the player shows the station as stopped, and a message says what brings the dongle back: unplug it, plug it in again, play the station once more
  • Stop during the start of an FM station takes effect at once: the player is told the station is starting before its gain is measured, as it already was for DAB

v1.3.29

  • DAB with a dongle that is far off frequency (the usual cheap ones, 40 to 60 ppm): the station is now found every time and without a PPM value. Before, the first search for the signal succeeded at some frequency errors and failed at others, so the same station played on one attempt and "could not be received" on the next. When that search fails, the decoder now looks where the band actually lies, moves to it and tries again a frame later; errors up to 35 kHz are found
  • An error close to half a carrier is closed faster while the station is being found
  • The help text of the PPM settings says so, in all languages

v1.3.28

  • DAB with a dongle whose crystal runs more than about 45 ppm fast: the sound came in bursts with about a quarter of it missing, as if speeded up. Such a crystal also makes every frame some samples too long, and the decoder looked for the next frame only 9 samples late; it lost the frame several times a second. It now looks 40 samples either way, which follows a crystal up to 200 ppm off. Setting the PPM correction was the way round it before, and still works

v1.3.27

  • FM plays at the level of DAB and of music tracks. Before, an FM station came out 7 to 11 dB quieter than the same station on DAB, and the difference changed with the receiver sample rate; the volume had to be turned up for FM and down again for everything else. A fixed gain, worked out from the sample rate, now puts a fully modulated station 1 dB below full scale. Expect FM to be clearly louder than before at the same volume setting
  • A DAB station that cannot be received says so in words ("could not be received: no usable DAB signal on channel ...", with what to check) in place of "fn-dab ended with code 22"

v1.3.26

  • DAB with a dongle whose crystal is off frequency: the decoder and the scanner now find the error by themselves and follow it. Before, on every ARM board, a dongle more than about 2 ppm off found no ensemble ("Failed to play station: fn-dab ended with code 22", an empty scan) unless the PPM correction in the settings was within 2 of the right value. Errors up to about 30 ppm are now always found; for a dongle further off, a PPM value within 30 of the right one is enough
  • The help text of the PPM settings says so, in all languages

v1.3.25

  • Play/pause on a playing station stops it and every screen shows it as stopped. The receiver stopped before as well, but Volumio went on showing the station as playing until a separate stop command arrived. A broadcast cannot be paused: pausing stops the station, and play starts it again
  • A stopped station keeps its name on the screen. Volumio shows a queue item's name there, and the plugin's items had none
  • An FM gain kept with a station is used only with the dongle it was measured with. After a dongle is changed for another, or moved to another USB port, each station's gain is measured again at its next play. Before, the gains of the dongle before were used for up to a week, and what suits one tuner overloads another
  • The check for an overloaded tuner no longer takes the gain it compares with on trust: where the gain found lies right next to it, that gain is checked in its turn against one further down. Found on an RTL-SDR Blog V3, whose tuner next to a very strong station is still pressed at 20 dB below the highest gain

v1.3.24

  • A stations backup carries the logos you chose for stations yourself, and a restore puts them back: from the backup history, from an uploaded backup, or when the plugin takes its station list from a backup at start. Before, a restore on another player or a fresh card brought the stations back without them
  • The backup type "Stations Only" is named "Stations (with your own logos)"
  • Backups made by earlier versions restore as before

v1.3.23

  • With an artwork timeout set, a new song after a long one still showed the station's logo before its cover, and the cool-off of v1.3.22 kept the logo there for its two seconds. A cover whose time is up now stays while the next song is looked up and gives way to that song's cover; with nothing to take its place it leaves the screen as before

v1.3.22

  • Artwork no longer flickers when a station repeats a song's name. A song named again changes nothing; a new song keeps the picture on the screen until its own cover is found. Before, every such text showed the station's logo for a moment and then the cover again
  • A line read as artist and title that no music database knows (a presenter's line) keeps the picture, as a slogan does. A real song without a cover still shows the station's logo
  • New setting "Artwork Cool-off" (Settings > Artwork), 2 seconds unless set otherwise: the shortest time a picture stays before another replaces it. The text is never held back
  • A lookup that fails for want of a network is made again with the next text, instead of being remembered as "no cover" until the plugin restarts
  • The same on FM and DAB

v1.3.21

  • A logo of your own for any station, set in the Station Manager: a picture of yours (PNG, JPEG or SVG), one of the broadcasters' logos found by a search, or one already on the player. It stands above the logo found for the station, and "Back to automatic" returns to that
  • The upload states what a picture should be, shows it as it will look, fits one that is not square, scales a large one down, and says in plain words why a file cannot be used
  • Every station row shows its logo. A "No logo" card counts the stations without one and, pressed, shows only those
  • The logo count under Maintenance said "DAB stations" while counting FM stations too

v1.3.20

  • FM stations are shown with their logo. A station is found by its RDS programme code once that has been received while it plays, and until then by its name: among your DAB stations that have a logo, then in the broadcasters' lists
  • What RDS says of a station is kept with it: the programme code, and the name once it has stood unchanged for half a minute. A station still called "FM 98.5" takes the name its broadcaster's list or RDS gives it; a name you gave it is never changed
  • An FM scan listens briefly to the stations strong enough for RDS and keeps their programme codes, so that such stations are named and shown with their logo straight after the scan
  • A rescan removes FM stations that an earlier scan listed, that it looked for and did not find, and that were never named, marked or played. Everything you have touched stays
  • The Station Manager's logo count includes FM stations

v1.3.19

  • The check for an overloaded tuner compares the band with how it looks at a gain 20 dB lower and takes the highest gain at which it looks the same. v1.3.18 compared with a gain only 6 dB lower, and a tuner deep in overload looked the same at both: on the test player the gain next to a very strong station was not taken down, and two signals made in the tuner were listed as stations
  • A carrier more than 15 kHz off its channel is not taken for a station

v1.3.18

  • The FM scan finds stations, not signal strength. Every channel of the band is measured and kept only if it carries the pilot of a stereo broadcast, stands above the channels next to it, and keeps its pilot when the gain is lowered. The channels beside a strong station and signals a tuner makes when it is overloaded are no longer listed as stations
  • Each station found gets a reception level from 1 to 5
  • The scan takes the band in slices, each at its own measured gain, and measures every channel itself. The spectrum tool the earlier scan relied on, run with the tuner's automatic gain, returned no reading for more than half of the band on the test player, stations included
  • FM gain: the tuner is checked for overload, not only the converter. Near a very strong station the gain is taken down until the tuner treats all signals alike; measured on an RTL-SDR Blog V4 next to such a station, its neighbours gained 6 to 8 dB of reception and two signals that were not on the air disappeared
  • FM Scan Sensitivity is now how far a station's pilot must stand above the noise
  • The Station Manager shows how far a scan has come
  • Gains measured by v1.3.17 are measured again

v1.3.17

  • FM gain is measured instead of guessed. The first time a station is played, the gain is set to the highest step at which its signal does not overload the receiver, and kept with the station; after a week it is measured again. The first play of a station takes a second or two longer for it
  • New setting "Automatic FM gain" (Settings > FM), on by default. Switched off, the gain set by hand is used as before
  • If the gain cannot be measured, the station plays at the gain set by hand

v1.3.16

  • DAB gain is measured instead of guessed. Every time a station is tuned, and at every channel of a scan, the decoder sets the gain to the highest step at which the signal does not overload the receiver. A gain set too low leaves a DAB signal in the noise of the receiver itself: audio may still play while text arrives damaged, pictures do not arrive, and weak ensembles are not found
  • New setting "Automatic DAB gain" (Settings > DAB), on by default. Switched off, the gain step set by hand is used as before
  • The tuner's own automatic gain is not used: measured on an RTL-SDR Blog V4 it overloads the receiver until an ensemble cannot be read

v1.3.15

  • DAB text is put together only from pieces that arrive intact. On a weak signal a text used to appear with letters missing or with two texts run together; it now appears whole, a little later, or not at all
  • The artist and title a DAB station marks in its text (DL Plus) are read as the standard lays them out
  • The pictures a DAB station sends with its programme (slideshow) are shown on the player screen: the newest one, as it arrives, before any artwork that is looked up

v1.3.14

  • Station logos and the plugin's own icons no longer turn into the player's default picture on a screen after a plugin update. Volumio lets a screen keep what an artwork address gave it for a month, its default picture included, which is what it gives while an update has the plugin's folder away. The addresses the plugin hands out now change with every installation and with every replaced picture, so a screen asks again
  • The installer makes the link to the station logos before anything else

v1.3.13

  • DAB signal level: classic DAB (MP2) stations no longer stay at one dot whatever the reception. Their level is judged by their own audio frames, as that of DAB+ stations is by theirs
  • "Auto-backup before uninstall" does what it says: with it selected, uninstalling the plugin writes a dated backup of the station list, the block list and the settings, and keeps the station logos
  • The node modules a plugin store install fetches are held to the versions the plugin is tested with

v1.3.12

  • The version submitted to the Volumio plugin store. No functional change from 1.3.10; everything new since 1.3.9 is listed under v1.3.10 below
  • Updating from 1.3.9 or earlier: create a backup in the Station Manager (Maintenance) first. The update removes the old plugin folder, where 1.3.9 kept the station list; this version then restores the newest backup by itself

v1.3.11

  • No functional change. Published to try the plugin's own update path (Station Manager > Maintenance > Plugin Update) from one version to the next.

v1.3.10

  • The station list and the artwork block list survive plugin updates
    • They are kept with the plugin's settings instead of in the plugin's own folder, which Volumio replaces on every update
    • A list from an earlier version is moved over at the first start
    • A missing or unreadable list is restored from the newest backup
    • Updating from 1.3.9 or earlier: create a backup in the Station Manager (Maintenance) first. The update itself still removes the old folder; 1.3.10 then restores the newest backup by itself
  • Saving the station list can no longer fail silently or leave half a file behind
  • Reliable switching and stopping
    • One part of the plugin owns the tuner: playback, scans and the antenna tools take turns, and each starts only when the one before has let the dongle go
    • Stopping ends the plugin's own processes and nothing else on the player
    • Rapid station changes end with the last station playing, once
    • A decoder that stops (dongle unplugged, DAB service not found) stops playback and says so, instead of showing "playing" in silence
  • Station names with quotes or other special characters play correctly
  • SNR measurement: a gain step of 0 no longer makes the player unresponsive
  • Restoring an uploaded block list no longer overwrites the settings; restored settings take effect at once
  • Binaries rebuilt
    • Raspberry Pi (arm): built for ARMv6, so they start on every Pi
    • x86-64: the RDS decoder no longer requires a processor with AVX2
  • Installer: no sudoers entry, no loopback module, no removal of unrelated packages
  • Station logos for DAB
    • Fetched from the broadcasters through RadioDNS, shown in the station lists and on the player screen
    • A station without a logo of its own is shown with its broadcaster's
    • Fetched in the background and only when there is an internet connection; kept across plugin updates
    • Station Manager > Maintenance > Station Logos shows the state and refreshes on demand
  • FM tune level measured from the reception itself (the stereo pilot against the noise above it) instead of derived from RDS
  • Artwork that changes while a station plays (a logo, the picture found for a song) is shown on the player screen
  • Plugin update from the Station Manager, with a choice of channel: Stable and Beta from the Volumio plugin store, Preview from the project's pre-releases on GitHub; a test channel applies only on a player in Volumio's Plugins Test Mode; the version before an update can be put back
  • New setting: the update channel (Station Manager > Maintenance > Plugin Update)

v1.3.9

  • New FM Scan Offset setting to align scan frequency grid with country channel plans
    • Configurable in FM Region section: 0 kHz (default), 50 kHz, or 100 kHz
    • Fixes station detection in countries where FM channels are at odd frequencies (e.g. Taiwan 88.1, 88.3, 88.5 instead of 88.0, 88.2, 88.4)
    • Set to 100 kHz for Taiwan, South Korea, and other countries with odd-tenth channels
  • Fixed scan command using stale config value instead of region preset band start
  • Fixed frequency rounding to align with effective scan grid (was rounding to multiples from zero)
  • Fixed frequency validation in playback, diagnostics, and CSV import to use region band start
  • Translated FM Scan Offset across all 11 languages

v1.3.8

  • FM Regional Standards support with automatic configuration
  • New FM Region setting with 8 presets:
    • Europe (87.5-108 MHz, 100kHz spacing, 50us de-emphasis)
    • Americas (88-108 MHz, 200kHz spacing, 75us de-emphasis)
    • Japan (76-95 MHz, 100kHz spacing, 50us de-emphasis)
    • East Asia/Taiwan/Korea (88-108 MHz, 200kHz spacing, 50us de-emphasis)
    • Australia/Oceania (87.5-108 MHz, 200kHz spacing, 50us de-emphasis)
    • Italy (87-108 MHz, 50kHz spacing, 50us de-emphasis)
    • OIRT/Russia Legacy (65.8-74 MHz, 30kHz spacing, 50us de-emphasis)
    • Custom (manual override for all parameters)
  • Scan now uses correct channel spacing per region (was hardcoded 125kHz)
  • Station frequencies now round to correct channel grid
  • Added FM Upper Frequency setting for regions with different band limits
  • Added FM Channel Spacing setting for custom configurations
  • De-emphasis now automatically applied based on region (except Custom mode)
  • region.json data file for easy maintenance and future expansion

v1.3.7

  • Added 300 kHz sample rate option (2,400,000 S/s - matches SDR# default)
  • Corrected FM settings guidance based on community testing
  • IMPORTANT: Oversampling should only be used with 171kHz sample rate
    • Higher sample rates + oversampling causes noise or audio artifacts
  • Updated documentation with S/s mapping for each sample rate
  • Settings guidance based on community testing:
    • Europe/UK (weak signals): 171k, oversampling off, de-emphasis off
    • Europe/UK (noisy at 171k): 171k, oversampling ON, de-emphasis off
    • Strong signal regions (Asia, urban): 300k, oversampling OFF, de-emphasis on
    • Best audio quality: 300k, oversampling OFF, de-emphasis on

v1.3.6

  • FM Oversampling option to reduce audio distortion
    • Enable 4x oversampling for 171kHz sample rate only
    • WARNING: Do NOT combine with higher sample rates (causes noise/artifacts)
    • Default: Off
  • FM Sample Rate selection
    • 171 kHz: Optimal for RDS decoding (default, Europe/UK)
    • 200 kHz: Better audio, reduced RDS (1,600,000 S/s)
    • 240 kHz: Good audio quality (1,920,000 S/s)
  • FM De-emphasis filter
    • Applies 50us de-emphasis to reduce high-frequency harshness
    • Standard for FM broadcast in Europe, Asia, and Australia
    • Default: Off
  • All settings in FM Radio configuration section

v1.3.5

  • Complete SNR Measurement Tool implementation
    • Fixed NaN handling for single channel measurements
    • Added guidance text explaining how to apply recommended gain value
    • Added note for RTL-SDR Blog V4 (R828D) users to extend range to 70
    • Updated default gain range to 0-50 (standard dongles max ~49.6 dB)
    • Full internationalization for all 11 languages
  • Gain range maximum extended to 100 for V4/extended hardware testing

v1.3.4

  • SNR Measurement Tool (Tool 3) in Antenna Positioning tab
    • Based on snrd-api_V2.sh by Wheaten
    • Measures Signal-to-Noise Ratio across gain settings
    • Auto-detects channels from scanned stations or validation results
    • Recommends optimal gain for best signal quality
    • Configurable gain range and step size
  • Fixed blocklist backup restore validation (regression from v1.3.3)

v1.3.3

  • CSV import/export for offline station editing
  • Download FM and DAB station templates
  • Export existing stations to CSV with timestamps
  • Import with four operations:
    • Replace: Clear all stations and import fresh
    • Amend: Update existing stations, preserve play history
    • Extend: Add new stations only, skip duplicates
    • Remove: Mark matching stations as deleted
  • Validation before import with detailed error reporting
  • Respects regional FM frequency settings (Japan 76MHz, Italy 87MHz, etc.)

v1.3.2

  • Configurable FM lower frequency for regional band support
  • Japan: 76.0 MHz lower bound (76-95 MHz band)
  • Italy: 87.0 MHz lower bound (RAI Radio 1 at 87.1 MHz)
  • Europe: 87.5 MHz (default)
  • Americas: 88.0 MHz
  • Setting in FM Radio configuration section
  • FM scan automatically uses configured range

v1.3.1

  • Classical music artwork via Open Opus API fallback
  • When Last.fm has no artwork for classical composers, displays composer portrait
  • Recognizes 150+ classical composers (Bach, Beethoven, Mozart, etc.)
  • Free API, no registration required, public domain portraits

v1.3.0

  • Fixed FM artwork throttle bug - metadata parsing now happens before throttle check
  • Debug logging for artwork system now controlled by artwork_debug_logging setting
  • Includes all v1.2.9 fixes: blocklist check, signal suffix strip, soundtrack pattern, prefix patterns

v1.2.9

  • Fixed Signal suffix in DLS breaking metadata parser
  • Added soundtrack pattern for Classic FM format (Album - Track by Artist)
  • Added alternative pattern (Track by Artist from Album)

v1.2.8

  • Best Effort Artwork: Album artwork via Last.fm API with intelligent metadata parsing
  • Configurable confidence threshold (0-95%) controls when lookups are triggered
  • Artwork persistence prevents flicker during metadata gaps
  • Artwork timeout for spoken word content (auto-revert to station icon)
  • Artwork Block List in Station Manager to filter false matches
  • Fuzzy matching tolerates RDS/DAB text corruption (75% similarity threshold)
  • Time and date announcements filtered automatically
  • Blocklist has dedicated backup/restore (separate from stations)
  • Debug logging toggle for artwork troubleshooting
  • Fixed: FM Recently Played not updating for stations with edited frequencies
  • Fixed: Auto-repairs stations where frequency was saved as number instead of string
  • 11-language translations for all new features

v1.2.6

  • Fixed signal quality indicator not updating in Volumio playback screen
  • Signal level changes now bypass 2-second throttle for responsive UI
  • Fixed custom station names not displaying on playback start
  • Custom names now looked up from database at playback time (FM and DAB)
  • Fixed frequency comparison using parseFloat for reliable matching
  • Fixed hidden stations still showing in Volumio media sources
  • Hidden stations now properly filtered from FM, DAB, and ensemble browse views

v1.2.5

  • Added real-time signal quality indicator for FM and DAB
  • Signal strength displayed in Volumio playback screen (5-level indicator)
  • Signal quality shown in station manager for currently playing station
  • Color-coded Font Awesome signal icon (red/orange/yellow/green based on level)
  • Currently playing station highlighted with green border in station manager
  • FM signal quality derived from RDS block error rate (BLER)
  • DAB signal quality derived from FIB quality and AAC decode success rate
  • Updated fn-dab binaries with signal quality callbacks

v1.2.2

  • Added DAB DLS metadata extraction (artist/title from broadcast)
  • Volumio now fetches album artwork via MusicBrainz for DAB stations
  • Improved state management for DAB playback with customName priority
  • DLS text parsed for common formats: "Artist - Title", "Title by Artist"

v1.2.1

  • Added PPM (frequency correction) setting for DAB reception
  • Resolves DAB reception issues with cheap RTL-SDR dongles that have inaccurate crystal oscillators
  • Quality dongles (Nooelec NESDR, RTL-SDR Blog V3/V4) work at PPM=0
  • Cheap generic blue dongles typically need PPM 40-60
  • PPM setting available in both DAB Radio section and Diagnostics for testing
  • DAB channel validation now uses configured gain (was hardcoded to 80)
  • Added tuner type detection and logging in fn-dab binaries
  • Fixed bug in rtlsdr-handler checking wrong variable for V4 dongle support
  • Added missing TRAFFIC_ALERT translations for 10 languages

v1.2.0

  • Major rewrite of DAB audio pipeline with dynamic sample rate detection
  • Automatic PCM format detection from fn-dab stderr output
  • Sox-based resampling handles 32kHz/48kHz DAB streams transparently
  • Consolidated timeout constants for easier maintenance
  • Fixed race conditions in station switching
  • 600ms hardware cleanup delay prevents device conflicts
  • RDS metadata display for FM stations via fn-redsea
  • Complete 11-language internationalization

v1.0.9

  • Added Antenna Positioning Tools
  • RF Spectrum Scan: Full-band signal visualization (87.5-240 MHz, 2-second scan)
  • DAB Channel Validation: Progressive SSE streaming, per-channel sync and service count
  • Fixed three critical DAB scanner bugs:
    • Service count detection (PTY wrapper filtering for PCM-only output)
    • Completion timeout (immediate scanner kill on completion marker)
    • No-signal channel overshoot (immediate kill on channel switch detection)
  • Typical validation times: 10-15s with signal, 2-3s no signal (no 30s timeouts)
  • Translation concept corrected across 11 languages: "positioning" (antenna orientation for signal) not "alignment" (physical leveling)
  • Complete antenna positioning tab translation coverage (49 UI elements)
  • All 11 language files validated: 366 keys each, no duplicates, valid JSON
  • Comprehensive DAB channel validation workflow guidance

v1.0.7

  • Added comprehensive backup and restore system
  • Three backup types: Stations Only, Configuration Only, Full Backup
  • Automatic backup pruning (keeps 5 most recent per type)
  • ZIP export/import functionality
  • Upload and validate external backups with preview
  • Mix-and-match restore capability
  • Optional auto-backup before plugin uninstall
  • Backup history table with download/delete actions
  • Fully internationalized (11 languages)

v1.0.6

  • Added sox resampling pipeline for DAB playback with automatic PCM format detection
  • Handles variable DAB sample rates (32kHz, 48kHz) transparently
  • Added EPIPE error handling for robust process pipeline management
  • Fixed station switching regression

v1.0.0

  • Production release - beta testing complete
  • Eliminated restart requirement after installation
  • Streamlined install process removes obsolete reboot warnings
  • DVB-T kernel module management fully automated during install
  • Ready for public release

v0.9.8

  • UI reorganization: Station manager now appears first in plugin settings
  • Station manager section open by default for immediate access
  • FM/DAB configuration sections collapsed by default for cleaner presentation
  • Clearer toggle labels: "Show" instead of "Enable"
  • Simplified installation (no Volumio core file modification)
  • Two access methods for station manager (via plugin settings)

Language support

  • Full multilingual support: 11 languages fully translated
  • Plugin settings UI now uses Volumio's standard translation system
  • Web manager automatically detects Volumio's language setting via API
  • Both plugin settings and web interface respect user's language choice
  • No manual configuration required for language selection

v0.9.7

  • Clarified test button requirements with clear warning messages
  • Improved default values (UK/London optimized)
  • Enhanced documentation for technical service names vs display names
  • Added comprehensive RF gain explanation
  • Better diagnostics guidance for troubleshooting

v0.9.6

  • Fixed message element rendering in UI
  • Changed from 'message' to 'section' elements with 'description' field

v0.9.2

  • Defense-in-depth save strategy
  • Per-row save buttons
  • Improved user feedback
  • CSS specificity fixes

Clone this wiki locally