@Override
    public VoiceStatus[] getVoiceStatus() {
        VoiceStatus[] all;
        if (theSynths.size() == 1)
            all = theSynths.get(0).getVoiceStatus();
        else {
            all = new VoiceStatus[0];
            for (Synthesizer s : theSynths) {
                VoiceStatus[] temp = s.getVoiceStatus();
                VoiceStatus[] concat =
                        new VoiceStatus[all.length + temp.length];
                for (int i = 0; i < concat.length; i++) {
                    if (i < all.length)
                        concat[i] = all[i];
                    else
                        concat[i] = temp[i-all.length];
                }
                all = concat;
            }
        }
        return all;
    }