首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CoreMidi解析MIDI歌曲位置

CoreMidi解析MIDI歌曲位置
EN

Stack Overflow用户
提问于 2012-08-26 06:47:36
回答 1查看 316关注 0票数 1

我正在尝试解析收到的midi值,并将其显示为以下格式:

小节:节拍:分段:刻度

我有以下代码:

代码语言:javascript
复制
unsigned short CombineBytes(unsigned char First, unsigned char Second) 
{ 
    unsigned short _14bit;

    _14bit = (unsigned short)Second; 
    _14bit<<=7; 
    _14bit|=(unsigned short)First; 
    return(_14bit); 
}

-(void) midiSource:(PGMidiSource *)input midiReceived:(const MIDIPacketList *)packetList{

    const MIDIPacket *packet = &packetList->packet[0];
    for (int i = 0; i < packetList->numPackets; ++i)
    {

        Byte statusByte = packet->data[0];
        Byte status = statusByte >= 0xf0 ? statusByte : statusByte >> 4 << 4;

        if (status == 0xF2){

            NSLog(@"%i", CombineBytes(packet->data[1], packet->data[2]));
        }
    }
}

基本上当Logic Pro,或Ableton Live发送歌曲位置信号时,我收到的值像404,405等。

例如: 404= 026:02:01,其中026 =小节,02=节拍,01 -分段。这一部分对我来说很清楚。

但是如何买到门票呢?这就是问题所在,要么是我不理解的东西。或者应该是不同的midi信号。但是我看了看迷你显示器,我没有看到其他的东西。

EN

回答 1

Stack Overflow用户

发布于 2014-03-29 18:40:24

根据MIDI标准,1节拍=6个时钟。后者通过时序时钟消息(0xF8)发送。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12126255

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档