public void AddTimeSignature(int tick, int timeSignatureNumerator, int timeSignatureDenominator) { var denominatorIndex = 0; while ((timeSignatureDenominator = (timeSignatureDenominator >> 1)) > 0) { denominatorIndex++; } AddEvent(_midiFile.InfoTrack, tick, BuildMetaMessage(0x58, new byte[] { (byte)(timeSignatureNumerator & 0xFF), (byte)(denominatorIndex & 0xFF), 48, 8 })); }