« Return to Thread: Adding filters
// Basic.cpp : Defines the entry point for the console application.
//
// Basic
// Just makes a basic sound for a few seconds then applies a low pass filter
// Then some effects
#include
<alut.h>#include
<efx.h>#include
<conio.h>#include
<stdlib.h>#include
<stdio.h>#include
<al.h>#include
<alc.h>#include
<EFX-Util.h>#include
<efx-creative.h>#define
NULL 0LPALGENFILTERS alGenFilters;
LPALFILTERI alFilteri;
LPALFILTERF alFilterf;
LPALGENEFFECTS alGenEffects;
LPALEFFECTI alEffecti;
LPALEFFECTF alEffectf;
LPALGENAUXILIARYEFFECTSLOTS alGenAuxiliaryEffectSlots;
LPALAUXILIARYEFFECTSLOTI alAuxiliaryEffectSloti;
LPALISFILTER alIsFilter;
int
main(int argc, char **argv){
ALuint helloBuffer, source;
ALuint filter,filtera;
ALuint EffectSlot,ReverbEffect;
ALCcontext *Context;
ALCdevice *Device;
ALCint iSends;
const
ALCchar *DeviceName;// Setting up openal
alutInit (&argc, argv);
Context=alcGetCurrentContext();
Device=alcGetContextsDevice(Context);
DeviceName=alcGetString(0,ALC_DEFAULT_DEVICE_SPECIFIER);
//ALC_DEFAULT_ALL_DEVICES_SPECIFIER this was here in henrys codeprintf(
"\n\nDevice is %s\n",DeviceName);// And effects definitions
alGenFilters = (LPALGENFILTERS)alGetProcAddress(
"alGenFilters");alFilteri=(LPALFILTERI)alGetProcAddress(
"alFilteri");alFilterf=(LPALFILTERF)alGetProcAddress(
"alFilterf");alGenEffects=(LPALGENEFFECTS)alGetProcAddress(
"alGenEffects");alEffecti=(LPALEFFECTI)alGetProcAddress(
"alEffecti");alEffectf=(LPALEFFECTF)alGetProcAddress(
"alEffectf");alGenAuxiliaryEffectSlots=(LPALGENAUXILIARYEFFECTSLOTS)alGetProcAddress(
"alGenAuxiliaryEffectSlots");alAuxiliaryEffectSloti=(LPALAUXILIARYEFFECTSLOTI)alGetProcAddress(
"alAuxiliaryEffectSloti");alIsFilter= (LPALISFILTER)alGetProcAddress(
"alIsFilter"); // Setup Buffer from input file or helloworld if(argc==2)helloBuffer= alutCreateBufferFromFile(argv[1]);
elsehelloBuffer = alutCreateBufferHelloWorld ();
// Generate Source and attach buffer
alGenSources(1,&source);
alSourcei(source,AL_BUFFER,helloBuffer);
// Set up some soruce parameters
alSourcei(source, AL_LOOPING, AL_TRUE);
printf(
"\nRaw Source\n");alSourcePlay (source);
alutSleep(3);
alSourceStop(source);
// Now with a filter
alGetError();
alGenFilters(1,&filter);
if
(alGetError() == AL_NO_ERROR)printf(
"Generated Filter %i\n",filter);alFilteri(filter,AL_FILTER_TYPE,AL_FILTER_LOWPASS);
if
(alGetError() != AL_NO_ERROR)printf(
"Low Pass Filter not supported\n");else
{
alFilterf(filter,AL_LOWPASS_GAIN,0.5);
alFilterf(filter,AL_LOWPASS_GAINHF,0.01);
}
alSourcei(source,AL_DIRECT_FILTER,filter);
if
(alGetError() == AL_NO_ERROR){
printf(
"\nFiltered Source\n");}
alSourcePlay (source);
alutSleep(3);
alSourceStop(source);
« Return to Thread: Adding filters
| Free embeddable forum powered by Nabble | Forum Help |