Re: Radio Loudness

"Marvin Scholz (ePirat)" <[email protected]> Thu, 25 Aug 2022 14:31:30 +0200
Newsgroups gmane.comp.audio.icecast.devel
Message-ID <[email protected]>
--===============3242252361075812557==
Content-Type: multipart/alternative; boundary=Apple-Mail-1F2987FC-3ECE-4328-85A9-7EADEAA3DC02
Content-Transfer-Encoding: 7bit


--Apple-Mail-1F2987FC-3ECE-4328-85A9-7EADEAA3DC02
Content-Type: text/plain;
	charset=utf-8
Content-Transfer-Encoding: quoted-printable

Accidentally replied off-list first, here again my reply on-list. Sorry for t=
he confusion.

Hi, see my replies inline:
>=20
>>> On 25. Aug 2022, at 13:48, [email protected] wrote:
>>>=20
>> =EF=BB=BF
>> Dear Roman
>>=20
>> Thank you for your answer.
>>=20
>> We as Swisscom Switzerland are in a difficult situation. We have around 1=
'000 Live / Replay TV Channels and 500 Radio Channels on our Platform.
>> For Live TV we could manage the Loudness in the Transcoder/Encoding Setti=
ngs. We were able to measure and align all Loudness differences and adjust t=
o -23dB.
>> Zapping from one TV Channel to another makes no audible difference anymor=
e.
>>=20
>> The Problem is the change from Live TV to Radio on our Android Set-Top-Bo=
x.
>> We are looking for a solution to align the Radio Loudness over the 500 Ra=
dio Channels.
>>=20
>> So you don't see any possibility to send an ExoPlayer message (like a Met=
adata) to the Player?
>=20
So if I understand correctly you want to send over a loudness adjustment par=
ameter over for a specific radio station on start of playback?

>>=20
>> We saw that the following commands are coming from the Backend IceCast Pr=
oxy to the Android STB:
>> =20
>=20
(Please note the correct spelling is Icecast)

>> tvlib.ExoRadioPlayer: onPlaybackStateChanged(state=3DIdle)
>> tvlib.ExoRadioPlayer: onIsLoadingChanged(isLoading=3Dfalse)
>> tvlib.ExoRadioPlayer: onPlaybackStateChanged(state=3DBuffering)
>>=20
>> Why not adding a ExoPlayer Volume Parameter within the Radio Channel star=
t
>> For example =E2=80=A6
>> exoPlayer.sendMessage(audioRenderer, MediaCodecAudioTrackRenderer.MSG_SET=
_VOLUME, 0.9f);
>>=20
>>=20
>=20
Icecast does not send any explicit messages over to the player, it just prov=
ides a HTTP stream.

One option would be to include a special HTTP header in Icecasts response, a=
nd make ExoPlayer use that (not sure if it provides necessary API for that t=
hough).

>> A static setting on the ExoPlayer in the client is not an option, because=
 the Player is also used by other applications.
>> Changing Volume in Set-top-box will affect all applications.=20
>>=20
>=20
So you are not even invoking ExoPlayer programmatically in a way where you c=
an set such settings? Then even the approach I suggested above might not be f=
easible.

However if you want someone to look further into the matter, this might be b=
eyond what volunteers on this list can do, especially as it is not really ab=
out solely Icecast but your specific integration/client software.

>> Sincerely,
>> Patrick
>>=20
>> =20
>> Von: Roman Gorshunov <[email protected]>=20
>> Gesendet: Mittwoch, 24. August 2022 19:18
>> An: Schneider Patrick, B2C-TSP-ITE <[email protected]>
>> Cc: [email protected]
>> Betreff: Re: [Icecast-dev] Radio Loudness
>> =20
>> Hello Patrick,
>> =20
>> It=E2=80=99s not really a media streaming server=E2=80=99s (Icecast) job t=
o alter the volume. Volume is set either by the media source or in player.
>> In addition to that, media streaming server does not allow clients (playe=
rs) to control media source (e.g. change volume or skip tracks).
>> =20
>> I might misunderstood your question though.
>> =20
>> Best regards,
>> Roman Gorshunov
>>=20
>>=20
>> On 24 Aug 2022, at 11:11, [email protected] wrote:
>>=20
>> =EF=BB=BF=20
>> Dear All
>>=20
>> We are looking for a solution to send a volume parameter to our ExoPlayer=
 during the icecast streaming initialization phase.
