Hi Gilles,

Thanks for that. I managed to find it before you posted which is good because 
you confirmed that I’ve got the right program.

So, I should now have all I need to make normalisation work with an mp3 stream. 
I guess I just need to wait for the next bug fix release to see the replay gain 
resolver at work in the logs an then I will know if it’s really working or not.

Cheers guys
Damian

> On 2 Feb 2019, at 1:31 am, Gilou <contact+...@gilouweb.com> wrote:
> 
> Le 01/02/2019 à 00:35, Damian a écrit :
>> Hi,
>> 
>> So I assumed that replay_gain was somehow built in to liquidsoap. I run
>> my stream on a Debian9 VPS. Up until recently. I was using mp3gain on my
>> Mac locally to normalise the mp3s before uploading them to the server. 
>> 
>> As far as I can see mp3gain has been removed from the repositories for
>> Debian and Ubuntu because there are no active maintainers. Is this a
>> dead end for me in terms of using replay_gain for normalisation on Debian?
> 
> Hi,
> 
> You can have replaygain from apt through python-rgain
> (https://packages.debian.org/stretch/python-rgain) or via pypi.
> 
> Regards,
> 
> Gilles
> 
>> 
>> On 1 Feb 2019, at 06:53, Romain Beauxis <romain.beau...@gmail.com
>> <mailto:romain.beau...@gmail.com>> wrote:
>> 
>>> Hey,
>>> 
>>> So, I did a little investigation. At the moment, there isn't much log
>>> from the replaygain resolver. I've added that to the latest master branch.
>>> 
>>> One thing you might want to make sure is that you have one of the
>>> actual program for extracting that data available. These are: mp3gain,
>>> aacgain (latest master), replaygain, metaflac. If you don't have a
>>> program available for your file format then replaygain will fail to
>>> add its metadata.
>>> 
>>> Romain
>>> 
>>> Le jeu. 31 janv. 2019 à 05:43, Damian <d...@riseup.net
>>> <mailto:d...@riseup.net>> a écrit :
>>> 
>>>    Thanks gentlemen for the quick reply.
>>> 
>>>    Romain, I’ve shifted enable_replaygain_metadata ()to the top of
>>>    the script and set logging to level 4 as you and Gilles
>>>    recommended and I see the following. Not sure if the metadata
>>>    resolver you speak of is visible however. Should there be more?
>>>     
>>> 
>>>    2019/01/31 21:17:07 [clock:4] Main phase starts.
>>>    2019/01/31 21:17:07 [clock.wallclock_main:3] Streaming loop
>>>    starts, synchronized with wallclock.
>>>    2019/01/31 21:17:07 [samples:4] Remaining: 0.0s, queued: 0.0s,
>>>    adding: 30.0s (RID 7)
>>>    2019/01/31 21:17:07 [mksafe:3] Switch to amplify_6432.
>>>    2019/01/31 21:17:07 [amplify_6432:4] Activations changed:
>>>    
>>> static=[mksafe:on_metadata_6453:Systrum_Sistum_-_SSR1:Systrum_Sistum_-_SSR1],
>>>    
>>> dynamic=[mksafe:on_metadata_6453:Systrum_Sistum_-_SSR1:Systrum_Sistum_-_SSR1].
>>>    2019/01/31 21:17:07 [fallback_6430:3] Switch to delay_6428.
>>>    2019/01/31 21:17:07 [delay_6428:4] Activations changed:
>>>    
>>> static=[fallback_6430:amplify_6432:mksafe:on_metadata_6453:Systrum_Sistum_-_SSR1:Systrum_Sistum_-_SSR1],
>>>    
>>> dynamic=[fallback_6430:amplify_6432:mksafe:on_metadata_6453:Systrum_Sistum_-_SSR1:Systrum_Sistum_-_SSR1].
>>>    2019/01/31 21:17:07 [on_metadata_6453:4] Got metadata at position
>>>    0: calling handler...
>>>    2019/01/31 21:17:07 [decoder:4] Trying method "META" for
>>>    "/ssr/ssr1/interludes/Kate Interlude.mp3"...
>>>    2019/01/31 21:17:07 [decoder:4] Trying method "WAV" for
>>>    "/ssr/ssr1/interludes/Kate Interlude.mp3"...
>>>    2019/01/31 21:17:07 [decoder.wav/aiff:4] Invalid MIME type for
>>>    "/ssr/ssr1/interludes/Kate Interlude.mp3": application/octet-stream!
>>>    2019/01/31 21:17:07 [decoder.wav/aiff:4] Invalid file extension
>>>    for "/ssr/ssr1/interludes/Kate Interlude.mp3"!
>>>    2019/01/31 21:17:07 [decoder:4] Trying method "AIFF" for
>>>    "/ssr/ssr1/interludes/Kate Interlude.mp3"...
>>>    2019/01/31 21:17:07 [audioscrobbler:4] Submiting  -- Kate
>>>    Interlude with mode: submit to post.audioscrobbler.com:80
>>>    <http://post.audioscrobbler.com:80>
>>>    2019/01/31 21:17:07 [decoder.wav/aiff:4] Invalid MIME type for
>>>    "/ssr/ssr1/interludes/Kate Interlude.mp3": application/octet-stream!
>>>    2019/01/31 21:17:07 [decoder.wav/aiff:4] Invalid file extension
>>>    for "/ssr/ssr1/interludes/Kate Interlude.mp3"!
>>>    2019/01/31 21:17:07 [decoder:4] Trying method "MIDI" for
>>>    "/ssr/ssr1/interludes/Kate Interlude.mp3"...
>>>    2019/01/31 21:17:07 [decoder:4] Trying method "IMAGE" for
>>>    "/ssr/ssr1/interludes/Kate Interlude.mp3"...
>>>    2019/01/31 21:17:07 [decoder:4] Trying method "OGG" for
>>>    "/ssr/ssr1/interludes/Kate Interlude.mp3"...
>>>    2019/01/31 21:17:07 [decoder.ogg:4] Invalid MIME type for
>>>    "/ssr/ssr1/interludes/Kate Interlude.mp3": application/octet-stream!
>>>    2019/01/31 21:17:07 [decoder.ogg:4] Invalid file extension for
>>>    "/ssr/ssr1/interludes/Kate Interlude.mp3"!
>>>    2019/01/31 21:17:07 [decoder:4] Trying method "MAD" for
>>>    "/ssr/ssr1/interludes/Kate Interlude.mp3"...
>>>    2019/01/31 21:17:07 [decoder.mad:4] Libmad recognizes
>>>    "/ssr/ssr1/interludes/Kate Interlude.mp3" as mpeg audio (layer
>>>    III, 128kbps, 44100Hz, 2 channels).
>>>    2019/01/31 21:17:07 [decoder:3] Method "MAD" accepted
>>>    "/ssr/ssr1/interludes/Kate Interlude.mp3".
>>>    2019/01/31 21:17:07 [decoder.ogg:4] Invalid MIME type for
>>>    "/ssr/ssr1/interludes/Kate Interlude.mp3": application/octet-stream!
>>>    2019/01/31 21:17:07 [decoder.ogg:4] Invalid file extension for
>>>    "/ssr/ssr1/interludes/Kate Interlude.mp3"!
>>>    2019/01/31 21:17:07 [interludes:4] Remaining: 1.1s, queued: 0.0s,
>>>    adding: 30.0s (RID 8)
>>>    2019/01/31 21:17:09 [decoder:4] Decoding
>>>    "/ssr/ssr1/interludes/Kate Interlude.mp3" ended: Mad.End_of_stream.
>>>    2019/01/31 21:17:09 [interludes:3] Finished with
>>>    "/ssr/ssr1/interludes/Kate Interlude.mp3".
>>>    2019/01/31 21:17:09 [samples:4] Remaining: 0.0s, queued: 30.0s,
>>>    taking: 30.0s
>>>    2019/01/31 21:17:09 [samples:3] Prepared "/ssr/ssr1/samples/The
>>>    Conet Project - (S13) Count in Russian.mp3" (RID 7).
>>>    2019/01/31 21:17:09 [fresh:4] Remaining: 0.0s, queued: 30.0s,
>>>    taking: 30.0s
>>>    2019/01/31 21:17:09 [fresh:3] Prepared "/ssr/ssr1/fresh/Body Boys
>>>    - Yunnan.mp3" (RID 3).
>>>    2019/01/31 21:17:09 [general:4] Remaining: 0.0s, queued: 30.0s,
>>>    taking: 30.0s
>>>    2019/01/31 21:17:09 [general:3] Prepared "/ssr/ssr1/general/Cousin
>>>    Silas - Coming From Crossland Moor.mp3" (RID 5).
>>>    2019/01/31 21:17:09 [fallback_6430:3] Switch to rotate_6426 with
>>>    forgetful transition.
>>>    2019/01/31 21:17:09 [delay_6428:4] Activations changed: static=[],
>>>    
>>> dynamic=[fallback_6430:amplify_6432:mksafe:on_metadata_6453:Systrum_Sistum_-_SSR1:Systrum_Sistum_-_SSR1].
>>>    2019/01/31 21:17:09 [rotate_6426:4] Activations changed:
>>>    
>>> static=[fallback_6430:amplify_6432:mksafe:on_metadata_6453:Systrum_Sistum_-_SSR1:Systrum_Sistum_-_SSR1],
>>>    
>>> dynamic=[fallback_6430:amplify_6432:mksafe:on_metadata_6453:Systrum_Sistum_-_SSR1:Systrum_Sistum_-_SSR1].
>>>    2019/01/31 21:17:09 [rotate_6426:3] Switch to fresh.
>>>    2019/01/31 21:17:09 [fresh:4] Activations changed:
>>>    
>>> static=[rotate_6426:fallback_6430:amplify_6432:mksafe:on_metadata_6453:Systrum_Sistum_-_SSR1:Systrum_Sistum_-_SSR1],
>>>    
>>> dynamic=[rotate_6426:fallback_6430:amplify_6432:mksafe:on_metadata_6453:Systrum_Sistum_-_SSR1:Systrum_Sistum_-_SSR1,
>>>    
>>> rotate_6426:fallback_6430:amplify_6432:mksafe:on_metadata_6453:Systrum_Sistum_-_SSR1:Systrum_Sistum_-_SSR1,
>>>    
>>> rotate_6426:fallback_6430:amplify_6432:mksafe:on_metadata_6453:Systrum_Sistum_-_SSR1:Systrum_Sistum_-_SSR1,
>>>    
>>> rotate_6426:fallback_6430:amplify_6432:mksafe:on_metadata_6453:Systrum_Sistum_-_SSR1:Systrum_Sistum_-_SSR1,
>>>    
>>> rotate_6426:fallback_6430:amplify_6432:mksafe:on_metadata_6453:Systrum_Sistum_-_SSR1:Systrum_Sistum_-_SSR1,
>>>    
>>> rotate_6426:fallback_6430:amplify_6432:mksafe:on_metadata_6453:Systrum_Sistum_-_SSR1:Systrum_Sistum_-_SSR1].
>>>    2019/01/31 21:17:09 [on_metadata_6453:4] Got metadata at position
>>>    1440: calling handler...
>>>    2019/01/31 21:17:09 [audioscrobbler:4] Submiting Body Boys --
>>>    Yunnan with mode: submit to post.audioscrobbler.com:80
>>>    <http://post.audioscrobbler.com:80>
>>>    2019/01/31 21:17:17 [source:4] Garbage collected empty_6510.
>>> 
>>> 
>>> 
>>>>    On 31 Jan 2019, at 3:29 am, Romain Beauxis
>>>>    <romain.beau...@gmail.com <mailto:romain.beau...@gmail.com>> wrote:
>>>> 
>>>>    Hi all,
>>>> 
>>>>    Reading the code, it looks like the call to
>>>>    enable_replaygain_metadata  can be done where ever you want
>>>>    though it's usually a good practice to put it on top.
>>>> 
>>>>    If you increase the log level to 4 you should see the replay gain
>>>>    metadata resolver in action if it's properly enabled/installed:
>>>>    set("log.level",4)
>>>> 
>>>>    Romain
>>>> 
>>>>    Le mer. 30 janv. 2019 à 11:10, Gilles Pietri
>>>>    <contact+...@gilouweb.com <mailto:contact%2b...@gilouweb.com>> a
>>>>    écrit :
>>>> 
>>>>        Le 30/01/2019 à 12:53, Damian a écrit :
>>>>> Hi,
>>>>> 
>>>>> I am running liquidsoap 1.3.6 and I have followed the
>>>>        instructions for
>>>>> applying replay_gain in the docs here
>>>>> https://www.liquidsoap.info/doc-1.3.3/replay_gain.html
>>>>> I believe that I have added the code for replay_gain
>>>>        correctly in my
>>>>> short script below, but volume is uneven across tracks in
>>>>        my stream.
>>>> 
>>>>        Maybe try calling enable_replaygain_metadata () earlier?
>>>>        amplify() does log something when it overrides the default as
>>>>        level 3, e.g.:
>>>> 
>>>>        2019/01/24 07:39:06 [amplify_9135:3] Overriding
>>>>        amplification: 0.391742.
>>>> 
>>>> 
>>>>> 
>>>>> I am also noticing (from the log snippet below) that
>>>>        ‘amplify’ seems to
>>>>> be working, but nothing about ‘overriding’ or ‘replay_gain’.
>>>>> Could anyone confirm 1) whether 'overriding amplify' should
>>>>        be visible
>>>>> in the logs and 2) whether replay_gain code is correctly
>>>>        applied in my
>>>>> script (under the ’normalisation’ heading).
>>>>> Any help would be greatly appreciated.
>>>>> 
>>>> 
>>>>        Seems to be good. A note though, I got tired of liq / extract
>>>>        replaygain
>>>>        to re read the file so many times, so what I do is analyze
>>>>        all files and
>>>>        generate a playlist that has the replay_gain annotated,
>>>>        avoiding the
>>>>        resolver.
>>>> 
>>>>        Cheers
>>>> 
>>>>        Gilles
>>>> 
>>>> 
>>>> 
>>>>        _______________________________________________
>>>>        Savonet-users mailing list
>>>>        Savonet-users@lists.sourceforge.net
>>>>        <mailto:Savonet-users@lists.sourceforge.net>
>>>>        https://lists.sourceforge.net/lists/listinfo/savonet-users
>>>> 
>>>>    _______________________________________________
>>>>    Savonet-users mailing list
>>>>    Savonet-users@lists.sourceforge.net
>>>>    <mailto:Savonet-users@lists.sourceforge.net>
>>>>    https://lists.sourceforge.net/lists/listinfo/savonet-users
>>> 
>>>    _______________________________________________
>>>    Savonet-users mailing list
>>>    Savonet-users@lists.sourceforge.net
>>>    <mailto:Savonet-users@lists.sourceforge.net>
>>>    https://lists.sourceforge.net/lists/listinfo/savonet-users
>>> 
>>> _______________________________________________
>>> Savonet-users mailing list
>>> Savonet-users@lists.sourceforge.net
>>> <mailto:Savonet-users@lists.sourceforge.net>
>>> https://lists.sourceforge.net/lists/listinfo/savonet-users
>> 
>> 
>> _______________________________________________
>> Savonet-users mailing list
>> Savonet-users@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/savonet-users
>> 
> 
> 
> 
> _______________________________________________
> Savonet-users mailing list
> Savonet-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/savonet-users



_______________________________________________
Savonet-users mailing list
Savonet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/savonet-users

Reply via email to