从 AKKeyboardView 创建 MIDI 文件

2024-01-05

目前我正在使用AKKeyboardView本质上连接到AKRhodesPiano对象,我想知道是否有一种简单的方法可以从中生成 MIDI 文件?

我看到AKKeyboardViewnoteOn and noteOff函数,这确实产生了MIDINoteNumber但我在 AudioKit 库中找不到任何其他地方可以真正接受此输入并生成 MIDI 文件,即使只是一个简单的文件。


您需要在后台运行 AKSequencer(可能带有节拍器轨道)。制作一个您将录制的附加轨道。还将长度设置为录音所需的长度。

当您从键盘收到注释 On 消息时,您可以检查音序器currentPosition并将其记录到字典中。当您收到匹配音高的 noteOff 消息时,再次检查currentPosition。使用这两个时间之间的差异来获取持续时间并向音序器上的录音轨道添加注释:

myRecordingTrack.add(noteNumber: noteNumber,
              velocity: 127,
              position: timeAtNoteOn,
              duration: timeAtNoteOff - timeAtNoteOn,
              channel: 0)

然后你就可以轻松使用AKSequencer's genData()创建 MIDI 文件(可能删除节拍器轨道,或将录制的轨道复制到新的轨道)AKSequencer实例)。

查看 SequencerDemo 进行设置AKSequencer并构建序列和 MIDIFileEditAndSync (均位于 AudioKit 存储库的 iOS 示例文件夹中)作为编写示例AKSequencer到 MIDI 文件。

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

