[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