示例#1
0
        public override int GetHashCode()
        {
            int hash = 1;

            if (Timestamp != 0L)
            {
                hash ^= Timestamp.GetHashCode();
            }
            if (SampleRate != 0)
            {
                hash ^= SampleRate.GetHashCode();
            }
            if (Channels != 0)
            {
                hash ^= Channels.GetHashCode();
            }
            if (BitsPerSample != 0)
            {
                hash ^= BitsPerSample.GetHashCode();
            }
            if (Data.Length != 0)
            {
                hash ^= Data.GetHashCode();
            }
            if (_unknownFields != null)
            {
                hash ^= _unknownFields.GetHashCode();
            }
            return(hash);
        }
示例#2
0
文件: Song.cs 项目: xj0229/gsf
 /// <summary>
 /// Creates a new song with a 3/4 measure size, a tempo of 240 quarter-notes per minute,
 /// mezzo-forte prevailing dynamic level, using a basic note timbre and the specified
 /// audio format settings.
 /// </summary>
 /// <param name="sampleRate">Desired sample rate</param>
 /// <param name="bitsPerSample">Desired bits-per-sample</param>
 /// <param name="channels">Desired data channels</param>
 public Song(SampleRate sampleRate, BitsPerSample bitsPerSample, DataChannels channels)
     : base(sampleRate, bitsPerSample, channels)
 {
     m_measureSize = new MeasureSize(3, NoteValue.Quarter);
     m_tempo       = new Tempo(240, NoteValue.Quarter);
     m_dynamic     = (double)Music.Dynamic.MezzoForte / 100.0D;
     m_timbre      = Music.Timbre.BasicNote;
     m_damping     = Music.Damping.Natural;
     m_noteQueue   = new List <Note>();
 }
示例#3
0
        public override int GetHashCode()
        {
            var hashCode = -1416147052;

            hashCode = (hashCode * -1521134295) + EqualityComparer <string> .Default.GetHashCode(Name);

            hashCode = (hashCode * -1521134295) + EqualityComparer <MediaType.Audio> .Default.GetHashCode(ContentType);

            hashCode = (hashCode * -1521134295) + SampleRate.GetHashCode();
            hashCode = (hashCode * -1521134295) + BitsPerSample.GetHashCode();
            hashCode = (hashCode * -1521134295) + Channels.GetHashCode();
            return(hashCode);
        }
示例#4
0
 public override int GetHashCode()
 {
     unchecked
     {
         int result = SlotId;
         result = (result * 397) ^ (Name != null ? Name.GetHashCode() : 0);
         result = (result * 397) ^ ClockRate.GetHashCode();
         result = (result * 397) ^ ChannelCount.GetHashCode();
         result = (result * 397) ^ SamplesPerFrame.GetHashCode();
         result = (result * 397) ^ BitsPerSample.GetHashCode();
         return(result);
     }
 }
            public byte[] SerializeHeader()
            {
                List <byte> data = new List <byte>();

                data.AddRange(RiffHeader);
                data.AddRange(ChunkSize.GetBytesLE());
                data.AddRange(WaveHeader);

                data.AddRange(FmtHeader);
                data.AddRange(Subchunk1Size.GetBytesLE());
                data.AddRange(AudioFormat.GetBytesLE());
                data.AddRange(NumChannels.GetBytesLE());
                data.AddRange(SampleRate.GetBytesLE());
                data.AddRange(ByteRate.GetBytesLE());
                data.AddRange(BlockAlign.GetBytesLE());
                data.AddRange(BitsPerSample.GetBytesLE());

                data.AddRange(DataHeader);
                data.AddRange(Subchunk2Size.GetBytesLE());

                return(data.ToArray());
            }
        public void Header()
        {
            Console.WriteLine("ChrunkID: " + ChrunkID);
            Console.WriteLine("ChrunkSize: " + ChrunkSize.ToString());
            Console.WriteLine("Format: " + Format);
            Console.WriteLine("Subchunk1ID: " + Subchunk1ID);
            Console.WriteLine("Subchunk1Size: " + Subchunk1Size.ToString());
            Console.WriteLine("AudioFormat: " + AudioFormat.ToString());
            Console.WriteLine("NumChanels: " + NumChanels.ToString());
            Console.WriteLine("SampleRate: " + SampleRate.ToString());
            Console.WriteLine("ByteRate: " + ByteRate.ToString());
            Console.WriteLine("BlockAlign: " + BlockAlign.ToString());
            Console.WriteLine("BitsPerSample: " + BitsPerSample.ToString());
            Console.WriteLine("Subchunk2ID: " + Subchunk2ID);
            Console.WriteLine("Subchunk2Size: " + Subchunk2Size.ToString());

            /*for (var j = 0; j < Subchunk2Size / 2 / NumChanels; ++j)
             *  for (var i = 0; i < NumChanels; ++i)
             *      Console.WriteLine(Data[i, j].ToString() + " ");*/

            /* for (var j = 0; j < Subchunk2Size / 2 / NumChanels; ++j)
             *   Console.WriteLine(Data[0, j].ToString() + " ");
             * Console.WriteLine("end");*/
        }
