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); }
/// <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>(); }
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); }
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");*/ }
/// <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()); }
/// <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>(); }
public WaveFile(SampleRate sampleRate, BitsPerSample bitsPerSample, DataChannels channels, WaveFormat audioFormat) : this((int)sampleRate, (short)bitsPerSample, (short)channels, (ushort)audioFormat) { }
/// <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) { }
public Builder BitsPerSample(BitsPerSample value) { bitsPerSample = value; return(this); }
public Builder BitsPerSample(BitsPerSample value) { bitsPerSample = value; return this; }