• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

ios - 使用 MusicTrackNewMIDINoteEvent 在播放时添加音符

[复制链接]
菜鸟教程小白 发表于 2022-12-12 11:12:20 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

我正在构建一个鼓机来学习如何在 iOS 上使用 MIDI。我设法让它工作到一个点,但是,我有以下问题。当用户点击某个按钮时,我需要在 MIDI 播放器播放时向我的 MIDI 循环添加声音,不幸的是我不能简单地这样做:

MusicTrackNewMIDINoteEvent(track, 0, &message);

虽然轨道是循环的并且有一个确定的长度,所以理论上它应该在某一点回到 0。我也试过这个:

MusicTrackNewMIDINoteEvent(track, noteTimestamp, &message);

其中 noteTimestamp 是我从播放器收到的时间戳。最后,我设法让它与这样的东西一起工作:

MusicTrackNewMIDINoteEvent(track, noteTimestamp+.5, &message);

但不用说 .5 延迟并不是我真正想要的鼓机,它应该尽可能响应。

那么,如何解决这个问题呢?如何尽快将音符推送到轨道上,而不会有任何延迟?



Best Answer-推荐答案


您正在轨道上放置一个事件,而当您放置该事件时,“播放头”已经过了它可以做任何事情的点。

所以继续做你正在做的事情(不改变时间)作为“记录”事件的一种手段,以便下次循环“出现”时,但你需要手动触发一条 midi 消息-- 除了轨道之外:

(int) note = 60;
(int) velocuty = 127;
(int) offset = 0;
MusicDeviceMIDIEvent(_yourSamplerUnit, kMIDIMessage_NoteOn << 4 | 0, note, velocity, offset);

同样,触发手动 midi 事件将允许听众听到声音,将事件放入轨道将允许您的轨道“录制”下一轮。

关于ios - 使用 MusicTrackNewMIDINoteEvent 在播放时添加音符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16749606/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap