• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

Java EFX10类代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了Java中org.lwjgl.openal.EFX10的典型用法代码示例。如果您正苦于以下问题:Java EFX10类的具体用法?Java EFX10怎么用?Java EFX10使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。



EFX10类属于org.lwjgl.openal包,在下文中一共展示了EFX10类的14个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Java代码示例。

示例1: setEnvironment

import org.lwjgl.openal.EFX10; //导入依赖的package包/类
private static void setEnvironment(int sourceID, float sendGain0, float sendGain1, float sendGain2, float sendGain3, float sendCutoff0, float sendCutoff1,
		float sendCutoff2, float sendCutoff3, float directCutoff, float directGain)
{
	//Set reverb send filter values and set source to send to all reverb fx slots
	EFX10.alFilterf(sendFilter0, EFX10.AL_LOWPASS_GAIN, sendGain0);
	EFX10.alFilterf(sendFilter0, EFX10.AL_LOWPASS_GAINHF, sendCutoff0);
	AL11.alSource3i(sourceID, EFX10.AL_AUXILIARY_SEND_FILTER, auxFXSlot0, 0, sendFilter0);	
	
	EFX10.alFilterf(sendFilter1, EFX10.AL_LOWPASS_GAIN, sendGain1);
	EFX10.alFilterf(sendFilter1, EFX10.AL_LOWPASS_GAINHF, sendCutoff1);
	AL11.alSource3i(sourceID, EFX10.AL_AUXILIARY_SEND_FILTER, auxFXSlot1, 1, sendFilter1);	
	
	EFX10.alFilterf(sendFilter2, EFX10.AL_LOWPASS_GAIN, sendGain2);
	EFX10.alFilterf(sendFilter2, EFX10.AL_LOWPASS_GAINHF, sendCutoff2);
	AL11.alSource3i(sourceID, EFX10.AL_AUXILIARY_SEND_FILTER, auxFXSlot2, 2, sendFilter2);	
	
	EFX10.alFilterf(sendFilter3, EFX10.AL_LOWPASS_GAIN, sendGain3);
	EFX10.alFilterf(sendFilter3, EFX10.AL_LOWPASS_GAINHF, sendCutoff3);
	AL11.alSource3i(sourceID, EFX10.AL_AUXILIARY_SEND_FILTER, auxFXSlot3, 3, sendFilter3);	
	
	EFX10.alFilterf(directFilter0, EFX10.AL_LOWPASS_GAIN, directGain);
	EFX10.alFilterf(directFilter0, EFX10.AL_LOWPASS_GAINHF, directCutoff);
	AL10.alSourcei(sourceID, EFX10.AL_DIRECT_FILTER, directFilter0);
	
	AL10.alSourcef(sourceID, EFX10.AL_AIR_ABSORPTION_FACTOR, SoundPhysicsCore.Config.airAbsorption);
}
 
开发者ID:sonicether,项目名称:Sound-Physics,代码行数:27,代码来源:SoundPhysics.java


示例2: cleanupInThread

import org.lwjgl.openal.EFX10; //导入依赖的package包/类
public void cleanupInThread(){
    if (audioDisabled){
        AL.destroy();
        return;
    }

    // delete channel-based sources
    ib.clear();
    ib.put(channels);
    ib.flip();
    alDeleteSources(ib);

    if (supportEfx){
        ib.position(0).limit(1);
        ib.put(0, reverbFx);
        EFX10.alDeleteEffects(ib);

        ib.position(0).limit(1);
        ib.put(0, reverbFxSlot);
        EFX10.alDeleteAuxiliaryEffectSlots(ib);
    }

    // XXX: Delete other buffers/sources
    AL.destroy();
}
 
开发者ID:mleoking,项目名称:PhET,代码行数:26,代码来源:LwjglAudioRenderer.java


示例3: updateFilter

import org.lwjgl.openal.EFX10; //导入依赖的package包/类
private void updateFilter(Filter f){
    int id = f.getId();
    if (id == -1){
        ib.position(0).limit(1);
        EFX10.alGenFilters(ib);
        id = ib.get(0);
        f.setId(id);
    }

    if (f instanceof LowPassFilter){
        LowPassFilter lpf = (LowPassFilter) f;
        EFX10.alFilteri(id, EFX10.AL_FILTER_TYPE,    EFX10.AL_FILTER_LOWPASS);
        EFX10.alFilterf(id, EFX10.AL_LOWPASS_GAIN,   lpf.getVolume());
        EFX10.alFilterf(id, EFX10.AL_LOWPASS_GAINHF, lpf.getHighFreqVolume());
    }else{
        throw new UnsupportedOperationException("Filter type unsupported: "+
                                                f.getClass().getName());
    }

    f.clearUpdateNeeded();
}
 
