def __init__(self, file_path):
        print("Reading the file...")
        file_reader = FileReader(file_path)
        self.file_name = file_reader.file_name
        # Read the header
        self.file_path = file_path
        self.chunk_id = file_reader.next_string(4)
        self.chunk_size = file_reader.next_int(4)
        self.format = file_reader.next_string(4)
        self.subchunk_1_id = file_reader.next_string(4)
        self.subchunk_1_size = file_reader.next_int(4)
        self.audio_format = file_reader.next_int(2)
        self.num_channels = file_reader.next_int(2)
        self.sample_rate = file_reader.next_int(4)
        self.byte_rate = file_reader.next_int(4)
        self.block_align = file_reader.next_int(2)
        self.bits_per_sample = file_reader.next_int(2)
        file_reader.skip_bytes(self.subchunk_1_size - 16)  # Skip unused bytes
        self.subchunk_2_id = file_reader.next_string(4)
        self.subchunk_2_size = file_reader.next_int(4)
        self.bytes_per_sample = self.bits_per_sample // 8
        self.samples = []

        for channel in range(self.num_channels):
            self.samples.append([])

        while file_reader.has_next():
            channel_i = 0
            while channel_i < self.num_channels:
                self.samples[channel_i].append(
                    file_reader.next_int(self.bytes_per_sample))
                channel_i += 1