savonet / liquidsoap

Liquidsoap is a statically typed scripting general-purpose language with dedicated operators and backend for all thing media, streaming, file generation, automation, HTTP backend and more.
http://liquidsoap.info
GNU General Public License v2.0
1.44k stars 131 forks source link

"Cue out" causing unexpected track ending (Ffmpeg_decoder.End_of_file) #3610

Closed RM-FM closed 10 months ago

RM-FM commented 11 months ago

Describe the bug It appears that liq_cue_out values that are set close to the actual track ending causing often an unexpected track end. This can be seen as Ffmpeg_decoder.End_of_file in the log. The same happens after very short tracks like Jingles (e.g. 4 seconds) even without any liq_cue_out set.

As a result this causes two problems:

  1. No metadata update for the next track
  2. Clicks/pops at the end of the transition

Furthermore, missing meta data updates are causing serious subsequent problems. E.g. Azuracast doesn't retrieve the feedback once a track has been played. This might affect artist/song rotation rules etc.

Please also see related AzuraCast discussion: https://github.com/AzuraCast/AzuraCast/issues/6778

To Reproduce Use cue and cross (crossfade) in the test script. Set liq_cue_out to either a value that is very close to the actual song duration or choose a value that is cleary higher that the duration. Set liq_fade_out and liq_cross_duration to the same value (e.g. 3.0). Alternatively you should be able to force the behavior also by using a very short track like a jingle (4 seconds, no cue out set)

You should see the Ffmpeg_decoder.End_of_file error/warning in the log and take note that the meta data stuck on the "faulty" track but do not update. Depending on the tracks you might hear a click/pop at the end of the transition as well.

Expected behavior

Version details

Install method Azuracast Docker

RM-FM commented 9 months ago

So nice to hear those smooth transitions finally! There wasn't a single transition that didn't fit. Even transitions with very short crossfades (0.0 to 0.2) all sounded perfectly fine.

I've tested all this with a standard Azuracast setup and crossfade method "Normal Mode" (cross.simple). I didn't even have to use a custom crossfade callback with sequence for low buffer situations.

Thanks a lot for the hard work, @toots!

RM-FM commented 9 months ago

@toots just had a missing meta data / title information update for a track. Will check and provide logs later…

RM-FM commented 9 months ago

Please find the related log data below... Relevant transition was:

  1. Burak Yeter - Tuesday (Feat. Danelle Sandoval) [Heyhey Remix].mp3
  2. Julia Michaels - Issues (Alan Walker Remix) [Explicit].mp3

This happend twice now. I took note of it already yesterday (different tracks) and today morning once again. Not sure whether this is related to the latest buffer/muxer fixes or not. But I think it's worth to have a closer look. In case it is not related to the latest fixes, I will create a new bug. However, this happend with fix-muxer-buffer-clear branch/build. I will run a long term test with Azuracast and LS 2.2.4 next. Let's see whether the meta data issue persists there...