开发者ID:mleoking,项目名称:PhET,代码行数:22,代码来源:LwjglAudioRenderer.java


示例4: updateFilter

import org.lwjgl.openal.EFX10; //导入依赖的package包/类
private void updateFilter(Filter f){
    int id = f.getId();
    if (id == -1){
        ib.position(0).limit(1);
        EFX10.alGenFilters(ib);
        id = ib.get(0);
        f.setId(id);
        
        objManager.registerForCleanup(f);
    }

    if (f instanceof LowPassFilter){
        LowPassFilter lpf = (LowPassFilter) f;
        EFX10.alFilteri(id, EFX10.AL_FILTER_TYPE,    EFX10.AL_FILTER_LOWPASS);
        EFX10.alFilterf(id, EFX10.AL_LOWPASS_GAIN,   lpf.getVolume());
        EFX10.alFilterf(id, EFX10.AL_LOWPASS_GAINHF, lpf.getHighFreqVolume());
    }else{
        throw new UnsupportedOperationException("Filter type unsupported: "+
                                                f.getClass().getName());
    }

    f.clearUpdateNeeded();
}
 
开发者ID:chototsu,项目名称:MikuMikuStudio,代码行数:24,代码来源:LwjglAudioRenderer.java


示例5: setupEfx

import org.lwjgl.openal.EFX10; //导入依赖的package包/类
/**
 * Loads OpenAL and makes sure ALC_EXT_EFX is supported.
 */
private static void setupEfx() throws Exception {
    // Load and create OpenAL
    if (!AL.isCreated()) {
        AL.create();
    }
    // Query for Effect Extension
    if (!ALC10.alcIsExtensionPresent(AL.getDevice(), EFX10.ALC_EXT_EFX_NAME)) {
        throw new Exception("No ALC_EXT_EFX supported by driver.");
    }
    System.out.println("ALC_EXT_EFX found.");
}
 
开发者ID:mleoking,项目名称:PhET,代码行数:15,代码来源:EFX10Test.java


示例6: setEnvironment

import org.lwjgl.openal.EFX10; //导入依赖的package包/类
public void setEnvironment(Environment env){
    checkDead();
    synchronized (threadLock){
        while (!threadLock.get()){
            try {
                threadLock.wait();
            } catch (InterruptedException ex) {
            }
        }
        if (audioDisabled)
            return;
        
        EFX10.alEffectf(reverbFx, EFX10.AL_REVERB_DENSITY,             env.getDensity());
        EFX10.alEffectf(reverbFx, EFX10.AL_REVERB_DIFFUSION,           env.getDiffusion());
        EFX10.alEffectf(reverbFx, EFX10.AL_REVERB_GAIN,                env.getGain());
        EFX10.alEffectf(reverbFx, EFX10.AL_REVERB_GAINHF,              env.getGainHf());
        EFX10.alEffectf(reverbFx, EFX10.AL_REVERB_DECAY_TIME,          env.getDecayTime());
        EFX10.alEffectf(reverbFx, EFX10.AL_REVERB_DECAY_HFRATIO,       env.getDecayHFRatio());
        EFX10.alEffectf(reverbFx, EFX10.AL_REVERB_REFLECTIONS_GAIN,    env.getReflectGain());
        EFX10.alEffectf(reverbFx, EFX10.AL_REVERB_REFLECTIONS_DELAY,   env.getReflectDelay());
        EFX10.alEffectf(reverbFx, EFX10.AL_REVERB_LATE_REVERB_GAIN,    env.getLateReverbGain());
        EFX10.alEffectf(reverbFx, EFX10.AL_REVERB_LATE_REVERB_DELAY,   env.getLateReverbDelay());
        EFX10.alEffectf(reverbFx, EFX10.AL_REVERB_AIR_ABSORPTION_GAINHF, env.getAirAbsorbGainHf());
        EFX10.alEffectf(reverbFx, EFX10.AL_REVERB_ROOM_ROLLOFF_FACTOR, env.getRoomRolloffFactor());

        // attach effect to slot
        EFX10.alAuxiliaryEffectSloti(reverbFxSlot, EFX10.AL_EFFECTSLOT_EFFECT, reverbFx);
    }
}
 
