public void setAssemblyPan(float clipPan) {
        boolean panAvailable = false;
        if (clipAssembly[0].isControlSupported(FloatControl.Type.PAN)) {
            panAvailable = true;
        } else if (clipAssembly[0].isControlSupported(
                FloatControl.Type.BALANCE) == false) {
            throw new IllegalStateException("SoundAssetAssembly.setAssemblyPan: " +
                    "Cannot change pan or balance on loaded clip.");
        }
        
        for (int clipIdx = 0; clipIdx < clipAssembly.length; clipIdx++) {
            if (panAvailable) {
                FloatControl panControl = 
                        (FloatControl) clipAssembly[clipIdx].getControl( 
                            FloatControl.Type.PAN );
                panControl.setValue(clipPan);
            } else {
                FloatControl balControl = 
                        (FloatControl) clipAssembly[clipIdx].getControl( 
                            FloatControl.Type.BALANCE );
                balControl.setValue(clipPan);
            }
        }
    }