受信した 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 を見ましたが、他には何も見えませんでした。