Tag: endianness

计算iOS的CoreMIDI Pitch Bend值?

我需要在iOS中从原始UInt16值手工组装14位MIDI Pitch Bend值。 我想知道有没有人有机会提出一个优雅的解决scheme? 这就是我所在的位置 – 我将有机会在今天晚些时候对此进行testing,但是如果在此之前我听到,很好: 首先,一些好奇的MIDI预备。 MIDI Pitch Bend被分成一个状态字节和两个数据字节(这是一个14位控制器),这两个数据字节都与它们的状态字节相关联,这两个数据字节都带有一个零状态位 ,MIDI Spec使它们按照MSB – > LSB (编辑:更新,它实际上是状态 – > LSB – > MSB ) (即1110 0000,011111111,01111111) 我们面临的挑战是如何在iOS上将ARM / Intel 16位UInt16分解为两个7位段,并且对MIDI有意义? 请记住,因为我们正在处理一个无符号的整数,所以0值不是中性弯音,而是整个音高下降 – 中音弯曲定义为8192,而16,383是全音高。 所以这里是我最好的猜测如何做到这一点: UInt16 msbAnd = base10ValueUInt16 & 16256; //clearing out LSB UInt16 msbAndShift = msbAnd << 1; //shift into leading Byte, with 0 […]