我想要实现的是从我的 python 应用程序中弹奏吉他和弦。如果需要,我知道(或可以计算)和弦中的频率。
我在想,即使我做了低电平腿部工作,以正确的频率产生多个正弦波,但由于包络也需要正确,所以听起来也不会正确,否则它听起来不像吉他,而是更多嗡嗡声
令人兴奋的是,linux sox 命令 play 可以产生一个非常有说服力的个人音符:
play -n synth 0 pluck E3
所以我真正要问的是,
a) 是否有可能将播放命令硬塞进整个和弦(理想情况下,开始时间略有不同以模拟拨弦行程)——我无法做到这一点,但也许有一些 bash fairydust会 fork 一个过程等等,所以听起来不错。如果这是可能的,我会满足于从我的代码中调用 bash 命令(我不喜欢重新发明轮子)。
b)(甚至更好)python 中是否有实现此目的的方法(吉他和弦声音)?我见过一些可访问的 python midi 库,但坦率地说,据我所知,midi 不适合我想要的声音。
最佳答案
手册给出了这个例子:
play -n synth pl G2 pl B2 pl D3 pl G3 pl D4 pl G4 \
delay 0 .05 .1 .15 .2 .25 remix - fade 0 4 .1 norm -1
这会同时创建 6 个合成器实例(作为单独的音频 channel ),通过稍微增加时间来延迟 5 个 channel ,然后将它们混合成一个 channel 。
结果是一个非常有说服力的吉他和弦;您当然可以非常轻松地更改音符或延迟。您还可以使用“吉他”的延音和音调进行演奏,或者添加过载效果——有关详细信息,请参阅手册。
关于python - 在 linux 和/或 python 中制作吉他和弦的最简单方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6686576/