Romain,

You are awesome and very giving to take the time to really break that down
for me.  I also did a lot of studying last night on functions within Python
as I have books on it and have been meaning to start learning it...just
haven't found the time :)

Everything you said makes perfect sense now and hopefully this will get me
kick-started in my programming journey as now I really want to learn more so
awesome projects like liquidsoap will not be so difficult for me to
comprehend.  I hope this eventually gets me to a point where I can start
participating more with this project and help answer questions here :)

You guys do a great job at documenting everything....I've worked with a
bunch of open source projects which have close to no documentation
whatsoever.  I was able to get as far as I have, which is quite far, without
any programming knowledge and this is due to that documentation.  This
Liquidsoap project is amazing!  I've done my research and it is the ONLY one
that does all it does...and it is FREE!  Unbelievable!  I'm gonna make a
donation right after I write this!

Thanks again for taking the time to share your knowledge...I hope to return
the favor one day!


On Wed, Jun 15, 2011 at 9:15 AM, Romain Beauxis <[email protected]>wrote:

> 2011/6/14 James Ford <[email protected]>:
> > Thank you again...your instructions worked...though I'm not 100% sure
> why.
> > My config looks like this:
> >
> > def transition(old,new) =
> >
> sequence([single("/etc/liquidsoap/mp3/djliveintro.mp3"),fade.initial(new)])
> > end
> >
> >
> dj=fallback(track_sensitive=false,transitions=[transition,transition],[djhost,dj])
> >
> > Based on that shouldn't it play the same transition going from one to the
> > other source, either direction?  With the config you provided it plays
> the
> > transition mp3 and fades from dj to djhost, but when I drop the djhost
> > input.harbor stream it just cuts back to dj w/o any transition mp3,
> though
> > it kinda sounds like it fades in but it is hard to tell.
>
> I think there are cases where if the source ends too abruptely, the
> transition is not triggered. Maybe David can confirm that.
> If this is the case, then I would recommend trying to raise buffer and
> max, for instance:
> djlive = input.harbor(buffer=7.,max=15.,..)
>
> > Right now djhost
> > is my live source and dj is a playlist that plays when the DJ isn't live
> > streaming.  I guess I really need to learn to understand how functions
> > work.  I don't know why I'm not seeing a clear picture.  I think another
> > part of my confusion is understanding how the transitions function works
> and
> > should be formatted.  Looking at:
> >
> > transitions ([(source('a), source('a))->source('a)] – defaults to []):
> > Transition functions, padded with fun (x,y) -> y functions.
> >
> > I don't even know what it means when it says padded with fun (x,y) -> y
> and
> > what the -> symbol even means.
>
> The -> symbols indicates a function :)
> It is used in two different cases: to denote a type and to write the
> code of a function.
>
> Types are used to describe what an object of the language is. For
> instance, if a variable x has type int then it is an integer :-)
> Further, if a variable x has type:
>  int -> int
> then it is a function that takes an integer as input and returns an
> integer.
>
> Transition functions are of type:
>  (source, source) -> source
> which means that a transition function takes two sources (old and new)
> and returns a source
>
> We also use -> in order to write the actual code of a function. In the
> previous example, I wrote:
>
> def transition(old,new) =
>   sequence([single("/path/to/foo.mp3"),fade.initial(new)])
> end
>
> This is one possible notation. But it is also possible to write it this
> way:
>  transition = fun (old,new) ->
> sequence([single("/path/to/foo.mp3"),fade.initial(new)])
>
> In any case, both code define the same function...
>
> When we say that they are padded with fun (x,y) -> y we mean that, by
> default, the transitions take old and new source (x and y) and just
> return the new source (y).
>
> > I guess it is just luck that I've gotten as
> > far as I have without any real programming skills. *
>
> Well, we try hard to make liquidsoap accessible to non-programmers but
> if you want to implement advanced uses, at some point you need to
> learn more about programming :)
>
> > I understanding the
> > source methods and dependencies and such...it's just defining functions
> that
> > is losing me.
> >
> > From what I was reading it looks like fallback transitions could just
> point
> > to a source, but that wouldn't work for me either....as an example:
> >
> > djliveintro=single("/etc/liquidsoap/mp3/djliveintro.mp3")
> >
> >
> dj=fallback(track_sensitive=false,transitions=[djliveintro,djliveintro],[djhost,dj])
> >
> > This did not work but I swear I read some forum posts that people were
> using
> > this.  Any additional insight would be awesome.
>
> in the above, djliveintro has type source: it is a source variable,
> not a function (it does not take argument for instance).
>
> > I understand if you don't
> > want to waste any more of your time.  If that is the case if you might be
> > able to point me to a resource that will dumb it down for someone like me
> > allowing me to understand it better that would rock.
>
> I think the online documentation is the best we have for now, in
> particular those pages:
>  http://savonet.sourceforge.net/doc-svn/quick_start.html
>  http://savonet.sourceforge.net/doc-svn/sources.html
>  http://savonet.sourceforge.net/doc-svn/language.html
>
> However, I agree that we seem to miss an introduction to the
> fondamental concepts of the language at the moment..
>
> Romain
>
------------------------------------------------------------------------------
EditLive Enterprise is the world's most technically advanced content
authoring tool. Experience the power of Track Changes, Inline Image
Editing and ensure content is compliant with Accessibility Checking.
http://p.sf.net/sfu/ephox-dev2dev
_______________________________________________
Savonet-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/savonet-users

Reply via email to