【问题标题】:Note duration with OSC, or continuous note ON/OFF带有 OSC 的音符持续时间,或连续音符开/关
【发布时间】:2012-07-23 07:06:38
【问题描述】:

我正在为我的 iOS 音乐鼓垫类型应用程序添加 OSC 功能。我可以在敲击打击垫时发送字符串,然后使用 OSCulator 映射到 MIDI,使用 Logic Pro 进行测试并正常播放音符,但我想知道如何给 Logic Pro 音符持续时间,这将如何完成?

我们的目标是让音符一直持续到按下打击垫为止,因此在实际按下打击垫之前您不会知道持续时间。计划在未来实现 CoreMIDI,但从 OSC 和 OSCulator 开始。

【问题讨论】:

  • 有note on和note off事件。注释的持续时间不会在注释打开时发送。
  • 好的,但是 OSC 字符串/值在开/关时会是什么样子,那么你在 OSCulator 中做什么?对我的应用来说,开/关就足够了,不需要持续时间,所以这很棒!

标签: ios midi duration osc


【解决方案1】:

按反复试验排序,添加 Int 1 然后添加 Int 0 来停止就可以了,但是如果您有不希望这种行为的焊盘,添加 Int 会强制您也有 Int 0,所以在那些case 只是不添加 Int。

OSCMessage *msg = [OSCMessage createWithAddress:[NSString stringWithFormat:@"/Pad%i", i + 1]];

if (stick)
    [msg addInt:1];             

[outPort sendThisPacket:[OSCPacket createWithContent:msg]];

然后关闭它:

if (stick)
{
    OSCMessage *msg = [OSCMessage createWithAddress:[NSString stringWithFormat:@"/Pad%i", i + 1]];

    [msg addInt:0]; 

    [outPort sendThisPacket:[OSCPacket createWithContent:msg]];

}

这使用 VVOSC/vvopensource。起初它不起作用,但后来删除了所有 OSCulator 设置并重新配置,然后它起作用了。

【讨论】:

    猜你喜欢
    • 2016-08-07
    • 2011-01-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-21
    相关资源
    最近更新 更多