Google Sheets, 250 bytes
=SORT(SPARKLINE(LET(F,LAMBDA(F,n,IF(n<3,1,F(F,n-1)+F(F,n-2))),D,LAMBDA(l,o,a,{SEQUENCE(30*l+1,1,)+o*30,SIN(PI()*SEQUENCE(30*l+1,1,)/(30*l))*a*l*7.5}),W,LAMBDA(W,k,o,a,IF(k<3,D(1,o,a),{W(W,k-1,o,a);W(W,k-2,o+F(F,k-1),-a);D(F(F,k),o,a)})),W(W,A1,,1)))) It's just an implementation of the code OP provided.
The straight line connecting the start and end of the wave seems to be a bug with the SPARKLINE function.
