While IT has an internal representation of "no note" (I think it was note 253), no note being present in the pattern data is simply indicated by the note bit in the status byte not being set, i.e. (StatusByte & 0x01) != 0 for new note data or (StatusByte & 0x10) != 0 for repeating the previous note. OpenMPT itself uses a different representation internally (0 = no note, 1 = C-0), so it's completely up to you whether you want to keep the ranges in your decoded data identical (i.e. 0 = C-0) or modify them like OpenMPT.