开发者ID:mleoking,项目名称:PhET,代码行数:30,代码来源:LwjglAudioRenderer.java


示例7: clearChannel

import org.lwjgl.openal.EFX10; //导入依赖的package包/类
private void clearChannel(int index){
    // make room at this channel
    if (chanSrcs[index] != null){
        AudioNode src = chanSrcs[index];

        int sourceId = channels[index];
        alSourceStop(sourceId);

        if (src.getAudioData() instanceof AudioStream){
            AudioStream str = (AudioStream) src.getAudioData();
            ib.position(0).limit(STREAMING_BUFFER_COUNT);
            ib.put(str.getIds()).flip();
            alSourceUnqueueBuffers(sourceId, ib);
        }else if (src.getAudioData() instanceof AudioBuffer){
            alSourcei(sourceId, AL_BUFFER, 0);
        }

        if (src.getDryFilter() != null){
            // detach filter
            alSourcei(sourceId, EFX10.AL_DIRECT_FILTER, EFX10.AL_FILTER_NULL);
        }
        if (src.isPositional()){
            AudioNode pas = (AudioNode) src;
            if (pas.isReverbEnabled()) {
                AL11.alSource3i(sourceId, EFX10.AL_AUXILIARY_SEND_FILTER, 0, 0, EFX10.AL_FILTER_NULL);
            }
        }

        chanSrcs[index] = null;
    }
}
 
开发者ID:mleoking,项目名称:PhET,代码行数:32,代码来源:LwjglAudioRenderer.java


示例8: cleanupInThread

import org.lwjgl.openal.EFX10; //导入依赖的package包/类
public void cleanupInThread(){
    if (audioDisabled){
        AL.destroy();
        return;
    }

    // stop any playing channels
    for (int i = 0; i < chanSrcs.length; i++){
        if (chanSrcs[i] != null){
            clearChannel(i);
        }
    }
    
    // delete channel-based sources
    ib.clear();
    ib.put(channels);
    ib.flip();
    alDeleteSources(ib);
    
    // delete audio buffers and filters
    objManager.deleteAllObjects(this);

    if (supportEfx){
        ib.position(0).limit(1);
        ib.put(0, reverbFx);
        EFX10.alDeleteEffects(ib);

        // If this is not allocated, why is it deleted?
        // Commented out to fix native crash in OpenAL.
        ib.position(0).limit(1);
        ib.put(0, reverbFxSlot);
        EFX10.alDeleteAuxiliaryEffectSlots(ib);
    }

    AL.destroy();
}
 
开发者ID:chototsu,项目名称:MikuMikuStudio,代码行数:37,代码来源:LwjglAudioRenderer.java


示例9: setEnvironment

import org.lwjgl.openal.EFX10; //导入依赖的package包/类
public void setEnvironment(Environment env){
    checkDead();
    synchronized (threadLock){
        while (!threadLock.get()){
            try {
                threadLock.wait();
            } catch (InterruptedException ex) {
            }
        }
        if (audioDisabled || !supportEfx)
            return;
        
        EFX10.alEffectf(reverbFx, EFX10.AL_REVERB_DENSITY,             env.getDensity());
        EFX10.alEffectf(reverbFx, EFX10.AL_REVERB_DIFFUSION,           env.getDiffusion());
        EFX10.alEffectf(reverbFx, EFX10.AL_REVERB_GAIN,                env.getGain());
        EFX10.alEffectf(reverbFx, EFX10.AL_REVERB_GAINHF,              env.getGainHf());
        EFX10.alEffectf(reverbFx, EFX10.AL_REVERB_DECAY_TIME,          env.getDecayTime());
        EFX10.alEffectf(reverbFx, EFX10.AL_REVERB_DECAY_HFRATIO,       env.getDecayHFRatio());
        EFX10.alEffectf(reverbFx, EFX10.AL_REVERB_REFLECTIONS_GAIN,    env.getReflectGain());
        EFX10.alEffectf(reverbFx, EFX10.AL_REVERB_REFLECTIONS_DELAY,   env.getReflectDelay());
        EFX10.alEffectf(reverbFx, EFX10.AL_REVERB_LATE_REVERB_GAIN,    env.getLateReverbGain());
        EFX10.alEffectf(reverbFx, EFX10.AL_REVERB_LATE_REVERB_DELAY,   env.getLateReverbDelay());
        EFX10.alEffectf(reverbFx, EFX10.AL_REVERB_AIR_ABSORPTION_GAINHF, env.getAirAbsorbGainHf());
        EFX10.alEffectf(reverbFx, EFX10.AL_REVERB_ROOM_ROLLOFF_FACTOR, env.getRoomRolloffFactor());

        // attach effect to slot
        EFX10.alAuxiliaryEffectSloti(reverbFxSlot, EFX10.AL_EFFECTSLOT_EFFECT, reverbFx);
    }
}
 
