Este problema toma inspiração da Web Audio API (https://www.w3.org/TR/webaudio/).
A parte essencial do problema é implementar a linha que se repete demonstrada no gráfico e fazer as conversões de intervalo corretamente. Alguns erros na precisão da resposta são tolerados ($$$\pm 1$$$ em "módulo"). As funções de cada tipo de onda podem ser implementadas praticamente da mesma forma que descritas, mas tome cuidado com a recursão na onda triangular, números em ponto flutuante são perigosos.
Para replicar a linha no gráfico, a solução do juiz utiliza da função fmod, que basicamente faz a função de módulo em ponto flutuante. Primeiro multiplicação o tempo atual $$$t$$$ com $$$f/44100$$$ e com $$$2\pi$$$. Para obter a periodicidade, somamos $$$\pi$$$, e aplicamos fmod com intervalo $$$2\pi$$$. Finalmente, diminuímos $$$\pi$$$ para obter o intervalo $$$[-\pi,\pi]$$$.
Em seguida aplicamos a função de onda, e o resultado passa por uma conversão de intervalos, de $$$[-1, +1]$$$ para $$$[-32768, +32767]$$$, que é similar a por exemplo uma conversão de temperatura de Fahrenheit para Celsius. Finalmente, arredondamos o resultado, porém aplicar chão ou teto também produz uma solução válida.