2016-01-23 4 views
2

Я пытаюсь создать приложение, которое будет передавать аудио с Darkice, а также предоставить индикацию светодиодного индикатора VU для аудиопотока.Rpi wheezy duplicate capture on usb & dummy cards

Я создал виртуальную карту с. Эта карта распознается alsamixer, aplay и iscord, но я не могу передать линейный сигнал с карты USB (hw: 0,0) на фиктивную карту (hw: 2,0).

Я пробовал несколько сценариев .asoundrc, которые я нашел как в вашем Q & A, так и в Google, используя alsa dmix, dsnoop и multi, но пока ничего не получилось.

В настоящее время я использую одну программу python (LED_VU.py), которая автоматически запускается в одном терминале, а вторая программа python, содержащая Darkice (streamer.diDual.py) во втором терминале. Часть конфигурации светодиодной программы:

### LED VU Meter on RPI ### 

#!/usr/bin/env python 

import alsaaudio as AA 
import audioop 
from time import sleep 
import RPi.GPIO as GPIO 
GPIO.setmode(GPIO.BOARD) 
GPIO.setwarnings(False) 

#Define physical header pin numbers for 10 LEDs 

RPiPins=[11,12,13,15,16,18,22,7,3,5] 

#set all pins as output 

for pin in RPiPins: 
    GPIO.setup(pin, GPIO.OUT) 

#Set up audio 

card = 'hw:0,0' 

в Кoнфигурировании часть darkiceDual.cfg является:

# Darkice Configuration File - Generated by Streamer 

[general] 
duration  = 0  # duration of encoding, in seconds. 0 means forever 
bufferSecs = 5  # size of internal slip buffer in seconds 
reconnect  = yes # reconnect to server if disconnected 

[input] 
device  = hw:2,0 # alsa usb soundcard device for audio input 
sampleRate = 44100 # sample rate in Hz 
bitsPerSample = 16  # bits per sample 
channel  = 2  # channels. 1 = mono, 2 = stereo 

Мой файл .asoundrc является:

pcm.!default { 
    type plug 
    slave.pcm "mdev" 
    route_policy "duplicate" 

} 

pcm.mdev { 
    type multi 

    slaves.a.pcm "hw:0,0" 
    slaves.a.channels 2 
    slaves.b.pcm "dmixer" 
    slaves.b.channels 2 

    bindings.0.slave a 
    bindings.0.channel 0 
    bindings.1.slave a 
    bindings.1.channel 1 
    bindings.2.slave b 
    bindings.2.channel 0 
    bindings.3.slave b 
    bindings.3.channel 1 
} 

pcm.dmixer { 
    type dmix 
    ipc_key 1024 
    slave { 
     pcm "hw:2,0" 
     period_time 0 
     period_size 1024 
     buffer_size 4096 
     rate 44100 
     channels 2 
     format S16_LE 
    } 
} 

Что я делаю неправильно ?

В стример не будет звука, если я использую hw: 2,0 и имею ошибку «Не могу подключиться», если я использую hw: 0,0 (используется LED_VU.py). Если я изменил настройку карты программы LED на hw: 2,0, светодиоды будут блокироваться, и все они будут гореть.

Любая помощь приветствуется!

Благодарим за помощь. Обе программы используют линию usb как ожидалось.

Теперь я не могу использовать alsamixer или amixer. Pulseaudio вызывает проблему сейчас. Если он установлен, программа LED_VU.py не будет работать. Когда он будет удален, будут запускаться программы python, но не alsamixer.

ответ

0

Очевидно, вы хотите запустить измеритель VU и DarkIce из одних и тех же аудиоданных, то есть вы должны разрешить двум программам совместно использовать одно записывающее устройство.

Это можно сделать с помощью плагина dsnoop. Который включен по умолчанию для USB-устройств.

Сообщите обе программы для записи с устройства default. Если это было переопределено, вместо этого попробуйте dsnoop:0.

 Смежные вопросы

  • Нет связанных вопросов^_^