【问题标题】:Get music tempo or BPM?获取音乐节奏或 BPM?
【发布时间】:2011-11-22 23:55:16
【问题描述】:

我目前正在使用 xna 在 windows phone 7 中构建游戏 我试图从背景歌曲中播放的歌曲中获得每分钟的节拍, 我也不太确定我想要的是 BPM,我想要的是音乐中的节奏或节奏,更快的节奏,更快的精灵移动。我现在在想的是,BPM 是音乐中的频率达到定义常数范围的程度,例如 20 Mhz - 30 MHz, 如果我错了,请随时纠正我,我对音频不太熟悉,我曾尝试使用 MediaLibrary XNA 中的 VisualizationData,但经过一番谷歌搜索后,他们说 VisualizationData 不适用于 WP7,我也试过了并且输出是 256 长度的浮点数组包含 0 值,或者如果我可以用它做一些 fft,我会试一试 谢谢...

【问题讨论】:

标签: c# windows-phone-7 xna fft


【解决方案1】:

就像你说的那样,你无法直接获得节拍,但你必须解释这些数据。如果您个人可以预处理此音乐并将其与您的标题一起发布,那将是您的最佳选择

在 XNA 中,您实际上只有 MediaPlayer.GetVisualizationData 可以使用。没有任何内置的东西可以让你预先确定这种事情。它的使用方式如下,可为您提供有关正在播放的不同频率的信息。

MediaPlayer.IsVisualizationEnabled = true;
VisualizationData visData = new VisualizationData();
MediaPlayer.GetVisualizationData(visData);

那么,您如何利用这种频率的东西并使其对您的应用程序有价值? on the App Hub forums in this thread called "Audio Analysis" in the reply by jwatte 详细介绍了如何执行此操作。从本质上讲,您将查看低频并尝试找出节拍何时到来。没有什么是完美的,但希望您会得到您认可的东西。

祝你好运!

【讨论】:

  • 但是 VisualizationData 在 Windows Phone 中不起作用,对吧?目前我正在阅读来自 Content.Pipeline 的 AudioContent 但我仍然不知道如何使用它,我无法在我的游戏参考中获得包含 Microsoft.Xna.Content.Pipeline 的参考,我曾尝试添加参考但我无法在任何地方得到它,我也曾尝试使用内容库扩展,但它带有关于 mscorlib 版本的警告,我想我会尝试读取 .wav 数据,但我也发现很难从文件中读取XNA Windows Phone 中的二进制文件,生活没那么简单吧? :p
  • 我 99% 确定它在 WP7 中。你启用可视化了吗?我忘了将它添加到代码示例中。我会更新的。
  • 从 msdn 站点得到了这个。可视化数据在 Windows Phone 上不可用。任何在手机上获取可视化数据的尝试都会用 0 填充 VisualizationData 类。看看这个:msdn.microsoft.com/en-us/library/…
猜你喜欢
  • 1970-01-01
  • 2010-12-24
  • 2017-07-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-08-16
  • 1970-01-01
相关资源
最近更新 更多