Sound wave animation

Hi,

I’m new to the forum and fairly new to Blender. Thanks for having me onboard.

I’m trying to illustrate a wave of sound that I have created using a nurbs curve and geometry nodes, to create a mesh.

To illustrate the propagation of sound, I scale up the curve. By setting the curve radius using keyframes I try to keep the thickness of the wave the same throughout the animation.

The issue is that the effect of this appears to be greatest towards the last frame, and I would like the thickness to be equal throughout.

Does anyone know how I can control the thickness of the ‘wave’? (using my method or another)

( mid-frame and last frame screen-shots go here, but as a new user, I am unable to post them :slight_smile: )

Cheers

I’m not sure what you want. Changing the radius of the curve, like you’re doing, will change the thickness of the curve. But some places it sounds like you want that to change and some places it sounds like you want that to stay the same.

If you want the radius to be smaller at the final frame, change the value at that frame and keyframe the new value. If you want the radius to not change, remove all of the keyframes from it.

Even as a new user, you can post links to files hosted on other sites, to videos hosted elsewhere (say, Youtube), and to image hosting sites like imgur or pasteboard.

Hi.
One thing to never, never, ever do - animate / keyframe the scale info like you are doing here…

Never animate this scale.
It will mess up bevels, material textures and a bunch of other things. Unless there is a good reason, that scale in the side panel should stay at 1,1,1.
Perhaps it would be OK with your simple animation, but as a general rule - leave it at default values.
Add a Transform Geometry Node after the curve to Mesh Node. And animate the scale there.

Do you know you can Bake Sounds to an f-curve? Search for that phrase in YT tutorials but, in Blender itself, in the latest versions its called Sound to Samples Find that in the Graph Editors Channel Menu → Sound to samples.
Automating a growing noise this way may be easier than manually doing it. Depends on how you are showing the propagating…

You can also post the extra images here by replying to yourself…
You are not going to get an exact answer until we are sure about what you are trying. I agree with @bandages about your info being somewhat contradictory / confusing. That is a typical beginner issue (lack of correct wording) which is why images or links to something someone else did as an example is always helpful.

Final thing - try a Trim Curve Node after the Set Curve Radius & play with the Start and End sliders… Is that a useful (animatable) growth or not?

@bandages and @Matakani what I’m trying to achieve, is basically what TheFlo achieves in his last post here, but I would also like to control the propagation of the wave with keyframes:

Constant Curve Thickness possible? (Geometry/Bevel) - Support / Animation and Rigging - Blender Artists Community

These are the missing screen-shots, where the wave has a greater thickness at frame 15 (half-way) and the correct thickness at frame 30 (i.e. same as frame 1)

The thickness of the curve is the product of the scale and the radius. 0.132 * 0.0143 = 0.0018876. 0.25 * 0.0025 = 0.000625. If you don’t want it to be so skinny in the second picture, increase either the scale or the radius.

Here is another way, download extra nodes by @BD3D install.

This will give you a sequencer volume node.

Load a music file in the video sequencer…

Back in geonodes under Extra, find sequencer volume

Attach to radius, you can add a math node set to multiply to control radius.

Works in 3.6

Hope that helps.

2 Likes

@Matakani and @AlphaChannel it is not so important to be able to use a sound file with the wave, in fact I would like to just control the motion manually. But thanks for the suggestions/inspiration! :slight_smile:

The issue is to control the relation between scale and thickness, as @bandages is getting at.

I made a bezier interpolated curve to control width in the quadrilateral node, and this has given me an approximation to a constant thickness, throughout the animation.

This is not the ideal solution, which would be a function that keeps the thickness the same using the width as a function of scale.

If any of you know how to do this, I very much would be interested. Otherwise, I can live with the way it looks now.

1 Like

The sound baking suggestion is a standard one. its often ‘the’ automated solution folks have no idea even is possible.

Now I understand you are doing “an animated Wi-Fi icon” I can give (hopefully :upside_down_face:) more useful answers…

Do you need motion? Is fading out or fading in the 3 bars one after the other a possibility? It still shows propagation…

For motion: How about using a boolean ? Make a cone shape and have a half circle moving out of the cone and appearing to grow. Then the scale / radius issue goes away.
You can do the boolean in geometry nodes, or as a traditional modifier…

Actually - combining those two ideas would look good.

1 Like

You just need divide curve radius by the scale, for the even thickness

4 Likes

@Matakani It’s pretty much an animated Wi-Fi icon, yes :laughing:

The three waves you see are 3x of the animation, where the two of them have delayed start in the timeline, from the first one.

The motion happens as a result of the scaling, as they all scale from the same local origin.

I use the scale to make them appear and disappear as well, simply setting scale to 0 with a keyframe.

I think I understand what you are trying to do using a boolean, but since I (hopefully) won’t run into any of the trouble you mentioned earlier (bevels, material texture …) the solution @higgsas suggests would actually get me to where I want to go :slight_smile:

2 Likes