package com.synthbot.audioio.vst;

import com.javadaw.gui.javaMain;

import com.synthbot.jasiohost.AsioChannel;
import com.synthbot.minihost.loadVST;

public class mixau {
    
    private javaMain parent;
    private float maxlevel = 0f;
    
    public mixau(javaMain parent) {
        super();
        this.parent = parent;
    }
    
    public void mix(int track) {
        
        float pan = 0.0f;
        
        for (int channel = 0; channel < 2; ++channel) {
             if (channel == 1) pan = +parent.au.fpan[track];
             else              pan = -parent.au.fpan[track];
             for (int sample = 0; sample < parent.bufferSize; ++sample) {
                  if (!parent.au.mute[track]) parent.fOutputs[channel][sample] += ((1+pan)/2)*parent.au.fvolume[track]  * 1.0f * parent.ffOutputs[track][channel][sample];                
                  if (!parent.au.mute[track]) parent.level[track][channel] = Math.max(parent.level[track][channel], ((1+pan)/2)*parent.au.fvolume[track] * 1.0f * parent.ffOutputs[track][channel][sample]);               
                  parent.masterlevel[0][channel] = Math.max(parent.masterlevel[0][channel], (1.0f/(parent.max_channels+1)) * parent.fOutputs[channel][sample]);
                  if (!parent.pause && parent.au.misRunning && parent.au.metronomeoffset+sample < 5000) parent.fOutputs [channel][sample] += parent.metronomevolume * 2.0f * parent.metronomeArray[channel][parent.au.metronomeoffset+sample];
             }
        }
    }
}

