[Bf-python] can't get audio volume changes via script
Bastien Montagne
montagne29 at wanadoo.fr
Mon Oct 21 12:53:55 CEST 2013
As said in the doc
(http://www.blender.org/documentation/blender_python_api_2_69_1/bpy.types.Scene.html#bpy.types.Scene.frame_current),
you should use scene.frame_set() function instead of directly assigning
to frame_current…
Le lun. 21 oct. 2013 12:45:02 CEST, flavio soares a écrit :
> Hi, Bastien,
>
> Thanks for the response. I had tried that before sending the e-mail -
> I tried SoundSequence to see if it changed things, but it didn't. The
> code below...
>
> for i in bpy.context.sequences:
> bpy.context.scene.frame_current = i.frame_start
> start = i.frame_start
> while start < i.frame_final_end:
> print(i.volume)
> bpy.context.scene.frame_current += 1
> start +=1
>
> ...will print also the same values 0.0 or 1.0 (only), depending on
> where the cursor (frame_current) is when the script starts to run.
>
> Notice that the same behaviour happens to panning and blend_alpha (for
> video strips) - it seems Blender sort of "caches" the volume or pan
> value and always returns the first one, not updating it inside the loop.
>
> I tried the same code using:
>
> while start < i.frame_final_end:
> bpy.ops.marker.add()
>
> And the markers were inserted accordingly, one on each frame. This way
> I know that the change bpy.context.scene.frame_current += 1 is being
> processed correctly.
>
> Any guesses?
>
>
>
>
> 2013/10/20 Bastien Montagne <montagne29 at wanadoo.fr
> <mailto:montagne29 at wanadoo.fr>>
>
> You do not want to use bpy.types.SoundSequence here! It’s a type
> (and used this way, a constructor), not a data access!
>
> You are probably looking for something like that:
>
> for seq in bpy.context.sequence_editor.sequences:
> if seq.type is 'SOUND':
> print(seq.volume)
>
> (Loop over that for all your frames of course).
>
> Bastien
>
>
> On 20/10/2013 03:08, flavio soares wrote:
>> Hi,
>>
>> The audio exporter to Ardour is pretty much done
>> <https://github.com/szaszak/blender_velvet/blob/blue_velvet/blue_velvet.py>
>> and fully functional.
>>
>> I'm trying to expand it to get the audio fade keyframes, but it
>> seems it is not possible.
>>
>> This code for example:
>>
>> for i in bpy.context.sequences:
>> bpy.context.scene.frame_current = i.frame_start
>> start = i.frame_start
>> while start < i.frame_final_end:
>> print(bpy.types.SoundSequence(i).volume)
>> bpy.context.scene.frame_current += 1
>> start +=1
>>
>> Prints only:
>>
>> 0.0
>> 0.0
>> 0.0
>> etc
>>
>> ...when it should recognize the changes in volume (keyframes) and
>> print something like:
>>
>> 0.0
>> 0.3
>> 0.6
>> 1.0
>> 1.0
>> etc
>>
>>
>> Any guesses why this is so?
>>
>> Thanks for the help. =)
>>
>>
>> _______________________________________________
>> Bf-python mailing list
>> Bf-python at blender.org <mailto:Bf-python at blender.org>
>> http://lists.blender.org/mailman/listinfo/bf-python
>
> _______________________________________________
> Bf-python mailing list
> Bf-python at blender.org <mailto:Bf-python at blender.org>
> http://lists.blender.org/mailman/listinfo/bf-python
>
>
>
>
> _______________________________________________
> Bf-python mailing list
> Bf-python at blender.org
> http://lists.blender.org/mailman/listinfo/bf-python
More information about the Bf-python
mailing list