On 14/11/2011 14:40, Romain Beauxis wrote:
> 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)),
> ...
When I use the mentioned print statement I get:
Line 46, char 55 before "(": Parse error!
Sorry if I'm being ignorant here but I'm still learning....
Henry
------------------------------------------------------------------------------
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