2011/11/14 Henry Favretto <[email protected]>:
>
> On 14/11/2011 13:03, Romain Beauxis wrote:
>> 2011/11/14 Henry Favretto:
>>> Hi there,
>>
>> Hi Henry!
>>
>>> I recently migrated my old script from 0.9.3 to 1.0.0 running on my trusty 
>>> old
>>> Debian Lenny box without much trouble except for one rather subtle issue
>>> regarding the smart_crossfade utility function...
>>>
>>> In my script I use it this way:
>>>
>>> ************************
>>> # Crossfade songs 15 seconds
>>> fade.out = fade.out(type="sin",duration=15.0)
>>> fade.in  = fade.in(type="sin",duration=10.0)
>>> add = fun (a,b) -> add(normalize=false,[b, a])
>>> radio = smart_crossfade(
>>>     fade_out = 15.0,
>>>     fade_in = 10.0,
>>>     start_next = 25.0,
>>>     margin = 3.0,
>>>     high = -15.0,
>>>     medium = -30.0,
>>>     conservative = true,
>>>     default = fun (a,b) -> add(fade.out(a),fade.in(b)),
>>>     radio
>>>   )
>>> ************************
>>>
>>> I noticed (by listening to the stream and looking at the log) that for some
>>> reason my provided default transition is never applied e.g. when "No 
>>> transition.
>>> Using default" is logged then the sequence transition is still used (the
>>> function's default).
>>>
>>> IIRC the same script used to work as expected in 0.9.3 e.g. using a 
>>> crossfade
>>> when the default transition is applied...
>>>
>>> Did I miss something?
>>
>> There is a subtle detail with add() that could explain your issue or
>> at least needs a fix.
>> By default, add([a,b,c,d]) relays metadata and track limits of the
>> first source, a in this example.
>>
>> Thus, on your script, you should write:
>>   default = fun (a,b) -> add([fade.in(b),fade.out(a)])  (by the way,
>> did you miss the [ ] in your example?)
>> since you want metadata and track limit from the new source (b).
>>
>> Please, try this and let us know if your issue is still not fixed :-)
>>
>> Romain
>
> Hi Romain,
>
> Indeed, I guess I must have missed those brackets.... my bad.
>
> Okay, so I did your proposed changes but now it gives me the following error:
>
> *************
> At line 46, char 33-56:
>  this value has type
>    [_]
>  but it should be a subtype of (the type of the value at line 37, char 13)
>    source(_) (infered at line 37, char 42)
> *************
>
> where line 46 in my script is
>
>    default = fun (a,b) -> add([fade.in(b),fade.out(a)])
>
> and line 37 is
>
>    add = fun (a,b) -> add(normalize=false,[b, a])
>
> Any idea what's wrong here?

Well you have redefined add, thus your initial script was in fact
correct, including the "new source should come first in add([])" bit..

Could you try to add some printing in your default transition so as to
check whether your default function is executed or that the problem
comes from elsewhere. Something like this:
  default = fun (a,b) -> print("\n\nDEFAULT\n\n") add(fade.out(a),fade.in(b)),
  ...

Romain

------------------------------------------------------------------------------
RSA(R) Conference 2012
Save $700 by Nov 18
Register now
http://p.sf.net/sfu/rsa-sfdev2dev1
_______________________________________________
Savonet-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/savonet-users

Reply via email to