Skip to content

Commit 05a323f

Browse files
committed
- version 0.9.3.11.10 - 0.9.3.12-beta10
- removing a couple of debug messages - updating docs - updating mpv download link (Windows)
1 parent 1a1cef4 commit 05a323f

File tree

16 files changed

+235
-109
lines changed

16 files changed

+235
-109
lines changed

Changelog

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,16 @@
1+
2025-05-06 s-n-g
2+
* version 0.9.3.11.10 - 0.9.3.12-beta10
3+
* redesigning the Station Editor
4+
- adding Volume, Buffering, Force http, Profile and Referrer fields
5+
- grouping URL, Icon and Referrer fields
6+
* station encoding can now get a "Default" value, to leave the station's
7+
encoding empty. This will make it use the default (config) encoding.
8+
* all players will use the new station fields
9+
* \V will toggle the use of station volume (revert to profile volume)
10+
* fixing a couple of minor bugs
11+
* updating mpv download link (Windows)
12+
* - updating docs
13+
114
2025-03-21 s-n-g
215
* version 0.9.3.11.9 - 0.9.3.12-beta9
316
* fixing default station selection in the config window

devel/pre-commit

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -292,6 +292,7 @@ do
292292
sed -i -e '/pyradio-editor.jpg/s/src=/style="width: 600px" src=/' "$out"
293293
sed -i -e '/pyradio-player-selection.jpg/s/src=/style="width: 600px" src=/' "$out"
294294
sed -i -e '/pyradio-station-info.jpg/s/src=/style="width: 600px" src=/' "$out"
295+
sed -i -e '/station-volume.png/s/src=/style="width: 512px" src=/' "$out"
295296
fi
296297
if [ "$out" = "desktop-notification.html" ];then
297298
sed -i -e '/pyradio-notif.jpg/s/src=/style="width: 380px" src=/' "$out"

docs/index.html

Lines changed: 45 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -109,6 +109,10 @@ <h2 id="table-of-contents">Table of Contents <span style="padding-left: 10px;"><
109109
<li><a href="#mplayer">MPlayer</a></li>
110110
<li><a href="#vlc">VLC</a></li>
111111
</ul></li>
112+
<li><a href="#station-volume">Station volume</a>
113+
<ul>
114+
<li><a href="#how-it-works">How it Works</a></li>
115+
</ul></li>
112116
<li><a href="#buffering">Buffering</a></li>
113117
<li><a href="#displaying-station-info">Displaying Station Info</a></li>
114118
<li><a href="#copying-and-pasting---registers">Copying and pasting - Registers</a></li>
@@ -186,6 +190,19 @@ <h2 id="requirements">Requirements <span style="padding-left: 10px;"><sup style=
186190
<h2 id="changelog">Changelog <span style="padding-left: 10px;"><sup style="font-size: 50%"><a href="#" title="Go to top of the page">Top</a></sup></span></h2>
187191
<pre style="height: 200px;">
188192

