playlist en fallback et passer au morceau suivant
  • Salut tout le monde ! Qui parmi vous utilise une playlist en fallback et parvient à faire en sorte que quand cette playlist est interrompue par un show airtime ou un live (via master source par ex), lorsqu'elle reprend c'est sur un nouveau morceau et non le morceau qui a été interrompu à l'endroit où il a été interrompu ?
    Merci par avance pour votre aide :)
  • 10 Comments sorted by
  • I used fallback extensively.
    The way of getting this to transition out the old song and then move to the new songs is through a function in liquidsoap.

    Airtime have a Utils script for this (Fade and Transitions) but all my test so far and "tampering" with this script,gives me headache,so I have not wrote anything on this.

    If you have suggestions I will collaborate with you to achieve to this

    When the fall back is interrupted by Airtime Schedule ,when  you go back to the fall back it normally should be a new song because, the script continues to load and play carts but the output will now be "s" and not default.

    If you are hearing the same song then there is a problem.


    Voisses

    Could you write the question in English please,Thanks
    Anyone reading this a find it funny about my grammar , I make no apology ,Go get a translator.
    "The Problem with education today is that it takes a university degree to switch on a light bulb"
    "You learn from your mistakes but wise people learn from others mistakes avoid Making mistakes there is not sufficient rooms to make them"
    "Innuendo","If's","Assumptions" and "Fear" are for politician.Who,What,where,When and How are for those seeking knowledge and care about Humanity.
    "I might be in Mud but that does not Make me a Wild Hog(pig)"
    “Any intelligent fool can make things bigger, more complex, and more violent. It takes a touch of genius — and a lot of courage to move in the opposite direction.”
    "The only thing that remains constant is change itself"
    May the force be with you,until our path or destiny bring us in tandem.
  • Hi Voisses. My problem is the following : I would like that the fallback, when it starts, starts at the beginning of a new track. Currently, when the fallback starts, it starts where it as been interrupted. This is not very 'smooth' because I think it would be better that after a planned show (which I usually make end with a jingle) a new track starts insted of the middle the previous intterupted track. I read about the liquidsoap fallback.skip command and it seems to be what I need, but I don't know how to apply it to work properly. I hope I explain it clearly enough. I'm still on Airtime 2.4.1, installed on Debian Wheezy. Here is the only changes I did on my ls_script.liq :

    ########modifs pour fallback############


    # playlist globale

    global_playlist = playlist("/home/airtime/playlist.m3u")
    global_playlist = audio_to_stereo(global_playlist)

    # Some jingles
    jingles = playlist("/home/airtime/jingles.m3u")

    # Now add some jingles
    radio = rotate(weights = [1, 30],[jingles, global_playlist])

    default = normalize(radio)

    #########################################################

    #default = amplify(id="silence_src", 0.00001, noise())
    ref_off_air_meta = ref off_air_meta
    if !ref_off_air_meta == "" then
        ref_off_air_meta := "Airtime - offline"
    end
    #default = rewrite_metadata([("title", !ref_off_air_meta)], default)



  • fallback.skip is not really the solution you want here.
    You really need a transitions from the old song to the new songs.
    which you would do with a liquidsoap function

    Fallback.skip is really ending a song then move to the next track,so basically you are stopping your current song and move to the next song immediately.I find that if you do a fallback.skip through telnet it works or a simple playlist it does but not when you have jingles.

    If your script is not time sensitive  then all you have to do is make track sensitive =true and so liquidsoap will wait until one one song is finished before it load anything else including your jingle


    For the fallback syntax,yours is not completed
    should be like this
    default = fallback(track_sensitive = false,[security,v])

    Something like this

    fallback.skip(track_sensitive=true,
             transitions=[ crossfade, transition(jingle) ],
             [ playlist("playlist.pls") ])

    might work but I have not tested it

    or You can create your own function,If I have time this weekend I will try.

    Please also watch the English section I will tell you how to preserve your script that you will not have to write it over each time

    VOISSES.
    Anyone reading this a find it funny about my grammar , I make no apology ,Go get a translator.
    "The Problem with education today is that it takes a university degree to switch on a light bulb"
    "You learn from your mistakes but wise people learn from others mistakes avoid Making mistakes there is not sufficient rooms to make them"
    "Innuendo","If's","Assumptions" and "Fear" are for politician.Who,What,where,When and How are for those seeking knowledge and care about Humanity.
    "I might be in Mud but that does not Make me a Wild Hog(pig)"
    “Any intelligent fool can make things bigger, more complex, and more violent. It takes a touch of genius — and a lot of courage to move in the opposite direction.”
    "The only thing that remains constant is change itself"
    May the force be with you,until our path or destiny bring us in tandem.
  • "Fallback.skip is really ending a song then move to the next track,so basically you are stopping your current song and move to the next song immediatly" : that is exactly what I want ! For example, a live show or an airtime schedule ends, I want that when it comes back to the fallback playlist, the current (= the previously interrupted) track skips and a new one starts. I don't really care if it doesn't work with jingles, as we plan to use jingles only in airtime schedules. So my question was how to use the fallback.skip according my current configuration. Lets imagine I removed the jingles and get something like that in the ls_script :



    ########modifs pour fallback############



    # playlist globale


    global_playlist = playlist("/home/airtime/playlist.m3u")

    global_playlist = audio_to_stereo(global_playlist)

    default = normalize(global_playlist)

    #########################################################


    #default = amplify(id="silence_src", 0.00001, noise())

    ref_off_air_meta = ref off_air_meta

    if !ref_off_air_meta == "" then
    ref_off_air_meta := "Airtime - offline"
    end

    #default = rewrite_metadata([("title", !ref_off_air_meta)], default)

    what would be the fallback.skip input source ? I can imagine the fallback source is my global_playlist.

    Cheerz
  • Yes the fallback.skip is the right approach.

    Remember airtime use a different library from liquidsoap (airtime compile its own liquidsoap)

    The problem with this fallback.skip that its not defined in the airtime library although it is in liquidsoap.
    To make it easier all function of airtime is defined in ls_lib.liq whilst liquidsoap its defined in /library/utils.liq

    If you use the fallback.skip without defining it you might get something along the line of undefined function

    I ran some test last weekend but was called to do something on sunday so I could not finished.

    You will first need to define fallback.skip in the library and I am almost sure the syntax is

    # Special track insensitive fallback that always skips current song before switching.
    # @category Source / Track Processing
    # @param ~input The input source
    # @param f The fallback source
    def fallback.skip(~input,f)
      def transition(a,b) =
        source.skip(a)
        # This eats the last remaining frame from a
        sequence([a,b])
      end
      fallback(track_sensitive=false,transitions=[transition,transition],[input,f])
    end

    which I found in the documentation.
    In the week I am usually busy,but if times allow,I will run through.

    The disadvantage of making this hack is that you have to hold your upgrade else if you do a simple
    sudo apt-get upgrade

    and there is an upgrade by Airtime it gets whacked.

    V.O.I.S.S.E.S.



    Anyone reading this a find it funny about my grammar , I make no apology ,Go get a translator.
    "The Problem with education today is that it takes a university degree to switch on a light bulb"
    "You learn from your mistakes but wise people learn from others mistakes avoid Making mistakes there is not sufficient rooms to make them"
    "Innuendo","If's","Assumptions" and "Fear" are for politician.Who,What,where,When and How are for those seeking knowledge and care about Humanity.
    "I might be in Mud but that does not Make me a Wild Hog(pig)"
    “Any intelligent fool can make things bigger, more complex, and more violent. It takes a touch of genius — and a lot of courage to move in the opposite direction.”
    "The only thing that remains constant is change itself"
    May the force be with you,until our path or destiny bring us in tandem.
  • Ok thanks for the tip, I didn't realise that the fallback.skip is not in the library. It seems that fallback.skip works with two parameters : the input source and the fallback source. The fallback source will be my playlist, but what will be the input source ? I'm on Airtime 2.4.1.
  • Ok thanks for the tip, I didn't realise that the fallback.skip is not in the library. It seems that fallback.skip works with two parameters : the input source and the fallback source. The fallback source will be my playlist, but what will be the input source ? I'm on Airtime 2.4.1.


    Found that out about fallback.skip when i put in the code.
    To be honest I would not really use this.
    I would just used the fallback for when I cannot get to program or schedule something because I had to do three things 
    • Define source.skip as a function
    • Then I had to use the fallback.skip
    • Then I had to create a custom transitions.
    What I am testing here is so much to put in the script.

    I would more program like this
    or if you are lazy like me just make 24Hours block or 12 hours(2) block like this
    • 0000 today's date - 0000 tomorrow's date   for 24hours
    • 0000 - 1200 [ today's date]  [ 1st Block] & 1200 today's date - 0000 [tomorrow's date] [ 2nd Block]
    • Remember you only have to do this for maximum of 7 days,repeat them,without end and link the shows.It should not take long
    You now create whatever you want

    So since you want to just play all the music from your carousel (global) use  a smart block for 24hr

    If you want to play a particular genre for say 1 hour segments  [ just create 12 or 24 of them].

    The advantage of this is that Airtime will
    • strip off the silence at the end of the track
    • cross fade your songs almost seemlessly
    Here is some thing else I do if you have a dj or show  at a particular time you can go back edit that instance and fit the show in.
    Wonderful possibilities.

    I will post up the fallback solution when I fully test it but I really found that more you can get if you use Airtime fully

    Ps

    If you are comfortable with 2.4.1,that is you it serves your purpose and you are not having any serious issues then you might want to hold off any further upgrades until you are ready for that major leap.

    not everything is relevant just parse it



    *********************************
    * V.O.I.S.S.E.S.      *         *
    * Can You Hear Me Now *         *
    *********************************
    ♬♬♬♬♬♬♬♬♬♬♬♩♪♫♩♪♫♪♩♫♪♩ ♬♬♬♬♬♬♬♬♬♬♬
    ######################################################
    [En][24/7][712- 432- 8476]############################
    [Korean][24/7] [712- 432- 8464]#######################
    [En][Sundays 2300-Mondays 0600 EST][712- 432- 8437]###
    ######################################################
    Disclaimer:-
    "The Views express by me in no way reflect the staff,team,management of airtime,its affiliate or its
    representative.
    I am in no way a member of the staff,team,management of airtime,its affiliate or its representative,

    My views are my own opinion of which I hope will help to construed a discussion in order to solve, resolved or to make things better.

    If you follow my opinions,you do so at your own risk and I bear no responsibility for your actions or in-actions.

    My opinions is not my final thoughts but something I think as I try come to my final conclusion"
    #####################################################################





    Post edited by Voisses Tech at 2013-11-14 08:38:12
    Anyone reading this a find it funny about my grammar , I make no apology ,Go get a translator.
    "The Problem with education today is that it takes a university degree to switch on a light bulb"
    "You learn from your mistakes but wise people learn from others mistakes avoid Making mistakes there is not sufficient rooms to make them"
    "Innuendo","If's","Assumptions" and "Fear" are for politician.Who,What,where,When and How are for those seeking knowledge and care about Humanity.
    "I might be in Mud but that does not Make me a Wild Hog(pig)"
    “Any intelligent fool can make things bigger, more complex, and more violent. It takes a touch of genius — and a lot of courage to move in the opposite direction.”
    "The only thing that remains constant is change itself"
    May the force be with you,until our path or destiny bring us in tandem.
  • Thanx for your patience Voisses. Most of the tips you suggest are not adapted with the way we schedule our radio. And we absolutely don't wan't the global random to be scheduled in airtime, as it is our default mode (such of 'airtime-fallback-overload' way). This global fallback alternates with several daily shows (playlists or live dj). ALL our smartblocks are smaller than the scheduled time (usually 55mn for 1h show, 25mn for 30m show, etc.). We also made a jingles smartblock limited to 1 item (1 jingle randomly picked from all). This way, for each linked show, we put this single jingle smartblock at the beginning and the end of the show content. Perfect way to have a different jingle at the beginning and the end of a scheduled linked playlist. Anyway, smaller blocks than scheduled time is a good way to avoid the last track from the scheduled playlist to be interrupted because the content time exceeds the scheduled time. BUT, my problem remains. When one of those scheduled playlists ends, it falls back to where the fallback playlist has been interrupted. And that is what I want to avoid. I don't want any smooth transition from/to this interrupted track. I want this interrupted track to be forgotten when interrupted, so that a new one starts when a scheduled playlist ends (= back to the fallback). If think it's totally incongruous for the audience to fall in the middle of a track that has been interrupted one hour ago - whether with or without transition. Sure fallback is a bit better with out/in transitions, but still not satisfying. The only satisfying solution according the way we manage the radio schedule is that the fallback, when it falls, falls on a new track. The scheme we are looking for is : current fallback track (interrupted)-> fade out/fade in to scheduled playlist -> last scheduled playlist track plays until the end (cf 55 or 25mn smartblocks) -> new fallback track starting at its beginning. Fell free to visit our (under construction) webradio, Radio Capsule. Cheerz and thanks for all !
    Post edited by Yann Leekid at 2013-11-14 11:18:07
  • Your fixed is here



    I made a mistake when  i stated that the fallback.skip was not in airtime library,I was looking at my development script instead


    You should note that your default fallback is not properly state and you might just want to pop by my 101 tutorial to see why you must have a proper fallback

    *********************************
    * V.O.I.S.S.E.S.      *         *
    * Can You Hear Me Now *         *
    *********************************
    ♬♬♬♬♬♬♬♬♬♬♬♩♪♫♩♪♫♪♩♫♪♩ ♬♬♬♬♬♬♬♬♬♬♬
    ######################################################
    [En][24/7][712- 432- 8476]############################
    [Korean][24/7] [712- 432- 8464]#######################
    [En][Sundays 2300-Mondays 0600 EST][712- 432- 8437]###
    ######################################################
    Disclaimer:-
    "The Views express by me in no way reflect the staff,team,management of airtime,its affiliate or its
    representative.
    I am in no way a member of the staff,team,management of airtime,its affiliate or its representative,

    My views are my own opinion of which I hope will help to construed a discussion in order to solve, resolved or to make things better.

    If you follow my opinions,you do so at your own risk and I bear no responsibility for your actions or in-actions.

    My opinions is not my final thoughts but something I think as I try come to my final conclusion"
    #####################################################################

    Post edited by Voisses Tech at 2013-11-23 09:56:16
    Anyone reading this a find it funny about my grammar , I make no apology ,Go get a translator.
    "The Problem with education today is that it takes a university degree to switch on a light bulb"
    "You learn from your mistakes but wise people learn from others mistakes avoid Making mistakes there is not sufficient rooms to make them"
    "Innuendo","If's","Assumptions" and "Fear" are for politician.Who,What,where,When and How are for those seeking knowledge and care about Humanity.
    "I might be in Mud but that does not Make me a Wild Hog(pig)"
    “Any intelligent fool can make things bigger, more complex, and more violent. It takes a touch of genius — and a lot of courage to move in the opposite direction.”
    "The only thing that remains constant is change itself"
    May the force be with you,until our path or destiny bring us in tandem.
  • Désolé pour la parenthèse en anglais (j'ai posté dans cette langue sur le forum adéquat). Je suis toujours à la recherche d'une méthode (simple si possible) pour faire que ma playlist en fallback (quand aucune source - show, master/show source, etc.-  n'est instanciée par airtime), au lieu de reprendre là où elle a été précédemment interrompue, reprenne sur un nouveau morceau.