/// <summary> /// The QueryRealD method returns all samples of the next file in the directory. /// </summary> /// <returns>All samples along with the format are returned where the format is placed in the last array.</returns> public List <double[]> QueryRealD() { if (m_nFileIdx == m_rgstrFiles.Length) { return(null); } using (FileStream fs = File.OpenRead(m_rgstrFiles[m_nFileIdx])) using (WAVReader wav = new WAVReader(fs)) { m_nFileIdx++; wav.ReadToEnd(); m_rgInfo = new Dictionary <string, float>(); m_rgInfo.Add("AveBytesPerSec", wav.Format.nAvgBytesPerSec); m_rgInfo.Add("BlockAlign", wav.Format.nBlockAlign); m_rgInfo.Add("Channels", wav.Format.nChannels); m_rgInfo.Add("SamplesPerSec", wav.Format.nSamplesPerSec); m_rgInfo.Add("BitsPerSample", wav.Format.wBitsPerSample); m_rgInfo.Add("FormatTag", wav.Format.wFormatTag); List <double[]> rgData = new List <double[]>(); for (int i = 0; i < wav.Samples[0].Length; i++) { rgData.Add(new double[] { wav.Samples[0][i], wav.Samples[1][i] }); } return(rgData); } }
/// <summary> /// The Query information returns information about the data queried such as header information. /// </summary> /// <returns>The information about the data is returned.</returns> public Dictionary <string, float> QueryInfo() { if (m_rgInfo != null && m_rgInfo.Count > 0) { return(m_rgInfo); } if (m_nFileIdx == m_rgstrFiles.Length) { throw new Exception("Invalid field index."); } using (FileStream fs = File.OpenRead(m_rgstrFiles[m_nFileIdx])) using (WAVReader wav = new WAVReader(fs)) { wav.ReadToEnd(true); m_rgInfo = new Dictionary <string, float>(); m_rgInfo.Add("AveBytesPerSec", wav.Format.nAvgBytesPerSec); m_rgInfo.Add("BlockAlign", wav.Format.nBlockAlign); m_rgInfo.Add("Channels", wav.Format.nChannels); m_rgInfo.Add("SamplesPerSec", wav.Format.nSamplesPerSec); m_rgInfo.Add("BitsPerSample", wav.Format.wBitsPerSample); m_rgInfo.Add("FormatTag", wav.Format.wFormatTag); return(m_rgInfo); } }
/// <summary> /// The GetQuerySize method returns the size of the query as {1,1,filesize}. /// </summary> /// <returns>The query size is returned.</returns> public List <int> GetQuerySize() { List <int> rgSize = new List <int>(); using (FileStream fs = File.OpenRead(m_rgstrFiles[m_nFileIdx])) using (WAVReader wav = new WAVReader(fs)) { wav.ReadToEnd(true); rgSize.Add(1); rgSize.Add((int)wav.Format.nChannels); rgSize.Add(wav.SampleCount); return(rgSize); } }
/// <summary> /// The QueryReal method returns all samples of the next file in the directory. /// </summary> /// <returns>All samples along with the format are returned where the format is placed in the last array.</returns> public List <double[]> QueryReal() { if (m_nFileIdx == m_rgstrFiles.Length) { return(null); } using (FileStream fs = File.OpenRead(m_rgstrFiles[m_nFileIdx])) using (WAVReader wav = new WAVReader(fs)) { m_nFileIdx++; wav.ReadToEnd(); m_rgInfo = new Dictionary <string, float>(); m_rgInfo.Add("AveBytesPerSec", wav.Format.nAvgBytesPerSec); m_rgInfo.Add("BlockAlign", wav.Format.nBlockAlign); m_rgInfo.Add("Channels", wav.Format.nChannels); m_rgInfo.Add("SamplesPerSec", wav.Format.nSamplesPerSec); m_rgInfo.Add("BitsPerSample", wav.Format.wBitsPerSample); m_rgInfo.Add("FormatTag", wav.Format.wFormatTag); return(wav.Samples); } }