예제 #1
0
 def __init_alsa(self):
     try:
         self._device = PCM()
     except ALSAAudioError as e:
         logger.error('ERROR: Error al inicializar dispositivo ALSA: %s' %
                      str(e))
         return
     else:
         for mixer in MIXER_PRIO:
             try:
                 self._mixers[mixer] = Mixer(mixer)
             except ALSAAudioError as e:
                 err = 'Warning: Error al inicializar mixer ALSA: %s'
                 logger.warning(err % str(e))
             else:
                 if self._default_mixer is None:
                     self._default_mixer = mixer
예제 #2
0
import numpy
from numpy.fft import fft, ifft
from numpy.random import random_sample
from alsaaudio import PCM, PCM_NONBLOCK, PCM_FORMAT_FLOAT_LE

pcm = PCM()  #mode=PCM_NONBLOCK)
pcm.setrate(44100)
pcm.setformat(PCM_FORMAT_FLOAT_LE)
pcm.setchannels(1)
pcm.setperiodsize(4096)


def sine_wave(x, freq=100):
    sample = numpy.arange(x * 4096, (x + 1) * 4096, dtype=numpy.float32)
    sample *= numpy.pi * 2 / 44100
    sample *= freq
    return numpy.sin(sample)


for x in xrange(1000):
    sample = sine_wave(x, 100)
    pcm.write(sample.tostring())
예제 #3
0
 def build_playback_device(self):
     self.playback_device = PCM(mode=PCM_NONBLOCK)
     self.playback_device.setrate(48000)
     self.playback_device.setperiodsize(960)
     self.playback_device.setchannels(1)
예제 #4
0
 def build_capture_device(self):
     self.capture_device = PCM(PCM_CAPTURE, PCM_NONBLOCK)
     self.capture_device.setrate(48000)
     self.capture_device.setperiodsize(960)
     self.capture_device.setchannels(1)
예제 #5
0
 def capturarAudio(self):
     self.captura = PCM(PCM_CAPTURE)
     self.captura.setchannels(1)  # default 2
     self.captura.setrate(44100)  # default 44100
     self.captura.setformat(PCM_FORMAT_S16_LE)  # default PCM_FORMAT_S16_LE
     self.captura.setperiodsize(1024)  # default 32