【问题标题】:AKMIDI - Different behaviour - virtual midiAKMIDI - 不同的行为 - 虚拟 MIDI
【发布时间】:2019-09-17 21:40:05
【问题描述】:

我有以下情况:在我的应用程序中,我创建了虚拟 MIDI 端口,如 Audiokit 页面上的一些示例中所述。 我使用 midi 来触发 AKMIDISampler 和 AKMIDISampler 为打击乐器加载 .aupresets。我在 AULAB 中创建了 .aupresets,以便忽略 NOTE OFF。 所以样本可以淡出并且不会在下一次命中时被切断。 它可以与我的 MIDI 键盘和其他一些硬件 MIDI 控制器一起正常工作。 MIDI NOTE OFF 被忽略,之前的声音可以淡出并且声音重叠很好。但是当我在 AudioBus 中加载我的应用程序并使用音序器通过虚拟 MIDI 触发它时,每个新样本总是会切断前一个样本。这听起来很不自然,应该改变。

virtual MIDI 和 not virtual 的区别在哪里?我做错了什么以及如何在两个级别上获得相同的行为?任何帮助表示赞赏!谢谢!

//open midi ports        

let midi = AudioKit.midi
    midi.createVirtualPorts()
    midi.openInput(name: "Session 1")
    midi.addListener(self)






//Play Sampler 

    func receivedMIDINoteOn(noteNumber: MIDINoteNumber, velocity: MIDIVelocity, channel: MIDIChannel) {
    do {
         try self.myMIDISampler.play(noteNumber: myNote, velocity: velocity, channel: myMIDIChannel)
        } catch {
                    AKLog("Can't play the file, error:\(error)")
                 }
    }

它在虚拟 MIDI 和硬件 MIDI 命令上应该有相同的结果。 原则上,我认为我需要一种方法来忽略/过滤所有级别的 midi 音符。 这也可能是一个解决方案。

【问题讨论】:

    标签: midi audiokit


    【解决方案1】:

    @user3491466,

    在没有看到整个 Xcode 项目和您从 AU Lab 保存的 .aupreset 的情况下,您是否可以尝试在参数菜单中增加图层的 Release Time,以便样本继续播放而不会被中断?

    如果这有帮助,请告诉我。请务必查看 AudioKit Synth One 开源项目中的 Audiobus SDK 和相关类。这样,您可以查看是否有任何不同的设置。

    https://github.com/AudioKit/AudioKitSynthOne

    【讨论】:

    • 嗨,马克,感谢您的回答!我刚刚尝试将时间释放到 60,但不幸的是它又是一样的。如果我在 MIDI 键盘上弹奏,那么可以通过虚拟端口从另一个应用程序(例如 MIDI Wrench 或 Aftertouch)弹奏,然后当我第一次大声开始时,例如速度 120,然后速度 10,第一个音被切断,尽管释放时间发生了变化。结果怎么会不一样呢? MIDI 命令应该是 MIDI 命令……也许这是一个错误?
    猜你喜欢
    • 1970-01-01
    • 2014-11-16
    • 1970-01-01
    • 1970-01-01
    • 2012-09-14
    • 2010-11-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多