从 AKKeyboardView 创建 MIDI 文件 的相关文章

  • 进入前台后刷新数据

    更改默认设置后 我想在AppDelegate中进入前台时刷新myViewController的数据 我所做的是 AppDelegate m void applicationDidFinishLaunching UIApplication a
  • 检测 AvPlayer 何时切换比特率

    在我的应用程序中 我使用 AVPlayer 通过 HLS 协议读取一些流 m3u8 文件 我需要知道在流会话期间 客户端切换比特率多少次 我们假设客户端的带宽正在增加 因此客户端将切换到更高比特率的段 AVPlayer能检测到这个开关吗 T
  • 我的游戏中应该有多少个视图控制器?

    我开始使用 spritekit 构建我的第一个游戏 现在我只有一个视图控制器来呈现开始屏幕场景 override func viewDidLoad super viewDidLoad let scene StartScreenScene C
  • SiriKit 错误:此应用程序不支持捐赠意图

    我在 Xcode 10 iOS 12 Beta 中捐赠自定义意图时遇到问题 我创建了一个在我的主应用程序目标和 OrderIntent 目标之间共享的自定义框架 我创建了一个 intentdefinition 文件 并将目标成员资格设置为我
  • 当强制退出/向上滑动以终止 iOS 应用程序而不点击横幅/警报时,如何获取推送通知有效负载?

    我正在构建一个应用程序来处理从 Parse 推送的通知 并尝试创建通知历史记录功能 我已经成功启用了后台模式 因此当应用程序在后台运行时 应用程序可以通过以下方式很好地获取有效负载application didReceiveRemoteNo
  • UICollectionView 拖放文件夹创建

    我正在使用 UICollectionView 创建 iOS 画廊应用程序 我希望用户能够拖放图像来重新排序图库并创建文件夹 类似于 iPhone 上的主屏幕 我发现了以下内容tutorial http nshint io blog 2015
  • 防止 AlertView 被解雇

    任何人都可以帮助我防止在其按钮单击事件上解雇警报视图吗 我有一个 textview 作为我的alertView 的子视图 如果 textview 值为 nil 我不想关闭它 因为这是一个非常老的问题 但我得到了一个解决方案 并且如果其他开发
  • Google 地图 API -> OpenGLES 崩溃

    日志是从 Crashlytics 粘贴的 对于许多用户来说 崩溃经常发生 据我所知 它与设备 iOS 版本无关 我在我的代码中找不到任何错误 这似乎是纯粹的库问题 是 Google 地图 API 错误吗 我可以做些什么来修复它 或者我应该在
  • 指定访问组时出现 KeychainItemWrapper 错误

    相当长一段时间以来 我一直在使用 KeychainItemWrapper 的 ARC 版本成功读取和写入私有钥匙串项目 我现在正在努力将我的 iOS 应用程序转换为使用共享访问组 以便我的 2 个共享相同应用程序前缀的应用程序可以访问钥匙串
  • 在故事板中的视图控制器之间滑动手势

    我希望添加左右滑动手势来在视图控制器之间进行更改 这是否可能 并且有没有一种简单的方法可以在故事板中执行此操作 谢谢 故事板允许您在两个视图控制器之间设置 Segues 我想说首先在视图之间附加 Segues 给它一个标识符 然后使用类似的
  • Xcode 存档上传失败并出现错误

    我正在尝试从 xCode 将新版本上传到 iTunesConnect 但每次我都会遇到此问题 问题是什么 我该如何解决这个问题 最近 我开始在上传过程中遇到问题 Xcode 经常卡住 最终会因您看到的第二个错误而失败 受够了一段时间后 我转
  • 在运行时获取 iPhone 应用程序的产品名称?

    如何才能实现这一目标 我想获取名称 以便可以在应用程序中显示它 当然 每次更改名称时不必在代码中更改它 Try this NSBundle bundle NSBundle mainBundle NSDictionary info bundl
  • 仅将 UIImage 移动到另一个 UIImage 内部

    I have an UIImage which is shown in an UIImageView I also have another image in an UIImageView which lays above the firs
  • 在 iOS 上,UIView 的 Frame 属性未在动画内部分配

    在我的 iOS 应用程序中 我尝试执行以下简单的动画 void dismissToolbar NSLog bx f by f bw f bh f toolbar frame origin x toolbar frame origin y t
  • 如何防止 RealmSwift 列表中出现重复项?

    如何防止向列表中添加重复项RealmSwift 我有我的User作为领域对象 但真正的数据源是服务器 只是使用领域在本地缓存用户 当我从服务器获取当前用户数据时 我想确保存储在领域中的用户拥有来自服务器的所有播放列表 以及它们的曲目列表等
  • “同时创建 xib 文件”按钮已禁用

    我在创建时遇到这个问题UIView s子类 创建 例如 UIViewControllers or UITableViewCells没关系 为什么会出现这种情况 I create view using cmd N and Xcode Vers
  • -[EAGLContext renderbufferStorage:fromDrawable:] 第二次失败?

    我正在开发一个 iOS openGL ES 应用程序 我正在做通常的 EAGLView ES2Render 的事情 启动时 使用以下代码成功创建 frambuffer BOOL createFramebuffers EAGLContext
  • 在 Flutter 中显示 iOS 的 PDF 内联文件

    我正在 flutter 中专门为 iOS 开发一个应用程序 现阶段 我需要向其中添加 PDF 文件 问题是 flutter 没有原生的方式来显示 PDF 文件 据我研究 由此tread https github com flutter fl
  • 是什么导致了这个 iPhone 崩溃日志?

    我有点卡住了 需要解决这个问题 因为我的一个应用程序出现了随机崩溃 而这些崩溃并不总是能够重现 这是崩溃日志之一 Incident Identifier 59865612 9F00 44EA 9474 2BF607AD662E CrashR
  • 用 UIView 像翻书一样翻页?

    我正在尝试在之间切换UIViews让它看起来就像你正在翻书的一页 The UIViewAnimationTransitionCurlUp如果我能让它向左或向右卷曲 那就非常接近了 这可能吗 我尝试过使用CATRansition但没有一种动画