193+
2025-05-06 s-n-g
194+
* version 0.9.3.11.10 - 0.9.3.12-beta10
195+
* redesigning the Station Editor
196+
- adding Volume, Buffering, Force http, Profile and Referrer fields
197+
- grouping URL, Icon and Referrer fields
198+
* station encoding can now get a "Default" value, to leave the station's
199+
encoding empty. This will make it use the default (config) encoding.
200+
* all players will use the new station fields
201+
* \V will toggle the use of station volume (revert to profile volume)
202+
* fixing a couple of minor bugs
203+
* updating mpv download link (Windows)
204+
* - updating docs
205+
189206
2025-03-21 s-n-g
190207
* version 0.9.3.11.9 - 0.9.3.12-beta9
191208
* fixing default station selection in the config window
@@ -1672,18 +1689,20 @@ <h2 id="about-playlist-files">About Playlist files <span style="padding-left: 10
16721689
<ul>
16731690
<li><p>The third column will define the <strong>Encoding</strong> used by the station (more on this at <a href="#specifying-stations-encoding">Specifying stations’ encoding</a>).</p></li>
16741691
<li><p>The fourth column will set an <strong>Icon URL</strong>, to be used when displaying <a href="#desktop-notifications">Desktop Notifications</a>.</p></li>
1675-
<li><p>The fifth column is the <strong>Profile</strong> to be used with this station.</p></li>
1692+
<li><p>The fifth column is the <strong>Profile</strong> to be used with this station.<br />
1693+
<br />
1694+
If a profile is set for the station, a “<strong>[P]</strong>” will be displayed at the left top corner of the window when the station starts playing.</p></li>
16761695
<li><p>The sixth column will determine whether <strong>Buffering</strong> will be used (more on this at <a href="#buffering">Buffering</a>).</p></li>
16771696
<li><p>The seventh column will determine whether the station will be forced to be using <strong>http</strong> instead of https (more on this at <a href="#player-connection-protocol">Player connection protocol</a>).</p></li>
1678-
<li><p>The eight column defines the <strong>Volume</strong> value to be used.</p></li>
1697+
<li><p>The eight column defines the <strong>Volume</strong> value to be used (more on this at <a href="#station-volume">Station volume</a>).</p></li>
16791698
<li><p>The last column will define the <strong>Referer</strong> to be used (more on this at <a href="#specifying-a-stations-referer-url">Specifying a station’s Referer URL</a>).</p></li>
16801699
</ul>
16811700
<p>The following table presents the <strong>Station’s fields</strong> and the current level of support.</p>
16821701
<table>
16831702
<colgroup>
1684-
<col style="width: 20%" />
1685-
<col style="width: 39%" />
1686-
<col style="width: 40%" />
1703+
<col style="width: 24%" />
1704+
<col style="width: 38%" />
1705+
<col style="width: 37%" />
16871706
</colgroup>
16881707
<thead>
16891708
<tr>
@@ -1715,8 +1734,8 @@ <h2 id="about-playlist-files">About Playlist files <span style="padding-left: 10
17151734
</tr>
17161735
<tr>
17171736
<td>Profile</td>
1718-
<td><strong>No</strong></td>
1719-
<td><strong>No</strong></td>
1737+
<td>0.9.3.11.10</td>
1738+
<td>0.9.3.11.10</td>
17201739
</tr>
17211740
<tr>
17221741
<td>Buffering</td>
@@ -1726,17 +1745,17 @@ <h2 id="about-playlist-files">About Playlist files <span style="padding-left: 10
17261745
<tr>
17271746
<td>Force HTTP</td>
17281747
<td>0.9.3.11.6</td>
1729-
<td><strong>No</strong></td>
1748+
<td>0.9.3.11.10</td>
17301749
</tr>
17311750
<tr>
17321751
<td>Volume</td>
1733-
<td><strong>No</strong> for <em>MPV</em> and <em>MPlayer</em></td>
1752+
<td>0.9.3.11.10</td>
17341753
<td>0.9.3.11.5</td>
17351754
</tr>
17361755
<tr>
17371756
<td>Referer URL</td>
17381757
<td>&lt;0.9.3.11.5</td>
1739-
<td><strong>No</strong><br>Using a referer file</td>
1758+
<td>0.9.3.11.10</td>
17401759
</tr>
17411760
</tbody>
17421761
</table>
@@ -2056,6 +2075,22 @@ <h3 id="vlc">VLC</h3>
20562075
<p>In the past, <strong>VLC</strong> would just use any volume setting it had saved from a previous execution, but now it is possible to save the volume it will use when executed by <strong>PyRadio</strong>.</p>
20572076
<p>This means that <strong>VLC</strong> will start and connect to a station, use whatever volume level it’s stored for it and then <strong>PyRadio</strong> will reset the volume to the desired one (as saved within <strong>PyRadio</strong>).</p>
20582077
<p>The volume will be saved is a file called <em>vlc.conf</em> and reside withing the <em>data</em> directory, inside <strong>PyRadio</strong>’s configuration folder.</p>
2078+
<h2 id="station-volume">Station volume <span style="padding-left: 10px;"><sup style="font-size: 50%"><a href="#" title="Go to top of the page">Top</a></sup></span></h2>
2079+
<p>Stations in a playlist can come from various sources, each with its own default volume level. This often results in inconsistent playback volume, forcing the user to adjust <strong>PyRadio</strong>’s volume every time a new station starts.</p>
2080+
<p>While using a volume normalization tool could solve this, it may not always be desirable or feasible.</p>
2081+
<p><strong>PyRadio</strong> offers a better alternative: <em>station volume</em>.</p>
2082+
<p>With this feature, each station can have a specific volume value saved along with its name and URL. When the station is played, that volume is automatically applied.</p>
2083+
<p>Though the user needs to manually set and save the ideal volume for each station (based on their own audio setup), this provides a consistent and reliable solution over time.</p>
2084+
<p>To set a station’s volume, start playing it, adjust the volume to the desired level, and press “<strong>\v</strong>”. This will silently save the updated volume to the playlist on disk.</p>
2085+
<p>If you want to temporarily ignore all station volume settings, press “<strong>\V</strong>”. This will disable volume overrides for the current session only; the setting will reset the next time <strong>PyRadio</strong> is launched.</p>
2086+
<p>When a station’s volume setting is active, a “<strong>[V]</strong>” indicator appears in the top-left corner of the window. If station volume has been disabled, you’ll see “<strong>[v]</strong>” instead. This is illustrated in the image below:</p>
2087+
<p><a href="https://members.hellug.gr/sng/pyradio/station-volume.png" target="_blank"><img style="width: 512px" src="https://members.hellug.gr/sng/pyradio/station-volume.png" alt="PyRadio Station Volume" /></a></p>
2088+
2089+
<h3 id="how-it-works">How it Works</h3>
2090+
<p>Both <strong>MPV</strong> and <strong>MPlayer</strong> use <em>profiles</em> to configure playback options.</p>
2091+
<p>When station volume is enabled, <strong>PyRadio</strong> creates a temporary profile named <strong>pyradio-volume</strong> by copying the selected base profile. It then updates the volume field in this profile to match the station’s saved volume. This custom profile is then used to launch the player.</p>
2092+
<p>Naturally, this means the player’s user configuration file must be read, parsed, modified, and saved — which may introduce a slight delay, particularly on slower systems.</p>
2093+
<p><strong>VLC</strong>, on the other hand, does not support profiles. In this case, <strong>PyRadio</strong> simply applies the station’s volume directly, overriding the global volume setting.</p>
20592094
<h2 id="buffering">Buffering <span style="padding-left: 10px;"><sup style="font-size: 50%"><a href="#" title="Go to top of the page">Top</a></sup></span></h2>
20602095
<p><strong>PyRadio</strong> provides stream buffering options for all supported players.</p>
20612096
<p>Please refer to this document for more info: <a href="buffering.html">PyRadio Buffering</a>.</p>