>> Something like this =E2=80=A6
>>=20
>> Volume example:
>>         exoPlayer.sendMessage(audioRenderer, MediaCodecAudioTrackRenderer=
.MSG_SET_VOLUME, 0.9f);
>>=20
>> Is there a way to set the icecast egress streaming with an ExoPlayer defa=
ult Volume?
>>=20
>> Sincerely,
>> Patrick
>>=20
>>=20
>>=20
>> =20
>>=20
>> _______________________________________________
>> Icecast-dev mailing list
>> [email protected]
>> http://lists.xiph.org/mailman/listinfo/icecast-dev
>> _______________________________________________
>> Icecast-dev mailing list
>> [email protected]
>> http://lists.xiph.org/mailman/listinfo/icecast-dev

--Apple-Mail-1F2987FC-3ECE-4328-85A9-7EADEAA3DC02
Content-Type: text/html;
	charset=utf-8
Content-Transfer-Encoding: quoted-printable

<html><head><meta http-equiv=3D"content-type" content=3D"text/html; charset=3D=
utf-8"></head><body dir=3D"auto"><div>Accidentally replied off-list first, h=
ere again my reply on-list. Sorry for the confusion.</div><div><br></div><di=
v><div dir=3D"ltr">Hi, see my replies inline:<br></div><blockquote type=3D"c=
ite"><div dir=3D"ltr"><div dir=3D"ltr"><br><blockquote type=3D"cite">On 25. A=
ug 2022, at 13:48, [email protected] wrote:<br><br></blockquot=
e></div><blockquote type=3D"cite"><div dir=3D"ltr">=EF=BB=BF<div class=3D"Wo=
rdSection1"><p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"font-size: 1=
0pt; font-family: &quot;Trebuchet MS&quot;, sans-serif; color: rgb(68, 84, 1=
06);">Dear Roman<br><br>Thank you for your answer.<br><br>We as Swisscom Swi=
tzerland are in a difficult situation. We have around 1'000 Live / Replay TV=
 Channels and 500 Radio Channels on our Platform.<br>For Live TV we could ma=
nage the Loudness in the Transcoder/Encoding Settings. We were able to measu=
re and align all Loudness differences and adjust to -23dB.<br>Zapping from o=
ne TV Channel to another makes no audible difference anymore.<br><br>The Pro=
blem is the change from Live TV to Radio on our Android Set-Top-Box.<br>We a=
re looking for a solution to align the Radio Loudness over the 500 Radio Cha=
nnels.<br><br>So you don't see any possibility to send an ExoPlayer message (=
like a Metadata) to the Player?<br></span></p></div></div></blockquote><div>=
<br></div></div></blockquote><div dir=3D"ltr"><div>So if I understand correc=
tly you want to send over a loudness adjustment parameter over for a specifi=
c radio station on start of playback?</div><br></div><blockquote type=3D"cit=
e"><div dir=3D"ltr"><blockquote type=3D"cite"><div dir=3D"ltr"><div class=3D=
"WordSection1"><p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"font-siz=
e: 10pt; font-family: &quot;Trebuchet MS&quot;, sans-serif; color: rgb(68, 8=
4, 106);"><br>We saw that the following commands are coming from the Backend=
 IceCast Proxy to the Android STB:<o:p></o:p></span></p><p class=3D"MsoNorma=
