基于傅里叶变换创建 iPhone 音乐可视化工具

2023-12-29

我正在为 iPhone 设计一个音乐可视化应用程序。

我想通过 iPhone 的麦克风采集数据,对其运行傅里叶变换,然后创建可视化来实现这一点。

我能得到的最好的例子是奥里奥图奇 http://developer.apple.com/library/ios/#samplecode/aurioTouch/Introduction/Intro.html它根据 FFT 数据生成完美的图表。然而,我一直在努力在自己的项目中理解/复制 aurioTouch。

我无法理解 aurioTouch 在执行 FFT 之前到底从麦克风中获取数据的位置?

还有其他代码示例可以用来在我的项目中执行此操作吗?或者还有其他提示吗?


由于我计划自己使用麦克风的输入,因此我认为您的问题是熟悉相关示例代码的好机会。

我回溯一下阅读代码的步骤:

  1. 开始于SpectrumAnalysis.cpp(因为很明显音频必须以某种方式到达这个类),你可以看到类方法SpectrumAnalysisProcess有第二个输入参数const int32_t* inTimeSig--- 听起来是一个很有希望的起点,因为输入时间信号正是我们正在寻找的。
  2. 使用右键菜单项Find in project在这个方法上,你可以看到,除了明显的定义和声明之外,这个方法只在FFTBufferManager::ComputeFFT方法,它从哪里得到mAudioBuffer作为它的第二个参数(inTimeSig从步骤 1) 开始。寻找此类数据成员会给出超过 2 或 3 个结果,但其中大多数又只是定义/内存分配等。有趣的搜索结果是mAudioBuffer用作参数memcopy,在方法内部FFTBufferManager::GrabAudioData.
  3. 再次使用搜索选项,我们看到FFTBufferManager::GrabAudioData仅在名为的方法内调用一次PerformThru。该方法有一个名为的输入参数ioData(听起来很有希望)类型AudioBufferList.
  4. 寻找PerformThru,我们看到它用在下面一行中:inputProc.inputProc = PerformThru;- 我们快到了:: 看起来像是注册一个回调函数。寻找类型inputProc,我们确实看到它是AURenderCallbackStruct- 就是这样。回调由音频框架调用,音频框架负责向其提供样本。