docs/index.md

Lines changed: 47 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,8 @@ Command line internet radio player.
5050
* [MPV](#mpv)
5151
* [MPlayer](#mplayer)
5252
* [VLC](#vlc)
53+
* [Station volume](#station-volume)
54+
* [How it Works](#how-it-works)
5355
* [Buffering](#buffering)
5456
* [Displaying Station Info](#displaying-station-info)
5557
* [Copying and pasting - Registers](#copying-and-pasting---registers)
@@ -424,29 +426,31 @@ Optionally, a number of more columns can be used.
424426

425427
- The fourth column will set an **Icon URL**, to be used when displaying [Desktop Notifications](#desktop-notifications).
426428

427-
- The fifth column is the **Profile** to be used with this station.
429+
- The fifth column is the **Profile** to be used with this station. \
430+
\
431+
If a profile is set for the station, a "**[P]**" will be displayed at the left top corner of the window when the station starts playing.
428432

429433
- The sixth column will determine whether **Buffering** will be used (more on this at [Buffering](#buffering)).
430434

431435
- The seventh column will determine whether the station will be forced to be using **http** instead of https (more on this at [Player connection protocol](#player-connection-protocol)).
432436

433-
- The eight column defines the **Volume** value to be used.
437+
- The eight column defines the **Volume** value to be used (more on this at [Station volume](#station-volume)).
434438

435439
- The last column will define the **Referer** to be used (more on this at [Specifying a station's Referer URL](#specifying-a-stations-referer-url)).
436440

437441
The following table presents the **Station's fields** and the current level of support.
438442

439-
| Station Field | Takes Effect in Playlist | Customizable in Program |
440-
|-----------------|--------------------------------|---------------------------------|
441-
| Name | <0.9.3.11.5 | <0.9.3.11.5 |
442-
| URL | <0.9.3.11.5 | <0.9.3.11.5 |
443-
| Encoding | <0.9.3.11.5 | <0.9.3.11.5 |
444-
| Icon | <0.9.3.11.5 | <0.9.3.11.5 |
445-
| Profile | **No** | **No** |
446-
| Buffering | 0.9.3.11.8 | 0.9.3.11.8 |
447-
| Force HTTP | 0.9.3.11.6 | **No** |
448-
| Volume | **No** for *MPV* and *MPlayer* | 0.9.3.11.5 |
449-
| Referer URL | <0.9.3.11.5 | **No**<br>Using a referer file |
443+
| Station Field | Takes Effect in Playlist | Customizable in Program |
444+
|-----------------|---------------------------|--------------------------|
445+
| Name | <0.9.3.11.5 | <0.9.3.11.5 |
446+
| URL | <0.9.3.11.5 | <0.9.3.11.5 |
447+
| Encoding | <0.9.3.11.5 | <0.9.3.11.5 |
448+
| Icon | <0.9.3.11.5 | <0.9.3.11.5 |
449+
| Profile | 0.9.3.11.10 | 0.9.3.11.10 |
450+
| Buffering | 0.9.3.11.8 | 0.9.3.11.8 |
451+
| Force HTTP | 0.9.3.11.6 | 0.9.3.11.10 |
452+
| Volume | 0.9.3.11.10 | 0.9.3.11.5 |
453+
| Referer URL | <0.9.3.11.5 | 0.9.3.11.10 |
450454

451455

452456
**PyRadio** will by default load the user's stations file (e.g. *~/.config/pyradio/stations.csv*) to read the stations from. If this file is not found, it will be created and populated with a default set of stations.
@@ -915,6 +919,36 @@ This means that **VLC** will start and connect to a station, use whatever volume
915919

916920
The volume will be saved is a file called *vlc.conf* and reside withing the *data* directory, inside **PyRadio**'s configuration folder.
917921

922+
## Station volume
923+
924+
Stations in a playlist can come from various sources, each with its own default volume level. This often results in inconsistent playback volume, forcing the user to adjust **PyRadio**'s volume every time a new station starts.
925+
926+
While using a volume normalization tool could solve this, it may not always be desirable or feasible.
927+
928+
**PyRadio** offers a better alternative: *station volume*.
929+
930+
With this feature, each station can have a specific volume value saved along with its name and URL. When the station is played, that volume is automatically applied.
931+
932+
Though the user needs to manually set and save the ideal volume for each station (based on their own audio setup), this provides a consistent and reliable solution over time.
933+
934+
To set a station’s volume, start playing it, adjust the volume to the desired level, and press "**\\v**". This will silently save the updated volume to the playlist on disk.
935+
936+
If you want to temporarily ignore all station volume settings, press "**\\V**". This will disable volume overrides for the current session only; the setting will reset the next time **PyRadio** is launched.
937+
938+
When a station’s volume setting is active, a "**[V]**" indicator appears in the top-left corner of the window. If station volume has been disabled, you’ll see "**[v]**" instead. This is illustrated in the image below:
939+
940+
![PyRadio Station Volume](https://members.hellug.gr/sng/pyradio/station-volume.png)
941+
942+
### How it Works
943+
944+
Both **MPV** and **MPlayer** use *profiles* to configure playback options.
945+
946+
When station volume is enabled, **PyRadio** creates a temporary profile named **pyradio-volume** by copying the selected base profile. It then updates the volume field in this profile to match the station’s saved volume. This custom profile is then used to launch the player.
947+
948+
Naturally, this means the player’s user configuration file must be read, parsed, modified, and saved — which may introduce a slight delay, particularly on slower systems.
949+
950+
**VLC**, on the other hand, does not support profiles. In this case, **PyRadio** simply applies the station’s volume directly, overriding the global volume setting.
951+
918952
## Buffering
919953

920954
**PyRadio** provides stream buffering options for all supported players.

0 commit comments

Comments
 (0)