SIMPLE SOUND VISUALIZATION
Animation Nodes (AN), has a few useful nodes dealing with WAV sound.This is going to be a short article, as it is just a snippet experimental thing. However, you are encouraged to try to remake this setup yourself, because you will understand few useful concepts.
The setup is really simple and I am really making this setup to test a few things. Usually when exploring AN, I will use the search spotlight thing, if it is related to "sound" I will look at each node related to sound and guessing what each node does.
By looking at AN nodes related to SOUND, we figure out few things:
- We can source the sound wave directly from specified path
- We can also source the sound from Blender sequences editor (layered sound)
- Sampled sound needs to be baked to work (however, not impossible to create realtime setup)
- Baked sound can then be evaluated to create animation
AN NODE TREE FOR THIS SETUP
This is a very simple sound visualization. Basically by using a single baked sound, we have a sequence of VALUE that we can use to control and drive any ATTRIBUTE we want. Here, in this setup, I have an array of Cube / Box object which Scale Z is driven by the baked sound value.
TIME for sure has effect on the value. And by delaying time I have this cascading effect.
The VALUE itself, I believe is normalized 0-1 value, and we like to use a node called "Map Range" so that the value can be mapped to a new MIN and MAX range.
The setup can be summarized like this:
1) Bake wave sound (WAV)
2) We need an array (instance) of objects to be driven by sound. I am driving the scale Z of instances of Cubes.
3) Since I am trying to visualize SOUND with TIME DELAY, so I actually use LOOP to generate LIST OF TIME. The generated list is piped into the loop that drive Cube.
4) Using multiple loops, you need to be careful not to create wrong cycle, or it may break.
MANY WAYS TO VISUALIZE SOUND
There are many ways you could "visualize" sound, another way is by using Array. You can use the baked Sound VALUE to control Array Count for example.Directly controlling Modifier Attribute using AN Object Attribute Output node. Thanks Zeffii for this trick. |
We could also use instace of / array of Sphere objects to visualize the sound and get this kind of "sound wave through air" matrix style effects.
Once a setup is created, we could customize and change any variable quite easily.
EVER MORPHING & FLOWING DATA
One could imagine data as a flow of energy. The Sun shines and feeds the plants, to make fruits that we then eat, to give us energy to stay alive and reproduce, and so on. Most of the time, whatever type of energy, we don't usually care as long everything works and we survive.As you further explore these node based environments, the more you need care about data, data type and data path, and referencing.
Very often you may try to plug data to a node slot that the node does not understand and break the setup. I did this (errors) all the time.
Maybe in next article I can talk about DATA in Animation Nodes (AN) and Sverchok (SV) and how the two can talk to each other (!).
And things get a bit clearer, I promise :) Keep in mind that I am also still learning. Thanks to both AN and SV developers for hints and helpful informations.
For me, the aim of using AN and SV is to understand this component level concepts that I might use later on when dealing with more complex setups.
Post a Comment