小编Osc*_*car的帖子

AKMIDIListener没有收到SysEx

我在一个类上使用AudioKit的AKMIDIListener协议来监听MIDI消息.这适用于标准消息,例如Note On,但SysEx消息不会通过.

func receivedMIDINoteOn(noteNumber: MIDINoteNumber, velocity: MIDIVelocity, channel: MIDIChannel) {
    NSLog("Note On \(noteNumber), \(velocity), \(channel)") // works perfectly
}
func receivedMIDISystemCommand(_ data: [MIDIByte]) {
    NSLog("SysEx \(data)") // never triggers

    // More code to handle the messages...
}
Run Code Online (Sandbox Code Playgroud)

SysEx消息从外部硬件或测试软件发送.我已经使用MIDI监控应用程序来确保正确发送消息,但在我的应用程序中它们没有触发receivedMIDISystemCommand.

接收我缺少的SysEx消息是否还需要其他步骤?

提前感谢任何线索.

midi sysex coremidi swift audiokit

8
推荐指数
1
解决办法
230
查看次数

Javascript原型函数:十进制时间值到一个时间字符串

在我目前正在使用JavaScript的项目中,我使用的是十进制格式,因此更容易计算而不是在字符串中使用小时/分钟格式(日历相关项目).要在用户屏幕上显示时间,时间码必须显示为hh:mm.

我认为使用String原型函数会很好,因为它允许我使用如下代码:

var time = 8.75;
document.write("Meeting at "+time.toTime()); // writes: Meeting at 8:45
Run Code Online (Sandbox Code Playgroud)

到目前为止,我已经完成了这项工作,使用:

String.prototype.toTime = function(){
    var hrs = this.toString().slice(0,this.indexOf("."));
    var min = Math.round(this.toString().slice(this.indexOf("."))/100*60);
    min = min<10 ? "0"+min : min.toString();
    return hrs+":"+min;
}
Run Code Online (Sandbox Code Playgroud)

但问题是,只有当变量time是一个字符串时,这才会起作用.否则会产生未定义的错误.

是否有任何方法可以将原型应用于JavaScript中的不同对象,以便我不必使用time.toString().toTime()

谢谢!

javascript time function-prototypes

5
推荐指数
1
解决办法
1229
查看次数