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 <[email protected] > <mailto:[email protected]>> > > 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 >> [email protected] <mailto:[email protected]> >> http://lists.blender.org/mailman/listinfo/bf-python > > _______________________________________________ > Bf-python mailing list > [email protected] <mailto:[email protected]> > http://lists.blender.org/mailman/listinfo/bf-python > > > > > _______________________________________________ > Bf-python mailing list > [email protected] > http://lists.blender.org/mailman/listinfo/bf-python _______________________________________________ Bf-python mailing list [email protected] http://lists.blender.org/mailman/listinfo/bf-python
