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.41k stars 130 forks source link

Rotate playlist: 1 turns into 2, sometimes 1 #1651

Open Hyperjase74 opened 3 years ago

Hyperjase74 commented 3 years ago

I have this code inside my Liquidsoap config (please note; I'm using this inside Azuracast, but prefer the controlability of the config file). Version of Liquidsoap is 1.4.4 on Ubuntu 20.04 LTS.

radio = switch([(predicate.activates({ 0m-5m }), playlist_showstart), ({ true }, rotate(weights=[2,1,2], [playlist_music,playlist_jingles,playlist_ads]))])

Now specifically the rotate part of this command; rotate(weights=[2,1,2], [playlist_music,playlist_jingles,playlist_ads])

It's fairly simple - two songs, one jingle, then two ads - but I'm finding the one jingle can become two - they are quite short tracks, but sometimes it will play one, sometimes it will play two.

Is this associated to issue #1625 & #1484

Also; is it possible to change this so it would be song; jingle; ad; jingle [then loop]? I did try this and it didn't like it.

oranjebloom commented 3 years ago

I can confirm that this happens for me too - with very short jingle-type tracks, 1 play becomes two sometimes. My rotate config is a little different. Nevertheless, same issue. In my case, it is the samples that get played twice. These are usually only about 5 to 10 seconds long. Using version 1.4.4 too on Debian (opam install)

ostrackloop = rotate([
  fresh,general,
  fresh,general,
  fresh,general,
  fresh,general,
  fresh,general,
  fresh,general,
  samples,archived
])
Hyperjase74 commented 3 years ago

In my case it will be two different jingles so couldn’t be the sample issue, it’s slightly frustrating as to what’s causing it.

oranjebloom commented 3 years ago

My jingles are named samples... and I have 25 of them. It happens as you described. Sometimes it will only play one, sometimes it will play two in a row.

Hyperjase74 commented 3 years ago

@oranjebloom yes, my mistunderstaning I see now you have specifically named samples - the one thing I've noticed it is the shorter tracks that are played twice, like it's expecting a minimum length of time before continuing.

oranjebloom commented 3 years ago

yep, my thoughts exactly.

MrChrisCool commented 3 years ago

Same here, seems not working as expected... Play a Jingle then only music for hours then sometimes a jingle...

My config :

enable_replaygain_metadata()
music = playlist("/usr/local/var/zik/playlists/youpi.m3u")
music = amplify(1.,override="replay_gain",music)
jingles = playlist("/usr/local/var/zik/playlists/jingles.m3u")
jingles = amplify(1.,override="replay_gain",jingles)
liners = playlist("/usr/local/var/zik/playlists/liners.m3u")
liners = amplify(1.,override="replay_gain",liners)
security = single("/usr/local/var/zik/fail/vache.ogg")
lgt = liners
lgt = random(weights = [1, 2],[lgt, jingles])
lgt = random(weights = [1, 3],[lgt, music])
lgt = fallback(track_sensitive = false, [lgt, security])

Maybe I wrote something wrong... I try to have 3 song for one jingle/liner with 2 jingle for one liner... I will try Hyperjase74 way of writing rotate :

rotate(weights=[1,3,1,3,1,3], [jingles,music,jingles,music,liners,music])

awfull but should work...

weird...

FlorianReiterer commented 3 years ago

@Hyperjase74 's workaround didn't work for me unfortunately.

Musik = playlist("reload_mode="watch",check_next=check,/Musik")
Musik = crossfade(smart=true, width=4., high=-25., medium=-39., Musik)
Klassik = playlist("reload_mode="watch",check_next=check,/Klassik")

music = rotate ([Musik, Musik, Klassik])

using liquidsoap 2.0.1. The tracks to rotate are lenghty music files.

stale[bot] commented 2 years ago

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

stale[bot] commented 2 years ago

This issue was closed for lack of activity. If you believe that it is still relevant, please confirm that it applies to the latest released version of liquidsoap and re-open the ticket. Thanks!