2024/02/08 08:03:15 [lang:3] API nextsong - Response (200): annotate:title="Tuesday (Heyhey Remix)",artist="Burak Yeter, Danelle Sandoval",duration="171.00",song_id="b91ba5f353791459b64fb16243e716ee",media_id="4539",liq_cross_duration="0.00",liq_fade_in="0.10",liq_fade_out="0.00",liq_cue_in="1.00",liq_cue_out="169.50",playlist_id="10":media:Burak Yeter - Tuesday (Feat. Danelle Sandoval) [Heyhey Remix].mp3
2024/02/08 08:03:15 [request.388:4] Pushed ["annotate:title=\"Tuesday (Heyhey Remix)\",artist=\"Burak Yeter, Danelle Sandoval\",duration=\"171.00\",song_id=\"b91ba5f353791459b64fb16243e716ee\",media_id=\"4539\",liq_cross_duration=\"0.00\",liq_fade_in=\"0.10\",liq_fade_out=\"0.00\",liq_cue_in=\"1.00\",liq_cue_out=\"169.50\",playlist_id=\"10\":media:Burak Yeter - Tuesday (Feat. Danelle Sandoval) [Heyhey Remix].mp3";...].
2024/02/08 08:03:15 [request.388:4] Resolving "annotate:title=\"Tuesday (Heyhey Remix)\",artist=\"Burak Yeter, Danelle Sandoval\",duration=\"171.00\",song_id=\"b91ba5f353791459b64fb16243e716ee\",media_id=\"4539\",liq_cross_duration=\"0.00\",liq_fade_in=\"0.10\",liq_fade_out=\"0.00\",liq_cue_in=\"1.00\",liq_cue_out=\"169.50\",playlist_id=\"10\":media:Burak Yeter - Tuesday (Feat. Danelle Sandoval) [Heyhey Remix].mp3" (timeout 30s)...
2024/02/08 08:03:15 [request.388:4] Pushed ["media:Burak Yeter - Tuesday (Feat. Danelle Sandoval) [Heyhey Remix].mp3";...].
2024/02/08 08:03:15 [request.388:4] Resolving "media:Burak Yeter - Tuesday (Feat. Danelle Sandoval) [Heyhey Remix].mp3" (timeout 30s)...
2024/02/08 08:03:15 [request.388:4] Pushed ["/var/azuracast/stations/dance/media/Burak Yeter - Tuesday (Feat. Danelle Sandoval) [Heyhey Remix].mp3";...].
2024/02/08 08:03:15 [decoder.ogg:4] Unsupported MIME type for "/var/azuracast/stations/dance/media/Burak Yeter - Tuesday (Feat. Danelle Sandoval) [Heyhey Remix].mp3": audio/mpeg!
2024/02/08 08:03:15 [decoder.ffmpeg:4] Unsupported file extension for "/var/azuracast/stations/dance/media/Burak Yeter - Tuesday (Feat. Danelle Sandoval) [Heyhey Remix].mp3"!
2024/02/08 08:03:15 [decoder.mad:4] Unsupported file extension for "/var/azuracast/stations/dance/media/Burak Yeter - Tuesday (Feat. Danelle Sandoval) [Heyhey Remix].mp3"!
2024/02/08 08:03:15 [decoder.flac:4] Unsupported MIME type for "/var/azuracast/stations/dance/media/Burak Yeter - Tuesday (Feat. Danelle Sandoval) [Heyhey Remix].mp3": audio/mpeg!
2024/02/08 08:03:15 [decoder.mp4:4] Unsupported MIME type for "/var/azuracast/stations/dance/media/Burak Yeter - Tuesday (Feat. Danelle Sandoval) [Heyhey Remix].mp3": audio/mpeg!
2024/02/08 08:03:15 [decoder.aac:4] Unsupported MIME type for "/var/azuracast/stations/dance/media/Burak Yeter - Tuesday (Feat. Danelle Sandoval) [Heyhey Remix].mp3": audio/mpeg!
2024/02/08 08:03:15 [decoder.midi:4] Unsupported MIME type for "/var/azuracast/stations/dance/media/Burak Yeter - Tuesday (Feat. Danelle Sandoval) [Heyhey Remix].mp3": audio/mpeg!
2024/02/08 08:03:15 [decoder.srt:4] Unsupported MIME type for "/var/azuracast/stations/dance/media/Burak Yeter - Tuesday (Feat. Danelle Sandoval) [Heyhey Remix].mp3": audio/mpeg!
2024/02/08 08:03:15 [decoder.aiff:4] Unsupported MIME type for "/var/azuracast/stations/dance/media/Burak Yeter - Tuesday (Feat. Danelle Sandoval) [Heyhey Remix].mp3": audio/mpeg!
2024/02/08 08:03:15 [decoder.wav:4] Unsupported MIME type for "/var/azuracast/stations/dance/media/Burak Yeter - Tuesday (Feat. Danelle Sandoval) [Heyhey Remix].mp3": audio/mpeg!
2024/02/08 08:03:15 [decoder:4] Available decoders: ffmpeg (priority: 10), mad (priority: 1), image (priority: 1)
2024/02/08 08:03:15 [decoder:4] Trying decoder "ffmpeg"
2024/02/08 08:03:15 [decoder.ffmpeg:3] Requested content-type for "/var/azuracast/stations/dance/media/Burak Yeter - Tuesday (Feat. Danelle Sandoval) [Heyhey Remix].mp3": {audio=pcm(stereo)}
2024/02/08 08:03:15 [decoder.ffmpeg:3] FFmpeg recognizes "/var/azuracast/stations/dance/media/Burak Yeter - Tuesday (Feat. Danelle Sandoval) [Heyhey Remix].mp3" as audio: {codec: mp3, 44100Hz, 2 channel(s)}, video: {codec: mjpeg, 500x500, yuvj444p}
2024/02/08 08:03:15 [decoder.ffmpeg:3] Decoded content-type for "/var/azuracast/stations/dance/media/Burak Yeter - Tuesday (Feat. Danelle Sandoval) [Heyhey Remix].mp3": {audio=pcm(stereo)}
2024/02/08 08:03:15 [decoder:4] Selected decoder ffmpeg for file "/var/azuracast/stations/dance/media/Burak Yeter - Tuesday (Feat. Danelle Sandoval) [Heyhey Remix].mp3" with expected kind {audio=pcm(stereo)} and detected content {audio=pcm(stereo)}
2024/02/08 08:03:15 [decoder.video.metadata:4] Unsupported MIME type for "/var/azuracast/stations/dance/media/Burak Yeter - Tuesday (Feat. Danelle Sandoval) [Heyhey Remix].mp3": audio/mpeg!
2024/02/08 08:03:15 [decoder.ogg.metadata:4] Unsupported MIME type for "/var/azuracast/stations/dance/media/Burak Yeter - Tuesday (Feat. Danelle Sandoval) [Heyhey Remix].mp3": audio/mpeg!
2024/02/08 08:03:15 [decoder.image.metadata:4] Unsupported MIME type for "/var/azuracast/stations/dance/media/Burak Yeter - Tuesday (Feat. Danelle Sandoval) [Heyhey Remix].mp3": audio/mpeg!
2024/02/08 08:03:15 [decoder.id3:4] Unsupported file extension for "/var/azuracast/stations/dance/media/Burak Yeter - Tuesday (Feat. Danelle Sandoval) [Heyhey Remix].mp3"!
2024/02/08 08:03:15 [decoder.id3:4] Unsupported file extension for "/var/azuracast/stations/dance/media/Burak Yeter - Tuesday (Feat. Danelle Sandoval) [Heyhey Remix].mp3"!
2024/02/08 08:03:15 [decoder.id3:4] Unsupported file extension for "/var/azuracast/stations/dance/media/Burak Yeter - Tuesday (Feat. Danelle Sandoval) [Heyhey Remix].mp3"!
2024/02/08 08:03:15 [decoder.flac.metadata:4] Unsupported MIME type for "/var/azuracast/stations/dance/media/Burak Yeter - Tuesday (Feat. Danelle Sandoval) [Heyhey Remix].mp3": audio/mpeg!
2024/02/08 08:03:15 [metadata.mp4:4] Unsupported MIME type for "/var/azuracast/stations/dance/media/Burak Yeter - Tuesday (Feat. Danelle Sandoval) [Heyhey Remix].mp3": audio/mpeg!
2024/02/08 08:03:15 [decoder.ffmpeg:4] Unsupported file extension for "/var/azuracast/stations/dance/media/Burak Yeter - Tuesday (Feat. Danelle Sandoval) [Heyhey Remix].mp3"!
2024/02/08 08:03:15 [metadata.flac:4] Unsupported MIME type for "/var/azuracast/stations/dance/media/Burak Yeter - Tuesday (Feat. Danelle Sandoval) [Heyhey Remix].mp3": audio/mpeg!
2024/02/08 08:03:15 [decoder.ogg:4] Unsupported MIME type for "/var/azuracast/stations/dance/media/Burak Yeter - Tuesday (Feat. Danelle Sandoval) [Heyhey Remix].mp3": audio/mpeg!
2024/02/08 08:03:15 [decoder.taglib:4] Unsupported file extension for "/var/azuracast/stations/dance/media/Burak Yeter - Tuesday (Feat. Danelle Sandoval) [Heyhey Remix].mp3"!
2024/02/08 08:03:15 [next_song:4] Queued 1 requests
2024/02/08 08:03:15 [lang:3] API feedback - Response (200): true
2024/02/08 08:03:16 [buffer.969:4] End of track.
2024/02/08 08:03:16 [buffer.969:4] Buffer emptied, buffering needed.
2024/02/08 08:03:16 [buffer.970:4] End of track.
2024/02/08 08:03:16 [buffer.970:4] Buffer emptied, buffering needed.
2024/02/08 08:03:16 [source:4] Source source.837 gets down.
2024/02/08 08:03:16 [source:4] Source audio.add.277 gets down.
2024/02/08 08:03:16 [source:4] Source fade_in.277 gets down.
2024/02/08 08:03:16 [source:4] Source fade_scale.277 gets down.
2024/02/08 08:03:16 [source:4] Source track_amplify.555 gets down.
2024/02/08 08:03:16 [source:4] Source sequence.600 gets down.
2024/02/08 08:03:16 [source:4] Source blank.278 gets down.
2024/02/08 08:03:16 [source:4] Source on_metadata.554 gets down.
2024/02/08 08:03:16 [source:4] Source on_track.556 gets down.
2024/02/08 08:03:16 [source:4] Source cross_after.370 gets down.
2024/02/08 08:03:16 [source:4] Source buffer.970 gets down.
2024/02/08 08:03:16 [source:4] Source fade_out.277 gets down.
2024/02/08 08:03:16 [source:4] Source track_amplify.554 gets down.
2024/02/08 08:03:16 [source:4] Source on_frame.553 gets down.
2024/02/08 08:03:16 [source:4] Source on_metadata.553 gets down.
2024/02/08 08:03:16 [source:4] Source on_track.555 gets down.
2024/02/08 08:03:16 [source:4] Source cross_before.370 gets down.
2024/02/08 08:03:16 [source:4] Source buffer.969 gets down.
2024/02/08 08:03:16 [cross:4] Buffering end of track...
2024/02/08 08:03:16 [cross:4] More buffering will be needed.
2024/02/08 08:03:34 [decoder:2] Decoding "/var/azuracast/stations/dance/media/radiomonster.fm_-_app_werbung_-_dance.mp3" ended: Ffmpeg_decoder.End_of_file.
2024/02/08 08:03:34 [decoder:4] Raised at Ffmpeg_decoder.mk_decoder.(fun).f in file "src/core/decoder/ffmpeg_decoder.ml", line 890, characters 12-29
2024/02/08 08:03:34 [decoder:4] Called from Decoder.mk_decoder.fill in file "src/core/decoder/decoder.ml", line 505, characters 10-31
2024/02/08 08:03:34 [decoder:4] 
2024/02/08 08:03:35 [next_song:4] Finished with "/var/azuracast/stations/dance/media/radiomonster.fm_-_app_werbung_-_dance.mp3".
2024/02/08 08:03:35 [request.387:4] Request finished.
2024/02/08 08:03:35 [next_song:4] Remaining 0 requests
2024/02/08 08:03:35 [request.388:4] Cueing in to position: 1.00
2024/02/08 08:03:35 [next_song:3] Prepared "/var/azuracast/stations/dance/media/Burak Yeter - Tuesday (Feat. Danelle Sandoval) [Heyhey Remix].mp3" (RID 388).
2024/02/08 08:03:35 [cross:4] Setting crossfade duration to 0.15s
2024/02/08 08:03:35 [request.388:4] Currently on air.
2024/02/08 08:03:35 [cross:4] Overriding crossfade duration from metadata liq_cross_duration
2024/02/08 08:03:35 [cross:4] Setting crossfade duration to 0.00s
2024/02/08 08:03:35 [lang:3] API nextsong - Sending POST request to 'http://127.0.0.1:6010/api/internal/2/liquidsoap/nextsong' with body: 
2024/02/08 08:03:35 [cross:3] Analysis: -37.394034dB / -12.597651dB (1.64s / 1.68s)
2024/02/08 08:03:35 [cross:3] Computing crossfade duration over overlapping 1.64s buffered data at start and end.
2024/02/08 08:03:35 [source:4] Source sequence.602 gets up with content type: {audio=pcm(stereo)}.
2024/02/08 08:03:35 [source:4] Source source.840 gets up with content type: {audio=pcm(stereo)}.
2024/02/08 08:03:35 [source.840:3] Content type is {audio=pcm(stereo)}.
2024/02/08 08:03:35 [source:4] Source audio.add.278 gets up with content type: {audio=pcm(stereo)}.
2024/02/08 08:03:35 [audio.add.278:3] Content type is {audio=pcm(stereo)}.
2024/02/08 08:03:35 [source:4] Source fade_in.278 gets up with content type: {audio=pcm(stereo)}.
2024/02/08 08:03:35 [fade_in.278:3] Content type is {audio=pcm(stereo)}.
2024/02/08 08:03:35 [source:4] Source fade_scale.278 gets up with content type: {audio=pcm(stereo)}.
2024/02/08 08:03:35 [fade_scale.278:3] Content type is {audio=pcm(stereo)}.
2024/02/08 08:03:35 [source:4] Source track_amplify.557 gets up with content type: {audio=pcm(stereo)}.
2024/02/08 08:03:35 [track_amplify.557:3] Content type is {audio=pcm(stereo)}.
2024/02/08 08:03:35 [source:4] Source sequence.601 gets up with content type: {audio=pcm(stereo)}.
2024/02/08 08:03:35 [source:4] Source blank.279 gets up with content type: {audio=pcm(stereo)}.
2024/02/08 08:03:35 [blank.279:3] Content type is {audio=pcm(stereo)}.
2024/02/08 08:03:35 [source:4] Source on_metadata.556 gets up with content type: {audio=pcm(stereo)}.
2024/02/08 08:03:35 [on_metadata.556:3] Content type is {audio=pcm(stereo)}.
2024/02/08 08:03:35 [source:4] Source on_track.558 gets up with content type: {audio=pcm(stereo)}.
2024/02/08 08:03:35 [on_track.558:3] Content type is {audio=pcm(stereo)}.
2024/02/08 08:03:35 [source:4] Source cross_after.371 gets up with content type: {audio=pcm(stereo)}.
2024/02/08 08:03:35 [cross_after.371:3] Content type is {audio=pcm(stereo)}.
2024/02/08 08:03:35 [source:4] Source buffer.973 gets up with content type: {audio=pcm(stereo)}.
2024/02/08 08:03:35 [buffer.973:3] Content type is {audio=pcm(stereo)}.
2024/02/08 08:03:35 [source:4] Source fade_out.278 gets up with content type: {audio=pcm(stereo)}.
2024/02/08 08:03:35 [fade_out.278:3] Content type is {audio=pcm(stereo)}.
2024/02/08 08:03:35 [source:4] Source track_amplify.556 gets up with content type: {audio=pcm(stereo)}.
2024/02/08 08:03:35 [track_amplify.556:3] Content type is {audio=pcm(stereo)}.
2024/02/08 08:03:35 [source:4] Source on_frame.555 gets up with content type: {audio=pcm(stereo)}.
2024/02/08 08:03:35 [on_frame.555:3] Content type is {audio=pcm(stereo)}.
2024/02/08 08:03:35 [source:4] Source on_metadata.555 gets up with content type: {audio=pcm(stereo)}.
2024/02/08 08:03:35 [on_metadata.555:3] Content type is {audio=pcm(stereo)}.
2024/02/08 08:03:35 [source:4] Source on_track.557 gets up with content type: {audio=pcm(stereo)}.
2024/02/08 08:03:35 [on_track.557:3] Content type is {audio=pcm(stereo)}.
2024/02/08 08:03:35 [source:4] Source cross_before.371 gets up with content type: {audio=pcm(stereo)}.
2024/02/08 08:03:35 [cross_before.371:3] Content type is {audio=pcm(stereo)}.
2024/02/08 08:03:35 [source:4] Source buffer.971 gets up with content type: {audio=pcm(stereo)}.
2024/02/08 08:03:35 [buffer.971:3] Content type is {audio=pcm(stereo)}.
2024/02/08 08:03:35 [source:4] Source cross_after_tail.227 gets up with content type: {audio=pcm(stereo)}.
2024/02/08 08:03:35 [cross_after_tail.227:3] Content type is {audio=pcm(stereo)}.
2024/02/08 08:03:35 [cross_before.371:4] New fade out duration: 0.s.
2024/02/08 08:03:35 [cross_before.371:4] Fading out with type: sin, curve: default, delay: 0.s, duration: 0.s and 1.60024943311s remaining.
2024/02/08 08:03:35 [cross_after.371:4] Fading in with type: sin, curve: default, delay: 0.s and duration: 0.1s.
2024/02/08 08:03:35 [lang:3] API feedback - Sending POST request to 'http://127.0.0.1:6010/api/internal/2/liquidsoap/feedback' with body: {
2024/02/08 08:03:35 [lang:3]   "song_id": "b91ba5f353791459b64fb16243e716ee",
2024/02/08 08:03:35 [lang:3]   "playlist_id": "10",
2024/02/08 08:03:35 [lang:3]   "media_id": "4539"
2024/02/08 08:03:35 [lang:3] }
2024/02/08 08:03:35 [lang:3] API nextsong - Response (200): annotate:title="Issues (Alan Walker Remix)",artist="Julia Michaels",duration="180.00",song_id="aa000c26d4383ad6e076e7bc75583ccd",media_id="4180",liq_cross_duration="1.10",liq_fade_in="0.10",liq_fade_out="1.10",liq_cue_in="0.00",playlist_id="10":media:Julia Michaels - Issues (Alan Walker Remix) [Explicit].mp3
2024/02/08 08:03:35 [request.389:4] Pushed ["annotate:title=\"Issues (Alan Walker Remix)\",artist=\"Julia Michaels\",duration=\"180.00\",song_id=\"aa000c26d4383ad6e076e7bc75583ccd\",media_id=\"4180\",liq_cross_duration=\"1.10\",liq_fade_in=\"0.10\",liq_fade_out=\"1.10\",liq_cue_in=\"0.00\",playlist_id=\"10\":media:Julia Michaels - Issues (Alan Walker Remix) [Explicit].mp3";...].
2024/02/08 08:03:35 [request.389:4] Resolving "annotate:title=\"Issues (Alan Walker Remix)\",artist=\"Julia Michaels\",duration=\"180.00\",song_id=\"aa000c26d4383ad6e076e7bc75583ccd\",media_id=\"4180\",liq_cross_duration=\"1.10\",liq_fade_in=\"0.10\",liq_fade_out=\"1.10\",liq_cue_in=\"0.00\",playlist_id=\"10\":media:Julia Michaels - Issues (Alan Walker Remix) [Explicit].mp3" (timeout 30s)...
2024/02/08 08:03:35 [request.389:4] Pushed ["media:Julia Michaels - Issues (Alan Walker Remix) [Explicit].mp3";...].
2024/02/08 08:03:35 [request.389:4] Resolving "media:Julia Michaels - Issues (Alan Walker Remix) [Explicit].mp3" (timeout 30s)...
2024/02/08 08:03:35 [request.389:4] Pushed ["/var/azuracast/stations/dance/media/Julia Michaels - Issues (Alan Walker Remix) [Explicit].mp3";...].
2024/02/08 08:03:35 [decoder.ogg:4] Unsupported MIME type for "/var/azuracast/stations/dance/media/Julia Michaels - Issues (Alan Walker Remix) [Explicit].mp3": audio/mpeg!
2024/02/08 08:03:35 [decoder.ffmpeg:4] Unsupported file extension for "/var/azuracast/stations/dance/media/Julia Michaels - Issues (Alan Walker Remix) [Explicit].mp3"!
2024/02/08 08:03:35 [decoder.mad:4] Unsupported file extension for "/var/azuracast/stations/dance/media/Julia Michaels - Issues (Alan Walker Remix) [Explicit].mp3"!
2024/02/08 08:03:35 [decoder.flac:4] Unsupported MIME type for "/var/azuracast/stations/dance/media/Julia Michaels - Issues (Alan Walker Remix) [Explicit].mp3": audio/mpeg!
2024/02/08 08:03:35 [decoder.mp4:4] Unsupported MIME type for "/var/azuracast/stations/dance/media/Julia Michaels - Issues (Alan Walker Remix) [Explicit].mp3": audio/mpeg!
2024/02/08 08:03:35 [decoder.aac:4] Unsupported MIME type for "/var/azuracast/stations/dance/media/Julia Michaels - Issues (Alan Walker Remix) [Explicit].mp3": audio/mpeg!
2024/02/08 08:03:35 [decoder.midi:4] Unsupported MIME type for "/var/azuracast/stations/dance/media/Julia Michaels - Issues (Alan Walker Remix) [Explicit].mp3": audio/mpeg!
2024/02/08 08:03:35 [decoder.srt:4] Unsupported MIME type for "/var/azuracast/stations/dance/media/Julia Michaels - Issues (Alan Walker Remix) [Explicit].mp3": audio/mpeg!
2024/02/08 08:03:35 [decoder.aiff:4] Unsupported MIME type for "/var/azuracast/stations/dance/media/Julia Michaels - Issues (Alan Walker Remix) [Explicit].mp3": audio/mpeg!
2024/02/08 08:03:35 [decoder.wav:4] Unsupported MIME type for "/var/azuracast/stations/dance/media/Julia Michaels - Issues (Alan Walker Remix) [Explicit].mp3": audio/mpeg!
2024/02/08 08:03:35 [decoder:4] Available decoders: ffmpeg (priority: 10), mad (priority: 1), image (priority: 1)
2024/02/08 08:03:35 [decoder:4] Trying decoder "ffmpeg"
2024/02/08 08:03:35 [lang:3] API feedback - Response (200): true
2024/02/08 08:03:35 [decoder.ffmpeg:3] Requested content-type for "/var/azuracast/stations/dance/media/Julia Michaels - Issues (Alan Walker Remix) [Explicit].mp3": {audio=pcm(stereo)}
2024/02/08 08:03:35 [decoder.ffmpeg:3] FFmpeg recognizes "/var/azuracast/stations/dance/media/Julia Michaels - Issues (Alan Walker Remix) [Explicit].mp3" as audio: {codec: mp3, 44100Hz, 2 channel(s)}, video: {codec: mjpeg, 500x500, yuvj444p}
2024/02/08 08:03:35 [decoder.ffmpeg:3] Decoded content-type for "/var/azuracast/stations/dance/media/Julia Michaels - Issues (Alan Walker Remix) [Explicit].mp3": {audio=pcm(stereo)}
2024/02/08 08:03:35 [decoder:4] Selected decoder ffmpeg for file "/var/azuracast/stations/dance/media/Julia Michaels - Issues (Alan Walker Remix) [Explicit].mp3" with expected kind {audio=pcm(stereo)} and detected content {audio=pcm(stereo)}
2024/02/08 08:03:35 [decoder.video.metadata:4] Unsupported MIME type for "/var/azuracast/stations/dance/media/Julia Michaels - Issues (Alan Walker Remix) [Explicit].mp3": audio/mpeg!
2024/02/08 08:03:35 [decoder.ogg.metadata:4] Unsupported MIME type for "/var/azuracast/stations/dance/media/Julia Michaels - Issues (Alan Walker Remix) [Explicit].mp3": audio/mpeg!
2024/02/08 08:03:35 [decoder.image.metadata:4] Unsupported MIME type for "/var/azuracast/stations/dance/media/Julia Michaels - Issues (Alan Walker Remix) [Explicit].mp3": audio/mpeg!
2024/02/08 08:03:35 [decoder.id3:4] Unsupported file extension for "/var/azuracast/stations/dance/media/Julia Michaels - Issues (Alan Walker Remix) [Explicit].mp3"!
2024/02/08 08:03:35 [decoder.id3:4] Unsupported file extension for "/var/azuracast/stations/dance/media/Julia Michaels - Issues (Alan Walker Remix) [Explicit].mp3"!
2024/02/08 08:03:35 [decoder.id3:4] Unsupported file extension for "/var/azuracast/stations/dance/media/Julia Michaels - Issues (Alan Walker Remix) [Explicit].mp3"!
2024/02/08 08:03:35 [decoder.flac.metadata:4] Unsupported MIME type for "/var/azuracast/stations/dance/media/Julia Michaels - Issues (Alan Walker Remix) [Explicit].mp3": audio/mpeg!
2024/02/08 08:03:35 [metadata.mp4:4] Unsupported MIME type for "/var/azuracast/stations/dance/media/Julia Michaels - Issues (Alan Walker Remix) [Explicit].mp3": audio/mpeg!
2024/02/08 08:03:35 [decoder.ffmpeg:4] Unsupported file extension for "/var/azuracast/stations/dance/media/Julia Michaels - Issues (Alan Walker Remix) [Explicit].mp3"!
2024/02/08 08:03:35 [metadata.flac:4] Unsupported MIME type for "/var/azuracast/stations/dance/media/Julia Michaels - Issues (Alan Walker Remix) [Explicit].mp3": audio/mpeg!
2024/02/08 08:03:35 [decoder.ogg:4] Unsupported MIME type for "/var/azuracast/stations/dance/media/Julia Michaels - Issues (Alan Walker Remix) [Explicit].mp3": audio/mpeg!
2024/02/08 08:03:35 [decoder.taglib:4] Unsupported file extension for "/var/azuracast/stations/dance/media/Julia Michaels - Issues (Alan Walker Remix) [Explicit].mp3"!
2024/02/08 08:03:35 [next_song:4] Queued 1 requests
2024/02/08 08:03:37 [buffer.971:4] End of track.
2024/02/08 08:03:37 [buffer.971:4] Buffer emptied, buffering needed.
2024/02/08 08:03:37 [buffer.973:4] End of track.
2024/02/08 08:03:37 [buffer.973:4] Buffer emptied, buffering needed.
2024/02/08 08:03:37 [cross_after_tail.227:4] End of track.
2024/02/08 08:03:37 [cross_after_tail.227:4] Buffer emptied, buffering needed.
2024/02/08 08:03:37 [source:4] Source sequence.602 gets down.
2024/02/08 08:03:37 [source:4] Source source.840 gets down.
2024/02/08 08:03:37 [source:4] Source audio.add.278 gets down.
2024/02/08 08:03:37 [source:4] Source fade_in.278 gets down.
2024/02/08 08:03:37 [source:4] Source fade_scale.278 gets down.
2024/02/08 08:03:37 [source:4] Source track_amplify.557 gets down.
2024/02/08 08:03:37 [source:4] Source sequence.601 gets down.
2024/02/08 08:03:37 [source:4] Source blank.279 gets down.
2024/02/08 08:03:37 [source:4] Source on_metadata.556 gets down.
2024/02/08 08:03:37 [source:4] Source on_track.558 gets down.
2024/02/08 08:03:37 [source:4] Source cross_after.371 gets down.
2024/02/08 08:03:37 [source:4] Source buffer.973 gets down.
2024/02/08 08:03:37 [source:4] Source fade_out.278 gets down.
2024/02/08 08:03:37 [source:4] Source track_amplify.556 gets down.
2024/02/08 08:03:37 [source:4] Source on_frame.555 gets down.
2024/02/08 08:03:37 [source:4] Source on_metadata.555 gets down.
2024/02/08 08:03:37 [source:4] Source on_track.557 gets down.
2024/02/08 08:03:37 [source:4] Source cross_before.371 gets down.
2024/02/08 08:03:37 [source:4] Source buffer.971 gets down.
2024/02/08 08:03:37 [source:4] Source cross_after_tail.227 gets down.
2024/02/08 08:03:37 [cross:4] Buffering end of track...
2024/02/08 08:03:37 [cross:4] More buffering will be needed.
2024/02/08 08:06:23 [request.388:4] Cueing out at position: 169.50
2024/02/08 08:06:23 [next_song:4] Finished with "/var/azuracast/stations/dance/media/Burak Yeter - Tuesday (Feat. Danelle Sandoval) [Heyhey Remix].mp3".
2024/02/08 08:06:23 [request.388:4] Request finished.
2024/02/08 08:06:23 [next_song:4] Remaining 0 requests
2024/02/08 08:06:23 [request.389:4] Cueing in to position: 0.00
2024/02/08 08:06:23 [next_song:3] Prepared "/var/azuracast/stations/dance/media/Julia Michaels - Issues (Alan Walker Remix) [Explicit].mp3" (RID 389).
2024/02/08 08:06:23 [cross:4] Setting crossfade duration to 0.15s
2024/02/08 08:06:23 [request.389:4] Currently on air.
[mp3float @ 0x7f6ae6137100] Could not update timestamps for skipped samples.
2024/02/08 08:06:23 [cross:4] Overriding crossfade duration from metadata liq_cross_duration
2024/02/08 08:06:23 [cross:4] Setting crossfade duration to 1.10s
2024/02/08 08:06:23 [cross:3] Analysis: -13.566586dB / -54.331524dB (0.00s / 0.02s)
2024/02/08 08:06:23 [cross:3] Not enough data for crossing.
2024/02/08 08:06:23 [lang:3] API nextsong - Sending POST request to 'http://127.0.0.1:6010/api/internal/2/liquidsoap/nextsong' with body: 
2024/02/08 08:06:23 [source:4] Source sequence.604 gets up with content type: {audio=pcm(stereo)}.
2024/02/08 08:06:23 [source:4] Source sequence.603 gets up with content type: {audio=pcm(stereo)}.
2024/02/08 08:06:23 [source:4] Source cross_before.372 gets up with content type: {audio=pcm(stereo)}.
2024/02/08 08:06:23 [cross_before.372:3] Content type is {audio=pcm(stereo)}.
2024/02/08 08:06:23 [source:4] Source buffer.974 gets up with content type: {audio=pcm(stereo)}.
2024/02/08 08:06:23 [buffer.974:3] Content type is {audio=pcm(stereo)}.
2024/02/08 08:06:23 [source:4] Source cross_after.372 gets up with content type: {audio=pcm(stereo)}.
2024/02/08 08:06:23 [cross_after.372:3] Content type is {audio=pcm(stereo)}.
2024/02/08 08:06:23 [source:4] Source buffer.976 gets up with content type: {audio=pcm(stereo)}.
2024/02/08 08:06:23 [buffer.976:3] Content type is {audio=pcm(stereo)}.
2024/02/08 08:06:23 [source:4] Source cross_after_tail.228 gets up with content type: {audio=pcm(stereo)}.
2024/02/08 08:06:23 [cross_after_tail.228:3] Content type is {audio=pcm(stereo)}.
2024/02/08 08:06:23 [cross_after_tail.228:4] Buffer emptied, buffering needed.
2024/02/08 08:06:23 [metadata_map.3:3] Inserting missing metadata.
2024/02/08 08:06:23 [lang:3] API nextsong - Response (200): annotate:title="Dropin 01",artist="RadioMonster.FM",duration="16.00",song_id="827aa2aeadb831c28eb78ad6ead2cf57",media_id="11930",liq_cross_duration="0.00",liq_fade_in="0.10",liq_fade_out="0.00",liq_cue_in="0.00",liq_cue_out="6.40",playlist_id="21",jingle_mode="true":media:radiomonster.fm_-_dropin_01.mp3
2024/02/08 08:06:23 [request.390:4] Pushed ["annotate:title=\"Dropin 01\",artist=\"RadioMonster.FM\",duration=\"16.00\",song_id=\"827aa2aeadb831c28eb78ad6ead2cf57\",media_id=\"11930\",liq_cross_duration=\"0.00\",liq_fade_in=\"0.10\",liq_fade_out=\"0.00\",liq_cue_in=\"0.00\",liq_cue_out=\"6.40\",playlist_id=\"21\",jingle_mode=\"true\":media:radiomonster.fm_-_dropin_01.mp3";...].
2024/02/08 08:06:23 [request.390:4] Resolving "annotate:title=\"Dropin 01\",artist=\"RadioMonster.FM\",duration=\"16.00\",song_id=\"827aa2aeadb831c28eb78ad6ead2cf57\",media_id=\"11930\",liq_cross_duration=\"0.00\",liq_fade_in=\"0.10\",liq_fade_out=\"0.00\",liq_cue_in=\"0.00\",liq_cue_out=\"6.40\",playlist_id=\"21\",jingle_mode=\"true\":media:radiomonster.fm_-_dropin_01.mp3" (timeout 30s)...
2024/02/08 08:06:23 [request.390:4] Pushed ["media:radiomonster.fm_-_dropin_01.mp3";...].
2024/02/08 08:06:23 [request.390:4] Resolving "media:radiomonster.fm_-_dropin_01.mp3" (timeout 30s)...
2024/02/08 08:06:23 [request.390:4] Pushed ["/var/azuracast/stations/dance/media/radiomonster.fm_-_dropin_01.mp3";...].
2024/02/08 08:06:23 [decoder.ogg:4] Unsupported MIME type for "/var/azuracast/stations/dance/media/radiomonster.fm_-_dropin_01.mp3": audio/mpeg!
2024/02/08 08:06:23 [decoder.ffmpeg:4] Unsupported file extension for "/var/azuracast/stations/dance/media/radiomonster.fm_-_dropin_01.mp3"!
2024/02/08 08:06:23 [decoder.mad:4] Unsupported file extension for "/var/azuracast/stations/dance/media/radiomonster.fm_-_dropin_01.mp3"!
2024/02/08 08:06:23 [decoder.flac:4] Unsupported MIME type for "/var/azuracast/stations/dance/media/radiomonster.fm_-_dropin_01.mp3": audio/mpeg!
2024/02/08 08:06:23 [decoder.mp4:4] Unsupported MIME type for "/var/azuracast/stations/dance/media/radiomonster.fm_-_dropin_01.mp3": audio/mpeg!
2024/02/08 08:06:23 [decoder.aac:4] Unsupported MIME type for "/var/azuracast/stations/dance/media/radiomonster.fm_-_dropin_01.mp3": audio/mpeg!
2024/02/08 08:06:23 [decoder.midi:4] Unsupported MIME type for "/var/azuracast/stations/dance/media/radiomonster.fm_-_dropin_01.mp3": audio/mpeg!
2024/02/08 08:06:23 [decoder.srt:4] Unsupported MIME type for "/var/azuracast/stations/dance/media/radiomonster.fm_-_dropin_01.mp3": audio/mpeg!
2024/02/08 08:06:23 [decoder.aiff:4] Unsupported MIME type for "/var/azuracast/stations/dance/media/radiomonster.fm_-_dropin_01.mp3": audio/mpeg!
2024/02/08 08:06:23 [decoder.wav:4] Unsupported MIME type for "/var/azuracast/stations/dance/media/radiomonster.fm_-_dropin_01.mp3": audio/mpeg!
2024/02/08 08:06:23 [decoder:4] Available decoders: ffmpeg (priority: 10), mad (priority: 1), image (priority: 1)
2024/02/08 08:06:23 [decoder:4] Trying decoder "ffmpeg"
2024/02/08 08:06:23 [decoder.ffmpeg:3] Requested content-type for "/var/azuracast/stations/dance/media/radiomonster.fm_-_dropin_01.mp3": {audio=pcm(stereo)}
2024/02/08 08:06:23 [decoder.ffmpeg:3] FFmpeg recognizes "/var/azuracast/stations/dance/media/radiomonster.fm_-_dropin_01.mp3" as audio: {codec: mp3, 44100Hz, 2 channel(s)}
2024/02/08 08:06:23 [decoder.ffmpeg:3] Decoded content-type for "/var/azuracast/stations/dance/media/radiomonster.fm_-_dropin_01.mp3": {audio=pcm(stereo)}
2024/02/08 08:06:23 [decoder:4] Selected decoder ffmpeg for file "/var/azuracast/stations/dance/media/radiomonster.fm_-_dropin_01.mp3" with expected kind {audio=pcm(stereo)} and detected content {audio=pcm(stereo)}
2024/02/08 08:06:23 [decoder.video.metadata:4] Unsupported MIME type for "/var/azuracast/stations/dance/media/radiomonster.fm_-_dropin_01.mp3": audio/mpeg!
2024/02/08 08:06:23 [decoder.ogg.metadata:4] Unsupported MIME type for "/var/azuracast/stations/dance/media/radiomonster.fm_-_dropin_01.mp3": audio/mpeg!
2024/02/08 08:06:23 [decoder.image.metadata:4] Unsupported MIME type for "/var/azuracast/stations/dance/media/radiomonster.fm_-_dropin_01.mp3": audio/mpeg!
2024/02/08 08:06:23 [decoder.id3:4] Unsupported file extension for "/var/azuracast/stations/dance/media/radiomonster.fm_-_dropin_01.mp3"!
2024/02/08 08:06:23 [decoder.id3:4] Unsupported file extension for "/var/azuracast/stations/dance/media/radiomonster.fm_-_dropin_01.mp3"!
2024/02/08 08:06:23 [decoder.id3:4] Unsupported file extension for "/var/azuracast/stations/dance/media/radiomonster.fm_-_dropin_01.mp3"!
2024/02/08 08:06:23 [decoder.flac.metadata:4] Unsupported MIME type for "/var/azuracast/stations/dance/media/radiomonster.fm_-_dropin_01.mp3": audio/mpeg!
2024/02/08 08:06:23 [metadata.mp4:4] Unsupported MIME type for "/var/azuracast/stations/dance/media/radiomonster.fm_-_dropin_01.mp3": audio/mpeg!
2024/02/08 08:06:23 [decoder.ffmpeg:4] Unsupported file extension for "/var/azuracast/stations/dance/media/radiomonster.fm_-_dropin_01.mp3"!
2024/02/08 08:06:23 [metadata.flac:4] Unsupported MIME type for "/var/azuracast/stations/dance/media/radiomonster.fm_-_dropin_01.mp3": audio/mpeg!
2024/02/08 08:06:23 [decoder.ogg:4] Unsupported MIME type for "/var/azuracast/stations/dance/media/radiomonster.fm_-_dropin_01.mp3": audio/mpeg!
2024/02/08 08:06:23 [decoder.taglib:4] Unsupported file extension for "/var/azuracast/stations/dance/media/radiomonster.fm_-_dropin_01.mp3"!
2024/02/08 08:06:23 [next_song:4] Queued 1 requests
2024/02/08 08:06:23 [source:4] Source sequence.604 gets down.
2024/02/08 08:06:23 [source:4] Source sequence.603 gets down.
2024/02/08 08:06:23 [source:4] Source cross_before.372 gets down.
2024/02/08 08:06:23 [source:4] Source buffer.974 gets down.
2024/02/08 08:06:23 [source:4] Source cross_after.372 gets down.
2024/02/08 08:06:23 [source:4] Source buffer.976 gets down.
2024/02/08 08:06:23 [source:4] Source cross_after_tail.228 gets down.
2024/02/08 08:06:23 [cross:4] Buffering end of track...
2024/02/08 08:06:24 [cross:4] More buffering will be needed.
2024/02/08 08:09:22 [decoder:2] Decoding "/var/azuracast/stations/dance/media/Julia Michaels - Issues (Alan Walker Remix) [Explicit].mp3" ended: Ffmpeg_decoder.End_of_file.
2024/02/08 08:09:22 [decoder:4] Raised at Ffmpeg_decoder.mk_decoder.(fun).f in file "src/core/decoder/ffmpeg_decoder.ml", line 890, characters 12-29
2024/02/08 08:09:22 [decoder:4] Called from Decoder.mk_decoder.fill in file "src/core/decoder/decoder.ml", line 505, characters 10-31
2024/02/08 08:09:22 [decoder:4] 
2024/02/08 08:09:23 [next_song:4] Finished with "/var/azuracast/stations/dance/media/Julia Michaels - Issues (Alan Walker Remix) [Explicit].mp3".
2024/02/08 08:09:23 [request.389:4] Request finished.
2024/02/08 08:09:23 [next_song:4] Remaining 0 requests
2024/02/08 08:09:23 [request.390:4] Cueing in to position: 0.00
2024/02/08 08:09:23 [next_song:3] Prepared "/var/azuracast/stations/dance/media/radiomonster.fm_-_dropin_01.mp3" (RID 390).
2024/02/08 08:09:23 [cross:4] Setting crossfade duration to 0.15s
2024/02/08 08:09:23 [request.390:4] Currently on air.
[mp3float @ 0x7f6ae61aa500] Could not update timestamps for skipped samples.
2024/02/08 08:09:23 [cross:4] Overriding crossfade duration from metadata liq_cross_duration
2024/02/08 08:09:23 [cross:4] Setting crossfade duration to 0.00s
2024/02/08 08:09:23 [lang:3] API nextsong - Sending POST request to 'http://127.0.0.1:6010/api/internal/2/liquidsoap/nextsong' with body: 
2024/02/08 08:09:23 [cross:3] Analysis: -21.399887dB / -9.296097dB (1.07s / 1.09s)
2024/02/08 08:09:23 [cross:3] Computing crossfade duration over overlapping 1.07s buffered data at start and end.
2024/02/08 08:09:23 [source:4] Source sequence.606 gets up with content type: {audio=pcm(stereo)}.
2024/02/08 08:09:23 [source:4] Source source.843 gets up with content type: {audio=pcm(stereo)}.
2024/02/08 08:09:23 [source.843:3] Content type is {audio=pcm(stereo)}.
2024/02/08 08:09:23 [source:4] Source audio.add.279 gets up with content type: {audio=pcm(stereo)}.
2024/02/08 08:09:23 [audio.add.279:3] Content type is {audio=pcm(stereo)}.
2024/02/08 08:09:23 [source:4] Source fade_in.279 gets up with content type: {audio=pcm(stereo)}.
2024/02/08 08:09:23 [fade_in.279:3] Content type is {audio=pcm(stereo)}.
2024/02/08 08:09:23 [source:4] Source fade_scale.279 gets up with content type: {audio=pcm(stereo)}.
2024/02/08 08:09:23 [fade_scale.279:3] Content type is {audio=pcm(stereo)}.
2024/02/08 08:09:23 [source:4] Source track_amplify.559 gets up with content type: {audio=pcm(stereo)}.
2024/02/08 08:09:23 [track_amplify.559:3] Content type is {audio=pcm(stereo)}.
2024/02/08 08:09:23 [source:4] Source sequence.605 gets up with content type: {audio=pcm(stereo)}.
2024/02/08 08:09:23 [source:4] Source blank.280 gets up with content type: {audio=pcm(stereo)}.
2024/02/08 08:09:23 [blank.280:3] Content type is {audio=pcm(stereo)}.
2024/02/08 08:09:23 [source:4] Source on_metadata.558 gets up with content type: {audio=pcm(stereo)}.
2024/02/08 08:09:23 [on_metadata.558:3] Content type is {audio=pcm(stereo)}.
2024/02/08 08:09:23 [source:4] Source on_track.560 gets up with content type: {audio=pcm(stereo)}.
2024/02/08 08:09:23 [on_track.560:3] Content type is {audio=pcm(stereo)}.
2024/02/08 08:09:23 [source:4] Source cross_after.373 gets up with content type: {audio=pcm(stereo)}.
2024/02/08 08:09:23 [cross_after.373:3] Content type is {audio=pcm(stereo)}.
2024/02/08 08:09:23 [source:4] Source buffer.979 gets up with content type: {audio=pcm(stereo)}.
2024/02/08 08:09:23 [buffer.979:3] Content type is {audio=pcm(stereo)}.
2024/02/08 08:09:23 [source:4] Source fade_out.279 gets up with content type: {audio=pcm(stereo)}.
2024/02/08 08:09:23 [fade_out.279:3] Content type is {audio=pcm(stereo)}.
2024/02/08 08:09:23 [source:4] Source track_amplify.558 gets up with content type: {audio=pcm(stereo)}.
2024/02/08 08:09:23 [track_amplify.558:3] Content type is {audio=pcm(stereo)}.
2024/02/08 08:09:23 [source:4] Source on_frame.557 gets up with content type: {audio=pcm(stereo)}.
2024/02/08 08:09:23 [on_frame.557:3] Content type is {audio=pcm(stereo)}.
2024/02/08 08:09:23 [source:4] Source on_metadata.557 gets up with content type: {audio=pcm(stereo)}.
2024/02/08 08:09:23 [on_metadata.557:3] Content type is {audio=pcm(stereo)}.
2024/02/08 08:09:23 [source:4] Source on_track.559 gets up with content type: {audio=pcm(stereo)}.
2024/02/08 08:09:23 [on_track.559:3] Content type is {audio=pcm(stereo)}.
2024/02/08 08:09:23 [source:4] Source cross_before.373 gets up with content type: {audio=pcm(stereo)}.
2024/02/08 08:09:23 [cross_before.373:3] Content type is {audio=pcm(stereo)}.
2024/02/08 08:09:23 [source:4] Source buffer.977 gets up with content type: {audio=pcm(stereo)}.
2024/02/08 08:09:23 [buffer.977:3] Content type is {audio=pcm(stereo)}.
2024/02/08 08:09:23 [source:4] Source cross_after_tail.229 gets up with content type: {audio=pcm(stereo)}.
2024/02/08 08:09:23 [cross_after_tail.229:3] Content type is {audio=pcm(stereo)}.
2024/02/08 08:09:23 [cross_before.373:4] New fade out duration: 1.1s.
2024/02/08 08:09:23 [cross_before.373:4] Fading out with type: sin, curve: default, delay: 0.s, duration: 1.02882086168s and 1.02882086168s remaining.
2024/02/08 08:09:23 [cross_after.373:4] Fading in with type: sin, curve: default, delay: 0.s and duration: 0.1s.
2024/02/08 08:09:23 [lang:3] API feedback - Sending POST request to 'http://127.0.0.1:6010/api/internal/2/liquidsoap/feedback' with body: {
2024/02/08 08:09:23 [lang:3]   "song_id": "827aa2aeadb831c28eb78ad6ead2cf57",
2024/02/08 08:09:23 [lang:3]   "playlist_id": "21",
2024/02/08 08:09:23 [lang:3]   "media_id": "11930"
2024/02/08 08:09:23 [lang:3] }
RM-FM commented 9 months ago

