Search code examples
c#.netvb.netnaudiocode-translation

Translate C# code to VBNET


I need to translate this C# code from NReplayGain library here https://github.com/karamanolev/NReplayGain to a working VBNET code.

TrackGain trackGain = new TrackGain(44100, 16);
foreach (sampleSet in track) {
    trackGain.AnalyzeSamples(leftSamples, rightSamples)
}
double gain = trackGain.GetGain();
double peak = trackGain.GetPeak();

I've translate this:

Dim trackGain As New TrackGain(samplerate, samplesize)

Dim gain As Double = trackGain.GetGain()
Dim peak As Double = trackGain.GetPeak()

Solution

  • Use an online converter. C# to VB converters:

    Your c# code shown above has errors. Probably it is written in pseudo code. I have not found any declaration of a sample set at the github address you mentioned.

    A semicolon is missing (inside the loop). The loop variable sampleSet is not declared. Where do leftSamples and rightSamples come from? The loop variable is not used inside the loop. Probably the left and right samples are part of the sampleSet. If I correct this, I can convert the code by using one of these online converters.

    C#:

    TrackGain trackGain = new TrackGain(44100, 16);
    foreach (SampleSet sampleSet in track) {
        trackGain.AnalyzeSamples(sampleSet.leftSamples, sampleSet.rightSamples);
    }
    double gain = trackGain.GetGain();
    double peak = trackGain.GetPeak();
    

    VB:

    Dim trackGain As New TrackGain(44100, 16)
    For Each sampleSet As SampleSet In track
        trackGain.AnalyzeSamples(sampleSet.leftSamples, sampleSet.rightSamples)
    Next
    Dim gain As Double = trackGain.GetGain()
    Dim peak As Double = trackGain.GetPeak()
    

    After all, the two versions don't look that different!