问题标签 [pitch]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
12550 浏览

signal-processing - FFT 音高检测 - 旋律提取

我正在创建一个音高检测程序,该程序从帧的 FFT 获得的功率谱中提取基频。这是我到目前为止所拥有的:

  • 将输入音频信号分成帧。
  • 带汉明窗的乘法框架
  • 计算帧 sqrt(real^2 + img^2) 的 FFT 和幅度
  • 通过谐波积谱找到基频(峰值)
  • 将峰值的频率(bin 频率)转换为音符(例如 ~440 Hz 是 A4)

现在程序为每一帧生成一个整数,其值从 0 到 87。根据我在这里找到的公式,每个整数对应一个钢琴音符。我现在正试图通过根据计算出的音符合成声音来模仿输入信号中的旋律。我试图简单地生成一个幅度和频率与基频相对应的正弦波,但结果听起来与原始声音完全不同(几乎听起来像随机哔哔声)。

我不是很懂音乐,所以根据我所拥有的,我可以根据从基频获得的信息来生成旋律与输入(乐器、语音、乐器+语音)相似的声音吗?如果没有,我可以使用我目前拥有的代码尝试其他什么想法。

谢谢!

0 投票
1 回答
668 浏览

flash - 如何计算在 Flash 中捕获为 ByteArray 的音频记录的平均频率?

现在保持简单,但假设我有一个充满样本数据的 ByteArray,是否可以从整个录音中计算平均频率(因此是音高)?

这是正确的路线吗?p = 69 + 12 x log2(f/440hz) ...

原谅我的无知

0 投票
2 回答
2924 浏览

iphone - CoreAudio 速度变化 (iOS)

我对音频编程很陌生,但我知道这一定是可能的。(这是一个与 iOS/iPhone 相关的问题)。

我将如何在不改变音高的情况下改变加载的音频文件的速度,然后播放它?

我想我需要深入研究 CoreAudio 框架,但我不确定从哪里开始。

如果有人可以让我知道我需要看哪些课程或涉及的一般过程,那将帮助我入门,我将非常感激!

干杯!

0 投票
3 回答
2232 浏览

iphone - CMA姿态横滚和俯仰计算

问题本身很简单。使用 CMDeviceMotion 运动时,它包含一个名为姿态的对象,其类型为 CMAttitude,其中包含滚动和俯仰。滚动和俯仰描述了对象围绕 Y 轴和 X 轴的旋转。当 iPhone 放在桌子上且显示屏朝上时,roll 和 pitch 均为 0。当 iPhone 绕 Y 或 X 轴旋转时,这些值会更新。

我想知道这些值是如何计算的。有一种方法可以根据设备的当前重力矢量计算滚动和俯仰。音高似乎是:pitch = -asin(motion.gravity.y)但我不知道如何计算滚动。

谢谢你的帮助

0 投票
1 回答
1733 浏览

matlab - MATLAB 中的实时语音转换

是否可以使用 MATLAB(近乎)实时转换语音(音高/共振峰转换)?怎么做到呢?

如果没有,我应该用什么来做到这一点?

我需要从麦克风获取输入,可视化声波,为其添加滤波器,再次查看示波器,然后播放修改后的声音。

实时可视化(频谱图)可以使用 Hideki Kawahara 的SparkNG包创建。

0 投票
1 回答
760 浏览

ios - IOS - ipad和pitch-roll-layer之间的角度

我在 IOS 中使用核心运动来计算 ipad 和俯仰滚动层之间的角度,但我不知道如何根据偏航、俯仰和滚动值计算 ipad 层和俯仰滚动层之间的角度。在下图中,我想计算 α - 角度。请帮我!谢谢

下面的计算正确吗?

α = 90 - atan2(sqrt(pow(acceleration.x,2)+pow(acceleration.y,2)),acceleration.z)

http://imageshack.us/photo/my-images/443/bild1nwcmm.png/

PS:红线是我的ipad-layer

0 投票
1 回答
4098 浏览

ios - 在 iOS 上获取相对于地理北方的俯仰、滚动和偏航?