开发者ID:chototsu,项目名称:MikuMikuStudio,代码行数:30,代码来源:LwjglAudioRenderer.java


示例10: clearChannel

import org.lwjgl.openal.EFX10; //导入依赖的package包/类
private void clearChannel(int index){
    // make room at this channel
    if (chanSrcs[index] != null){
        AudioNode src = chanSrcs[index];

        int sourceId = channels[index];
        alSourceStop(sourceId);

        if (src.getAudioData() instanceof AudioStream){
            AudioStream str = (AudioStream) src.getAudioData();
            ib.position(0).limit(STREAMING_BUFFER_COUNT);
            ib.put(str.getIds()).flip();
            alSourceUnqueueBuffers(sourceId, ib);
        }else if (src.getAudioData() instanceof AudioBuffer){
            alSourcei(sourceId, AL_BUFFER, 0);
        }

        if (src.getDryFilter() != null && supportEfx){
            // detach filter
            alSourcei(sourceId, EFX10.AL_DIRECT_FILTER, EFX10.AL_FILTER_NULL);
        }
        if (src.isPositional()){
            AudioNode pas = (AudioNode) src;
            if (pas.isReverbEnabled() && supportEfx) {
                AL11.alSource3i(sourceId, EFX10.AL_AUXILIARY_SEND_FILTER, 0, 0, EFX10.AL_FILTER_NULL);
            }
        }

        chanSrcs[index] = null;
    }
}
 
开发者ID:chototsu,项目名称:MikuMikuStudio,代码行数:32,代码来源:LwjglAudioRenderer.java


示例11: setupEFX

