code: @SuppressWarnings("WeakerAccess")
      public static NumberField buildRMST(int requestingPlayer, Message.MenuIdentifier targetMenu,
                                          CdjStatus.TrackSourceSlot slot, CdjStatus.TrackType trackType) {
          return new NumberField(((requestingPlayer & 0x0ff) << 24) |
                  ((targetMenu.protocolValue & 0xff) << 16) |
                  ((slot.protocolValue & 0xff) << 8) |
                  (trackType.protocolValue & 0xff));
      }
docs: <p>Build the <em>R:M:S:T</em> parameter that begins many queries.</p>
  
  <p>Many request messages take, as their first argument, a 4-byte value where each byte has a special meaning.
  The first byte is the player number of the requesting player. The second identifies the menu into which
  the response is being loaded, as described by {@link Message.MenuIdentifier}. The third specifies the media
  slot from which information is desired, as described by {@link CdjStatus.TrackSourceSlot}, and the fourth
  byte identifies the type of track about which information is being requested; in most requests this has the
  value 1, which corresponds to rekordbox tracks.</p>
  
  @param requestingPlayer the player number that is asking the question
  @param targetMenu the destination for the response to this query
  @param slot the media library of interest for this query
  @param trackType the type of track about which information is being requested
  
  @return the first argument to send with the query in order to obtain the desired information