Ejemplo n.º 1
0
 def fancyCrackle(self, levels, volume):
     levels = self.uniformSample(levels, self.MAX_BEEP_COUNT )
     beepLen = self.BEEP_LEN
     pauseLen = self.PAUSE_LEN
     pauseBufSize = NVDAHelper.generateBeep(None,self.BASE_FREQ,pauseLen,0, 0)
     beepBufSizes = [NVDAHelper.generateBeep(None,self.getPitch(l), beepLen, volume, volume) for l in levels]
     bufSize = sum(beepBufSizes) + len(levels) * pauseBufSize
     buf = ctypes.create_string_buffer(bufSize)
     bufPtr = 0
     for l in levels:
         bufPtr += NVDAHelper.generateBeep(
             ctypes.cast(ctypes.byref(buf, bufPtr), ctypes.POINTER(ctypes.c_char)),
             self.getPitch(l), beepLen, volume, volume)
         bufPtr += pauseBufSize # add a short pause
     tones.player.stop()
     tones.player.feed(buf.raw)
Ejemplo n.º 2
0
def play(values):
    pitches = list(map(value_to_pitch, values))
    n = len(pitches)
    beepBufSizes = [
        NVDAHelper.generateBeep(None, pitches[i], beep_duration, beep_volume,
                                beep_volume) for i in range(n)
    ]
    bufSize = sum(beepBufSizes)
    buf = ctypes.create_string_buffer(bufSize)
    bufPtr = 0
    for pitch in pitches:
        bufPtr += NVDAHelper.generateBeep(
            ctypes.cast(ctypes.byref(buf, bufPtr),
                        ctypes.POINTER(ctypes.c_char)), pitch, beep_duration,
            beep_volume, beep_volume)
    tones.player.stop()
    speech.cancelSpeech()
    tones.player.feed(buf.raw)
Ejemplo n.º 3
0
 def fancyBeep(self, chord, length, left=10, right=10):
     beepLen = length 
     freqs = self.getChordFrequencies(chord)
     intSize = 8 # bytes
     bufSize = max([NVDAHelper.generateBeep(None,freq, beepLen, right, left) for freq in freqs])
     if bufSize % intSize != 0:
         bufSize += intSize
         bufSize -= (bufSize % intSize)
     tones.player.stop()
     bbs = []
     result = [0] * (bufSize//intSize)
     for freq in freqs:
         buf = ctypes.create_string_buffer(bufSize)
         NVDAHelper.generateBeep(buf, freq, beepLen, right, left)
         bytes = bytearray(buf)
         unpacked = struct.unpack("<%dQ" % (bufSize / intSize), bytes)
         result = map(operator.add, result, unpacked)
     maxInt = 1 << (8 * intSize)
     result = map(lambda x : x %maxInt, result)
     packed = struct.pack("<%dQ" % (bufSize / intSize), *result)
     tones.player.feed(packed)