随机推荐

  • Android 在选项卡中的嵌套活动中使用 startActivityForResult。

    我正在编写一个应用程序 该应用程序由在 tabhost 中创建的多个选项卡组成 intent new Intent setClass this Home class spec tabHost newTabSpec Home setIndic
  • 是否有 R 函数用于按组连续估算缺失年份值?

    我的数据框看起来像 df lt data frame ID c A A A A B B B B C C C C D D D D grade c KG 01 02 03 KG 01 02 03 KG 01 02 03 KG
  • 自动从包中的sysdata.rda加载数据

    我花了很多时间寻找可能是一个非常基本的问题的答案 但我就是找不到解决我的问题的方法 我发现的最接近的是这次交流 https stat ethz ch pipermail r devel 2011 August 061786 html从几年前
  • Android studio - 模拟器:无法 statvfs() 路径错误

    当我想在 Android Studio 3 2 中通过模拟器运行我的 android 应用程序时 出现此错误 我只想运行 Hello world 示例 Emulator Couldn t statvfs path 我遇到了同样的问题 并意识
  • 使用预先存在的访问令牌通过 ASP.NET 创建 YouTube 服务

    我一直在开发一个网站 供用户将视频上传到共享的 YouTube 帐户以供以后访问 经过大量工作 我已经能够获得活动令牌和可行的刷新令牌 然而 初始化的代码YouTubeService对象看起来像这样 UserCredential crede
  • 为 webrtc 实现 janus 网关

    我正在按照 janus 文档构建视频 MCU 系统 我根据自述文件安装了它的所有依赖项 http janus conf meetecho com docs 之后当我使用运行脚本时sh install sh我收到以下错误 In file in
  • WebRTC 候选信息末尾的数据是什么?

    我使用 Chrome 中的 WebRTC API 以及我自己根据 W3C 规范和其他问题编写的 WebSocket 脚本设置了一个基本的视频聊天应用程序 但有时 当一台 PC 通过 WebSocket 连接将 ICE 候选信息发送到另一台
  • PyCharm 性能优于 CMD python 命令

    我正在开发一个用于串行通信的 python 脚本 我正在 pyCharm 4 5 python27 和 windows 中开发它 我刚刚意识到当我在 pyCharm 上执行它时 它比我使用命令时运行得更快 python main py or
  • 证明匹配语句

    为了解决一个练习 我有以下代表整数的定义 Inductive bin Type Zero bin Twice bin gt bin TwiceOne bin gt bin 这个想法是 Twice x is 2 x 两次一x is 2 x 1
  • Ruby:Windows 路径转换

    我经常在脚本中使用长路径 因为我在 Windows 上 所以我必须将这些长路径转换为 nix 样式 并使用斜杠而不是反斜杠 如果此后您复制该路径以转到该文件夹 这没什么困难 但很烦人 因为在资源管理器中您必须再次执行相反的操作 所以我做了一
  • 将带符号的十进制转换为使用二进制补码编码的十六进制

    我需要编码signed通过二进制补码表示法将整数表示为十六进制 例如我想转换 e g 24375 to 0xffffa0c9 到目前为止 我一直在以下几方面开展工作 parseInt 24375 toString 2 gt 10111110
  • F# 中的“表达式问题”可以解决吗?

    我一直在看一个有趣的video http channel9 msdn com Shows Going Deep C9 Lectures Dr Ralf Lmmel Advanced Functional Programming Type C
  • 语法错误或访问冲突:1140 GROUP 列的混合 laravel

    我已经编写了这个带有分页的查询 items Item select items sub category name category name sub category slug category slug gt join sub cate
  • 使用 apache mod_proxy 缺少 Doctype HTML 部署

    我有一个奇怪的问题 我的 Vaadin 应用程序在我的计算机 本地 上运行良好 我刚刚部署了网站 现在遇到了问题 The 第一行中的标签丢失 我不知道为什么 但我认为这会导致一些问题 因为网站正在以 Quirks 模式显示 有趣的是 当我在
  • 当用户关闭(弹出)窗口时调用一些 JavaScript

    当用户关闭窗口时可以调用一些JS吗 我搜索了 JS 事件处理程序 发现只有 onunload 它会在用户离开页面时调用脚本 而不必关闭窗口 预期用途是调用 AJAX 脚本来取消设置与弹出窗口相关的一些会话 可能有也可能没有更好的方法来实现这
  • OCaml:在 GTK 中嵌入 openGL

    我想将 openGL 图形嵌入 OCaml 中的 GTK 程序中 您对如何做到这一点有什么想法吗 编辑 Tk 似乎已经解决了问题Togl http togl sourceforge net 在我的 ubuntu 中 我有包 liblablg
  • 如何在ServiceStack中使用Dapper

    目前 我使用 OrmLite 进行数据库操作 我也计划使用 Dapper ORM 但是谁能告诉我如何将 DapperORM 集成到 ServiceStack 中 我是否需要使用 Dapper 和插件来实现 IDbConnection 和 I
  • getopt 不解析参数的可选参数

    在 C 中 getopt long 不会解析命令行参数参数的可选参数 当我运行程序时 可选参数无法被识别 就像下面运行的示例一样 respond praise John Kudos to John respond blame John Yo
  • 到底什么是幺半群同态?

    我读过有关幺半群同态的内容幺半群态射 乘积和余积 http blog higher order com blog 2014 03 19 monoid morphisms products coproducts 并且无法100 理解 作者说
  • 从 AKKeyboardView 创建 MIDI 文件

    目前我正在使用AKKeyboardView本质上连接到AKRhodesPiano对象 我想知道是否有一种简单的方法可以从中生成 MIDI 文件 我看到AKKeyboardView有noteOn and noteOff函数 这确实产生了MID