import org.lwjgl.openal.EFX10; //导入依赖的package包/类
private static void setupEFX()
{
	//Get current context and device
	ALCcontext currentContext = ALC10.alcGetCurrentContext();
	ALCdevice currentDevice = ALC10.alcGetContextsDevice(currentContext);		
	
	if (ALC10.alcIsExtensionPresent(currentDevice, "ALC_EXT_EFX"))
	{
		log("EFX Extension recognized.");
	}
	else
	{
		logError("EFX Extension not found on current device. Aborting.");
		return;
	}
	
	//Create auxiliary effect slots
	auxFXSlot0 = EFX10.alGenAuxiliaryEffectSlots();
	log("Aux slot " + auxFXSlot0 + " created");
	EFX10.alAuxiliaryEffectSloti(auxFXSlot0, EFX10.AL_EFFECTSLOT_AUXILIARY_SEND_AUTO, AL10.AL_TRUE);
	
	auxFXSlot1 = EFX10.alGenAuxiliaryEffectSlots();
	log("Aux slot " + auxFXSlot1 + " created");
	EFX10.alAuxiliaryEffectSloti(auxFXSlot1, EFX10.AL_EFFECTSLOT_AUXILIARY_SEND_AUTO, AL10.AL_TRUE);
	
	auxFXSlot2 = EFX10.alGenAuxiliaryEffectSlots();
	log("Aux slot " + auxFXSlot2 + " created");
	EFX10.alAuxiliaryEffectSloti(auxFXSlot2, EFX10.AL_EFFECTSLOT_AUXILIARY_SEND_AUTO, AL10.AL_TRUE);
	
	auxFXSlot3 = EFX10.alGenAuxiliaryEffectSlots();
	log("Aux slot " + auxFXSlot3 + " created");
	EFX10.alAuxiliaryEffectSloti(auxFXSlot3, EFX10.AL_EFFECTSLOT_AUXILIARY_SEND_AUTO, AL10.AL_TRUE);	
	checkErrorLog("Failed creating auxiliary effect slots!");
	
	
	//Create effect objects
	reverb0 = EFX10.alGenEffects();												//Create effect object
	EFX10.alEffecti(reverb0, EFX10.AL_EFFECT_TYPE, EFX10.AL_EFFECT_EAXREVERB);		//Set effect object to be reverb
	checkErrorLog("Failed creating reverb effect slot 0!");
	reverb1 = EFX10.alGenEffects();												//Create effect object
	EFX10.alEffecti(reverb1, EFX10.AL_EFFECT_TYPE, EFX10.AL_EFFECT_EAXREVERB);		//Set effect object to be reverb
	checkErrorLog("Failed creating reverb effect slot 1!");
	reverb2 = EFX10.alGenEffects();												//Create effect object
	EFX10.alEffecti(reverb2, EFX10.AL_EFFECT_TYPE, EFX10.AL_EFFECT_EAXREVERB);		//Set effect object to be reverb
	checkErrorLog("Failed creating reverb effect slot 2!");
	reverb3 = EFX10.alGenEffects();												//Create effect object
	EFX10.alEffecti(reverb3, EFX10.AL_EFFECT_TYPE, EFX10.AL_EFFECT_EAXREVERB);		//Set effect object to be reverb
	checkErrorLog("Failed creating reverb effect slot 3!");
	
	//Create filters
	directFilter0 = EFX10.alGenFilters();
	EFX10.alFilteri(directFilter0, EFX10.AL_FILTER_TYPE, EFX10.AL_FILTER_LOWPASS);
	
	sendFilter0 = EFX10.alGenFilters();
	EFX10.alFilteri(sendFilter0, EFX10.AL_FILTER_TYPE, EFX10.AL_FILTER_LOWPASS);
	
	sendFilter1 = EFX10.alGenFilters();
	EFX10.alFilteri(sendFilter1, EFX10.AL_FILTER_TYPE, EFX10.AL_FILTER_LOWPASS);
	
	sendFilter2 = EFX10.alGenFilters();
	EFX10.alFilteri(sendFilter2, EFX10.AL_FILTER_TYPE, EFX10.AL_FILTER_LOWPASS);
	
	sendFilter3 = EFX10.alGenFilters();
	EFX10.alFilteri(sendFilter3, EFX10.AL_FILTER_TYPE, EFX10.AL_FILTER_LOWPASS);
	checkErrorLog("Error creating lowpass filters!");
	
	applyConfigChanges();
	
	//setReverbParams(ReverbParams.getReverb0(), auxFXSlot0, reverb0);		//Set the global reverb parameters and apply them to the effect and effectslot		
	//setReverbParams(ReverbParams.getReverb1(), auxFXSlot1, reverb1);		//Set the global reverb parameters and apply them to the effect and effectslot		
	//setReverbParams(ReverbParams.getReverb2(), auxFXSlot2, reverb2);		//Set the global reverb parameters and apply them to the effect and effectslot		
	//setReverbParams(ReverbParams.getReverb3(), auxFXSlot3, reverb3);		//Set the global reverb parameters and apply them to the effect and effectslot		
}
 
开发者ID:sonicether,项目名称:Sound-Physics,代码行数:74,代码来源:SoundPhysics.java


示例12: setReverbParams

import org.lwjgl.openal.EFX10; //导入依赖的package包/类
/**
 * Applies the parameters in the enum ReverbParams to the main reverb effect.
 */
