Class CsvSoundSampleReader

All Implemented Interfaces:
AutoCloseable, SampleReader<SoundSample>, SamplingRateAccessor, SoundSampleReader, org.refcodes.io.RowReader<SoundSample>, org.refcodes.mixin.IndexAccessor

public class CsvSoundSampleReader extends AbstractCsvSampleReader<SoundSample> implements SoundSampleReader
The CsvSoundSampleReader provides means to read sound samples from a CSV file.
  • Constructor Details

    • CsvSoundSampleReader

      public CsvSoundSampleReader(File aFile) throws ZipException, IOException
      Constructs the CsvSoundSampleReader for writing sound samples to a CSV file or stream.
      Parameters:
      aFile - The File where to write the CSV records to.
      Throws:
      IOException - thrown in case there was an I/O related problem.
      ZipException - Signals that a Zip exception of some sort has occurred.
    • CsvSoundSampleReader

      public CsvSoundSampleReader(InputStream aInputStream) throws IOException
      Constructs the CsvSoundSampleReader for writing sound samples to a CSV file or stream.
      Parameters:
      aInputStream - The InputStream where to write the CSV records to.
      Throws:
      IOException - thrown in case there was an I/O related problem.
    • CsvSoundSampleReader

      protected CsvSoundSampleReader(org.refcodes.tabular.CsvStringRecordReader aCsvReader)
      Constructs the CsvSoundSampleReader for writing sound samples to a CSV file or stream.
      Parameters:
      aCsvReader - The CsvStringRecordReader with which to write the CSV records with.
  • Method Details

    • nextRow

      public SoundSample nextRow() throws IOException
      Specified by:
      nextRow in interface org.refcodes.io.RowReader<SoundSample>
      Throws:
      IOException
    • nextRaw

      public String nextRaw()
      Specified by:
      nextRaw in interface org.refcodes.io.RowReader<SoundSample>
    • nextSampleData

      public double[] nextSampleData() throws IOException
      Reads the next samples, one sample for each channel. Provide one sample for mono audio, two samples for stereo audio and so on. In case you provide more or less samples than channels being supported by the writer, then it is up to the writer whether to duplicate the samples or calculate an average or the like.
      Specified by:
      nextSampleData in interface SoundSampleReader
      Returns:
      The samples, one for each channel.
      Throws:
      IOException - thrown in case there was an I/O related problem.
    • getSamplingRate

      public int getSamplingRate()
      Retrieves the sampling rate from the sampling rate property.
      Specified by:
      getSamplingRate in interface SamplingRateAccessor
      Returns:
      The sampling rate stored by the sampling rate property.
    • getIndex

      public long getIndex()
      Specified by:
      getIndex in interface org.refcodes.mixin.IndexAccessor