如何使用 Pygame 播放正弦波/方波?

2023-12-09

我正在尝试使用 Pygame 播放正弦波sndarray.make_sound功能。但是,当我使用这个数组来播放它时:

np.sin(2 * np.pi * np.arange(44100) * 440 / 44100).astype(np.float32)

where 440是频率并且44100是采样率,而是播放响亮、刺耳的噪音。这可以使用pyaudio.PyAudio(),但是我需要一些不会阻止执行的东西。方波也会发生这种情况,但它只是不播放任何内容。我在用着channels=1为了mixer.pre_init and mixer.init功能。

我怎样才能解决这个问题?如果有帮助的话,我正在使用 Mac。提前致谢!


您可以将 numpy 数组直接加载到pygame.mixer.Sound对象和play它。出现刺耳声音的原因是,当混音器需要 16 位整数样本时,您可能正在向混音器发送 32 位浮点样本。如果要使用 32 位浮点数组,则必须设置size混频器初始化函数的参数为​​32:

import pygame
import numpy as np

pygame.mixer.init(size=32)

buffer = np.sin(2 * np.pi * np.arange(44100) * 440 / 44100).astype(np.float32)
sound = pygame.mixer.Sound(buffer)

sound.play(0)
pygame.time.wait(int(sound.get_length() * 1000))
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 Pygame 播放正弦波/方波? 的相关文章

随机推荐

  • 为索引列表生成 CREATE 脚本

    作为排序规则更改练习的一部分 我有一个索引列表 122 需要删除然后重新创建 如何重新创建这些索引 而不必每次都通过 GUI 并将其编写脚本到查询窗口 我的索引列表是从此脚本获取的 WITH indexCTE AS SELECT Table
  • Elasticsearch:小时分钟秒映射返回空数据

    下面是我为搜索字段创建的映射 PUT sample mapping properties webDateTime1 type date format dd MM yyyy HH mm ss dd MM yyyy hour minute se
  • 将数据放入 gridview 的第二行

    我正在使用 foreach 循环将数据插入到 gridview 中 如下所示 foreach GridViewRow row in grvbillDetail Rows row text row text row int row int 我
  • Travis 与 Firebase 部署 TypeError:this.stream.clearLine 不是函数

    我正在尝试使用 Travis 构建和部署 NodeJs Python 应用程序 这大约是文件夹结构 所有内容都属于同一个存储库 main angular2 client dist node modules django server ser
  • 如何在Python中调用超级构造函数?

    class A def init self print world class B A def init self print hello B output hello 在我使用过的所有其他语言中 超级构造函数都是隐式调用的 如何在 Pyt
  • 上传前获取文件大小、图片宽度和高度

    在上传到我的网站之前 如何使用 jQuery 或 JavaScript 获取文件大小 图像高度和宽度 多张图片上传并带有信息数据预览 Using HTML5 和File API 使用示例URL API 图像源将是表示 Blob 对象的 UR
  • 正则表达式 - 识别分数

    我需要使用正则表达式从菜谱数据库中的表单字段中识别分数 成分将被输入到由两部分组成的表单字段中 第一字段是数量 第二字段是成分 然后 我需要将字段一分解为其小数部分以输入到数据库中 可能的条目包括 1 1 2 1 1 2 以及前面任何一个带
  • 在120个字符后附加readmore标签,并使其在ios中可点击

    数据来自解析器 如果文本超过 120 个字符 那么它应该像 Facebook 一样附加 ReadMore 我已经获得了附加文本的代码 但不知道如何制作可点击的链接 我正在使用 Swift Languge if cell bhikmangaT
  • 如何在 Angular JS Web 应用程序中使用 ckeditor?

    我很难使用ckeditor在我内置的 html 页面中angularjs 我已经尝试了很多例子 ng ckeditor directive ckeditor directive 但这些例子都没有帮助我 我想要一个文本区域 我可以在其中输入图
  • 在 Typescript 类中声明常量

    在 TypeScript 中声明常量的最佳方式是什么class 你不能声明一个常量 你可以声明一个readonly场 它比您期望的常数弱 但可能足够好 class MyClass static readonly staticReadOnly
  • Mac OS X >= 10.6 上的 Finder 文件图标徽章(图标覆盖)

    我正在寻找一种解决方案 可以在 Mac 上使用 cocoa 进行文件图标叠加 图标徽章 就像 Dropbox 在 mac 上所做的那样 有谁知道如何做到这一点 我搜索了 Xcode 文档并研究了scp插件源代码是一种旧的碳代码 有点晚了 但
  • Docker 容器无法到达本地主机端口 4444。为什么呢?

    我容器化了一个应用程序 它是自动化 Selenium 测试的测试驱动程序 Selenium 服务器 也称为 Selenium Hub 在另一个容器以及 Firefox 节点中运行 位于 localhost 4444 下 但我的应用程序无法到
  • 响应.on 是什么意思? Node.js

    我在处理 Node js http 请求时遇到问题 如果我无法弄清楚 我稍后会问一个更大的问题 我有修改过的代码和示例 但我不明白 response on 的含义 阅读有关 Node js 中 http 的更多信息 HTTP 事务剖析 我没
  • 浮点数表示,Java 示例[重复]

    这个问题在这里已经有答案了 您能否解释一下为什么我得到下一个结果 当我运行这个时 System out println 0 2 0 1 我得到 0 1 当我运行这个时 System out println 0 3 0 2 我得到 0 099
  • 在 Blazor 中,“await Task.Run(StateHasChanged)”和“await InvokeAsync(StateHasChanged)”之间有什么区别?

    我最近继承了 Blazor Webassemble 应用程序 但对 dotnet 或 Blazor 的经验很少 一些组件使用await Task Run StateHasChanged 而不是await InvokeAsync StateH
  • 根据字符将 Python 字符串列表拆分为单独的列表

    我试图弄清楚如何根据列表中的字符将以下列表拆分为单独的列表 list 2014 00 03 01 Matt login 0 01 2014 02 06 12 Mary login 0 01 我想在引入每个 符号后创建一个列表 例如 我希望输
  • PayPal 订阅 PDT / IPN - 请

    我在理解贝宝支付方面遇到了很多麻烦 我如何确认用户已成功注册我的订阅 我对 IPN 的了解为 0 但例如 如果用户使用以下命令注册到我的网站 电子邮件受保护 但使用贝宝帐户 电子邮件受保护 付款然后我如何匹配用户 我读到 PDT 不会发送用
  • 使用 jsonpath 获取匹配元素的父级

    假设我有一个如下所示的 JSON 对象 name A sub prop 1 prop 2 prop 3 name B sub prop 7 prop 8 prop 9 我怎样才能得到元素的父元素prop值为2 jsonpath query
  • 将最大值添加到 R 中的新列[重复]

    这个问题在这里已经有答案了 这是数据 a lt c 1 1 2 2 3 b lt c 1 3 5 9 4 df1 lt data frame a b df1 a b 1 1 1 3 2 5 2 9 3 4 我想要这样的东西 a b max
  • 如何使用 Pygame 播放正弦波/方波?

    我正在尝试使用 Pygame 播放正弦波sndarray make sound功能 但是 当我使用这个数组来播放它时 np sin 2 np pi np arange 44100 440 44100 astype np float32 wh