-1

Trying TO mix various audio files to one

I have written out like this

lstOfReaderOBJs.Add(Reader1(0))
lstOfReaderOBJs.Add(Reader1(1))
lstOfReaderOBJs.Add(Reader1(2))

but I want to put it in a for next loop to have a variable amount down the road hence NumberOfAudioFiles

 Private Sub Button7_Click(sender As Object, e As EventArgs) Handles Button7.Click

        Dim NumberOfAudioFiles As Integer = 2
        Dim Reader1(NumberOfAudioFiles) As AudioFileReader
        Reader1(0) = New AudioFileReader("C:\Users\Server\Desktop\Singing Stuff\Piano Tones\Wav\0-3.wav")
        Reader1(1) = New AudioFileReader("C:\Users\Server\Desktop\Singing Stuff\Piano Tones\Wav\4-3.wav")
        Reader1(2) = New AudioFileReader("C:\Users\Server\Desktop\Singing Stuff\Piano Tones\Wav\7-3.wav")
        Dim lstOfReaderOBJs As New List(Of AudioFileReader)
        For I = 0 To NumberOfAudioFiles
            lstOfReaderOBJs.Add(Reader1(NumberOfAudioFiles))
            'lstOfReaderOBJs.Add(Reader1(NumberOfAudioFiles))
            'lstOfReaderOBJs.Add(Reader1(NumberOfAudioFiles))
        Next

        Dim mixer = New MixingWaveProvider32(lstOfReaderOBJs)
        WaveFileWriter.CreateWaveFile("C:\Users\Server\Desktop\Singing Stuff\Piano Tones\Wav\mixed.wav", mixer)
    End Sub

When I put lstOfReaderOBJs.Add(Reader1(NumberOfAudioFiles)) withing the for next loop I get only one ReaderObject in the list and is the last one instead of all three of them.

1 Answers1

1

Just use the loop variable I like this:

For I = 0 To NumberOfAudioFiles
    lstOfReaderOBJs.Add(Reader1(I))
Next
RobertBaron
  • 2,817
  • 1
  • 12
  • 19
  • @Chris Cleveland - Glad I could help! Do not forget to accept this answer :-) You could also have a loop to initialize the Reader1() array if the names of the files follow some pattern, or you can filter the files that you want in the array – RobertBaron Jul 04 '19 at 08:39