@toots @gAlleb I'm able to reproduce it each time with the "Burak Yeter - Tuesday" song, independently from the next song. It appears to be related to crossfade and fade out values of 0.0 (but not for all tracks). Changing them to 0.1 fixes the problem.

Burak Yeter - Tuesday (Feat. Danelle Sandoval) [Heyhey Remix].mp3

cue in: 1.0
cue_out: 169.5
fade in: 0.1
fade out: 0.0
crossfade: 0.0

As soon as I set crossfade and fade out to 0.1, meta data update for the upcoming track is working again.. We have many other tracks where crossfade and fade out is set to 0.0 but meta data update is working perfectly fine there (e.g. all jingles).

I know that "zero" crossfades should be prevented or processed with a sequence instead of cross.simple. But as that is not part of the Azuracast standard and the behavior isn't consistent, it might be still worth a look.

toots commented 9 months ago

Thanks for following up. I can confirm the issue. It might have been introduced by the new "common buffer" crossfade computation.

Nonetheless, I am considering an empty crossfade duration as a programming error -- when using crossfade, if you want to avoid overlapping tracks, just return a sequence in the transition.

I have pushed a workaround here: https://github.com/savonet/liquidsoap/actions/runs/7832004165 it will set a minimal crossfade duration of one frame and issue a critical log warning when crossfade duration is 0..

