[Bf-extensions-cvs] SVN commit: /data/svn/bf-extensions [3858] contrib/py/scripts/addons/ io_import_sound_to_anim.py: Hello World :-)

vlassius santos vlassius at vlassius.com.br
Mon Oct 15 15:38:47 CEST 2012


Revision: 3858
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-extensions&revision=3858
Author:   vlassius
Date:     2012-10-15 13:38:47 +0000 (Mon, 15 Oct 2012)
Log Message:
-----------
   Hello World :-)   

Added Paths:
-----------
    contrib/py/scripts/addons/io_import_sound_to_anim.py

Added: contrib/py/scripts/addons/io_import_sound_to_anim.py
===================================================================
--- contrib/py/scripts/addons/io_import_sound_to_anim.py	                        (rev 0)
+++ contrib/py/scripts/addons/io_import_sound_to_anim.py	2012-10-15 13:38:47 UTC (rev 3858)
@@ -0,0 +1,1100 @@
+#!/usr/bin/python3
+# To change this template, choose Tools | Templates
+# and open the template in the editor.
+#  ***** GPL LICENSE BLOCK *****
+#
+#  This program is free software: you can redistribute it and/or modify
+#  it under the terms of the GNU General Public License as published by
+#  the Free Software Foundation, either version 3 of the License, or
+#  (at your option) any later version.
+#
+#  This program is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#  GNU General Public License for more details.
+#
+#  You should have received a copy of the GNU General Public License
+#  along with this program.  If not, see <http://www.gnu.org/licenses/>.
+#  All rights reserved.
+#  ***** GPL LICENSE BLOCK *****
+
+bl_info = {
+    "name": "Import: Sound to Animation",
+    "author": "Vlassius",
+    "version": (0, 22),
+    "blender": (2, 57, 0),
+    "api": 37023,
+    "location": "Select a object -> go to the Object tab ->  Import Movement From Wav File",
+    "description": "Extract movement from sound file. See the Object Panel at the end.",
+    "warning": "",
+    "wiki_url": "http://wiki.blender.org/index.php/Extensions:2.6/Py/Scripts/Import-Export/Import_Movement_Fom_Audio_File",
+    "tracker_url": "",
+    "category": "Import-Export"}
+
+"""
+-- Extract movement from sound file, to help in animation - import script --<br> 
+
+- NOTES:
+- This script takes a wav file and get sound "movement" to help you in sync the movement to words in the wave file. <br>
+- Blender 2.5.7
+
+
+-v 0.22Beta- 
+    Included 
+    Camera Rotation
+    Empty Location-Rotation-Scale
+    
+
+-v 0.21Beta- 
+    Changed just the meta informations like version and wiki page.
+    
+
+-v 0.20 Beta- 
+    New Panel
+    
+    
+-v 0.1.5 Beta- 
+    Change in API-> Properties
+    Included the button "Get FPS from Scene" due to a problem to get it in the start 
+    Return to Frame 1 after import
+    Filter .wav type file (by batFINGER)
+    
+-v 0.1.4 Beta- 
+    If choose negative in rotation, auto check the rotation negative to Bones
+    change in register()  unregister():
+
+-v 0.1.3 Beta- 
+    File Cleanup
+    Change to bl_info. 
+    Cosmetic Changes. 
+    Minor change in API in how to define buttons. 
+    Adjust in otimization.
+
+-v 0.1.2 Beta
+change in API- Update function bpy.ops.anim.keyframe_insert_menu 
+
+-v 0.1.1 Beta
+change in API- Update property of  window_manager.fileselect_add
+
+-v 0.1.0 Beta
+new - Added support to LAMP object         
+new - improved flow to import
+new - check the type of object before show options
+bug - option max. and min. values
+change- Updated scene properties for changes in property API.
+        See http://lists.blender.org/pipermail/bf-committers/2010-September/028654.html
+
+new flow:
+          1) Process the sound file
+          2) Show Button to import key frames 
+
+
+- v0.0.4 ALPHA
+new - Added destructive optimizer option - LostLestSignificativeDigit lost/total -> 10/255 default
+new - Visual Graph to samples
+new - Option to just process audio file and do not import - this is to help adjust the audio values
+new - Get and show automatically the FPS (in proper field) information taking the information from scene
+bug- Display sensitivity +1
+bug - Corrected location of the script in description
+
+- v0.0.3
+Main change: Corrected to work INSIDE dir /install/linux2/2.53/scripts/addons
+Corrected position of label "Rotation Negative"
+Added correct way to deal with paths in Python os.path.join - os.path.normpath
+
+- v0.0.2
+Corrected initial error (Register() function)
+Corrected some labels R. S. L.
+Turned off "object field" for now
+Changed target default to Z location 
+
+- v0.0.1
+Initial version
+
+
+
+Credit to:
+Vlassius
+
+- http://vlassius.com.br
+- vlassius at vlassius.com.br
+
+"""
+
+import bpy
+from bpy.props import *
+#from io_utils import ImportHelper
+import wave
+
+#TODO
+#    Arrumar - não tem rotacao para objeto - so transformacao
+#    alterar OBJETO NOMEADO
+
+#    Colocar Escolha do Canal!!
+#
+#
+#    colocar relatorio de samples min, max, 90%, colocar sugestao subir/descer audio sense 
+#
+#
+#   colocar CANCELAR com ESC
+#
+#
+
+
+
+#para deixar array global 
+def _Interna_Globals(BytesDadosTotProcess, context):
+    global array
+    
+    array= bytearray(BytesDadosTotProcess)  # cria array  
+    context.scene.imp_sound_to_anim.bArrayCriado=True
+
+
+def wavimport(context):
+    #================================================================================================== 
+    # Insert Key Frame
+    #================================================================================================== 
+    
+#    print("Inside Wave Import...")   
+    
+    iDivScala= int(context.scene.imp_sound_to_anim.action_escale)     #scala do valor do movimento. [se =1 - 0 a 255 ] [se=255 - 0,00000 a 1,00000] [se=1000 - 0 a 0.255]
+
+    bNaoValorIgual=True
+    if context.scene.imp_sound_to_anim.action_valor_igual: bNaoValorIgual= False    # não deixa repetir valores
+    
+    iStartFrame= int(context.scene.imp_sound_to_anim.frames_initial)
+
+    iMaxValue= context.scene.imp_sound_to_anim.action_max_value
+    iMinValue= context.scene.imp_sound_to_anim.action_min_value
+    
+    bEscala=bRotacao=bEixo=False   
+    if context.scene.imp_sound_to_anim.import_type=='imp_t_Scale':
+        bEscala=True;
+        
+    if context.scene.imp_sound_to_anim.import_type=='imp_t_Rotation':
+        bRotacao=True;
+
+    if context.scene.imp_sound_to_anim.import_type=='imp_t_Location':
+        bEixo=True;
+
+    # atencao, nao é boolean
+    iEixoXneg= iEixoYneg= iEixoZneg=1
+    # atencao, nao é boolean
+    iRotationNeg=1
+    # atencao, nao é boolean
+    iEscalaYneg= iEscalaZneg= iEscalaXneg=1
+    bEixoX=bEixoY=bEixoZ=bEscalaX=bEscalaY=bEscalaZ=bRotationX=bRotationY=bRotationZ=False 
+
+    # LOCAL 1
+    if context.scene.imp_sound_to_anim.import_where1== 'imp_w_x':
+        bEixoX=True
+        bEscalaX=True
+        bRotationX=True
+        
+    if context.scene.imp_sound_to_anim.import_where1== 'imp_w_y':
+        bEixoY=True
+        bEscalaY=True
+        bRotationY=True
+
+    if context.scene.imp_sound_to_anim.import_where1== 'imp_w_z':
+        bEixoZ=True
+        bEscalaZ=True
+        bRotationZ=True
+
+    if context.scene.imp_sound_to_anim.import_where1== 'imp_w_-x':
+        bEixoX=True
+        bEscalaX=True
+        bRotationX=True
+        iEixoXneg=-1
+        iEscalaXneg=-1
+        iRotationNeg=-1
+
+    if context.scene.imp_sound_to_anim.import_where1== 'imp_w_-y':
+        bEixoY=True
+        bEscalaY=True
+        bRotationY=True
+        iEixoYneg=-1
+        iRotationNeg=-1
+        iEscalaYneg=-1
+
+    if context.scene.imp_sound_to_anim.import_where1== 'imp_w_-z':
+        bEixoZ=True
+        bEscalaZ=True
+        bRotationZ=True
+        iEixoZneg=-1
+        iRotationNeg=-1
+        iEscalaZneg=-1
+
+
+    # LOCAL 2
+    if context.scene.imp_sound_to_anim.import_where2== 'imp_w_x':
+        bEixoX=True
+        bEscalaX=True
+        bRotationX=True
+        
+    if context.scene.imp_sound_to_anim.import_where2== 'imp_w_y':
+        bEixoY=True
+        bEscalaY=True
+        bRotationY=True
+
+    if context.scene.imp_sound_to_anim.import_where2== 'imp_w_z':
+        bEixoZ=True
+        bEscalaZ=True
+        bRotationZ=True
+
+    if context.scene.imp_sound_to_anim.import_where2== 'imp_w_-x':
+        bEixoX=True
+        bEscalaX=True
+        bRotationX=True
+        iEixoXneg=-1
+        iEscalaXneg=-1
+        iRotationNeg=-1
+
+    if context.scene.imp_sound_to_anim.import_where2== 'imp_w_-y':
+        bEixoY=True
+        bEscalaY=True
+        bRotationY=True
+        iEixoYneg=-1
+        iRotationNeg=-1
+        iEscalaYneg=-1
+
+    if context.scene.imp_sound_to_anim.import_where2== 'imp_w_-z':
+        bEixoZ=True
+        bEscalaZ=True
+        bRotationZ=True
+        iEixoZneg=-1
+        iRotationNeg=-1
+        iEscalaZneg=-1
+
+
+    # LOCAL 3
+    if context.scene.imp_sound_to_anim.import_where3== 'imp_w_x':
+        bEixoX=True
+        bEscalaX=True
+        bRotationX=True
+        
+    if context.scene.imp_sound_to_anim.import_where3== 'imp_w_y':
+        bEixoY=True
+        bEscalaY=True
+        bRotationY=True
+
+    if context.scene.imp_sound_to_anim.import_where3== 'imp_w_z':
+        bEixoZ=True
+        bEscalaZ=True
+        bRotationZ=True
+
+    if context.scene.imp_sound_to_anim.import_where3== 'imp_w_-x':
+        bEixoX=True
+        bEscalaX=True
+        bRotationX=True
+        iEixoXneg=-1
+        iEscalaXneg=-1
+        iRotationNeg=-1
+
+    if context.scene.imp_sound_to_anim.import_where3== 'imp_w_-y':
+        bEixoY=True
+        bEscalaY=True
+        bRotationY=True
+        iEixoYneg=-1
+        iRotationNeg=-1
+        iEscalaYneg=-1
+
+    if context.scene.imp_sound_to_anim.import_where3== 'imp_w_-z':
+        bEixoZ=True
+        bEscalaZ=True
+        bRotationZ=True
+        iEixoZneg=-1
+        iRotationNeg=-1
+        iEscalaZneg=-1
+
+    iMinBaseX=iMinScaleBaseX=context.scene.imp_sound_to_anim.action_offset_x
+    iMinBaseY=iMinScaleBaseY=context.scene.imp_sound_to_anim.action_offset_y
+    iMinBaseZ=iMinScaleBaseZ=context.scene.imp_sound_to_anim.action_offset_z
+
+    #escala inicia com 1 e não com zero
+    iRotationAxisBaseX=context.scene.imp_sound_to_anim.action_offset_x  +1
+    iRotationAxisBaseY=context.scene.imp_sound_to_anim.action_offset_y  +1
+    iRotationAxisBaseZ=context.scene.imp_sound_to_anim.action_offset_z  +1
+
+    #Added destructive optimizer option - LostLestSignificativeDigit lost/total
+    iDestructiveOptimizer=context.scene.imp_sound_to_anim.optimization_destructive
+
+    bLimitValue=False    #limita ou nao o valor - velocidade        
+
+    if iMinValue<0: iMinValue=0
+    if iMaxValue>255: iMaxValue=255
+    if iMinValue>255: iMinValue=255
+    if iMaxValue<0: iMaxValue=0    
+    if iMinValue!= 0: bLimitValue= True
+    if iMaxValue!= 255: bLimitValue= True
+
+
+    print('')

@@ Diff output truncated at 10240 characters. @@


More information about the Bf-extensions-cvs mailing list