1

受信した midi 値を解析して、次の形式で表示しようとしています。

小節:ビート:分割:ティック

私は次のコードを持っています:

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信号が必要です。しかし、私は Midi Monitor を見ましたが、他には何も見えませんでした。

4

1 に答える 1