Let me know if that helps for you.

toots commented 9 months ago

Actually a better way perhaps to achieve disabling crossfade without touching the transition code in 2.2.4 is to set fade.in/fade.out delay to the cross duration and fade.in/fade.out length to 0.. This should work fine as well.

RM-FM commented 9 months ago

@toots Thanks, will test... In between I used a custom crossfade callback. But it obviously doesn't even touch the callback as there is no clean_transition log record for the particular test case with "Burak Yeter - Tuesday".

I will test this also with the new build now. Let's see how it behaves now..

def clean_transition(old, new) =
  buffered_time = source.remaining(old.source)
  buffered_time_str = string_of(buffered_time)
  fade_duration_str = old.metadata["liq_fade_out"]
  fade_duration = float_of_string(fade_duration_str)

  if buffered_time < 0.2 or fade_duration < 0.2 then
    log(label="clean_transition","Using transition type: sequence. Buffer: #{buffered_time_str} / Fade out: #{fade_duration_str}")
    sequence([old.source, new.source])
  else
    log(label="clean_transition","Using transition type: cross.simple. Buffer: #{buffered_time_str} / Fade out: #{fade_duration_str}")
    cross.simple(old.source, new.source, fade_in=0., fade_out=0.)
  end
end
radio = cross(minimum=0., duration=0., clean_transition, radio)
RM-FM commented 9 months ago

@toots @gAlleb I tested with both Liquidsoap 2.2.5+git@9f96e4265 and Liquidsoap 2.3.0+git@31a2dba2d. The results were quite different...

Crossfade callback works as expected for both. I can see the expected clean_transition log line on all transitions, finally. Therefore, I was able to see whether cross was executed as cross.simple or sequence.

Liquidsoap 2.2.5+git@9f96e4265 cross.simple: Meta data update after "Burak Yeter - Tuesday" is still missing. sequence (crossfade + fade out 0.0): Meta data seems to work fine (even for "Burak Yeter - Tuesday")

Liquidsoap 2.3.0+git@31a2dba2d cross.simple: Meta data seems to work fine (even for "Burak Yeter - Tuesday") sequence (crossfade + fade out 0.0): Meta data update is missing quite often; almost each time

toots commented 9 months ago

Ok thanks. Do you have specific crossfade parameters I could use to test again?

RM-FM commented 9 months ago

Unfortunately, also sequence isn't working entirely reliable with Liquidsoap 2.2.5+git@https://github.com/savonet/liquidsoap/commit/9f96e42658d99493b5560e38db997062d78706a2

Meta data was missing for "GOODBOYS - Future" after the promo "Werbung App - Dance".