我看到我可以从设备中检索CMAttitude,并从中读取我需要的 3 个值(俯仰、滚动和偏航)。据我了解,这个 CMAttitude 对象由 CoreMotion 管理,CoreMotion 是一个传感器融合管理器,用于计算来自指南针、陀螺仪和加速度计的正确结果(在 Android 上是 SensorManager 类)。

所以我的问题是:

  1. 这些值(俯仰、滚动和偏航)是否与磁北和重力相关?

  2. 如果以上是正确的,我该如何修改它以给出相对于地理北方的结果?

  3. 如果设备(例如 iPhone 3GS)没有陀螺仪,我是否必须告诉经理或者我可以告诉它根据它拥有的传感器给我设备的姿态(acc + gyro + compas acc + 指南针

0 投票
2 回答
485 浏览

ios - PGMidi 改变音高 sendBytes 示例

我正在尝试第二天发送一个 midi 信号。我正在使用以下代码:

我不明白如何计算 msb 和 lsb。我尝试了 pitchValue << 8。但它工作不正确,当我使用 midi 工具查看事件时,我看到最小值 -8192 和 +8064 最大值。我想得到-8192和+8191。

对不起,如果问题很简单。

0 投票
4 回答
12916 浏览

android - Android Pitch and Roll 问题

我正在开发适用于 Android 的倾斜应用程序。我遇到了纵向和横向模式的问题。当俯仰 = 90 度(电话结束)时,甚至在滚动值没有发生物理变化的情况下,滚动值变得疯狂之前。我一直无法找到解决此问题的方法。如果有人能指出我正确的方向,将不胜感激。

这是一个简短的代码转储,因此您知道这不是加速度计错误。

0 投票
2 回答
876 浏览

cuda - CUDA 2D Arrays - 在分配之前考虑间距?

我有一个工作流程如下:

  1. 加载初始值
  2. 将值处理为中间结果 A
  3. 过程 A 到中间结果 B
  4. 过程 B 到中间结果 C
  5. 过程 C 和 B 到中间结果 D 和 E
  6. 将部分 D 与最终结果 F 相加

我所有中间结果的自然结构是一个二维数组,我使用 cudaMallocPitch() 分配它。

不幸的是,我的算法要求我同时将 D、E、C 和 B 保存在内存中,并且 D 和 E 在内存中分别比 B 大 4 倍。由于我的处理中的另一个限制(迭代图结构在内存中),A或B的维度受D和E的最大维度的限制,这又由初始值的内存使用量+ B的内存消耗+ C的内存消耗决定。这种依赖性是因为我正在从主机向/从设备内存“分页”中间结果的部分(以适应非常大的问题集),并且在整个步骤 1-3 完成之前我无法开始步骤 4问题集。

一旦我有整个问题集的 B,我就可以删除 A。

我目前正在使用以下函数确定 D+E 的最大大小:

它“有效”,但只是因为我高估了 D 或 E 的大小(它们的尺寸和内存使用量相同) 25% 并将 B 的预期大小翻了一番。即便如此,我仍然会遇到我的记忆的边缘情况分配失败,因为它的内存不足。我想更有效地利用卡上的内存保持对齐,因为我的内核对全局内存进行了多次读写。

不,使用共享内存不是一种选择,因为我在多个块中使用多个内核,并且块内的线程根本不交互。

我发现 cudaMallocPitch() 只返回已成功分配的内存的使用音高。有没有办法向驱动程序提交 2D 内存分配请求,然后只询问它分配的间距?

我会安装一个试错优化例程,但是 A、B、D 和 E 之间的尺寸关联依赖性(CI 计算先验,因为它没有分配音高线性)使得这是一个糟糕的解决方案,它需要为每个问题集重新计算。

有没有人有更好的方法可以让我确定适合任意数量设备内存的中间数据集的适当大小?

编辑:

中间 A 的内存正在被重用,我的边界计算假设 C+D+E+B >> Initial + A + B (由于 A 和 B 是相同的尺寸,而 C、D、E 是整数),因此我只需要确保 B + C + D + E 有足够的空间。

我只使用 Compute Capability 2.x 卡来测试(Quadro 2000、Tesla C2075、GTX460)。