相关疑难解决方法(0)

如何合成声音?

我想制作类似于真实乐器音频的声音.问题是我很少知道怎么做到这一点.

我所知道的远离真实乐器的是它们输出的声音很少干净.但是如何产生这种不洁的声音呢?

到目前为止,我已经做到了这一点,它产生了非常简单的声音,我不确定它是否正确地使用了alsa.

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())
Run Code Online (Sandbox Code Playgroud)

python numpy alsa

7
推荐指数
2
解决办法
3171
查看次数

不能和mingus一起玩

我来使用mingus试图在python中重现一些音符.根据这里的回答,我尝试过:

from mingus.midi import fluidsynth

fluidsynth.init('/home/btc/Escritorio/SinestesiaRCB/gfx/ViolinsLong.sf2',"alsa")

fluidsynth.play_Note(64,0,100)
#Also tried with Note("C-5") and so forth
Run Code Online (Sandbox Code Playgroud)

使用其中一个sf2文件.但后来我得到了错误:

fluidsynth:warning:无法将线程设置为高优先级

fluidsynth:警告:在通道9上找不到预设[bank = 128 prog = 0]

研究了一下,这个答案说:

对于通用MIDI兼容性,默认声音字体乐器分配为0至0道和10-15的0区,0级("Acoustic Grand Piano")和9频道的0级("默认鼓组")显然,你的声音字体没有后者.如果您的MIDI文件不采用通用MIDI兼容乐器并且不尝试在通道9上播放鼓声,则无关紧要.

但除此之外,这可能会让事情变得更加清晰,我仍然不知道如何解决它.

另外,如果我使用第一个链接的答案相同的文件,那么我得到的错误是这个(并且不知道如何解决它):

fluidsynth:warning:无法将线程设置为高优先级

fluidsynth:警告:无法将样本数据固定到RAM; 交换是可能的.

更新

使用sudo权限运行程序会删除此错误,但它不会发出声音.这样,我得到的错误是:

QStandardPaths:未设置XDG_RUNTIME_DIR,默认为'/ tmp/runtime-root'

我认为在fluidsynth驱动程序中选择的驱动程序模式可能存在问题,但我已尝试使用相同的结果(alsa,oss等).为了完整起见,我在VM中运行它,其中的其他声音在我的主机扬声器中正确再现.

但是根据这个答案,我想它应该通过传递给它正确的声音环境变量来解决.我不知道.我尝试过:

pkexec env DISPLAY=$DISPLAY XAUTHORITY=$XAUTHORITY python3 /home/btc/Escritorio/SinestesiaRCB/SinestesiaRCB.py
Run Code Online (Sandbox Code Playgroud)

在需要文件的完整路径的地方,因为这需要sudo权限并更改其工作目录,最后出现同样的错误:XDG_RUNTIME_DIR.

更新2

如果我使用sudo -E选项运行它,则错误将替换为新错误:

QStandardPaths:运行时目录/ run/user/1000上的错误所有权,1000而不是0

我正在读一些网页,1000用户应该是默认用户而不是root用户. …

python audio-player

5
推荐指数
1
解决办法
326
查看次数

标签 统计

python ×2

alsa ×1

audio-player ×1

numpy ×1