Great stuff lucastar \o/
Looking forward to see how you did it 
Thanks!!
OK, in the source is the Test() method in bmpFont.cpp class.
I will try to explain myself well (please see the attached image):
We draw the first quad, and the next one must have:
the left-top point = right-top point from the previous quad;
the left-bottom point = right bottom point from the previous quad;
then the right points = right points from the previous adding:
to the x coordinate, the size of the quad
to the y coordinate the yOffset.
The yOffset is calculated this way:
float yOffset = sin(time - x/*one of the two x point values*/ * n1 ))*n2;
n1 and n2 are float values.
Sorry for my terrible English, and if you have any questions please ask!