2024/02/08 21:31:06 [lang:3] API nextsong - Sending POST request to 'http://127.0.0.1:6010/api/internal/2/liquidsoap/nextsong' with body: 
2024/02/08 21:31:06 [lang:3] API nextsong - Response (200): annotate:title="Werbung App - Dance",artist="RadioMonster.FM",duration="21.00",song_id="599ae22fc5aad87264fa435086414a33",media_id="12058",liq_cross_duration="1.70",liq_fade_in="0.00",liq_fade_out="0.00",liq_cue_in="0.00",playlist_id="27",jingle_mode="true":media:radiomonster.fm_-_app_werbung_-_dance.mp3
2024/02/08 21:31:06 [request.27:4] Pushed ["annotate:title=\"Werbung App - Dance\",artist=\"RadioMonster.FM\",duration=\"21.00\",song_id=\"599ae22fc5aad87264fa435086414a33\",media_id=\"12058\",liq_cross_duration=\"1.70\",liq_fade_in=\"0.00\",liq_fade_out=\"0.00\",liq_cue_in=\"0.00\",playlist_id=\"27\",jingle_mode=\"true\":media:radiomonster.fm_-_app_werbung_-_dance.mp3";...].
2024/02/08 21:31:06 [request.27:4] Resolving "annotate:title=\"Werbung App - Dance\",artist=\"RadioMonster.FM\",duration=\"21.00\",song_id=\"599ae22fc5aad87264fa435086414a33\",media_id=\"12058\",liq_cross_duration=\"1.70\",liq_fade_in=\"0.00\",liq_fade_out=\"0.00\",liq_cue_in=\"0.00\",playlist_id=\"27\",jingle_mode=\"true\":media:radiomonster.fm_-_app_werbung_-_dance.mp3" (timeout 30s)...
2024/02/08 21:31:06 [request.27:4] Pushed ["media:radiomonster.fm_-_app_werbung_-_dance.mp3";...].
2024/02/08 21:31:06 [request.27:4] Resolving "media:radiomonster.fm_-_app_werbung_-_dance.mp3" (timeout 30s)...
2024/02/08 21:31:06 [request.27:4] Pushed ["/var/azuracast/stations/dance/media/radiomonster.fm_-_app_werbung_-_dance.mp3";...].
2024/02/08 21:31:06 [decoder.ogg:4] Unsupported MIME type for "/var/azuracast/stations/dance/media/radiomonster.fm_-_app_werbung_-_dance.mp3": audio/mpeg!
2024/02/08 21:31:06 [decoder.ffmpeg:4] Unsupported file extension for "/var/azuracast/stations/dance/media/radiomonster.fm_-_app_werbung_-_dance.mp3"!
2024/02/08 21:31:06 [decoder.mad:4] Unsupported file extension for "/var/azuracast/stations/dance/media/radiomonster.fm_-_app_werbung_-_dance.mp3"!
2024/02/08 21:31:06 [decoder.flac:4] Unsupported MIME type for "/var/azuracast/stations/dance/media/radiomonster.fm_-_app_werbung_-_dance.mp3": audio/mpeg!
2024/02/08 21:31:06 [decoder.mp4:4] Unsupported MIME type for "/var/azuracast/stations/dance/media/radiomonster.fm_-_app_werbung_-_dance.mp3": audio/mpeg!
2024/02/08 21:31:06 [decoder.aac:4] Unsupported MIME type for "/var/azuracast/stations/dance/media/radiomonster.fm_-_app_werbung_-_dance.mp3": audio/mpeg!
2024/02/08 21:31:06 [decoder.midi:4] Unsupported MIME type for "/var/azuracast/stations/dance/media/radiomonster.fm_-_app_werbung_-_dance.mp3": audio/mpeg!
2024/02/08 21:31:06 [decoder.srt:4] Unsupported MIME type for "/var/azuracast/stations/dance/media/radiomonster.fm_-_app_werbung_-_dance.mp3": audio/mpeg!
2024/02/08 21:31:06 [decoder.aiff:4] Unsupported MIME type for "/var/azuracast/stations/dance/media/radiomonster.fm_-_app_werbung_-_dance.mp3": audio/mpeg!
2024/02/08 21:31:06 [decoder.wav:4] Unsupported MIME type for "/var/azuracast/stations/dance/media/radiomonster.fm_-_app_werbung_-_dance.mp3": audio/mpeg!
2024/02/08 21:31:06 [decoder:4] Available decoders: ffmpeg (priority: 10), mad (priority: 1), image (priority: 1)
2024/02/08 21:31:06 [decoder:4] Trying decoder "ffmpeg"
2024/02/08 21:31:06 [decoder.ffmpeg:3] Requested content-type for "/var/azuracast/stations/dance/media/radiomonster.fm_-_app_werbung_-_dance.mp3": {audio=pcm(stereo)}
2024/02/08 21:31:06 [decoder.ffmpeg:3] FFmpeg recognizes "/var/azuracast/stations/dance/media/radiomonster.fm_-_app_werbung_-_dance.mp3" as audio: {codec: mp3, 44100Hz, 2 channel(s)}
2024/02/08 21:31:06 [decoder.ffmpeg:3] Decoded content-type for "/var/azuracast/stations/dance/media/radiomonster.fm_-_app_werbung_-_dance.mp3": {audio=pcm(stereo)}
2024/02/08 21:31:06 [decoder:4] Selected decoder ffmpeg for file "/var/azuracast/stations/dance/media/radiomonster.fm_-_app_werbung_-_dance.mp3" with expected kind {audio=pcm(stereo)} and detected content {audio=pcm(stereo)}
2024/02/08 21:31:06 [decoder.video.metadata:4] Unsupported MIME type for "/var/azuracast/stations/dance/media/radiomonster.fm_-_app_werbung_-_dance.mp3": audio/mpeg!
2024/02/08 21:31:06 [decoder.ogg.metadata:4] Unsupported MIME type for "/var/azuracast/stations/dance/media/radiomonster.fm_-_app_werbung_-_dance.mp3": audio/mpeg!
2024/02/08 21:31:06 [decoder.image.metadata:4] Unsupported MIME type for "/var/azuracast/stations/dance/media/radiomonster.fm_-_app_werbung_-_dance.mp3": audio/mpeg!
2024/02/08 21:31:06 [decoder.id3:4] Unsupported file extension for "/var/azuracast/stations/dance/media/radiomonster.fm_-_app_werbung_-_dance.mp3"!
2024/02/08 21:31:06 [decoder.id3:4] Unsupported file extension for "/var/azuracast/stations/dance/media/radiomonster.fm_-_app_werbung_-_dance.mp3"!
2024/02/08 21:31:06 [decoder.id3:4] Unsupported file extension for "/var/azuracast/stations/dance/media/radiomonster.fm_-_app_werbung_-_dance.mp3"!
2024/02/08 21:31:06 [decoder.flac.metadata:4] Unsupported MIME type for "/var/azuracast/stations/dance/media/radiomonster.fm_-_app_werbung_-_dance.mp3": audio/mpeg!
2024/02/08 21:31:06 [metadata.mp4:4] Unsupported MIME type for "/var/azuracast/stations/dance/media/radiomonster.fm_-_app_werbung_-_dance.mp3": audio/mpeg!
2024/02/08 21:31:06 [decoder.ffmpeg:4] Unsupported file extension for "/var/azuracast/stations/dance/media/radiomonster.fm_-_app_werbung_-_dance.mp3"!
2024/02/08 21:31:06 [metadata.flac:4] Unsupported MIME type for "/var/azuracast/stations/dance/media/radiomonster.fm_-_app_werbung_-_dance.mp3": audio/mpeg!
2024/02/08 21:31:06 [decoder.ogg:4] Unsupported MIME type for "/var/azuracast/stations/dance/media/radiomonster.fm_-_app_werbung_-_dance.mp3": audio/mpeg!
2024/02/08 21:31:06 [decoder.taglib:4] Unsupported file extension for "/var/azuracast/stations/dance/media/radiomonster.fm_-_app_werbung_-_dance.mp3"!
2024/02/08 21:31:06 [next_song:4] Queued 1 requests
2024/02/08 21:31:06 [cross:3] Analysis: -44.632416dB / -8.965292dB (4.58s / 4.58s)
2024/02/08 21:31:06 [cross:3] Computing crossfade duration over overlapping 4.58s buffered data at start and end.
2024/02/08 21:31:06 [clean_transition:3] Using transition type: cross.simple. Buffer: 4.57984126984 / Fade out: 4.60
2024/02/08 21:31:06 [source:4] Source sequence.18 gets up with content type: {audio=pcm(stereo)}.
2024/02/08 21:31:06 [source:4] Source source.33 gets up with content type: {audio=pcm(stereo)}.
2024/02/08 21:31:06 [source.33:3] Content type is {audio=pcm(stereo)}.
2024/02/08 21:31:06 [source:4] Source audio.add.9 gets up with content type: {audio=pcm(stereo)}.
2024/02/08 21:31:06 [audio.add.9:3] Content type is {audio=pcm(stereo)}.
2024/02/08 21:31:06 [source:4] Source fade_in.9 gets up with content type: {audio=pcm(stereo)}.
2024/02/08 21:31:06 [fade_in.9:3] Content type is {audio=pcm(stereo)}.
2024/02/08 21:31:06 [source:4] Source fade_scale.9 gets up with content type: {audio=pcm(stereo)}.
2024/02/08 21:31:06 [fade_scale.9:3] Content type is {audio=pcm(stereo)}.
2024/02/08 21:31:06 [source:4] Source track_amplify.19 gets up with content type: {audio=pcm(stereo)}.
2024/02/08 21:31:06 [track_amplify.19:3] Content type is {audio=pcm(stereo)}.
2024/02/08 21:31:06 [source:4] Source sequence.17 gets up with content type: {audio=pcm(stereo)}.
2024/02/08 21:31:06 [source:4] Source blank.10 gets up with content type: {audio=pcm(stereo)}.
2024/02/08 21:31:06 [blank.10:3] Content type is {audio=pcm(stereo)}.
2024/02/08 21:31:06 [source:4] Source on_metadata.18 gets up with content type: {audio=pcm(stereo)}.
2024/02/08 21:31:06 [on_metadata.18:3] Content type is {audio=pcm(stereo)}.
2024/02/08 21:31:06 [source:4] Source on_track.20 gets up with content type: {audio=pcm(stereo)}.
2024/02/08 21:31:06 [on_track.20:3] Content type is {audio=pcm(stereo)}.
2024/02/08 21:31:06 [source:4] Source cross_after.13 gets up with content type: {audio=pcm(stereo)}.
2024/02/08 21:31:06 [cross_after.13:3] Content type is {audio=pcm(stereo)}.
2024/02/08 21:31:06 [source:4] Source buffer.31 gets up with content type: {audio=pcm(stereo)}.
2024/02/08 21:31:06 [buffer.31:3] Content type is {audio=pcm(stereo)}.
2024/02/08 21:31:06 [source:4] Source fade_out.9 gets up with content type: {audio=pcm(stereo)}.
2024/02/08 21:31:06 [fade_out.9:3] Content type is {audio=pcm(stereo)}.
2024/02/08 21:31:06 [source:4] Source track_amplify.18 gets up with content type: {audio=pcm(stereo)}.
2024/02/08 21:31:06 [track_amplify.18:3] Content type is {audio=pcm(stereo)}.
2024/02/08 21:31:06 [source:4] Source on_frame.17 gets up with content type: {audio=pcm(stereo)}.
2024/02/08 21:31:06 [on_frame.17:3] Content type is {audio=pcm(stereo)}.
2024/02/08 21:31:06 [source:4] Source on_metadata.17 gets up with content type: {audio=pcm(stereo)}.
2024/02/08 21:31:06 [on_metadata.17:3] Content type is {audio=pcm(stereo)}.
2024/02/08 21:31:06 [source:4] Source on_track.19 gets up with content type: {audio=pcm(stereo)}.
2024/02/08 21:31:06 [on_track.19:3] Content type is {audio=pcm(stereo)}.
2024/02/08 21:31:06 [source:4] Source cross_before.13 gets up with content type: {audio=pcm(stereo)}.
2024/02/08 21:31:06 [cross_before.13:3] Content type is {audio=pcm(stereo)}.
2024/02/08 21:31:06 [source:4] Source buffer.29 gets up with content type: {audio=pcm(stereo)}.
2024/02/08 21:31:06 [buffer.29:3] Content type is {audio=pcm(stereo)}.
2024/02/08 21:31:06 [source:4] Source cross_after_tail.5 gets up with content type: {audio=pcm(stereo)}.
2024/02/08 21:31:06 [cross_after_tail.5:3] Content type is {audio=pcm(stereo)}.
2024/02/08 21:31:06 [cross_before.13:4] New fade out duration: 4.6s.
2024/02/08 21:31:06 [cross_before.13:4] Fading out with type: sin, curve: default, delay: 0.s, duration: 4.53984126984s and 4.53984126984s remaining.
2024/02/08 21:31:06 [cross_after.13:4] Fading in with type: sin, curve: default, delay: 0.s and duration: 0.s.
2024/02/08 21:31:06 [lang:3] API feedback - Sending POST request to 'http://127.0.0.1:6010/api/internal/2/liquidsoap/feedback' with body: {
2024/02/08 21:31:06 [lang:3]   "song_id": "827aa2aeadb831c28eb78ad6ead2cf57",
2024/02/08 21:31:06 [lang:3]   "playlist_id": "21",
2024/02/08 21:31:06 [lang:3]   "media_id": "11930"
2024/02/08 21:31:06 [lang:3] }
2024/02/08 21:31:06 [lang:3] API feedback - Response (200): true
2024/02/08 21:31:11 [buffer.29:4] End of track.
2024/02/08 21:31:11 [buffer.29:4] Buffer emptied, buffering needed.
2024/02/08 21:31:11 [buffer.31:4] End of track.
2024/02/08 21:31:11 [buffer.31:4] Buffer emptied, buffering needed.
2024/02/08 21:31:11 [cross_after_tail.5:4] End of track.
2024/02/08 21:31:11 [cross_after_tail.5:4] Buffer emptied, buffering needed.
2024/02/08 21:31:11 [source:4] Source sequence.18 gets down.
2024/02/08 21:31:11 [source:4] Source source.33 gets down.
2024/02/08 21:31:11 [source:4] Source audio.add.9 gets down.
2024/02/08 21:31:11 [source:4] Source fade_in.9 gets down.
2024/02/08 21:31:11 [source:4] Source fade_scale.9 gets down.
2024/02/08 21:31:11 [source:4] Source track_amplify.19 gets down.
2024/02/08 21:31:11 [source:4] Source sequence.17 gets down.
2024/02/08 21:31:11 [source:4] Source blank.10 gets down.
2024/02/08 21:31:11 [source:4] Source on_metadata.18 gets down.
2024/02/08 21:31:11 [source:4] Source on_track.20 gets down.
2024/02/08 21:31:11 [source:4] Source cross_after.13 gets down.
2024/02/08 21:31:11 [source:4] Source buffer.31 gets down.
2024/02/08 21:31:11 [source:4] Source fade_out.9 gets down.
2024/02/08 21:31:11 [source:4] Source track_amplify.18 gets down.
2024/02/08 21:31:11 [source:4] Source on_frame.17 gets down.
2024/02/08 21:31:11 [source:4] Source on_metadata.17 gets down.
2024/02/08 21:31:11 [source:4] Source on_track.19 gets down.
2024/02/08 21:31:11 [source:4] Source cross_before.13 gets down.
2024/02/08 21:31:11 [source:4] Source buffer.29 gets down.
2024/02/08 21:31:11 [source:4] Source cross_after_tail.5 gets down.
2024/02/08 21:31:11 [cross:4] Buffering end of track...
2024/02/08 21:31:11 [cross:4] More buffering will be needed.
2024/02/08 21:31:13 [request.26:4] Cueing out at position: 6.40
2024/02/08 21:31:13 [next_song:4] Finished with "/var/azuracast/stations/dance/media/radiomonster.fm_-_dropin_01.mp3".
2024/02/08 21:31:13 [request.26:4] Request finished.
2024/02/08 21:31:13 [next_song:4] Remaining 0 requests
2024/02/08 21:31:13 [request.27:4] Cueing in to position: 0.00
2024/02/08 21:31:13 [next_song:3] Prepared "/var/azuracast/stations/dance/media/radiomonster.fm_-_app_werbung_-_dance.mp3" (RID 27).
2024/02/08 21:31:13 [request.27:4] Currently on air.
[mp3float @ 0x7f5a13a1e800] Could not update timestamps for skipped samples.
2024/02/08 21:31:13 [cross:4] Overriding crossfade duration from metadata liq_cross_duration
2024/02/08 21:31:13 [cross:4] Setting crossfade duration to 1.70s
2024/02/08 21:31:13 [cross:3] Analysis: -11.166941dB / -105.096246dB (0.00s / 0.04s)
2024/02/08 21:31:13 [cross:3] Computing crossfade duration over overlapping 0.00s buffered data at start and end.
2024/02/08 21:31:13 [lang:3] API nextsong - Sending POST request to 'http://127.0.0.1:6010/api/internal/2/liquidsoap/nextsong' with body: 
2024/02/08 21:31:13 [clean_transition:3] Using transition type: sequence. Buffer: 0. / Fade out: 0.00
2024/02/08 21:31:13 [source:4] Source sequence.20 gets up with content type: {audio=pcm(stereo)}.
2024/02/08 21:31:13 [source:4] Source sequence.19 gets up with content type: {audio=pcm(stereo)}.
2024/02/08 21:31:13 [source:4] Source cross_before.14 gets up with content type: {audio=pcm(stereo)}.
2024/02/08 21:31:13 [cross_before.14:3] Content type is {audio=pcm(stereo)}.
2024/02/08 21:31:13 [source:4] Source buffer.32 gets up with content type: {audio=pcm(stereo)}.
2024/02/08 21:31:13 [buffer.32:3] Content type is {audio=pcm(stereo)}.
2024/02/08 21:31:13 [source:4] Source cross_after.14 gets up with content type: {audio=pcm(stereo)}.
2024/02/08 21:31:13 [cross_after.14:3] Content type is {audio=pcm(stereo)}.
2024/02/08 21:31:13 [source:4] Source buffer.34 gets up with content type: {audio=pcm(stereo)}.
2024/02/08 21:31:13 [buffer.34:3] Content type is {audio=pcm(stereo)}.
2024/02/08 21:31:13 [source:4] Source cross_after_tail.6 gets up with content type: {audio=pcm(stereo)}.
2024/02/08 21:31:13 [cross_after_tail.6:3] Content type is {audio=pcm(stereo)}.
2024/02/08 21:31:13 [cross_after_tail.6:4] Buffer emptied, buffering needed.
2024/02/08 21:31:13 [lang:3] API feedback - Sending POST request to 'http://127.0.0.1:6010/api/internal/2/liquidsoap/feedback' with body: {
2024/02/08 21:31:13 [lang:3]   "song_id": "599ae22fc5aad87264fa435086414a33",
2024/02/08 21:31:13 [lang:3]   "playlist_id": "27",
2024/02/08 21:31:13 [lang:3]   "media_id": "12058"
2024/02/08 21:31:13 [lang:3] }
2024/02/08 21:31:13 [lang:3] API nextsong - Response (200): annotate:title="Future",artist="GOODBOYS",duration="154.00",song_id="189695298843ed71ef615aa9da4ddf86",media_id="11952",liq_cross_duration="4.50",liq_fade_in="0.00",liq_fade_out="4.50",playlist_id="11":media:GOODBOYS - Future.mp3
2024/02/08 21:31:13 [request.28:4] Pushed ["annotate:title=\"Future\",artist=\"GOODBOYS\",duration=\"154.00\",song_id=\"189695298843ed71ef615aa9da4ddf86\",media_id=\"11952\",liq_cross_duration=\"4.50\",liq_fade_in=\"0.00\",liq_fade_out=\"4.50\",playlist_id=\"11\":media:GOODBOYS - Future.mp3";...].
2024/02/08 21:31:13 [request.28:4] Resolving "annotate:title=\"Future\",artist=\"GOODBOYS\",duration=\"154.00\",song_id=\"189695298843ed71ef615aa9da4ddf86\",media_id=\"11952\",liq_cross_duration=\"4.50\",liq_fade_in=\"0.00\",liq_fade_out=\"4.50\",playlist_id=\"11\":media:GOODBOYS - Future.mp3" (timeout 30s)...
2024/02/08 21:31:13 [request.28:4] Pushed ["media:GOODBOYS - Future.mp3";...].
2024/02/08 21:31:13 [request.28:4] Resolving "media:GOODBOYS - Future.mp3" (timeout 30s)...
2024/02/08 21:31:13 [request.28:4] Pushed ["/var/azuracast/stations/dance/media/GOODBOYS - Future.mp3";...].
2024/02/08 21:31:13 [decoder.ogg:4] Unsupported MIME type for "/var/azuracast/stations/dance/media/GOODBOYS - Future.mp3": audio/mpeg!
2024/02/08 21:31:13 [decoder.ffmpeg:4] Unsupported file extension for "/var/azuracast/stations/dance/media/GOODBOYS - Future.mp3"!
2024/02/08 21:31:13 [decoder.mad:4] Unsupported file extension for "/var/azuracast/stations/dance/media/GOODBOYS - Future.mp3"!
2024/02/08 21:31:13 [decoder.flac:4] Unsupported MIME type for "/var/azuracast/stations/dance/media/GOODBOYS - Future.mp3": audio/mpeg!
2024/02/08 21:31:13 [decoder.mp4:4] Unsupported MIME type for "/var/azuracast/stations/dance/media/GOODBOYS - Future.mp3": audio/mpeg!
2024/02/08 21:31:13 [decoder.aac:4] Unsupported MIME type for "/var/azuracast/stations/dance/media/GOODBOYS - Future.mp3": audio/mpeg!
2024/02/08 21:31:13 [decoder.midi:4] Unsupported MIME type for "/var/azuracast/stations/dance/media/GOODBOYS - Future.mp3": audio/mpeg!
2024/02/08 21:31:13 [decoder.srt:4] Unsupported MIME type for "/var/azuracast/stations/dance/media/GOODBOYS - Future.mp3": audio/mpeg!
2024/02/08 21:31:13 [decoder.aiff:4] Unsupported MIME type for "/var/azuracast/stations/dance/media/GOODBOYS - Future.mp3": audio/mpeg!
2024/02/08 21:31:13 [decoder.wav:4] Unsupported MIME type for "/var/azuracast/stations/dance/media/GOODBOYS - Future.mp3": audio/mpeg!
2024/02/08 21:31:13 [decoder:4] Available decoders: ffmpeg (priority: 10), mad (priority: 1), image (priority: 1)
2024/02/08 21:31:13 [decoder:4] Trying decoder "ffmpeg"
2024/02/08 21:31:13 [decoder.ffmpeg:3] Requested content-type for "/var/azuracast/stations/dance/media/GOODBOYS - Future.mp3": {audio=pcm(stereo)}
2024/02/08 21:31:13 [decoder.ffmpeg:3] FFmpeg recognizes "/var/azuracast/stations/dance/media/GOODBOYS - Future.mp3" as audio: {codec: mp3, 44100Hz, 2 channel(s)}, video: {codec: mjpeg, 500x500, yuvj420p}
2024/02/08 21:31:13 [decoder.ffmpeg:3] Decoded content-type for "/var/azuracast/stations/dance/media/GOODBOYS - Future.mp3": {audio=pcm(stereo)}
2024/02/08 21:31:13 [decoder:4] Selected decoder ffmpeg for file "/var/azuracast/stations/dance/media/GOODBOYS - Future.mp3" with expected kind {audio=pcm(stereo)} and detected content {audio=pcm(stereo)}
2024/02/08 21:31:13 [decoder.video.metadata:4] Unsupported MIME type for "/var/azuracast/stations/dance/media/GOODBOYS - Future.mp3": audio/mpeg!
2024/02/08 21:31:13 [decoder.ogg.metadata:4] Unsupported MIME type for "/var/azuracast/stations/dance/media/GOODBOYS - Future.mp3": audio/mpeg!
2024/02/08 21:31:13 [decoder.image.metadata:4] Unsupported MIME type for "/var/azuracast/stations/dance/media/GOODBOYS - Future.mp3": audio/mpeg!
2024/02/08 21:31:13 [decoder.id3:4] Unsupported file extension for "/var/azuracast/stations/dance/media/GOODBOYS - Future.mp3"!
2024/02/08 21:31:13 [decoder.id3:4] Unsupported file extension for "/var/azuracast/stations/dance/media/GOODBOYS - Future.mp3"!
2024/02/08 21:31:13 [decoder.id3:4] Unsupported file extension for "/var/azuracast/stations/dance/media/GOODBOYS - Future.mp3"!
2024/02/08 21:31:13 [decoder.flac.metadata:4] Unsupported MIME type for "/var/azuracast/stations/dance/media/GOODBOYS - Future.mp3": audio/mpeg!
2024/02/08 21:31:13 [metadata.mp4:4] Unsupported MIME type for "/var/azuracast/stations/dance/media/GOODBOYS - Future.mp3": audio/mpeg!
2024/02/08 21:31:13 [decoder.ffmpeg:4] Unsupported file extension for "/var/azuracast/stations/dance/media/GOODBOYS - Future.mp3"!
2024/02/08 21:31:13 [metadata.flac:4] Unsupported MIME type for "/var/azuracast/stations/dance/media/GOODBOYS - Future.mp3": audio/mpeg!
2024/02/08 21:31:13 [decoder.ogg:4] Unsupported MIME type for "/var/azuracast/stations/dance/media/GOODBOYS - Future.mp3": audio/mpeg!
2024/02/08 21:31:13 [decoder.taglib:4] Unsupported file extension for "/var/azuracast/stations/dance/media/GOODBOYS - Future.mp3"!
2024/02/08 21:31:13 [next_song:4] Queued 1 requests
2024/02/08 21:31:13 [lang:3] API feedback - Response (200): true
2024/02/08 21:31:13 [source:4] Source sequence.20 gets down.
2024/02/08 21:31:13 [source:4] Source sequence.19 gets down.
2024/02/08 21:31:13 [source:4] Source cross_before.14 gets down.
2024/02/08 21:31:13 [source:4] Source buffer.32 gets down.
2024/02/08 21:31:13 [source:4] Source cross_after.14 gets down.
2024/02/08 21:31:13 [source:4] Source buffer.34 gets down.
2024/02/08 21:31:13 [source:4] Source cross_after_tail.6 gets down.
2024/02/08 21:31:13 [cross:4] Buffering end of track...
2024/02/08 21:31:13 [cross:4] More buffering will be needed.
2024/02/08 21:31:32 [decoder:2] Decoding "/var/azuracast/stations/dance/media/radiomonster.fm_-_app_werbung_-_dance.mp3" ended: Ffmpeg_decoder.End_of_file.
2024/02/08 21:31:32 [decoder:4] Raised at Ffmpeg_decoder.mk_decoder.(fun).f in file "src/core/decoder/ffmpeg_decoder.ml", line 890, characters 12-29
2024/02/08 21:31:32 [decoder:4] Called from Decoder.mk_decoder.fill in file "src/core/decoder/decoder.ml", line 505, characters 10-31
2024/02/08 21:31:32 [decoder:4] 
2024/02/08 21:31:32 [next_song:4] Finished with "/var/azuracast/stations/dance/media/radiomonster.fm_-_app_werbung_-_dance.mp3".
2024/02/08 21:31:32 [request.27:4] Request finished.
2024/02/08 21:31:32 [next_song:4] Remaining 0 requests
2024/02/08 21:31:32 [next_song:3] Prepared "/var/azuracast/stations/dance/media/GOODBOYS - Future.mp3" (RID 28).
2024/02/08 21:31:32 [cross:1] Invalid cross duration: 0.00 <= 0.!
2024/02/08 21:31:32 [request.28:4] Currently on air.
2024/02/08 21:31:32 [cross:4] Overriding crossfade duration from metadata liq_cross_duration
2024/02/08 21:31:32 [cross:4] Setting crossfade duration to 4.50s
2024/02/08 21:31:32 [lang:3] API nextsong - Sending POST request to 'http://127.0.0.1:6010/api/internal/2/liquidsoap/nextsong' with body: 
2024/02/08 21:31:32 [cross:3] Analysis: -78.623449dB / -22.010719dB (1.64s / 1.68s)
2024/02/08 21:31:32 [cross:3] Computing crossfade duration over overlapping 1.64s buffered data at start and end.
2024/02/08 21:31:32 [clean_transition:3] Using transition type: sequence. Buffer: 1.64024943311 / Fade out: 0.00
2024/02/08 21:31:32 [source:4] Source sequence.22 gets up with content type: {audio=pcm(stereo)}.
2024/02/08 21:31:32 [source:4] Source sequence.21 gets up with content type: {audio=pcm(stereo)}.
2024/02/08 21:31:32 [source:4] Source cross_before.15 gets up with content type: {audio=pcm(stereo)}.
2024/02/08 21:31:32 [cross_before.15:3] Content type is {audio=pcm(stereo)}.
2024/02/08 21:31:32 [source:4] Source buffer.35 gets up with content type: {audio=pcm(stereo)}.
2024/02/08 21:31:32 [buffer.35:3] Content type is {audio=pcm(stereo)}.
2024/02/08 21:31:32 [source:4] Source cross_after.15 gets up with content type: {audio=pcm(stereo)}.
2024/02/08 21:31:32 [cross_after.15:3] Content type is {audio=pcm(stereo)}.
2024/02/08 21:31:32 [source:4] Source buffer.37 gets up with content type: {audio=pcm(stereo)}.
2024/02/08 21:31:32 [buffer.37:3] Content type is {audio=pcm(stereo)}.
2024/02/08 21:31:32 [source:4] Source cross_after_tail.7 gets up with content type: {audio=pcm(stereo)}.
2024/02/08 21:31:32 [cross_after_tail.7:3] Content type is {audio=pcm(stereo)}.
RM-FM commented 9 months ago