protected static void setReverbParams(ReverbParams r, int auxFXSlot, int reverbSlot)
{
	/*
	EFX10.alEffectf(reverbSlot, EFX10.AL_REVERB_DECAY_TIME, r.decayTime);		//Set default parameters
	EFX10.alEffectf(reverbSlot, EFX10.AL_REVERB_DENSITY, r.density);
	EFX10.alEffectf(reverbSlot, EFX10.AL_REVERB_DIFFUSION, r.diffusion);
	EFX10.alEffectf(reverbSlot, EFX10.AL_REVERB_GAIN, r.gain);
	EFX10.alEffectf(reverbSlot, EFX10.AL_REVERB_GAINHF, r.gainHF);
	EFX10.alEffectf(reverbSlot, EFX10.AL_REVERB_DECAY_HFRATIO, r.decayHFRatio);
	EFX10.alEffectf(reverbSlot, EFX10.AL_REVERB_REFLECTIONS_GAIN, r.reflectionsGain);
	EFX10.alEffectf(reverbSlot, EFX10.AL_REVERB_REFLECTIONS_DELAY, r.reflectionsDelay);
	EFX10.alEffectf(reverbSlot, EFX10.AL_REVERB_LATE_REVERB_GAIN, r.lateReverbGain);
	EFX10.alEffectf(reverbSlot, EFX10.AL_REVERB_LATE_REVERB_DELAY, r.lateReverbDelay);
	EFX10.alEffectf(reverbSlot, EFX10.AL_REVERB_AIR_ABSORPTION_GAINHF, r.airAbsorptionGainHF);
	EFX10.alEffectf(reverbSlot, EFX10.AL_REVERB_ROOM_ROLLOFF_FACTOR, r.roomRolloffFactor);
	EFX10.alEffecti(reverbSlot, EFX10.AL_REVERB_DECAY_HFLIMIT, AL10.AL_TRUE);
	*/
	
	EFX10.alEffectf(reverbSlot, EFX10.AL_EAXREVERB_DENSITY, r.density);		//Set default parameters
	checkErrorLog("Error while assigning reverb density: " + r.density);
	EFX10.alEffectf(reverbSlot, EFX10.AL_EAXREVERB_DIFFUSION, r.diffusion);		//Set default parameters
	checkErrorLog("Error while assigning reverb diffusion: " + r.diffusion);
	EFX10.alEffectf(reverbSlot, EFX10.AL_EAXREVERB_GAIN, r.gain);		//Set default parameters
	checkErrorLog("Error while assigning reverb gain: " + r.gain);
	EFX10.alEffectf(reverbSlot, EFX10.AL_EAXREVERB_GAINHF, r.gainHF);		//Set default parameters
	checkErrorLog("Error while assigning reverb gainHF: " + r.gainHF);
	EFX10.alEffectf(reverbSlot, EFX10.AL_EAXREVERB_DECAY_TIME, r.decayTime);		//Set default parameters
	checkErrorLog("Error while assigning reverb decayTime: " + r.decayTime);
	EFX10.alEffectf(reverbSlot, EFX10.AL_EAXREVERB_DECAY_HFRATIO, r.decayHFRatio);		//Set default parameters
	checkErrorLog("Error while assigning reverb decayHFRatio: " + r.decayHFRatio);
	EFX10.alEffectf(reverbSlot, EFX10.AL_EAXREVERB_REFLECTIONS_GAIN, r.reflectionsGain);		//Set default parameters
	checkErrorLog("Error while assigning reverb reflectionsGain: " + r.reflectionsGain);
	EFX10.alEffectf(reverbSlot, EFX10.AL_EAXREVERB_LATE_REVERB_GAIN, r.lateReverbGain);		//Set default parameters
	checkErrorLog("Error while assigning reverb lateReverbGain: " + r.lateReverbGain);
	EFX10.alEffectf(reverbSlot, EFX10.AL_EAXREVERB_LATE_REVERB_DELAY, r.lateReverbDelay);		//Set default parameters
	checkErrorLog("Error while assigning reverb lateReverbDelay: " + r.lateReverbDelay);
	EFX10.alEffectf(reverbSlot, EFX10.AL_EAXREVERB_AIR_ABSORPTION_GAINHF, r.airAbsorptionGainHF);		//Set default parameters
	checkErrorLog("Error while assigning reverb airAbsorptionGainHF: " + r.airAbsorptionGainHF);
	EFX10.alEffectf(reverbSlot, EFX10.AL_EAXREVERB_ROOM_ROLLOFF_FACTOR, r.roomRolloffFactor);		//Set default parameters
	checkErrorLog("Error while assigning reverb roomRolloffFactor: " + r.roomRolloffFactor);
	
	
	//Attach updated effect object
	EFX10.alAuxiliaryEffectSloti(auxFXSlot, EFX10.AL_EFFECTSLOT_EFFECT, reverbSlot);
}
 
开发者ID:sonicether,项目名称:Sound-Physics,代码行数:49,代码来源:SoundPhysics.java


示例13: playbackTest

import org.lwjgl.openal.EFX10; //导入依赖的package包/类
/**
 * Plays a sound with various effects applied to it.
 */
