Couple of questions - Liquidsoap
  • My station is set up and operates mostly on modified LS script until the calendar will be rebuilt.
    im having some issues i was hoping to get help resolving,

    My LS script runs shows 24\7 with switch operator and default folder rotation and having these issues:

    1.every time a show starts its brutally cutting whatever is playing and goes to the file, (same with scheduled shows/webstream) how can i tell LS to fade out the current broadcast to a jingle and then start the next file? i need a fade out..not crossfade.

    2.Every time a scheduled show ends in LS or Airtime, LS defaults back to the 24/7 rotation but it jumps into the middle of a track (its like the 24/7 is running in the background all the time) is there  way to tell LS to initiate the 24\7 rotation from the start when a show ends and not let it run in the background?

    This is my modified script:


    Thanx for your help guys! :)


  • 15 Comments sorted by
  • Vote Up1Vote Down Albert FRAlbert FR
    Posts: 1,978Member, Airtime Moderator
    Hi Guytrance ;-)

    1 I'm searching :-)

    2 that's exactly that (with your script configuration)
  • Vote Up1Vote Down Albert FRAlbert FR
    Posts: 1,978Member, Airtime Moderator
    in the cookbook :

    # Partially apply next to give it a jingle source.
    # It will fade out the old source, then play the jingle.
    # At the same time it fades in the new source.
    def next(j,a,b)
    add(normalize=false,
    [ sequence(merge=true,
    [ blank(duration=3.),
    fade.initial(duration=6.,b) ]),
    sequence([fade.final(duration=9.,a),
    j,fallback([])]) ])
    end


    j = jingle
    a = source 1
    b = source 2

  • If you can take a look at the code that i tried? i need to have all sources fade out to a jingle when another one comes in...but the following dosent do the trick:

    default=fallback(track_sensitive=false,[switch(track_sensitive=false,[

    #Sunday#
                ({ (0w) and 07h-12h}, silkmornings),
                ({ (0w) and 20h-21h}, moranhelman),
                
                #Monday#
                
                ({ (1w) and 02h-07h}, chillout),
                ({ (1w) and 07h-12h}, silkmornings),
                            
                #Tuesday#
                
                ({ (2w) and 07h-12h}, silkmornings),
                
                #Wednesday#
                
                ({ (3w) and 02h-07h}, chillout),
                ({ (3w) and 07h-12h}, silkmornings),
                ({ (3w) and 19h-21h}, hortaweekly),
                
                #Thursday#
                
                ({ (4w) and 02h-07h}, chillout),
                ({ (4w) and 07h-12h}, silkmornings),
                ({ (4w) and 19h47-21h}, hortaweekly),
                
                #Friday#
                
                ({ (5w) and 07h-12h}, silkmornings),
                
                #Saturday#
                ({ (6w) and 07h-12h}, silkmornings),
                #({ (6w) and 14h27-18h}, ahliveshow),
                ({ (6w) and 18h-19h}, dashalove),
                ({ (6w) and 21h-23h}, tranceilsessions),
                
                ]),
                rotating
                ])      
                         
    ignore(output.dummy(default, fallible=true))


    def next(jingles,default,rotating)

      add(normalize=false,

          [ sequence(merge=true,

                     [ blank(duration=3.),

                       fade.initial(duration=6.,rotating) ]),

            sequence([fade.final(duration=9.,default),

                      jingles,fallback([])]) ])

    end
    Post edited by Guytrance at 2012-11-08 12:52:00
  • i have exactly the same issues :(
    any help?
  • anyone??
  • @aukondk

    "The Dummy output at the end of your script causes the 24/7 to keep playing while the scheduled content plays."

    Thank you for your reply.

    What should i write instead for it to switch properly between sources with fadein/out?
    (jingles dosent matter at this point, i just need the sources to switch according to the hours with fadein/out)

    Currently as your saying it wont switch to the shows, only fade out and back in to a different track on the 24/7 (rotating) :(



  • Reply to @Guytrance:

    If I understand correctly, you simply want the the switch to a fallback playlist to start at the beginning of a track when scheduled content in Airtime finishes.

    As far as I'm aware this is difficult to achieve. One possible solution is to make your switch "track_sensitive", meaning it will only switch between sources at the end of each track. The one problem with this is that it works both ways. If your fallback playlist is in the middle of a track and a scheduled Airtime show begins, it will not start playing until the current fallback track completes.
     
    Airtime Pro Hosting: http://airtime.pro
  • Reply to @Martin+Konecny:

    Hey Martin.

    Thank you for your reply.

    Well that is indeed one of the problems i'm trying to resolve, but whats a lot more urgent is the Fadein/out issue.

    I am trying to have a fade in/out between source switching.

    Example: when a scheduled show finishes i need it to fade out and then fade in the 24\7 rotation, or the next show in the switch.

    In the code i have here, i have a fade out but it wont switch to the scheduled show..it will only kick in the 24\7 rotation again (without fadein)

    I just want fading between sources..do you see something in the code that can help direct me to that?

    default=fallback(track_sensitive=false,transitions=[insert_jingle(jingles)],[switch(track_sensitive=false,transitions=[insert_jingle(jingles),],[

    #Sunday#
                ({ (0w) and 07h-12h}, silkmornings),
                #({ (0w) and 20h-21h}, moranhelman),
                
                #Monday#
                
                ({ (1w) and 02h-07h}, chillout),
                ({ (1w) and 07h-12h}, silkmornings),
                            
                #Tuesday#
                
                ({ (2w) and 07h-12h}, silkmornings),
                
                #Wednesday#
                
                ({ (3w) and 02h-07h}, chillout),
                ({ (3w) and 07h-12h}, silkmornings),
                ({ (3w) and 19h-21h}, hortaweekly),
                
                #Thursday#
                
                ({ (4w) and 02h-07h}, chillout),
                ({ (4w) and 07h-12h}, silkmornings),
                
                #Friday#
                
                ({ (5w) and 07h-12h}, silkmornings),
                ({ (5w) and 12h16-14h}, hortaweekly),
                ({ (5w) and 17h-19h}, globaldj),
                #({ (5w) and 19h-21h}, asot),


                
                #Saturday#
                ({ (6w) and 07h-12h}, silkmornings),
                #({ (6w) and 14h27-18h}, ahliveshow),
                ({ (6w) and 18h-19h}, dashalove),
                ({ (6w) and 21h-23h}, tranceilsessions),
                
                ]),
                fallback.skip(input=rotating,rotating)
                ])      
                         
    ignore(output.dummy(default, fallible=true))

    Post edited by Guytrance at 2012-11-30 15:55:11
  • Reply to @Martin+Konecny:

    Update: right now its fading out from a source to the next scheduled show, (i had a # mark on the 'new' parameter of the fade.in function) but wont fade out again to the next next show in line, or 24/7..it will however load everything as ordered, but without fade)

    I'm not sure where to add the second "transitions=[insert_jingle(jingles)]" statement..

    Its in default=fallback, and in switch..

    What am i missing? :)


    default=fallback(track_sensitive=false,transitions=[insert_jingle(jingles)],

    [switch(track_sensitive=false,transitions=[insert_jingle(jingles)],[

    Post edited by Guytrance at 2012-12-01 12:48:06
  • Reply to @Martin+Konecny:

    So that should be:

    default=fallback(track_sensitive=false,transitions=[insert_jingle(jingles),default],
    [switch(track_sensitive=false,transitions=[insert_jingle(jingles),switch],[

    ?


    Post edited by Guytrance at 2012-12-01 13:25:44
  • hmmmmm...i will try that sir :)

    I didn't exactly follow the 2'nd problem...i did ordered LS to default to a 24\7, but i need it to initiate when a scheduled show is finished...if it runs 24\7 on the background then the source jumps in the middle of the play...

    Your suggesting to do a 24\7 rotation using scheduled folders in the switch? 
  • I'm in a similar situation, adding my old LS setup to Airtime.

    The Dummy output at the end of your script causes the 24/7 to keep playing while the scheduled content plays. Without it, the 27/4 would pause and restart at the same point after the scheduled content ended. I don't use switches in my script (mine is all random all the time) so I don't know how pausing the source effects the timing.
    When I initially set up my LS radio a few years back I seem to remember a setting which skips to the next track when a source restarts. I will have to hunt for it.

    As for the fades with a jingle Albert suggested, you use it with the switch or fallback, take a look at http://savonet.sourceforge.net/doc-1.0.0-beta1/cookbook.html in the Transitions section. (I need to read it properly myself as it has changed a bit since I last looked)
  • Your transitions list is what specifies the fade:

    transitions=[insert_jingle(jingles)]

    It looks like you only have one transition, when you should have one per source in your switch statement. Take a look into the switch statements in the Airtime code, and you will see a good example of this.
    Airtime Pro Hosting: http://airtime.pro
  • to add a second transition do something like this:

    transitions=[transition1, transition2]

    transitionN is applied when transitioning to sourceN :)
    Airtime Pro Hosting: http://airtime.pro
  • NM...got it :)

    default=fallback(track_sensitive=false,transitions=[insert_jingle(jingles),insert_jingle(jingles)],

    [switch(track_sensitive=false,transitions=[insert_jingle(jingles),insert_jingle(jingles)],[


    Thank you for the help Martin!
    Post edited by Guytrance at 2012-12-02 05:43:59