<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv=Content-Type content="text/html; charset=us-ascii">
<meta name=Generator content="Microsoft Word 12 (filtered medium)">
<style>
<!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Tahoma;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman","serif";}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
p
        {mso-style-priority:99;
        mso-margin-top-alt:auto;
        margin-right:0in;
        mso-margin-bottom-alt:auto;
        margin-left:0in;
        font-size:12.0pt;
        font-family:"Times New Roman","serif";}
tt
        {mso-style-priority:99;
        font-family:"Courier New";}
span.EmailStyle19
        {mso-style-type:personal-reply;
        font-family:"Calibri","sans-serif";
        color:#1F497D;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page Section1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.Section1
        {page:Section1;}
-->
</style>
<!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang=EN-US link=blue vlink=purple>
<div class=Section1>
<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>WinXP SP 2<o:p></o:p></span></p>
<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>Creative SB X-Fi [C8E0]<o:p></o:p></span></p>
<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>Driver: 5.12.6.1187 Date: 8/17/2006<o:p></o:p></span></p>
<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>OpenAL: 1.1 Summer 2007<o:p></o:p></span></p>
<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'><o:p> </o:p></span></p>
<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>My application is doing roughly what EFXFilter is doing, and I
can replicate the problem with EFXFilter, so just use that as an example of the
EFX calls I’m making. The only modifications I’ve made to
that sample is to change the sound played to one of mine, and setting the GAINHF
to 0.1 to more effectively filter out higher pitched sounds. When I run
that sample what I hear for 3 (reverb only) and 4 (filter and reverb) is similar.
What I expect 4 to sound like is closer to 2 (filter only). My desire is to
filter the sound first, then apply reverb to the result of the filter, which
means I shouldn’t hear any of the high pitched, tinkly sounds in my
sample, but I do.<o:p></o:p></span></p>
<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'><o:p> </o:p></span></p>
<div>
<div style='border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0in 0in 0in'>
<p class=MsoNormal><b><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'>From:</span></b><span
style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'> Daniel PEACOCK
[mailto:dpeacock@creativelabs.com] <br>
<b>Sent:</b> Wednesday, April 30, 2008 4:51 PM<br>
<b>To:</b> Tim Sorrells<br>
<b>Cc:</b> openal@opensource.creative.com<br>
<b>Subject:</b> Re: [Openal] Effects/filter chain lacking<o:p></o:p></span></p>
</div>
</div>
<p class=MsoNormal><o:p> </o:p></p>
<p><span style='font-size:10.0pt'>Hi Tim,</span><br>
<br>
<tt><span style='font-size:10.0pt'>> I’m looking through the Effects
Extension documentation and there’s </span></tt><span style='font-size:
10.0pt;font-family:"Courier New"'><br>
<tt>> a lot of discussion which seems to ultimately boil down to one </tt><br>
<tt>> parameter which is AL_AUXILIARY_SEND_FILTER which allows you to </tt><br>
<tt>> specify the effect and filter applied to a source. Perhaps
I’m </tt><br>
<tt>> missing something but this only allows the sound designer to specify</tt><br>
<tt>> at most one effect and one filter.</tt></span><br>
<br>
<tt><span style='font-size:10.0pt'>The AL_AUXILIARY_SEND_FILTER is used to
set-up the sends from a Source to one of the global effects. Depending
upon your hardware you may be able to configure a Source to send to multiple
global effects. For example, an X-Fi soundcard allows you to create up
to 4 global effects, and configure a Source to have a filtered effect send to
each of the global effects.</span></tt><br>
<br>
<tt><span style='font-size:10.0pt'>The AL_DIRECT_FILTER is used to apply a
filter to the direct (dry) path of a Source.</span></tt><br>
<br>
<tt><span style='font-size:10.0pt'>> But what happens when you want </span></tt><span
style='font-size:10.0pt;font-family:"Courier New"'><br>
<tt>> to apply 2 effects and a filter to a source?</tt></span><br>
<br>
<tt><span style='font-size:10.0pt'>A Source can have a one filter on the dry
path (that will have no impact on the effect sends), and (on X-Fi) up to 4
filtered sends to 4 different effect slots (none of which will affect the dry
path).</span></tt><br>
<tt><span style='font-size:10.0pt'> </span></tt><br>
<tt><span style='font-size:10.0pt'>> I really want to be able to construct a
chain so that I can specify </span></tt><span style='font-size:10.0pt;
font-family:"Courier New"'><br>
<tt>> something like this: Source->Filter->Effect1->Effect2->Output.
</tt></span><br>
<br>
<tt><span style='font-size:10.0pt'>The current specification does not allow
chaining of the auxiliary (global) effects. But you can do this ...</span></tt><br>
<br>
<tt><span style='font-size:10.0pt'>Source->Filter---------->Output (dry
path)</span></tt><br>
<tt><span style='font-size:10.0pt'>
|--->Filter->Effect1->Output (send path to Aux Effect 1)</span></tt><br>
<tt><span style='font-size:10.0pt'> |--->Filter->Effect2->Output
(send path to Aux Effect 2)</span></tt><br>
<br>
<br>
<tt><span style='font-size:10.0pt'>> I’d </span></tt><span
style='font-size:10.0pt;font-family:"Courier New"'><br>
<tt>> also like to attach an effect to the master so that every source is </tt><br>
<tt>> affected by that without me manually telling it so.</tt></span><br>
<br>
<tt><span style='font-size:10.0pt'>There are no master effects I'm afraid -
just global effects.</span></tt><br>
<tt><span style='font-size:10.0pt'> </span></tt><br>
<tt><span style='font-size:10.0pt'>> Even using the AL_AUXILIARY_SEND_FILTER
with a reverb and a low pass</span></tt><span style='font-size:10.0pt;
font-family:"Courier New"'><br>
<tt>> filter it’s obvious the reverb effect is bypassing the low-pass </tt><br>
<tt>> filter. </tt></span><br>
<br>
<tt><span style='font-size:10.0pt'>That doesn't sound right. What
soundcard are you using? Do you have up to date drivers and OpenAL
components? Which OpenAL device are you using? What EFX calls are
you making exactly?</span></tt><br>
<br>
<tt><span style='font-size:10.0pt'>> This differs from the graph on page 16
in the </span></tt><span style='font-size:10.0pt;font-family:"Courier New"'><br>
<tt>> Effects Extension documentation which puts the filter first, and </tt><br>
<tt>> then the effect. Assuming this problem isn’t specific to
my </tt><br>
<tt>> platform, you can hear this yourself by using the EFXFilter sample. </tt></span><br>
<br>
<tt><span style='font-size:10.0pt'>The EFXFilter sample sounds as expected on
my X-Fi card.</span></tt><br>
<br>
<tt><span style='font-size:10.0pt'>You should hear the following ...</span></tt><br>
<br>
<tt><span style='font-size:10.0pt'>1)Original sound (no filters and no sends)</span></tt><br>
<tt><span style='font-size:10.0pt'>2)low-pass filtered sound with no effects</span></tt><br>
<tt><span style='font-size:10.0pt'>3)original sound feeding a reverb effect</span></tt><br>
<tt><span style='font-size:10.0pt'>4)original sound with a filtered send to the
reverb effect (just the reverb should sound muffled)</span></tt><br>
<span style='font-size:10.0pt;font-family:"Courier New"'><br>
<tt>Dan</tt></span><o:p></o:p></p>
</div>
</body>
</html>