private static void playbackTest() throws Exception {
    setupEfx();

    // Create a source and buffer audio data
    final int source = AL10.alGenSources();
    final int buffer = AL10.alGenBuffers();
    WaveData waveFile = WaveData.create("Footsteps.wav");
    if (waveFile == null) {
        System.out.println("Failed to load Footsteps.wav! Skipping playback test.");
        AL.destroy();
        return;
    }
    AL10.alBufferData(buffer, waveFile.format, waveFile.data, waveFile.samplerate);
    waveFile.dispose();
    AL10.alSourcei(source, AL10.AL_BUFFER, buffer);
    AL10.alSourcei(source, AL10.AL_LOOPING, AL10.AL_TRUE);

    System.out.println("Playing sound unaffected by EFX ...");
    AL10.alSourcePlay(source);
    Thread.sleep(7500);

    // Add reverb effect
    final int effectSlot = EFX10.alGenAuxiliaryEffectSlots();
    final int reverbEffect = EFX10.alGenEffects();
    EFX10.alEffecti(reverbEffect, EFX10.AL_EFFECT_TYPE, EFX10.AL_EFFECT_REVERB);
    EFX10.alEffectf(reverbEffect, EFX10.AL_REVERB_DECAY_TIME, 5.0f);
    EFX10.alAuxiliaryEffectSloti(effectSlot, EFX10.AL_EFFECTSLOT_EFFECT, reverbEffect);
    AL11.alSource3i(source, EFX10.AL_AUXILIARY_SEND_FILTER, effectSlot, 0,
            EFX10.AL_FILTER_NULL);

    System.out.println("Playing sound with reverb ...");
    AL10.alSourcePlay(source);
    Thread.sleep(7500);

    // Add low-pass filter directly to source
    final int filter = EFX10.alGenFilters();
    EFX10.alFilteri(filter, EFX10.AL_FILTER_TYPE, EFX10.AL_FILTER_LOWPASS);
    EFX10.alFilterf(filter, EFX10.AL_LOWPASS_GAIN, 0.5f);
    EFX10.alFilterf(filter, EFX10.AL_LOWPASS_GAINHF, 0.5f);
    AL10.alSourcei(source, EFX10.AL_DIRECT_FILTER, filter);

    System.out.println("Playing sound with reverb and direct low pass filter ...");
    AL10.alSourcePlay(source);
    Thread.sleep(7500);
    AL10.alSourcei(source, EFX10.AL_DIRECT_FILTER, EFX10.AL_FILTER_NULL);

    // Add low-pass filter to source send
    //AL11.alSource3i(source, EFX10.AL_AUXILIARY_SEND_FILTER, effectSlot, 0, filter);
    //
    //System.out.println("Playing sound with reverb and aux send low pass filter ...");
    //AL10.alSourcePlay(source);
    //Thread.sleep(7500);

    // Cleanup
    AL11.alSource3i(source, EFX10.AL_AUXILIARY_SEND_FILTER, EFX10.AL_EFFECTSLOT_NULL, 0,
            EFX10.AL_FILTER_NULL);
    EFX10.alAuxiliaryEffectSloti(effectSlot, EFX10.AL_EFFECTSLOT_EFFECT, EFX10.AL_EFFECT_NULL);
    EFX10.alDeleteEffects(reverbEffect);
    EFX10.alDeleteFilters(filter);

    // Echo effect
    final int echoEffect = EFX10.alGenEffects();
    EFX10.alEffecti(echoEffect, EFX10.AL_EFFECT_TYPE, EFX10.AL_EFFECT_ECHO);
    //EFX10.alEffectf(echoEffect, EFX10.AL_ECHO_DELAY, 5.0f);
    EFX10.alAuxiliaryEffectSloti(effectSlot, EFX10.AL_EFFECTSLOT_EFFECT, echoEffect);
    AL11.alSource3i(source, EFX10.AL_AUXILIARY_SEND_FILTER, effectSlot, 0,
            EFX10.AL_FILTER_NULL);

    System.out.println("Playing sound with echo effect ...");
    AL10.alSourcePlay(source);
    Thread.sleep(7500);

    AL.destroy();
}
 
开发者ID:mleoking,项目名称:PhET,代码行数:78,代码来源:EFX10Test.java


示例14: deleteFilter

import org.lwjgl.openal.EFX10; //导入依赖的package包/类
public void deleteFilter(Filter filter) {
    int id = filter.getId();
    if (id != -1){
        EFX10.alDeleteFilters(id);
    }
}
 
开发者ID:chototsu,项目名称:MikuMikuStudio,代码行数:7,代码来源:LwjglAudioRenderer.java



注:本文中的org.lwjgl.openal.EFX10类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Java DialerKeyListener类代码示例发布时间:2022-05-23
下一篇:
Java BloomFilterTestStrategy类代码示例发布时间:2022-05-23
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap