+ self.ss_edge = self.samplenum - self.pulse_width
+ # Use the first ten frames to calculate bit rates
+ if self.frame_counter == 0:
+ # This is the first preamble to be decoded. Measurement of
+ # bit rates starts here.
+ self.frame_start = self.samplenum
+ # The bit rate message should end here.
+ self.bitrate_message_end = self.ss_edge
+ elif self.frame_counter == 10:
+ self.frame_length = self.samplenum - self.frame_start
+ # Use section between end of synchronisation and start of
+ # first preamble to show measured bit rates.
+ if self.samplerate:
+ self.putx(self.bitrate_message_start, self.bitrate_message_end,\
+ [0, ['Audio samplingrate: %6.2f kHz; Bit rate: %6.3f MBit/s' %\
+ ((self.samplerate / 200 / self.frame_length), (self.samplerate / 200 * 64 / 1000 / self.frame_length))]])
+ else:
+ self.putx(self.bitrate_message_start, self.bitrate_message_end, [0, ['No sample rate given']])
+ self.frame_counter += 1