def __init__(self, recorder=None, applicationClose=None):
     # application
     self.app = None
     if recorder == None:
         raise Exception("No Recorder, so go home")
     self.recorder = recorder
     if applicationClose == None:
         raise Exception("No close callback")
     self.applicationClose = applicationClose
     self.curve = None
     self.uiplot = None
     config = ConfigProvider()
     self.amplitude = float(config.getAudioConfig()['amplitude'])
     self.guiIntervall = float(config.getRecordConfig()['guiintervall'])
                            format=self.audioDev.get_format_from_width(2),
                            channels=1,
                            rate=framerate,
                            output=True))
                    wb.write_wavefile(self.audioStream,
                                      samples,
                                      nframes=nframes,
                                      sampwidth=2,
                                      framerate=framerate,
                                      bufsize=bufsize)
                except AttributeError:
                    pass
            else:
                self.audioStream.stopIt()
                self.audioDev.terminate()
            return

    def stopPlaying(self):
        self.play = False
        print("Wait for finish current stream")


if __name__ == '__main__':
    from properties.config import ConfigProvider
    config = ConfigProvider().getAudioConfig()
    s = Sound()
    s.startPlaying(float(config['frequency']), float(config['amplitude']),
                   int(config['framerate']), int(config['duration']),
                   int(config['buffersize']))
    s.stopPlaying()