Ok thanks. Do you have specific crossfade parameters I could use to test again?

I think most the issues are related to either crossfade duration 0.0 and fade out 0.0. But it is not really consistent.

toots commented 9 months ago

Ok. Would you mind testing the recommended way, which should be to set delay and cross duration to e.g. 4s and set fade out/fadein to 0.s?

RM-FM commented 9 months ago

Ok. Would you mind testing the recommended way, which should be to set delay and cross duration to e.g. 4s and set fade out/fadein to 0.s?

Well, that is not possible with the Azuracast setup. Also, from a usability point of view I do not really like this, tbh. A radio station usually maintains cue and crossfade points individually per track. Not having a crossfade for some of them is a valid case as there are songs/tracks that can‘t / shouldn‘t be crossfaded. That is usually true for songs with abrupt ending.

I understand that „no crossfade“ and cross/cross.simple are actually not compatible from a technical point of view. But all those different crossfade and cue settings need to pass the same LS script. From that point of view I would see a crossfade value of 0.0 as a valid one, even if this might be different from a technical aspect.

Wouldn‘t it be the most user friendly approach to handle this inside the crossfade methods just like a sequence, without the need of custom callbacks etc?

toots commented 9 months ago

Well what I am saying is that setting this:

annotate:liq_cross_duration=5.,liq_fade_out_delay=5.,liq_fade_out=0.:/path/to/track.mp3
annotate:liq_fade_in_delay=5.,liq_fade_in=0.:/path/to/other-track.mp3

Should be the right way to achieve no fade out.

There's an explanation of how this works here: https://www.liquidsoap.info/blog/2024-02-07-liquidsoap-v2.2.4/

Here's a graph of this specific case:

plot

From a sytem point of view, this is a much better situation: this makes it possible to maintain a sane buffer size (anything between maybe 0.1 and 5 seconds) and achieving sequential playout without having to do any code change or crazy limit parameters.

RM-FM commented 9 months ago

If I got you right, then also the next track needs to be delayed (fade-in delay)? That would require Azuacast (or any other playout logic) to know that the previous track had a delay set. It might be only me, but my gut feeling is not a good one on that…

@gAlleb @BusterNeece What about you?

gAlleb commented 9 months ago

@RM-FM, well, I think you got your point and it's understandable. Regarding new delay I think @BusterNeece might add a functionality to determine them via web interface.

As for the rest. Crossfading requires more or less:

1) Some audio engineering skills. If one is just a guy who likes playing around with "radio", "sound", etc. or one has serious intentions of building a workable broadcasting chain (while playing around).

If it is the first case - then one can use even "fade_in=3.". Why not? Sounds interesting :)

If it is the second case then next point -->

2) Understanding what is crossfade! At this point we want a crossfade to be everything it is not supposed to be:) Thus lots of misunderstanding and problems. Crossfade is audio transition between two tracks, in which the first track's audio fades down while the second track's audio simultaneously fades up. That is it.

We however now have a ton of options it's easy to get lost in them and they requires some "tea-drinking-RTFM-sitting" :) At this point I'm very pleased that we have so much options and no "clicks" where they shouldn't be. What is ideal: make annotation of all tracks with cue_in and cue_out and loose the crossfades whatsoever. But then we might have clicks on cue_out (in this case it is quite understandable). Just how it is. So in such case we need at least some fade_out on some tracks to not have those clicks. But without overlap or with an overlap of 2s e.g. But maybe there is more -->

3) Defining your format. In radio world tracks always start with no "fade_in". "fade_out" in such case shouldn't be a common option at all too. Why? Because a track - is a peace of art (eww, I know). It may fade out by itself: fade out quickly, fade out slowly or end with a "big boom". I honestly think that in such scenarios there is no need in adding any types of "fade_out" but nevertheless there should be smooth transition. There should be a a sort of segue, a seamless change between one song and another. So, yeah, a kind of overlapping must be done without any fades. So it's not a crossfade, but an overlap.

@Moonbase59 has came up with a segue-like example here https://github.com/AzuraCast/AzuraCast/discussions/6252#discussioncomment-8362057 with a link to "segue" thread on one forum https://yabb.jriver.com/interact/index.php?topic=44605.0

https://github.com/savonet/liquidsoap/issues/3701

RM-FM commented 9 months ago

@toots Don‘t get me wrong, please. I‘m perfectly fine with having a custom crossfade callback for sequence transitions in place. It just would be great if meta data would not be affected by the type of transition. We have smooth transitions now without any click/pop. Meta data update is working much more reliable than before. There seems to be only a very, very small gap somewhere. I‘m not even sure if it is only crossfade/sequence related - but most likely.

However, there was so much improvement, that we will try to overcome those few meta data gaps somehow and put it into production.

Thank you for the hard work!

RM-FM commented 9 months ago

I took notes of some clicks today while testing Liquidsoap 2.2.5+git@https://github.com/savonet/liquidsoap/commit/9f96e42658d99493b5560e38db997062d78706a2. Is it possible that Add workaround to 0. crossfade duration. is causing that? If so, we should revert that I guess. The missing meta data problem is an edge case for 0.0 crossfades only and should not bring back clicks/pops under any circumstances.

I'm currently testing with official 2.2.4 and crossfade duration set to minimum 0.1 for all of our tracks. Same for fade out. This works perfectly fine and solved, as expected, the issue with the meta data edge case. The only thing I'm still struggling a bit with, are the 0.1 fade in's on some tracks. I'm playing around here with a customer crossfade callback now using the fade curve and delay as well. What I'd like to achieve is basically this:

1st curve for fade-ins / 2nd one for fade-outs Drawing

toots commented 9 months ago

I took notes of some clicks today while testing Liquidsoap 2.2.5+git@9f96e42. Is it possible that Add workaround to 0. crossfade duration. is causing that? If so, we should revert that I guess. The missing meta data problem is an edge case for 0.0 crossfades only and should not bring back clicks/pops under any circumstances.

I'm currently testing with official 2.2.4 and crossfade duration set to minimum 0.1 for all of our tracks. Same for fade out. This works perfectly fine and solved, as expected, the issue with the meta data edge case. The only thing I'm still struggling a bit with, are the 0.1 fade in's on some tracks. I'm playing around here with a customer crossfade callback now using the fade curve and delay as well. What I'd like to achieve is basically this:

1st curve for fade-ins / 2nd one for fade-outs Drawing

annotate:liq_cross_duration=5.,liq_fade_out_type="exp",liq_fade_out_delay=2.5,liq_fade_out=2.5:/path/to/track.mp3
annotate:liq_fade_in_delay=0.,liq_fade_in=2.5,liq_fade_in_delay="log":/path/to/other-track.mp3

Gives:

plot

toots commented 9 months ago

@RM-FM Please let me know if you have a way to reproduce the clicks on 2.2.5

toots commented 9 months ago

So, yeah, moving forward, I would recommend keeping crossfade duration to a fixed value unless really required, for instance for a short track coming up, and adjusting the crossfade relative positions using delay. For instance, if you want the fade.out to start 2s before the end of the track, keep crossfade duration to 5. but add a 3s delay to the fade.out and fade.in. This would allow the system to always operate on a reasonable amount of data while giving all flexibility.

This should also allow to implement @Moonbase59 smart dB trigger to precisely define where the fades should cross: https://github.com/savonet/liquidsoap/issues/3701

RM-FM commented 9 months ago

@RM-FM Please let me know if you have a way to reproduce the clicks on 2.2.5

Clicks were caused by fade.in with 0.0 values sometimes in 2.2.5. I tried to entirely remove fade.in using the add operator, but I didn't found a way to use delay of the new source without fade.in.

The meta data update still doesn't seem to be fixed entirely. It is still missing sometimes. I do not yet fully understand when and why...

RM-FM commented 9 months ago

Finally, I was able to reproduce it... Please take note of the line if cross_duration > 0.1 then in my crossfade callback. It avoids short crossfades and starts a sequence instead. If I change that line to allow short fades, meta data update is working.

Please find the log of a case where the meta data update failed (Choices => Cooler Than Me).

def clean_transition(old, new) =

  delay = 0.
  curve = 3.
  jingle_fade_duration = 3.
  jingle_mode = new.metadata["jingle_mode"]
  fade_in = float_of_string(new.metadata["liq_fade_in"])
  fade_out = float_of_string(old.metadata["liq_fade_out"])
  cross_duration = float_of_string(old.metadata["liq_cross_duration"])

  if jingle_mode == "true" then
    if jingle_fade_duration < fade_out then
      delay = fade_out - jingle_fade_duration
      fade_out = jingle_fade_duration
      curve = 5.
    end
    log(label="clean_transition","Preparing jingle transition. Fade out: #{fade_out}. Delay: #{delay}")
  end

  fade_in = 0.
  fade_out = max(fade_out, 0.1)  

  let fade.in = fun (s) -> fade.in(type="lin", duration=fade_in, delay=delay, s)
  let fade.out = fun (s) -> fade.out(type="exp", curve=curve, duration=fade_out, delay=delay, s)

  if cross_duration > 0.1 then
    log(label="clean_transition","Crossfade. Duration: #{cross_duration}. Fade out/in: #{fade_out}/#{fade_in}")
    add = fun (a, b) -> add(normalize=false, [b, a])
    add(fade.out(old.source), fade.in(new.source))
  else
    log(label="clean_transition","Sequence. Fade out/in: #{fade_out}/#{fade_in}")
    default = fun (a, b) -> (sequence([a, b]) : source)
    default(old.source, new.source)
  end

end

