add ToneGenerator feature