示例#7
0
        /// <summary>
        /// Returns multiline string with wav file metadata.
        /// </summary>
        /// <returns></returns>
        public string GetMetadataString()
        {
            var sw = new System.IO.StringWriter();

            sw.WriteLine("Nazwa pliku: " + FileName);
            sw.WriteLine("Czas trwania: " + Subchunk2Size / ByteRate + "s");
            sw.WriteLine();
            sw.WriteLine("---- METADATA ----");
            sw.WriteLine("Chunkid: " + System.Text.Encoding.UTF8.GetString(ChunkID));
            sw.WriteLine("Rozmiar: " + ChunkSize.ToString());
            sw.WriteLine("Format: " + System.Text.Encoding.UTF8.GetString(Format));
            sw.WriteLine("Subchunk1 ID: " + System.Text.Encoding.UTF8.GetString(Subchunk1ID));
            sw.WriteLine("Subchunk1 rozmiar: " + Subchunk1Size.ToString());
            sw.WriteLine("Audio format: " + AudioFormat.ToString());
            sw.WriteLine("Kanaly: " + NumChannels.ToString());
            sw.WriteLine("Sample rate: " + SampleRate.ToString());
            sw.WriteLine("Byte rate: " + ByteRate.ToString());
            sw.WriteLine("Block align: " + BlockAlign.ToString());
            sw.WriteLine("Bits per sample: " + BitsPerSample.ToString());
            sw.WriteLine("Subchunk2 ID: " + System.Text.Encoding.UTF8.GetString(Subchunk2ID));
            sw.WriteLine("Subchunk2 rozmiar: " + Subchunk2Size.ToString());

            return(sw.ToString());
        }
示例#8
0
文件: Song.cs 项目: rmc00/gsf
 /// <summary>
 /// Creates a new song with a 3/4 measure size, a tempo of 240 quarter-notes per minute,
 /// mezzo-forte prevailing dynamic level, using a basic note timbre and the specified
 /// audio format settings.
 /// </summary>
 /// <param name="sampleRate">Desired sample rate</param>
 /// <param name="bitsPerSample">Desired bits-per-sample</param>
 /// <param name="channels">Desired data channels</param>
 public Song(SampleRate sampleRate, BitsPerSample bitsPerSample, DataChannels channels)
     : base(sampleRate, bitsPerSample, channels)
 {
     m_measureSize = new MeasureSize(3, NoteValue.Quarter);
     m_tempo = new Tempo(240, NoteValue.Quarter);
     m_dynamic = (double)Music.Dynamic.MezzoForte / 100.0D;
     m_timbre = Music.Timbre.BasicNote;
     m_damping = Music.Damping.Natural;
     m_noteQueue = new List<Note>();
 }
示例#9
0
文件: WaveFile.cs 项目: avs009/gsf
 public WaveFile(SampleRate sampleRate, BitsPerSample bitsPerSample, DataChannels channels, WaveFormat audioFormat)
     : this((int)sampleRate, (short)bitsPerSample, (short)channels, (ushort)audioFormat)
 {
 }
示例#10
0
文件: WaveFile.cs 项目: avs009/gsf
 /// <summary>
 /// Creates a new empty in-memory wave file in Pulse Code Modulation (PCM) audio format.
 /// </summary>
 /// <param name="sampleRate">Desired sample rate.</param>
 /// <param name="bitsPerSample">Desired bits-per-sample.</param>
 /// <param name="channels">Desired data channels.</param>
 public WaveFile(SampleRate sampleRate, BitsPerSample bitsPerSample, DataChannels channels)
     : this((int)sampleRate, (short)bitsPerSample, (short)channels, (ushort)WaveFormat.PCM)
 {
 }
示例#11
0
 public Builder BitsPerSample(BitsPerSample value)
 {
     bitsPerSample = value;
     return(this);
 }
示例#12
0
 public Builder BitsPerSample(BitsPerSample value)
 {
     bitsPerSample = value;
     return this;
 }