I understand one way of doing this with drivers, by which I add a driver to the z-axis of the object I want to move and then assign a scale, location or rotation to the empty driving the movement of the object (that was a bit convoluted I know, but it'll be better illustrated by the gif below).
Is there a different method that I can use to achieve the same animation, but not require the use of a driver (something that I have to move or scale)? I want to be able to control the intensity of the waves through the use of some simple maths. For example:
Sin(x) (the red line) and
sin(5x) (the blue line) have a different frequency in waves.
I want to be able to control the animation through using similar principles in Blender.