l"><span lang=3D"EN-US" style=3D"font-size: 10pt; font-family: &quot;Trebuch=
et MS&quot;, sans-serif; color: rgb(68, 84, 106);">&nbsp;</span></p></div></=
div></blockquote><div><br></div></div></blockquote><div dir=3D"ltr"><div>(Pl=
ease note the correct spelling is Icecast)</div><br></div><blockquote type=3D=
"cite"><div dir=3D"ltr"><blockquote type=3D"cite"><div dir=3D"ltr"><div clas=
s=3D"WordSection1"><p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"font=
-size: 10pt; font-family: &quot;Trebuchet MS&quot;, sans-serif; color: rgb(6=
8, 84, 106);">tvlib.ExoRadioPlayer: onPlaybackStateChanged(state=3DIdle)<o:p=
></o:p></span></p><p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"font-=
size: 10pt; font-family: &quot;Trebuchet MS&quot;, sans-serif; color: rgb(68=
, 84, 106);">tvlib.ExoRadioPlayer: onIsLoadingChanged(isLoading=3Dfalse)<o:p=
></o:p></span></p><p class=3D"MsoNormal" style=3D"margin-bottom: 12pt;"><spa=
n lang=3D"EN-US" style=3D"font-size: 10pt; font-family: &quot;Trebuchet MS&q=
uot;, sans-serif; color: rgb(68, 84, 106); background-color: yellow;">tvlib.=
ExoRadioPlayer: onPlaybackStateChanged(state=3DBuffering)</span><span lang=3D=
"EN-US" style=3D"font-size: 10pt; font-family: &quot;Trebuchet MS&quot;, san=
s-serif;"><o:p></o:p></span></p><p class=3D"MsoNormal"><span lang=3D"EN-US" s=
tyle=3D"font-size: 10pt; font-family: &quot;Trebuchet MS&quot;, sans-serif; c=
olor: rgb(68, 84, 106);">Why not adding a ExoPlayer Volume Parameter within t=
he Radio Channel start<br>For example =E2=80=A6<br></span><span lang=3D"EN-U=
S" style=3D"font-size: 10pt; font-family: &quot;Courier New&quot;;">exoPlaye=
r.sendMessage(audioRenderer, MediaCodecAudioTrackRenderer.MSG_SET_VOLUME,&nb=
sp;<span style=3D"background-color: yellow;">0</span><span style=3D"backgrou=
nd-color: yellow;">.9f</span>);</span><span lang=3D"EN-US" style=3D"font-siz=
e: 10pt; font-family: &quot;Trebuchet MS&quot;, sans-serif; color: rgb(68, 8=
4, 106);"><br><br><o:p></o:p></span></p><p class=3D"MsoNormal"><span lang=3D=
"EN-US" style=3D"font-size: 10pt; font-family: &quot;Trebuchet MS&quot;, san=
s-serif; color: rgb(68, 84, 106);"><br></span></p></div></div></blockquote><=
div><br></div></div></blockquote><div dir=3D"ltr"><div>Icecast does not send=
 any explicit messages over to the player, it just provides a HTTP stream.</=
div><div><br></div></div><div dir=3D"ltr"><div>One option would be to includ=
e a special HTTP header in Icecasts response, and make ExoPlayer use that (n=
ot sure if it provides necessary API for that though).</div><br></div><block=
quote type=3D"cite"><div dir=3D"ltr"><blockquote type=3D"cite"><div dir=3D"l=
tr"><div class=3D"WordSection1"><p class=3D"MsoNormal"><span lang=3D"EN-US" s=
tyle=3D"font-size: 10pt; font-family: &quot;Trebuchet MS&quot;, sans-serif; c=
olor: rgb(68, 84, 106);">A static setting on the ExoPlayer in the client is n=
ot an option, because the Player is also used by other applications.<br>Chan=
ging Volume in Set-top-box will affect all applications.&nbsp;<br><br></span=
></p></div></div></blockquote><div><br></div></div></blockquote><div dir=3D"=
ltr"><div>So you are not even invoking ExoPlayer programmatically in a way w=
here you can set such settings? Then even the approach I suggested above mig=
ht not be feasible.</div></div><div dir=3D"ltr"><div><br></div></div><div di=
r=3D"ltr"><div>However if you want someone to look further into the matter, t=
his might be beyond what volunteers on this list can do, especially as it is=
 not really about solely Icecast but your specific integration/client softwa=
re.</div><br></div><blockquote type=3D"cite" style=3D"color: rgb(0, 0, 0);">=
<div dir=3D"ltr"><blockquote type=3D"cite"><div dir=3D"ltr"><div class=3D"Wo=
rdSection1"><p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"font-size: 1=
0pt; font-family: &quot;Trebuchet MS&quot;, sans-serif; color: rgb(68, 84, 1=
06);">Sincerely,<br>Patrick<br><br><o:p></o:p></span></p><p class=3D"MsoNorm=
al"><span lang=3D"EN-US" style=3D"font-size: 10pt; font-family: &quot;Trebuc=
het MS&quot;, sans-serif; color: rgb(68, 84, 106);"><o:p></o:p></span></p><p=
 class=3D"MsoNormal"><span lang=3D"EN-US">&nbsp;</span></p><div><div style=3D=
"border-style: solid none none; border-top-width: 1pt; border-top-color: rgb=
(225, 225, 225); padding: 3pt 0cm 0cm;"><p class=3D"MsoNormal"><b><span lang=
=3D"DE">Von:</span></b><span lang=3D"DE">&nbsp;Roman Gorshunov &lt;paye600@g=
mail.com&gt;&nbsp;<br><b>Gesendet:</b>&nbsp;Mittwoch, 24. August 2022 19:18<=
br><b>An:</b>&nbsp;Schneider Patrick, B2C-TSP-ITE &lt;Patrick.Schneider1@swi=
sscom.com&gt;<br><b>Cc:</b>&nbsp;[email protected]<br><b>Betreff:</b>&nbs=
p;Re: [Icecast-dev] Radio Loudness<o:p></o:p></span></p></div></div><p class=
=3D"MsoNormal"><o:p>&nbsp;</o:p></p><div><p class=3D"MsoNormal">Hello Patric=
k,<o:p></o:p></p></div><div><p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p></di=
v><div><p class=3D"MsoNormal">It=E2=80=99s not really a media streaming serv=
er=E2=80=99s (Icecast) job to alter the volume. Volume is set either by the m=
edia source or in player.<o:p></o:p></p></div><div><p class=3D"MsoNormal">In=
 addition to that, media streaming server does not allow clients (players) t=
o control media source (e.g. change volume or skip tracks).<o:p></o:p></p></=
div><div><p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p></div><div><p class=3D"=
MsoNormal">I might misunderstood your question though.<o:p></o:p></p></div><=
div><p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p></div><div><p class=3D"MsoNo=
rmal">Best regards,<o:p></o:p></p></div><div><p class=3D"MsoNormal">Roman Go=
rshunov<o:p></o:p></p></div><div><p class=3D"MsoNormal"><br><br><o:p></o:p><=
/p><blockquote style=3D"margin-top: 5pt; margin-bottom: 5pt;"><p class=3D"Ms=
oNormal" style=3D"margin-bottom: 12pt;">On 24 Aug 2022, at 11:11,&nbsp;<a hr=
ef=3D"mailto:[email protected]">[email protected]=
m</a>&nbsp;wrote:<o:p></o:p></p></blockquote></div><blockquote style=3D"marg=
in-top: 5pt; margin-bottom: 5pt;"><p class=3D"MsoNormal">=EF=BB=BF&nbsp;<o:p=
></o:p></p><p class=3D"MsoNormal"><span lang=3D"EN-US">Dear All<br><br>We ar=
e looking for a solution to send a volume parameter to our ExoPlayer during t=
he icecast streaming initialization phase.<br>Something like this =E2=80=A6<=
br></span><span lang=3D"EN-US" style=3D"font-size: 10pt; font-family: &quot;=
Trebuchet MS&quot;, sans-serif;"><br></span><span lang=3D"EN-US" style=3D"fo=
nt-size: 10pt; font-family: &quot;Courier New&quot;;">Volume example:<br>&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; exoPlayer.sendMessage(audioRenderer,=
 MediaCodecAudioTrackRenderer.MSG_SET_VOLUME,&nbsp;<span style=3D"background=
-color: yellow;">0</span><span style=3D"background-color: yellow;">.9f</span=
>);</span><o:p></o:p></p><p class=3D"MsoNormal" style=3D"margin-bottom: 12pt=
;"><span lang=3D"EN-US" style=3D"font-size: 10pt; font-family: &quot;Trebuch=
et MS&quot;, sans-serif;"><br>Is there a way to set the icecast egress strea=
ming with an ExoPlayer default Volume?<br><br>Sincerely,<br>Patrick<br><br><=
br></span><o:p></o:p></p><p class=3D"MsoNormal" style=3D"margin-bottom: 12pt=
;"><span lang=3D"EN-US" style=3D"font-size: 10pt; font-family: &quot;Trebuch=
et MS&quot;, sans-serif; color: rgb(68, 84, 106);">&nbsp;</span><o:p></o:p><=
/p><p class=3D"MsoNormal">_______________________________________________<br=
>Icecast-dev mailing list<br><a href=3D"mailto:[email protected]">Icecast=
[email protected]</a><br><a href=3D"http://lists.xiph.org/mailman/listinfo/iceca=
st-dev">http://lists.xiph.org/mailman/listinfo/icecast-dev</a><o:p></o:p></p=
></blockquote></div>_______________________________________________<br>Iceca=
st-dev mailing list<br>[email protected]<br>http://lists.xiph.org/mailman=
/listinfo/icecast-dev</div></blockquote></div></blockquote></div><style>@fon=
t-face { font-family: "Cambria Math"; }
@font-face { font-family: Calibri; }
@font-face { font-family: "Trebuchet MS"; }
p.MsoNormal, li.MsoNormal, div.MsoNormal { margin: 0cm; font-size: 11pt; fon=
t-family: Calibri, sans-serif; }
a:link, span.MsoHyperlink { color: rgb(5, 99, 193); text-decoration: underli=
ne; }
.MsoChpDefault { font-size: 10pt; }
@page WordSection1 { size: 612pt 792pt; margin: 70.85pt 70.85pt 2cm; }
div.WordSection1 { page: WordSection1; }</style></body></html>=

--Apple-Mail-1F2987FC-3ECE-4328-85A9-7EADEAA3DC02--

--===============3242252361075812557==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
Icecast-dev mailing list
[email protected]
http://lists.xiph.org/mailman/listinfo/icecast-dev

--===============3242252361075812557==--