/// <summary>
        /// Converts a play counter frame to raw frame.
        /// </summary>
        /// <returns>the raw frame.</returns>
        public override RawFrame Convert(TagVersion version)
        {
            FrameOptions flag = Descriptor.Options;

            byte[] payload;

            using (var writer = new FrameDataWriter(8))
            {
                writer.WriteUInt64(Counter);
                payload = writer.ToArray();
            }

            RawFrame rawFrame = RawFrame.CreateFrame(Descriptor.Id, flag, payload, version);
            return rawFrame;
        }
        /// <summary>
        /// Convert the Popularimeterframe.
        /// </summary>
        /// <returns>a RawFrame.</returns>
        public override RawFrame Convert(TagVersion version)
        {
            FrameOptions options = Descriptor.Options;

            byte[] payload;
            using (var writer = new FrameDataWriter())
            {
                writer.WriteString(Email, Encoding.ASCII, true);
                writer.WriteByte(Rating);
                writer.WriteUInt64(PlayCounter);
                payload = writer.ToArray();
            }

            RawFrame frame = RawFrame.CreateFrame(Descriptor.Id, options, payload, version);
            return frame;
        }