Accueil > Linux / Logiciels Libres > Blender > Sound Visualizer

Sound Visualizer

samedi 8 septembre 2012, par Yann

 Sound Visualizer avec Blender

Exemple de test de la fonction Bake Sound to F-Curves

Fichier Blend

 Version intermédiaire du projet

Fichier Blend

Code source python de la génération de la matrice de barres

import bpy

rows = 5
columns = 5

r = 0
c = 0

def spiral(X, Y):
    x = y = 0
    dx = 0
    dy = -1
    for i in range(max(X, Y)**2):
        if (-X/2 < x <= X/2) and (-Y/2 < y <= Y/2):
            print(x,y)
            bpy.ops.mesh.primitive_cube_add(location = (x, y, 0))
            bpy.context.scene.cursor_location = bpy.context.active_object.location
            bpy.context.scene.cursor_location.z -= 1
            bpy.ops.object.origin_set(type='ORIGIN_CURSOR')    
            ####
            bpy.context.active_object.scale.x = 0.5
            bpy.context.active_object.scale.y = 0.5
            bpy.context.active_object.scale.z = 3.5
            bpy.ops.object.transform_apply(scale=True)
    
            bpy.ops.anim.keyframe_insert_menu(type='Scaling')
            bpy.context.active_object.animation_data.action.fcurves[0].lock = True
            bpy.context.active_object.animation_data.action.fcurves[1].lock = True
            bpy.context.area.type = 'GRAPH_EDITOR'
    
            step = 19000/(rows*columns)
            bpy.ops.graph.sound_bake(filepath="/home/yann/Documents/articles_lpmag/article_blender_soundvisualizer/blend/Grace_Valhalla_-_99__.mp3", low=i*step, high=i*step + step)
    
            bpy.context.active_object.animation_data.action.fcurves[2].lock = True
        
            if x == y or (x < 0 and x == -y) or (x > 0 and x == 1-y):
                dx, dy = -dy, dx
        
            x, y = x+dx, y+dy
        
spiral(rows, columns)

bpy.context.area.type = 'TEXT_EDITOR'

 Version finale « light »

Version « plein jour » de l’animation

Fichier Blend

 Version finale « dark »

Version « discothèque » de l’animation. les matériaux ont été modifiés au niveau du « Shading -> emitter ». Il est aussi possible de placer une « light » au centre de la matrice pour l’illuminer.

Réglage des matériaux

Fichier Blend