tone generation