gpt4 book ai didi

python - 从频率,和弦在 python 中播放流式声音

转载 作者:太空狗 更新时间:2023-10-30 01:22:44 25 4
gpt4 key购买 nike

我正在开发一个将吉他和弦转换为类卓琴和弦的应用程序,在构建对象时,我还想制作一种音频“打印语句”,可以快速播放我已经演奏过的和弦选项卡式/书面式。

我发现自己对如何使用 Python 同时播放多个声音感到非常困惑,而无需进行某种混合工作、包含所有 pygame 或写入文件。

我正在寻找的是可以...

  1. 采用频率——比如 440 产生一个 A,880 产生一个 Octave ——作为一个可迭代的
  2. 可以在不写入磁盘的情况下播放它们,可能是通过 MIDI 乐器。

我有一些功能可以将音品转换为频率,给定乐器调音,基于这些,我想说:

fretboard.play([440, 880])

并听到提示音。或者如果我可以指定时间...

fretboard.play([(440,1), (880,1)])

同时听到每个声音一秒钟。

简单地获得这种声音的最佳方法是什么,如果我想创作一些原始旋律,希望能够让我对其中的几个进行排序?

此外,如果这只是一种完全不同的编程方式,而且我的问题看起来很幼稚(“嘿 mittenchops,你需要了解更多有关 channel 的知识!”),请告诉我,尤其是如果你可以直接好的学习资源。

最佳答案

在早些时候寻找 Python 的合理分析时,我无意中发现了这个网站 PythonInMusic ,其中有一堆用于 Python 的音乐软件链接。

再回顾一下,我想我会尝试用来实时输出 MIDI 音符的第一个东西叫做 PyFluidSynth。 .这是 python 的 midi 合成器。这是他们网站上的一些示例代码:

import time
import fluidsynth

fs = fluidsynth.Synth()
fs.start()

sfid = fs.sfload("example.sf2")
fs.program_select(0, sfid, 0, 0)

fs.noteon(0, 60, 30)
fs.noteon(0, 67, 30)
fs.noteon(0, 76, 30)

time.sleep(1.0)

fs.noteoff(0, 60)
fs.noteoff(0, 67)
fs.noteoff(0, 76)

time.sleep(1.0)

fs.delete()

希望这能帮助您指明正确的方向!

关于python - 从频率,和弦在 python 中播放流式声音,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19670249/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com