The Crescendo Systems function generator can be used to generate sine, triangle, square and noise signals.
Additionally these carrier signals can be AM, FM or PM modulated or swept in frequency. The modulations can be enabled on their own or in any combination.
The square and triangle signals have a duty-cycle that can be set from 1% to 99%.
The noise signals do not repeat.
This app seems to have some issues with the HTC Desire, I am still investigating.