private void initEfx() {
        supportEfx = alc.alcIsExtensionPresent("ALC_EXT_EFX");
        if (supportEfx) {
            ib.clear().limit(1);
            alc.alcGetInteger(EFX.ALC_EFX_MAJOR_VERSION, ib, 1);
            int majorVersion = ib.get(0);

            ib.clear().limit(1);
            alc.alcGetInteger(EFX.ALC_EFX_MINOR_VERSION, ib, 1);
            int minorVersion = ib.get(0);
            logger.log(Level.INFO, "Audio effect extension version: {0}.{1}", new Object[]{majorVersion, minorVersion});

            ib.clear().limit(1);
            alc.alcGetInteger(EFX.ALC_MAX_AUXILIARY_SENDS, ib, 1);
            int maxAuxSends = ib.get(0);
            logger.log(Level.INFO, "Audio max auxiliary sends: {0}", maxAuxSends);

            // 1. Create reverb effect slot
            ib.clear().limit(1);
            efx.alGenAuxiliaryEffectSlots(1, ib);
            reverbFxSlot = ib.get(0);

            // 2. Create reverb effect
            ib.clear().limit(1);
            efx.alGenEffects(1, ib);
            reverbFx = ib.get(0);

            // 3. Configure effect type
            efx.alEffecti(reverbFx, EFX.AL_EFFECT_TYPE, EFX.AL_EFFECT_REVERB);

            // 4. attach reverb effect to effect slot
            efx.alAuxiliaryEffectSloti(reverbFxSlot, EFX.AL_EFFECTSLOT_EFFECT, reverbFx);

        } else {
            logger.log(Level.WARNING, "OpenAL EFX not available! Audio effects won't work.");
        }
    }
Initializes the EFX extension if supported.
jme3-core/src/main/java/com/jme3/audio/openal/ALAudioRenderer.java