I don't understand the naming here. You're using "select" and "selectedTone" which implies to me that this class has some access to a list of tones from which to select.  If you were passing in a tone id, I'd get it.  But as it stands, I think this method should just be called play() (or setTone()) and _selectedTone should be currentTone