您可能需要阅读以下文档AURenderCallbackStruct(或者更好的是,音频单元托管 http://developer.apple.com/library/ios/#documentation/MusicAudio/Conceptual/AudioUnitHostingGuide_iOS/Introduction/Introduction.html)以获得更深入的理解,但我希望这给您一个良好的起点。

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

基于傅里叶变换创建 iPhone 音乐可视化工具 的相关文章

  • GameCenter 邀请处理程序

    尝试实现多人游戏 使用来自的样本游戏中心 发送和接收数据 https stackoverflow com questions 4574119 game center sending and receiving data 一切看起来都还好 但
  • iOS Facebook SDK - 远程定义 FacebookAppID

    使用iOS Facebook SDK 3 0 需要在应用程序的info plist中定义FacebookAppID和相关的URL Scheme 我想远程定义这些 向我自己的服务器请求应用程序 ID 所以有两个不同的问题 我可以在运行时更改应
  • 如何使用 Swift 将文本复制到剪贴板/粘贴板

    我正在寻找一个干净的示例 说明如何将文本复制到 iOS 剪贴板 然后可以在其他应用程序中使用 粘贴 该功能的好处是可以快速复制文本 无需传统文本复制的标准文本突出显示功能 我假设关键课程位于UIPasteboard 但在中找不到相关区域他们
  • 如何从 NSData 创建字节数组

    请任何人指导我如何从 nsdata 创建字节数组这是我创建 nsdata 的代码 NSData data UIImagePNGRepresentation img 如果您只想阅读它们 有一个非常简单的方法 unsigned char byt
  • 无法使用 MFMailComposeViewController 从应用程序发送电子邮件

    我在尝试从我的应用程序发送电子邮件时遇到了一些困难 我尝试了 iCodeBlog 中的这段代码 http icodeblog com 2009 11 18 iphone coding tutorial in application emai
  • 应用程序关闭时下载报刊亭应用程序

    我正在实现一个报摊杂志应用程序 它通过 Urban Airship 推送通知接收新期刊 只要应用程序位于前台或后台 这就可以正常工作 但据我所知 当应用程序完全关闭时也应该触发下载 但发送推送 content available 1如果我的
  • 以点值检测 iPhone 6/6+ 屏幕尺寸

    鉴于新发布的 iPhone 6屏幕尺寸 http www apple com iphone compare iPhone 6 1334h 750w 2x in points 667h 375w iPhone 6 1920 1080 3x i
  • 关闭 iPhone 网络应用程序

    我想关闭或最小化 隐藏 全屏 iPhone Web 应用程序 这个怎么做 window close 不起作用 你不能 您无法从 JavaScript 中退出浏览器 但你可以尝试让浏览器崩溃 但这并不是一个好主意
  • 如何使用break语句停止内部和外部循环[重复]

    这个问题在这里已经有答案了 我使用的代码非常简单break内部循环 for int it 0 it lt 5 it for int it2 0 it2 lt 5 it2 if it2 2 break break here not it2 b
  • swift 中 pch 的替代品是什么?

    我想知道可以用什么来代替 swift 中的 pch 有没有 pch 的替代方案或方法可以快速摆脱导入 这样我们就不需要对所有类都这样做 我不想一直随身携带 进口 swift 中 pch 的最佳替代品是什么 您无法在 swift 中定义 宏
  • 无法将 NSMutableDictionary 发送到另一个类

    All 我试图将 NSMutableDictionary 响应 发送到我的另一个类 或者更确切地说 让另一个类从这个类中提取字典 当另一个类使用 getResponse 方法时 它返回 null 我附加的代码是我的 XML 解析器 它将我需
  • UITableViewCell 上的 textLabel.backgroundColor 不起作用

    我正在尝试设置 UITableViewCells 的标签背景颜色 但它根本不执行任何操作 我想知道是否还有其他方法可以做到这一点 所以我问 我试过这个 cell textLabel backgroundColor UIColor redCo
  • 如何构建 Objective-C 静态库? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我有一些 Objective C 类 目前在 Cocoa 应用程序 Mac OS X 和 Cocoa Touch 应用程序 iOS 中
  • 重新安装我的 iPad 应用程序时,ApplicationIconBadgeNumber 未重置。

    我正在使用以下代码设置我的 applicationIconBadgeNumber UIApplication sharedApplication setApplicationIconBadgeNumber theIntToDisplay 问
  • 无法禁用 CALayer>>removeFromSuperlayer 的动画

    我希望从其超级层中删除 CALayer 而无需设置动画 这里发生的事情是图层动画到一个位置 效果很好 但是当动画停止时 执行此代码 将图层返回到其开始位置 并淡出 大概然后从超级层中删除 如何阻止它动画 removeFromSuperlay
  • 如何以编程方式创建选项卡栏

    大家好 我有基于导航的应用程序 其中我也需要在视图之一中实现选项卡栏 在一个视图中我需要 5 个选项卡 有人可以建议我以编程方式创建选项卡栏吗 每个选项卡应导航到另一个 xib 建议始终受到赞赏 问候 以下是 Apple 提供的用于以编程方
  • 帮助在 UIWebView 中使用 Javascript 代码

    我想在 webView 中运行以下代码 以便内容可编辑 javascript document body contentEditable true document designMode on void 0 到目前为止 我已经尝试过这个 v
  • 符号化 iPad 崩溃日志后回溯仍然不可读

    我有这些崩溃日志 在我将它们放入管理器中后 会自动进行符号化 但结果始终相同 iOS 调用得到符号化 而我的应用程序调用则没有 我尝试将 Dym 和应用程序文件复制到同一文件夹中 删除并再次复制回来 没有任何帮助 知道发生了什么事吗 所以我
  • iOS 5 UIView drawRect 覆盖在设备上不起作用

    我正在准备在 iOS 5 GM 上发布我的 iPhone 应用程序 并遇到了 UIView 的错误 当我在子类上重写 drawRect 方法时 模拟器会显示所需的结果 但当我尝试在实际设备上测试时 drawRect 重写根本没有任何效果 我
  • iPhone Mobile Safari:强制键盘打开

    这是一个 HTML CSS JS jQuery iPad 应用程序 我有一个按钮 可以向下滑动输入表单 我想让用户将注意力集中在输入上 然后启动键盘 这是我正在处理的 但不起作用 myFormField focus 这确实集中了输入 但无法

随机推荐

  • Firebase 安全规则错误“对象上未定义属性资源”

    我有一个函数 并且我已经在没有函数的情况下对其进行了测试 只是为了检查参考或其他内容是否没有问题 function resourceIsValidSomething return request resource data somethin
  • 动态创建 HTML 按钮控件并在其中嵌套 i 标记

    我在 c 中创建了一个简单的 HTML 按钮 如下所示 Button btn new Button btn ID myID btn Click new EventHandler someFunc 其工作效果完全符合预期 但我需要做的就是在其
  • 基于模型multiselectfield在模板django中显示结果

    基于多项选择字段 我想在模板中显示结果 但我不知道该怎么做 正如您在这个模型中看到的那样 我根据午餐选择为学生提供午餐选择 我想显示结果 但它不适用于前如果他选择三明治 提交后的结果你的三明治会准备好吗 其他人也一样 from multis
  • 使用 Surefire 和 TestNG 运行单个测试类或组

    我想使用 Maven 和 TestNG 从命令行运行单个测试类 不起作用的事情 mvn Dtest ClassName test 我已经在 pom xml 中定义了组 并且此类不属于这些组之一 因此它因这些原因被排除在外 mvn Dgrou
  • 安全地推送到阵列,如何?担心还是不担心?

    我认为这可能是一个天真的问题 我经常发现有多个 xhr 请求等待返回 我在 JavaScript 数组中跟踪我发出的请求 也就是说 当发出新请求时 我将其添加到数组中 然后当线程完成时 我将其从数组中删除 在多线程操作系统中 我会担心线程交
  • 具有引用返回 Get 的 C# 索引器也支持集

    我在这里做错了什么 或者从 C 7 2 开始 不支持通过 ref 返回和允许设置的索引器 Works public ref byte this int index get return ref bytes index 也有效 public
  • 从文件名中删除单词列表

    我试图从某个目录的所有文件中删除特定单词的列表 然后将其替换为任何内容 So 这个很棒的内容 720p BLAH FOO BANG OOO 30 9 2013 mp4 Becomes 这个很棒的内容 30 9 2013 mp4 现在 以下内
  • 为什么 kc_locale 和 UI lang 开关不起作用?

    A test web应用程序链接到 keycloak 重置凭证页面 http localhost 9990 auth realms test login actions reset credentials client id test we
  • 在 Mac OS X 中更改声音(或其他)系统偏好设置

    我希望能够在 Mac OS X 中切换声音输出源 而无需任何 GUI 交互 有一些工具可以控制声音输出 例如声源 http rogueamoeba com freebies and an applescript 打开首选项对话框 http
  • Django AttributeError:“DatabaseOperations”对象没有属性“select”

    我有一个连接到 PostGIS 数据库后端的 GeoDjango 实例 当我查询该数据库中的表时 标题中出现错误 AttributeError DatabaseOperations object has no attribute selec
  • 使用 reCAPTCHA 和 ajax....javascript 加载问题

    我试图在我的其中一个表单中实现 reCAPTCHA 但我使用 ajax 作为提交 更具体地说是 ajax updater 原型 一旦我提交并错误检查我的表单 我尝试加载 reCAPTCHA 小部件 在我更新的 div 元素中 它基本上只是调
  • 递归子集和函数

    我们的教授为我们的课程分享了以下有关递归的 Python 代码 这是 子集和 问题的解决方案 我一遍又一遍地阅读它 并尝试使用在线工具检查它并逐步遵循参数 但我根本不明白 我知道代码检查列表 L 的子集是否有可能使总和为 0 但我不明白该函
  • WPF 无法找到资源

    我有一个资源文件和两个视图 该视图使用资源文件
  • 如何检查自定义android是否已root?

    我们购买了一些定制的 Android 平板电脑 我们将把它们用作信息亭平板电脑 为了使我们的自助服务终端应用程序正常工作 该应用程序需要 root 访问权限 如何检查设备是否已正确 root 如果不是的话我该如何root它 表明设备已获得
  • 使用 Pow on Rails 4 进行遥控撬

    我正忙于 最终 升级到 Rails 4 并且遇到了 Pry remote 的问题 Problem 添加时binding remote pry对于我的代码 它会破坏代码 但是当我无法通过键入进入调试器时pry remote 这曾经在运行 Ra
  • 如何检查多维数组是否为空?

    基本上 我有一个多维数组 我需要检查它是否为空 我目前有一个if声明尝试这样做 if empty csv array My code goes here if the array is not empty 虽然 那if statement无
  • 在Android上解密“SunJCE”AES加密数据

    我们需要编写一些 Android 代码来解密从我们的服务器发送的一些数据 我们的服务器团队为我们提供了一些使用 SunJCE 提供程序的示例解密代码 遗憾的是 Android 上不存在该提供程序 Cipher cipher Cipher g
  • mingw C++ 无法编译 j0 函数

    我正在尝试使用 MingW msys2 在 Windows 上编译程序 但由于 j0 函数而失败 在Linux上编译没有问题 当我在编译器上使用 std c 11 标志时 它似乎很讨厌 如何正确编译并打开 std c 11 标志 示例代码
  • jar 内的文件对于 spring 不可见

    All 我创建了一个 jar 文件 其中包含以下 MANIFEST MF Manifest Version 1 0 Ant Version Apache Ant 1 8 3 Created By 1 6 0 25 b06 Sun Micro
  • 基于傅里叶变换创建 iPhone 音乐可视化工具

    我正在为 iPhone 设计一个音乐可视化应用程序 我想通过 iPhone 的麦克风采集数据 对其运行傅里叶变换 然后创建可视化来实现这一点 我能得到的最好的例子是奥里奥图奇 http developer apple com library