radio = cross(clean_transition,radio)
2024/02/09 20:05:32 [lang:3] API nextsong - Sending POST request to 'http://127.0.0.1:6010/api/internal/2/liquidsoap/nextsong' with body: 
2024/02/09 20:05:32 [lang:3] API nextsong - Response (200): annotate:title="Choices",artist="Dario Rodriguez, Iggy, Riku Rajamaa",duration="128.00",song_id="0c3914416a02c6dafdadb5e62d5f5933",media_id="12002",liq_cross_duration="0.10",liq_fade_in="0.00",liq_fade_out="0.00":media:Dario Rodriguez, Iggy, Riku Rajamaa - Choices.mp3
2024/02/09 20:05:32 [request.20:4] Pushed ["annotate:title=\"Choices\",artist=\"Dario Rodriguez, Iggy, Riku Rajamaa\",duration=\"128.00\",song_id=\"0c3914416a02c6dafdadb5e62d5f5933\",media_id=\"12002\",liq_cross_duration=\"0.10\",liq_fade_in=\"0.00\",liq_fade_out=\"0.00\":media:Dario Rodriguez, Iggy, Riku Rajamaa - Choices.mp3";...].
2024/02/09 20:05:32 [request.20:4] Resolving "annotate:title=\"Choices\",artist=\"Dario Rodriguez, Iggy, Riku Rajamaa\",duration=\"128.00\",song_id=\"0c3914416a02c6dafdadb5e62d5f5933\",media_id=\"12002\",liq_cross_duration=\"0.10\",liq_fade_in=\"0.00\",liq_fade_out=\"0.00\":media:Dario Rodriguez, Iggy, Riku Rajamaa - Choices.mp3" (timeout 30s)...
2024/02/09 20:05:32 [request.20:4] Pushed ["media:Dario Rodriguez, Iggy, Riku Rajamaa - Choices.mp3";...].
2024/02/09 20:05:32 [request.20:4] Resolving "media:Dario Rodriguez, Iggy, Riku Rajamaa - Choices.mp3" (timeout 30s)...
2024/02/09 20:05:32 [request.20:4] Pushed ["/var/azuracast/stations/dance/media/Dario Rodriguez, Iggy, Riku Rajamaa - Choices.mp3";...].
2024/02/09 20:05:32 [decoder.ogg:4] Unsupported MIME type for "/var/azuracast/stations/dance/media/Dario Rodriguez, Iggy, Riku Rajamaa - Choices.mp3": audio/mpeg!
2024/02/09 20:05:32 [decoder.ffmpeg:4] Unsupported file extension for "/var/azuracast/stations/dance/media/Dario Rodriguez, Iggy, Riku Rajamaa - Choices.mp3"!
2024/02/09 20:05:32 [decoder.mad:4] Unsupported file extension for "/var/azuracast/stations/dance/media/Dario Rodriguez, Iggy, Riku Rajamaa - Choices.mp3"!
2024/02/09 20:05:32 [decoder.flac:4] Unsupported MIME type for "/var/azuracast/stations/dance/media/Dario Rodriguez, Iggy, Riku Rajamaa - Choices.mp3": audio/mpeg!
2024/02/09 20:05:32 [decoder.mp4:4] Unsupported MIME type for "/var/azuracast/stations/dance/media/Dario Rodriguez, Iggy, Riku Rajamaa - Choices.mp3": audio/mpeg!
2024/02/09 20:05:32 [decoder.aac:4] Unsupported MIME type for "/var/azuracast/stations/dance/media/Dario Rodriguez, Iggy, Riku Rajamaa - Choices.mp3": audio/mpeg!
2024/02/09 20:05:32 [decoder.midi:4] Unsupported MIME type for "/var/azuracast/stations/dance/media/Dario Rodriguez, Iggy, Riku Rajamaa - Choices.mp3": audio/mpeg!
2024/02/09 20:05:32 [decoder.srt:4] Unsupported MIME type for "/var/azuracast/stations/dance/media/Dario Rodriguez, Iggy, Riku Rajamaa - Choices.mp3": audio/mpeg!
2024/02/09 20:05:32 [decoder.aiff:4] Unsupported MIME type for "/var/azuracast/stations/dance/media/Dario Rodriguez, Iggy, Riku Rajamaa - Choices.mp3": audio/mpeg!
2024/02/09 20:05:32 [decoder.wav:4] Unsupported MIME type for "/var/azuracast/stations/dance/media/Dario Rodriguez, Iggy, Riku Rajamaa - Choices.mp3": audio/mpeg!
2024/02/09 20:05:32 [decoder:4] Available decoders: ffmpeg (priority: 10), mad (priority: 1), image (priority: 1)
2024/02/09 20:05:32 [decoder:4] Trying decoder "ffmpeg"
2024/02/09 20:05:32 [decoder.ffmpeg:3] Requested content-type for "/var/azuracast/stations/dance/media/Dario Rodriguez, Iggy, Riku Rajamaa - Choices.mp3": {audio=pcm(stereo)}
2024/02/09 20:05:32 [decoder.ffmpeg:3] FFmpeg recognizes "/var/azuracast/stations/dance/media/Dario Rodriguez, Iggy, Riku Rajamaa - Choices.mp3" as audio: {codec: mp3, 44100Hz, 2 channel(s)}, video: {codec: mjpeg, 500x500, yuvj420p}
2024/02/09 20:05:32 [decoder.ffmpeg:3] Decoded content-type for "/var/azuracast/stations/dance/media/Dario Rodriguez, Iggy, Riku Rajamaa - Choices.mp3": {audio=pcm(stereo)}
2024/02/09 20:05:32 [decoder:4] Selected decoder ffmpeg for file "/var/azuracast/stations/dance/media/Dario Rodriguez, Iggy, Riku Rajamaa - Choices.mp3" with expected kind {audio=pcm(stereo)} and detected content {audio=pcm(stereo)}
2024/02/09 20:05:32 [decoder.video.metadata:4] Unsupported MIME type for "/var/azuracast/stations/dance/media/Dario Rodriguez, Iggy, Riku Rajamaa - Choices.mp3": audio/mpeg!
2024/02/09 20:05:32 [decoder.ogg.metadata:4] Unsupported MIME type for "/var/azuracast/stations/dance/media/Dario Rodriguez, Iggy, Riku Rajamaa - Choices.mp3": audio/mpeg!
2024/02/09 20:05:32 [decoder.image.metadata:4] Unsupported MIME type for "/var/azuracast/stations/dance/media/Dario Rodriguez, Iggy, Riku Rajamaa - Choices.mp3": audio/mpeg!
2024/02/09 20:05:32 [decoder.id3:4] Unsupported file extension for "/var/azuracast/stations/dance/media/Dario Rodriguez, Iggy, Riku Rajamaa - Choices.mp3"!
2024/02/09 20:05:32 [decoder.id3:4] Unsupported file extension for "/var/azuracast/stations/dance/media/Dario Rodriguez, Iggy, Riku Rajamaa - Choices.mp3"!
2024/02/09 20:05:32 [cross:3] Analysis: -38.445325dB / -9.000851dB (2.64s / 2.68s)
2024/02/09 20:05:32 [decoder.id3:4] Unsupported file extension for "/var/azuracast/stations/dance/media/Dario Rodriguez, Iggy, Riku Rajamaa - Choices.mp3"!
2024/02/09 20:05:32 [decoder.flac.metadata:4] Unsupported MIME type for "/var/azuracast/stations/dance/media/Dario Rodriguez, Iggy, Riku Rajamaa - Choices.mp3": audio/mpeg!
2024/02/09 20:05:32 [cross:3] Computing crossfade duration over overlapping 2.64s buffered data at start and end.
2024/02/09 20:05:32 [metadata.mp4:4] Unsupported MIME type for "/var/azuracast/stations/dance/media/Dario Rodriguez, Iggy, Riku Rajamaa - Choices.mp3": audio/mpeg!
2024/02/09 20:05:32 [clean_transition:3] Preparing jingle transition. Fade out: 2.7. Delay: 0.
2024/02/09 20:05:32 [decoder.ffmpeg:4] Unsupported file extension for "/var/azuracast/stations/dance/media/Dario Rodriguez, Iggy, Riku Rajamaa - Choices.mp3"!
2024/02/09 20:05:32 [clean_transition:3] Crossfade. Duration: 2.7. Fade out/in: 2.7/0.
2024/02/09 20:05:32 [source:4] Source sequence.7 gets up with content type: {audio=pcm(stereo)}.
2024/02/09 20:05:32 [source:4] Source source.17 gets up with content type: {audio=pcm(stereo)}.
2024/02/09 20:05:32 [source.17:3] Content type is {audio=pcm(stereo)}.
2024/02/09 20:05:32 [source:4] Source audio.add.4 gets up with content type: {audio=pcm(stereo)}.
2024/02/09 20:05:32 [audio.add.4:3] Content type is {audio=pcm(stereo)}.
2024/02/09 20:05:32 [source:4] Source fade_in.4 gets up with content type: {audio=pcm(stereo)}.
2024/02/09 20:05:32 [fade_in.4:3] Content type is {audio=pcm(stereo)}.
2024/02/09 20:05:32 [source:4] Source fade_scale.4 gets up with content type: {audio=pcm(stereo)}.
2024/02/09 20:05:32 [fade_scale.4:3] Content type is {audio=pcm(stereo)}.
2024/02/09 20:05:32 [source:4] Source track_amplify.8 gets up with content type: {audio=pcm(stereo)}.
2024/02/09 20:05:32 [track_amplify.8:3] Content type is {audio=pcm(stereo)}.
2024/02/09 20:05:32 [source:4] Source sequence.6 gets up with content type: {audio=pcm(stereo)}.
2024/02/09 20:05:32 [source:4] Source blank.5 gets up with content type: {audio=pcm(stereo)}.
2024/02/09 20:05:32 [blank.5:3] Content type is {audio=pcm(stereo)}.
2024/02/09 20:05:32 [source:4] Source on_metadata.8 gets up with content type: {audio=pcm(stereo)}.
2024/02/09 20:05:32 [on_metadata.8:3] Content type is {audio=pcm(stereo)}.
2024/02/09 20:05:32 [source:4] Source on_track.10 gets up with content type: {audio=pcm(stereo)}.
2024/02/09 20:05:32 [on_track.10:3] Content type is {audio=pcm(stereo)}.
2024/02/09 20:05:32 [source:4] Source cross_after.6 gets up with content type: {audio=pcm(stereo)}.
2024/02/09 20:05:32 [cross_after.6:3] Content type is {audio=pcm(stereo)}.
2024/02/09 20:05:32 [source:4] Source buffer.13 gets up with content type: {audio=pcm(stereo)}.
2024/02/09 20:05:32 [buffer.13:3] Content type is {audio=pcm(stereo)}.
2024/02/09 20:05:32 [source:4] Source fade_out.4 gets up with content type: {audio=pcm(stereo)}.
2024/02/09 20:05:32 [fade_out.4:3] Content type is {audio=pcm(stereo)}.
2024/02/09 20:05:32 [source:4] Source track_amplify.7 gets up with content type: {audio=pcm(stereo)}.
2024/02/09 20:05:32 [track_amplify.7:3] Content type is {audio=pcm(stereo)}.
2024/02/09 20:05:32 [source:4] Source on_frame.7 gets up with content type: {audio=pcm(stereo)}.
2024/02/09 20:05:32 [on_frame.7:3] Content type is {audio=pcm(stereo)}.
2024/02/09 20:05:32 [source:4] Source on_metadata.7 gets up with content type: {audio=pcm(stereo)}.
2024/02/09 20:05:32 [on_metadata.7:3] Content type is {audio=pcm(stereo)}.
2024/02/09 20:05:32 [source:4] Source on_track.9 gets up with content type: {audio=pcm(stereo)}.
2024/02/09 20:05:32 [on_track.9:3] Content type is {audio=pcm(stereo)}.
2024/02/09 20:05:32 [source:4] Source cross_before.6 gets up with content type: {audio=pcm(stereo)}.
2024/02/09 20:05:32 [cross_before.6:3] Content type is {audio=pcm(stereo)}.
2024/02/09 20:05:32 [source:4] Source buffer.11 gets up with content type: {audio=pcm(stereo)}.
2024/02/09 20:05:32 [buffer.11:3] Content type is {audio=pcm(stereo)}.
2024/02/09 20:05:32 [source:4] Source cross_after_tail gets up with content type: {audio=pcm(stereo)}.
2024/02/09 20:05:32 [cross_after_tail:3] Content type is {audio=pcm(stereo)}.
2024/02/09 20:05:32 [cross_before.6:4] Setting fade out to default duration: 2.7s, delay: 0.s, type: exp, curve: 3.
2024/02/09 20:05:32 [cross_before.6:4] Fading out with type: exp, curve: 3., delay: 0.s, duration: 2.60040816327s and 2.60040816327s remaining.
2024/02/09 20:05:32 [cross_after.6:4] Setting fade in to default duration: 0.s, delay: 0.s, type: lin, curve: null
2024/02/09 20:05:32 [cross_after.6:4] Fading in with type: lin, curve: default, delay: 0.s and duration: 0.s.
2024/02/09 20:05:32 [lang:3] API feedback - Sending POST request to 'http://127.0.0.1:6010/api/internal/2/liquidsoap/feedback' with body: {
2024/02/09 20:05:32 [lang:3]   "song_id": "827aa2aeadb831c28eb78ad6ead2cf57",
2024/02/09 20:05:32 [lang:3]   "playlist_id": "21",
2024/02/09 20:05:32 [lang:3]   "media_id": "11930"
2024/02/09 20:05:32 [lang:3] }
2024/02/09 20:05:32 [metadata.flac:4] Unsupported MIME type for "/var/azuracast/stations/dance/media/Dario Rodriguez, Iggy, Riku Rajamaa - Choices.mp3": audio/mpeg!
2024/02/09 20:05:32 [decoder.ogg:4] Unsupported MIME type for "/var/azuracast/stations/dance/media/Dario Rodriguez, Iggy, Riku Rajamaa - Choices.mp3": audio/mpeg!
2024/02/09 20:05:32 [decoder.taglib:4] Unsupported file extension for "/var/azuracast/stations/dance/media/Dario Rodriguez, Iggy, Riku Rajamaa - Choices.mp3"!
2024/02/09 20:05:32 [next_song:4] Queued 1 requests
2024/02/09 20:05:32 [lang:3] API feedback - Response (200): true
2024/02/09 20:05:35 [buffer.11:4] End of track.
2024/02/09 20:05:35 [buffer.11:4] Buffer emptied, buffering needed.
2024/02/09 20:05:35 [buffer.13:4] End of track.
2024/02/09 20:05:35 [buffer.13:4] Buffer emptied, buffering needed.
2024/02/09 20:05:35 [cross_after_tail:4] End of track.
2024/02/09 20:05:35 [cross_after_tail:4] Buffer emptied, buffering needed.
2024/02/09 20:05:35 [source:4] Source sequence.7 gets down.
2024/02/09 20:05:35 [source:4] Source source.17 gets down.
2024/02/09 20:05:35 [source:4] Source audio.add.4 gets down.
2024/02/09 20:05:35 [source:4] Source fade_in.4 gets down.
2024/02/09 20:05:35 [source:4] Source fade_scale.4 gets down.
2024/02/09 20:05:35 [source:4] Source track_amplify.8 gets down.
2024/02/09 20:05:35 [source:4] Source sequence.6 gets down.
2024/02/09 20:05:35 [source:4] Source blank.5 gets down.
2024/02/09 20:05:35 [source:4] Source on_metadata.8 gets down.
2024/02/09 20:05:35 [source:4] Source on_track.10 gets down.
2024/02/09 20:05:35 [source:4] Source cross_after.6 gets down.
2024/02/09 20:05:35 [source:4] Source buffer.13 gets down.
2024/02/09 20:05:35 [source:4] Source fade_out.4 gets down.
2024/02/09 20:05:35 [source:4] Source track_amplify.7 gets down.
2024/02/09 20:05:35 [source:4] Source on_frame.7 gets down.
2024/02/09 20:05:35 [source:4] Source on_metadata.7 gets down.
2024/02/09 20:05:35 [source:4] Source on_track.9 gets down.
2024/02/09 20:05:35 [source:4] Source cross_before.6 gets down.
2024/02/09 20:05:35 [source:4] Source buffer.11 gets down.
2024/02/09 20:05:35 [source:4] Source cross_after_tail gets down.
2024/02/09 20:05:35 [cross:4] Buffering end of track...
2024/02/09 20:05:35 [cross:4] More buffering will be needed.
2024/02/09 20:05:38 [request.19:4] Cueing out at position: 6.40
2024/02/09 20:05:38 [next_song:4] Finished with "/var/azuracast/stations/dance/media/radiomonster.fm_-_dropin_01.mp3".
2024/02/09 20:05:38 [request.19:4] Request finished.
2024/02/09 20:05:38 [next_song:4] Remaining 0 requests
2024/02/09 20:05:38 [next_song:3] Prepared "/var/azuracast/stations/dance/media/Dario Rodriguez, Iggy, Riku Rajamaa - Choices.mp3" (RID 20).
2024/02/09 20:05:38 [cross:4] Setting crossfade duration to 5.00s
2024/02/09 20:05:38 [request.20:4] Currently on air.
2024/02/09 20:05:38 [cross:4] Overriding crossfade duration from metadata liq_cross_duration
2024/02/09 20:05:38 [cross:4] Setting crossfade duration to 0.10s
2024/02/09 20:05:38 [cross:3] Analysis: -11.069297dB / -9.656699dB (0.08s / 0.08s)
2024/02/09 20:05:38 [cross:3] Computing crossfade duration over overlapping 0.08s buffered data at start and end.
2024/02/09 20:05:38 [clean_transition:3] Sequence. Fade out/in: 0.1/0.
2024/02/09 20:05:38 [lang:3] API nextsong - Sending POST request to 'http://127.0.0.1:6010/api/internal/2/liquidsoap/nextsong' with body: 
2024/02/09 20:05:38 [source:4] Source sequence.8 gets up with content type: {audio=pcm(stereo)}.
2024/02/09 20:05:38 [source:4] Source cross_before.7 gets up with content type: {audio=pcm(stereo)}.
2024/02/09 20:05:38 [cross_before.7:3] Content type is {audio=pcm(stereo)}.
2024/02/09 20:05:38 [source:4] Source buffer.14 gets up with content type: {audio=pcm(stereo)}.
2024/02/09 20:05:38 [buffer.14:3] Content type is {audio=pcm(stereo)}.
2024/02/09 20:05:38 [source:4] Source cross_after.7 gets up with content type: {audio=pcm(stereo)}.
2024/02/09 20:05:38 [cross_after.7:3] Content type is {audio=pcm(stereo)}.
2024/02/09 20:05:38 [source:4] Source buffer.15 gets up with content type: {audio=pcm(stereo)}.
2024/02/09 20:05:38 [buffer.15:3] Content type is {audio=pcm(stereo)}.
2024/02/09 20:05:38 [lang:3] API nextsong - Response (200): annotate:title="Cooler Than Me",artist="Lucky Luke",duration="180.00",song_id="13f4f7a578d1c783712f69ebcffa17bf",media_id="4840",liq_cross_duration="3.00",liq_fade_in="0.00",liq_fade_out="3.00",liq_cue_in="2.20",liq_cue_out="178.40",playlist_id="10":media:Lucky Luke - Cooler Than Me.mp3
2024/02/09 20:05:38 [request.21:4] Pushed ["annotate:title=\"Cooler Than Me\",artist=\"Lucky Luke\",duration=\"180.00\",song_id=\"13f4f7a578d1c783712f69ebcffa17bf\",media_id=\"4840\",liq_cross_duration=\"3.00\",liq_fade_in=\"0.00\",liq_fade_out=\"3.00\",liq_cue_in=\"2.20\",liq_cue_out=\"178.40\",playlist_id=\"10\":media:Lucky Luke - Cooler Than Me.mp3";...].
2024/02/09 20:05:38 [request.21:4] Resolving "annotate:title=\"Cooler Than Me\",artist=\"Lucky Luke\",duration=\"180.00\",song_id=\"13f4f7a578d1c783712f69ebcffa17bf\",media_id=\"4840\",liq_cross_duration=\"3.00\",liq_fade_in=\"0.00\",liq_fade_out=\"3.00\",liq_cue_in=\"2.20\",liq_cue_out=\"178.40\",playlist_id=\"10\":media:Lucky Luke - Cooler Than Me.mp3" (timeout 30s)...
2024/02/09 20:05:38 [request.21:4] Pushed ["media:Lucky Luke - Cooler Than Me.mp3";...].
2024/02/09 20:05:38 [request.21:4] Resolving "media:Lucky Luke - Cooler Than Me.mp3" (timeout 30s)...
2024/02/09 20:05:38 [request.21:4] Pushed ["/var/azuracast/stations/dance/media/Lucky Luke - Cooler Than Me.mp3";...].
2024/02/09 20:05:38 [decoder.ogg:4] Unsupported MIME type for "/var/azuracast/stations/dance/media/Lucky Luke - Cooler Than Me.mp3": audio/mpeg!
2024/02/09 20:05:38 [decoder.ffmpeg:4] Unsupported file extension for "/var/azuracast/stations/dance/media/Lucky Luke - Cooler Than Me.mp3"!
2024/02/09 20:05:38 [decoder.mad:4] Unsupported file extension for "/var/azuracast/stations/dance/media/Lucky Luke - Cooler Than Me.mp3"!
2024/02/09 20:05:38 [decoder.flac:4] Unsupported MIME type for "/var/azuracast/stations/dance/media/Lucky Luke - Cooler Than Me.mp3": audio/mpeg!
2024/02/09 20:05:38 [decoder.mp4:4] Unsupported MIME type for "/var/azuracast/stations/dance/media/Lucky Luke - Cooler Than Me.mp3": audio/mpeg!
2024/02/09 20:05:38 [decoder.aac:4] Unsupported MIME type for "/var/azuracast/stations/dance/media/Lucky Luke - Cooler Than Me.mp3": audio/mpeg!
2024/02/09 20:05:38 [decoder.midi:4] Unsupported MIME type for "/var/azuracast/stations/dance/media/Lucky Luke - Cooler Than Me.mp3": audio/mpeg!
2024/02/09 20:05:38 [decoder.srt:4] Unsupported MIME type for "/var/azuracast/stations/dance/media/Lucky Luke - Cooler Than Me.mp3": audio/mpeg!
2024/02/09 20:05:38 [decoder.aiff:4] Unsupported MIME type for "/var/azuracast/stations/dance/media/Lucky Luke - Cooler Than Me.mp3": audio/mpeg!
2024/02/09 20:05:38 [decoder.wav:4] Unsupported MIME type for "/var/azuracast/stations/dance/media/Lucky Luke - Cooler Than Me.mp3": audio/mpeg!
2024/02/09 20:05:38 [decoder:4] Available decoders: ffmpeg (priority: 10), mad (priority: 1), image (priority: 1)
2024/02/09 20:05:38 [decoder:4] Trying decoder "ffmpeg"
2024/02/09 20:05:38 [decoder.ffmpeg:3] Requested content-type for "/var/azuracast/stations/dance/media/Lucky Luke - Cooler Than Me.mp3": {audio=pcm(stereo)}
2024/02/09 20:05:38 [decoder.ffmpeg:3] FFmpeg recognizes "/var/azuracast/stations/dance/media/Lucky Luke - Cooler Than Me.mp3" as audio: {codec: mp3, 44100Hz, 2 channel(s)}, video: {codec: mjpeg, 500x500, yuvj444p}
2024/02/09 20:05:38 [decoder.ffmpeg:3] Decoded content-type for "/var/azuracast/stations/dance/media/Lucky Luke - Cooler Than Me.mp3": {audio=pcm(stereo)}
2024/02/09 20:05:38 [decoder:4] Selected decoder ffmpeg for file "/var/azuracast/stations/dance/media/Lucky Luke - Cooler Than Me.mp3" with expected kind {audio=pcm(stereo)} and detected content {audio=pcm(stereo)}
2024/02/09 20:05:38 [decoder.video.metadata:4] Unsupported MIME type for "/var/azuracast/stations/dance/media/Lucky Luke - Cooler Than Me.mp3": audio/mpeg!
2024/02/09 20:05:38 [decoder.ogg.metadata:4] Unsupported MIME type for "/var/azuracast/stations/dance/media/Lucky Luke - Cooler Than Me.mp3": audio/mpeg!
2024/02/09 20:05:38 [decoder.image.metadata:4] Unsupported MIME type for "/var/azuracast/stations/dance/media/Lucky Luke - Cooler Than Me.mp3": audio/mpeg!
2024/02/09 20:05:38 [decoder.id3:4] Unsupported file extension for "/var/azuracast/stations/dance/media/Lucky Luke - Cooler Than Me.mp3"!
2024/02/09 20:05:38 [decoder.id3:4] Unsupported file extension for "/var/azuracast/stations/dance/media/Lucky Luke - Cooler Than Me.mp3"!
2024/02/09 20:05:38 [decoder.id3:4] Unsupported file extension for "/var/azuracast/stations/dance/media/Lucky Luke - Cooler Than Me.mp3"!
2024/02/09 20:05:38 [decoder.flac.metadata:4] Unsupported MIME type for "/var/azuracast/stations/dance/media/Lucky Luke - Cooler Than Me.mp3": audio/mpeg!
2024/02/09 20:05:38 [metadata.mp4:4] Unsupported MIME type for "/var/azuracast/stations/dance/media/Lucky Luke - Cooler Than Me.mp3": audio/mpeg!
2024/02/09 20:05:38 [decoder.ffmpeg:4] Unsupported file extension for "/var/azuracast/stations/dance/media/Lucky Luke - Cooler Than Me.mp3"!
2024/02/09 20:05:38 [buffer.14:4] Buffer emptied, buffering needed.
2024/02/09 20:05:38 [metadata.flac:4] Unsupported MIME type for "/var/azuracast/stations/dance/media/Lucky Luke - Cooler Than Me.mp3": audio/mpeg!
2024/02/09 20:05:38 [decoder.ogg:4] Unsupported MIME type for "/var/azuracast/stations/dance/media/Lucky Luke - Cooler Than Me.mp3": audio/mpeg!
2024/02/09 20:05:38 [decoder.taglib:4] Unsupported file extension for "/var/azuracast/stations/dance/media/Lucky Luke - Cooler Than Me.mp3"!
2024/02/09 20:05:38 [next_song:4] Queued 1 requests
2024/02/09 20:05:39 [lang:3] API feedback - Sending POST request to 'http://127.0.0.1:6010/api/internal/2/liquidsoap/feedback' with body: {
2024/02/09 20:05:39 [lang:3]   "song_id": "0c3914416a02c6dafdadb5e62d5f5933",
2024/02/09 20:05:39 [lang:3]   "playlist_id": "",
2024/02/09 20:05:39 [lang:3]   "media_id": "12002"
2024/02/09 20:05:39 [lang:3] }
2024/02/09 20:05:39 [buffer.15:4] Buffer emptied, buffering needed.
2024/02/09 20:05:39 [lang:3] API feedback - Response (200): true
2024/02/09 20:05:39 [source:4] Source sequence.8 gets down.
2024/02/09 20:05:39 [source:4] Source cross_before.7 gets down.
2024/02/09 20:05:39 [source:4] Source buffer.14 gets down.
2024/02/09 20:05:39 [source:4] Source cross_after.7 gets down.
2024/02/09 20:05:39 [source:4] Source buffer.15 gets down.
2024/02/09 20:05:39 [cross:4] Buffering end of track...
2024/02/09 20:05:39 [cross:4] More buffering will be needed.
2024/02/09 20:07:46 [decoder:2] Decoding "/var/azuracast/stations/dance/media/Dario Rodriguez, Iggy, Riku Rajamaa - Choices.mp3" ended: Ffmpeg_decoder.End_of_file.
2024/02/09 20:07:46 [decoder:4] Raised at Ffmpeg_decoder.mk_decoder.(fun).f in file "src/core/decoder/ffmpeg_decoder.ml", line 890, characters 12-29
2024/02/09 20:07:46 [decoder:4] Called from Decoder.mk_decoder.fill in file "src/core/decoder/decoder.ml", line 505, characters 10-31
2024/02/09 20:07:46 [decoder:4] 
2024/02/09 20:07:46 [next_song:4] Finished with "/var/azuracast/stations/dance/media/Dario Rodriguez, Iggy, Riku Rajamaa - Choices.mp3".
2024/02/09 20:07:46 [request.20:4] Request finished.
2024/02/09 20:07:46 [next_song:4] Remaining 0 requests
2024/02/09 20:07:46 [request.21:4] Cueing in to position: 2.20
2024/02/09 20:07:46 [next_song:3] Prepared "/var/azuracast/stations/dance/media/Lucky Luke - Cooler Than Me.mp3" (RID 21).
2024/02/09 20:07:46 [cross:4] Setting crossfade duration to 5.00s
2024/02/09 20:07:47 [request.21:4] Currently on air.
2024/02/09 20:07:47 [cross:4] Overriding crossfade duration from metadata liq_cross_duration
2024/02/09 20:07:47 [cross:4] Setting crossfade duration to 3.00s
2024/02/09 20:07:47 [lang:3] API nextsong - Sending POST request to 'http://127.0.0.1:6010/api/internal/2/liquidsoap/nextsong' with body: 
2024/02/09 20:07:47 [cross:3] Analysis: -14.974436dB / -35.201321dB (0.09s / 0.11s)
2024/02/09 20:07:47 [cross:3] Computing crossfade duration over overlapping 0.09s buffered data at start and end.
2024/02/09 20:07:47 [clean_transition:3] Sequence. Fade out/in: 0.1/0.
2024/02/09 20:07:47 [source:4] Source sequence.10 gets up with content type: {audio=pcm(stereo)}.
2024/02/09 20:07:47 [source:4] Source sequence.9 gets up with content type: {audio=pcm(stereo)}.
2024/02/09 20:07:47 [source:4] Source cross_before.8 gets up with content type: {audio=pcm(stereo)}.
2024/02/09 20:07:47 [cross_before.8:3] Content type is {audio=pcm(stereo)}.
2024/02/09 20:07:47 [source:4] Source buffer.16 gets up with content type: {audio=pcm(stereo)}.
2024/02/09 20:07:47 [buffer.16:3] Content type is {audio=pcm(stereo)}.
2024/02/09 20:07:47 [source:4] Source cross_after.8 gets up with content type: {audio=pcm(stereo)}.
2024/02/09 20:07:47 [cross_after.8:3] Content type is {audio=pcm(stereo)}.
2024/02/09 20:07:47 [source:4] Source buffer.18 gets up with content type: {audio=pcm(stereo)}.
2024/02/09 20:07:47 [buffer.18:3] Content type is {audio=pcm(stereo)}.
2024/02/09 20:07:47 [source:4] Source cross_after_tail.2 gets up with content type: {audio=pcm(stereo)}.
2024/02/09 20:07:47 [cross_after_tail.2:3] Content type is {audio=pcm(stereo)}.
2024/02/09 20:07:47 [lang:3] API nextsong - Response (200): annotate:title="Strangers",artist="Kenya Grace",duration="173.00",song_id="c0970cffd695f1379bdccd6614711f27",media_id="4544",liq_cross_duration="3.00",liq_fade_in="0.00",liq_fade_out="3.00",liq_cue_in="0.00",playlist_id="10":media:Kenya Grace - Strangers.mp3
2024/02/09 20:07:47 [request.22:4] Pushed ["annotate:title=\"Strangers\",artist=\"Kenya Grace\",duration=\"173.00\",song_id=\"c0970cffd695f1379bdccd6614711f27\",media_id=\"4544\",liq_cross_duration=\"3.00\",liq_fade_in=\"0.00\",liq_fade_out=\"3.00\",liq_cue_in=\"0.00\",playlist_id=\"10\":media:Kenya Grace - Strangers.mp3";...].
2024/02/09 20:07:47 [request.22:4] Resolving "annotate:title=\"Strangers\",artist=\"Kenya Grace\",duration=\"173.00\",song_id=\"c0970cffd695f1379bdccd6614711f27\",media_id=\"4544\",liq_cross_duration=\"3.00\",liq_fade_in=\"0.00\",liq_fade_out=\"3.00\",liq_cue_in=\"0.00\",playlist_id=\"10\":media:Kenya Grace - Strangers.mp3" (timeout 30s)...
2024/02/09 20:07:47 [request.22:4] Pushed ["media:Kenya Grace - Strangers.mp3";...].
2024/02/09 20:07:47 [request.22:4] Resolving "media:Kenya Grace - Strangers.mp3" (timeout 30s)...
2024/02/09 20:07:47 [request.22:4] Pushed ["/var/azuracast/stations/dance/media/Kenya Grace - Strangers.mp3";...].
2024/02/09 20:07:47 [decoder.ogg:4] Unsupported MIME type for "/var/azuracast/stations/dance/media/Kenya Grace - Strangers.mp3": audio/mpeg!
2024/02/09 20:07:47 [decoder.ffmpeg:4] Unsupported file extension for "/var/azuracast/stations/dance/media/Kenya Grace - Strangers.mp3"!
2024/02/09 20:07:47 [decoder.mad:4] Unsupported file extension for "/var/azuracast/stations/dance/media/Kenya Grace - Strangers.mp3"!
2024/02/09 20:07:47 [decoder.flac:4] Unsupported MIME type for "/var/azuracast/stations/dance/media/Kenya Grace - Strangers.mp3": audio/mpeg!
2024/02/09 20:07:47 [decoder.mp4:4] Unsupported MIME type for "/var/azuracast/stations/dance/media/Kenya Grace - Strangers.mp3": audio/mpeg!
2024/02/09 20:07:47 [decoder.aac:4] Unsupported MIME type for "/var/azuracast/stations/dance/media/Kenya Grace - Strangers.mp3": audio/mpeg!
2024/02/09 20:07:47 [decoder.midi:4] Unsupported MIME type for "/var/azuracast/stations/dance/media/Kenya Grace - Strangers.mp3": audio/mpeg!
2024/02/09 20:07:47 [decoder.srt:4] Unsupported MIME type for "/var/azuracast/stations/dance/media/Kenya Grace - Strangers.mp3": audio/mpeg!
2024/02/09 20:07:47 [decoder.aiff:4] Unsupported MIME type for "/var/azuracast/stations/dance/media/Kenya Grace - Strangers.mp3": audio/mpeg!
2024/02/09 20:07:47 [decoder.wav:4] Unsupported MIME type for "/var/azuracast/stations/dance/media/Kenya Grace - Strangers.mp3": audio/mpeg!
2024/02/09 20:07:47 [decoder:4] Available decoders: ffmpeg (priority: 10), mad (priority: 1), image (priority: 1)
2024/02/09 20:07:47 [decoder:4] Trying decoder "ffmpeg"
2024/02/09 20:07:47 [decoder.ffmpeg:3] Requested content-type for "/var/azuracast/stations/dance/media/Kenya Grace - Strangers.mp3": {audio=pcm(stereo)}
2024/02/09 20:07:47 [decoder.ffmpeg:3] FFmpeg recognizes "/var/azuracast/stations/dance/media/Kenya Grace - Strangers.mp3" as audio: {codec: mp3, 44100Hz, 2 channel(s)}, video: {codec: mjpeg, 500x500, yuvj444p}
2024/02/09 20:07:47 [decoder.ffmpeg:3] Decoded content-type for "/var/azuracast/stations/dance/media/Kenya Grace - Strangers.mp3": {audio=pcm(stereo)}
2024/02/09 20:07:47 [decoder:4] Selected decoder ffmpeg for file "/var/azuracast/stations/dance/media/Kenya Grace - Strangers.mp3" with expected kind {audio=pcm(stereo)} and detected content {audio=pcm(stereo)}
2024/02/09 20:07:47 [decoder.video.metadata:4] Unsupported MIME type for "/var/azuracast/stations/dance/media/Kenya Grace - Strangers.mp3": audio/mpeg!
2024/02/09 20:07:47 [decoder.ogg.metadata:4] Unsupported MIME type for "/var/azuracast/stations/dance/media/Kenya Grace - Strangers.mp3": audio/mpeg!
2024/02/09 20:07:47 [decoder.image.metadata:4] Unsupported MIME type for "/var/azuracast/stations/dance/media/Kenya Grace - Strangers.mp3": audio/mpeg!
2024/02/09 20:07:47 [decoder.id3:4] Unsupported file extension for "/var/azuracast/stations/dance/media/Kenya Grace - Strangers.mp3"!
2024/02/09 20:07:47 [decoder.id3:4] Unsupported file extension for "/var/azuracast/stations/dance/media/Kenya Grace - Strangers.mp3"!
2024/02/09 20:07:47 [decoder.id3:4] Unsupported file extension for "/var/azuracast/stations/dance/media/Kenya Grace - Strangers.mp3"!
2024/02/09 20:07:47 [decoder.flac.metadata:4] Unsupported MIME type for "/var/azuracast/stations/dance/media/Kenya Grace - Strangers.mp3": audio/mpeg!
2024/02/09 20:07:47 [metadata.mp4:4] Unsupported MIME type for "/var/azuracast/stations/dance/media/Kenya Grace - Strangers.mp3": audio/mpeg!
2024/02/09 20:07:47 [decoder.ffmpeg:4] Unsupported file extension for "/var/azuracast/stations/dance/media/Kenya Grace - Strangers.mp3"!
2024/02/09 20:07:47 [metadata.flac:4] Unsupported MIME type for "/var/azuracast/stations/dance/media/Kenya Grace - Strangers.mp3": audio/mpeg!
2024/02/09 20:07:47 [decoder.ogg:4] Unsupported MIME type for "/var/azuracast/stations/dance/media/Kenya Grace - Strangers.mp3": audio/mpeg!
2024/02/09 20:07:47 [decoder.taglib:4] Unsupported file extension for "/var/azuracast/stations/dance/media/Kenya Grace - Strangers.mp3"!
2024/02/09 20:07:47 [next_song:4] Queued 1 requests
2024/02/09 20:07:47 [buffer.16:4] End of track.
2024/02/09 20:07:47 [buffer.16:4] Buffer emptied, buffering needed.
2024/02/09 20:07:47 [cross_after_tail.2:4] End of track.
2024/02/09 20:07:47 [cross_after_tail.2:4] Buffer emptied, buffering needed.
2024/02/09 20:07:47 [source:4] Source sequence.10 gets down.
2024/02/09 20:07:47 [source:4] Source sequence.9 gets down.
2024/02/09 20:07:47 [source:4] Source cross_before.8 gets down.
2024/02/09 20:07:47 [source:4] Source buffer.16 gets down.
2024/02/09 20:07:47 [source:4] Source cross_after.8 gets down.
2024/02/09 20:07:47 [source:4] Source buffer.18 gets down.
2024/02/09 20:07:47 [source:4] Source cross_after_tail.2 gets down.
2024/02/09 20:07:47 [cross:4] Buffering end of track...
2024/02/09 20:07:47 [cross:4] More buffering will be needed.
2024/02/09 20:07:47 [metadata_map.3:3] Inserting missing metadata.
toots commented 9 months ago

Yeah we identified the problem with @Moonbase59, we have to do a hotfix re-release of v2.2.4: https://github.com/savonet/liquidsoap/pull/3728

RM-FM commented 9 months ago

Yeah we identified the problem with @Moonbase59, we have to do a hotfix re-release of v2.2.4: #3728

Confirm that 2.2.4 Hotfix also solved the issue I took note of. However, I'll stay with 0.1 crossfading without fade out, instead of a sequence. It just sounds smoother :-)