我正在尝试pyo for python。我从首页使用以下命令为ubuntu安装了pyo:
sudo apt-get install libjack-jackd2-dev libportmidi-dev portaudio19-dev liblo-dev
sudo apt-get install libsndfile-dev python-dev python-tk
sudo apt-get install python-imaging-tk python-wxgtk3.0
git clone https://github.com/belangeo/pyo.git
cd pyo
sudo python setup.py install --install-layout=deb --use-jack --use-double
但是,当我尝试播放声音的第一个示例时:
>>> from pyo import *
>>> s = Server().boot()
>>> s.start()
>>> sf = SfPlayer("path/to/your/sound.aif", speed=1, loop=True).out()
我得到这些错误:
>>> from pyo import *
pyo version 0.7.9 (uses single precision)
>>> s = Server().boot()
ALSA lib pcm_dsnoop.c:614:(snd_pcm_dsnoop_open) unable to open slave
ALSA lib pcm_dmix.c:1024:(snd_pcm_dmix_open) unable to open slave
ALSA lib pcm.c:2267:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.rear
ALSA lib pcm.c:2267:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.center_lfe
ALSA lib pcm.c:2267:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.side
ALSA lib pcm_dmix.c:1024:(snd_pcm_dmix_open) unable to open slave
Cannot connect to server socket err = No such file or directory
Cannot connect to server request channel
jack server is not running or cannot be started
Expression 'parameters->channelCount <= maxChans' failed in 'src/hostapi/alsa/pa_linux_alsa.c', line: 1514
Expression 'ValidateParameters( inputParameters, hostApi, StreamDirection_In )' failed in 'src/hostapi/alsa/pa_linux_alsa.c', line: 2818
portaudio error in Pa_OpenStream: Invalid number of channels
Portaudio error: Invalid number of channels
Server not booted.
有人可以帮忙吗?
PS:我正在运行ubuntu 15.10
最佳答案
步骤1.您应该列出您的音频硬件:
from pyo import *
print("Audio host APIS:")
pa_list_host_apis()
pa_list_devices()
print("Default input device: %i" % pa_get_default_input())
print("Default output device: %i" % pa_get_default_output())
在我的系统上的结果是:
Audio host APIS:
index: 0, id: 8, name: ALSA, num devices: 10, default in: 9, default out: 9
index: 1, id: 7, name: OSS, num devices: 0, default in: -1, default out: -1
AUDIO devices:
0: OUT, name: HDA Intel HDMI: 0 (hw:0,3), host api index: 0, default sr: 44100 Hz, latency: 0.005805 s
1: OUT, name: HDA Intel HDMI: 1 (hw:0,7), host api index: 0, default sr: 44100 Hz, latency: 0.005805 s
2: OUT, name: HDA Intel HDMI: 2 (hw:0,8), host api index: 0, default sr: 44100 Hz, latency: 0.005805 s
3: OUT, name: HDA Intel HDMI: 3 (hw:0,9), host api index: 0, default sr: 44100 Hz, latency: 0.005805 s
4: OUT, name: HDA Intel HDMI: 4 (hw:0,10), host api index: 0, default sr: 44100 Hz, latency: 0.005805 s
5: IN, name: HDA Intel PCH: CS4208 Analog (hw:1,0), host api index: 0, default sr: 44100 Hz, latency: 0.005805 s
6: OUT, name: HDA Intel PCH: CS4208 Digital (hw:1,1), host api index: 0, default sr: 44100 Hz, latency: 0.005805 s
7: OUT, name: hdmi, host api index: , default sr: 44100 Hz, latency: 0.005805 s
8: IN, name: pulse, host api index: 0, default sr: 44100 Hz, latency: 0.008707 s
8: OUT, name: pulse, host api index: 0, default sr: 44100 Hz, latency: 0.008707 s
9: IN, name: default, host api index: 0, default sr: 44100 Hz, latency: 0.008707 s
9: OUT, name: default, host api index: 0, default sr: 44100 Hz, latency: 0.008707 s
Default input device: 9
Default output device: 9
步骤2.选择首选设备。在我的情况下,设备
9
可以。from pyo import *
s = Server(duplex=0)
s.setOutputDevice(9) # Use device from the previous step
s.boot()
s.start()
# Try to play sound
a = Sine(mul=0.01).out()