Well you can't build the function you're talking about out of sin/cos, because by definition both are even/odd functions with a special relationship to geometry, while your function would be asymmetrical and has no real physical significance. This kind of hints any attempt at building them from a sum/series of sin/cos harmonics (a Fourier series) would require A LOT of harmonics to approximate the shape, and to begin with you'd need a way to define your function.

What I would suggest is to build a function with cubic splines. I don't really have time to work out the math but it's not difficult.

Basically set it up so that you define the points (-1,0),(m,0),(1,0) which are the "left","center","right" of the wave (all the points where it crosses the X axis). m is a parameter you control to set where the "middle" will be where m is somewhere in the interval (-1,1), with m=0 giving something akin to a sine wave, and any values different than 0 shifting the point left or right. Then you set up your function S(x) as a piece-wise function

S(x):

if(x<m) S0(x)=a0+b0(x)+c0(x)^2+d0(x)^3

if(x>=m) S1(x)=a1+b1(x-m)+c1(x-m)^2+d1(x-m)^3

then you'd need to solve for all 8 parameters a0,a1,b0,b1,c0,c1,d0,d1

you'd do this by adding constraints onto S(x), like the following to get 8 equations in 8 unknowns (note the ' and '' indicate 1st and 2nd derivatives)

S(-1)=0

S(m)=0

S(1)=0

S0(m)=S1(m)

S0'(m)=S1'(m)

S0''(m)=S1''(m)

with additional constraints to ensure the function is smooth when it's periodic

S0'(-1)=S1'(1)

S0''(-1)=S1''(1)

you could also just set S0'(-1)=S1'(1)=K instead of the condition i wrote last, allowing you to explicitly set the slope to K at the endpoints.

OR

maybe if you want to mimic sine waves you could set S0'(m)=S1'(m)=-S0'(-1), but this could be weird. Generally playing with the periodic constraints will help you control things nicely.

Note that you need to give the function x values in the range [-1,1], or else you'll get weird output since this is basically just cubic polynomials that are infinitely increasing or decreasing past a range. So if you want to pass in a value that behaves periodically you have to remap it periodically to the [-1,1] range, similar to how an angle like 720 deg.=360 deg.=0 deg. That part should be easy to figure out.

Obviously you'll need to work out all the math to efficiently set all the 8 parameters for the function based on any given m.

This is the best idea I have to offer, I've never seen any function like the one you want, and this one wont perfectly reconstruct a sine wave for m=0, but it'll be something close and fast to evaluate, as-well as offers the capability to control the derivatives with additional parameters.

To be honest i have no idea what it'll sound like so if you work it out i'd be interested to hear I assume it'll just start to exemplify strange harmonics as you shift the center, since this is what it'll be doing to the Fourier series