[directmusic] Re: question

  • From: "Joshua P. Jung" <joshua@xxxxxxxxxxxxxx>
  • To: directmusic@xxxxxxxxxxxxx
  • Date: Tue, 11 Mar 2003 10:02:55 -0600

So I just don't plane need to worry about it... as long as the user has=
 DX9, my DX8 game will sound fine.

Josh <><

---------------------------------------------------------------------------
Orignal Message
---------------------------------------------------------------------------

On 2/28/2003 at 9:37 AM Todor Fay wrote:

>Josh,
>
>You can use DirectMusic for sound effects in DX8, but low latency
>"twitch" sound effects that need to respond quickly to user input will,
>by default, delay up to 85ms. You can use the code below in DX8 to drop
>that delay down to as low as 20 ms on some machines with DX8. But, it
>isn't as low as DX9 and isn't self calibrating to be glitch free, so you
>would need to provide a UI element so the user could dial it down until
>it start breaking up.  
>
>However, if you are about to ship a game now, you probably are running
>on DX9, even if you didn't code to it. In DirectX Audio, there are no
>API changes between DX8 and DX9, just performance enhancements. Once the
>DX9 release is installed on a user's machine, be it by your game or
>another, all calls to DirectX Audio will go through the new, improved
>bits. Actually, I expect your game will ship with the latest DirectX
>install, and not the older one. I wouldn't be surprised if Microsoft
>will not allow you to ship the older bits. 
>
>So, even though you've developed with DX8, you've got the DX9
>enhancements for free. 
>
>Todor
>
>-----Original Message-----
>From: directmusic-bounce@xxxxxxxxxxxxx
>[mailto:directmusic-bounce@xxxxxxxxxxxxx] On Behalf Of Joshua P. Jung
>Sent: Friday, February 28, 2003 8:19 AM
>To: directmusic@xxxxxxxxxxxxx
>Subject: [directmusic] Re: question
>
>
>So, what your saying is that DirectMusic 8 should NOT be used for games=3D
> sound effects... which is what I was planning on doing.
>
>I am finishing up a game, and was getting ready to implement sound
>(basic=3D
> stuff). Is there any way I could get directmusic 8 to have low
>latency,=3D
> like you showed DirectMusic 9 could do?
>
>Josh <><
>
>------------------------------------------------------------------------
>---
>Orignal Message
>------------------------------------------------------------------------
>---
>
>On 2/27/2003 at 6:29 PM Todor Fay wrote:
>
>>With DX8, using DirectMusic for sound effects had a problem: you
>>couldn't get low latency for sudden sound effects, in particular any
>>sounds that are in reaction to user input (like gun shots, etc.) 
>>
>>In DX9, you get really low latency. I've measured 4ms latency on the
>>Creative Audigy card, for example, so it's a totally different story. 
>>
>>By default, however, the latency is not low. This was done to handle
>>worse case scenarios of really lousy cards on old slow computers. 
>>
>>But, you can overwrite the latency and write period. Note that the
>>latency is added to whatever hardware / software latency is introduced
>>by the drivers, so results will vary depending on the card. The
>>following code drops the latency to 1ms and the period to 3ms. This
>>results in about 4-6 ms latency on an Audigy card:
>>
>>IDirectMusicAudioPath *pPath;
>>if (m_pPerformance &&
>>SUCCEEDED(m_pPerformance->GetDefaultAudioPath(&pPath)))
>>{
>>    IKsControl  *pControl =3D3D NULL; 
>> 
>>pPath->GetObjectInPath(0,DMUS_PATH_PORT,0,GUID_All_Objects,0,IID_IKsCon
>t
>>rol,(void **)&pControl);
>>    pPath->Release();
>>    if (pControl)
>>    {
>>        KSPROPERTY  ksp; 
>>        DWORD dwData;
>>        ULONG cb; 
>>        dwData =3D3D 3; 
>>        ksp.Set =3D3D GUID_DMUS_PROP_WritePeriod ; 
>>        ksp.Id =3D3D 0; 
>>        ksp.Flags =3D3D KSPROPERTY_TYPE_SET;
>>        pControl->KsProperty(&ksp, sizeof(ksp),
>>                &dwData, sizeof(dwData), &cb);
>>        dwData =3D3D 1; 
>>        ksp.Set =3D3D GUID_DMUS_PROP_WriteLatency ; 
>>        ksp.Id =3D3D 1; 
>>        ksp.Flags =3D3D KSPROPERTY_TYPE_SET;
>>        pControl->KsProperty(&ksp, sizeof(ksp),
>>                &dwData, sizeof(dwData), &cb);
>>        pControl->Release();    
>>    }
>>}
>>
>>BTW, A bunch of us are contributing to a book called DirectX Audio
>>Exposed that will ship in a few months. In it, I have written a chapter
>>on programming with sound effects that covers this and most other
>>questions and issues. 
>>
>>Todor
>>
>>
>>-----Original Message-----
>>From: directmusic-bounce@xxxxxxxxxxxxx
>>[mailto:directmusic-bounce@xxxxxxxxxxxxx] On Behalf Of justin
>>Sent: Thursday, February 27, 2003 11:59 AM
>>To: directmusic@xxxxxxxxxxxxx
>>Subject: [directmusic] question
>>
>>
>>Hi everyone,
>>
>>I am working on creating adaptive audio for a DX game and I am using
>>direct music to handle all of the aa.  I was wondering if it was ok to
>>use direct music for all the sounds in the game i.e gunshots or if I
>>should use direct sound to deal with the small one off stuff...
>>
>>Justin Love
>>University of Victoria
>>
>>-----Original Message-----
>>From: directmusic-bounce@xxxxxxxxxxxxx
>>[mailto:directmusic-bounce@xxxxxxxxxxxxx] On Behalf Of Scott Morgan
>>Sent: February 27, 2003 8:47 AM
>>To: directmusic@xxxxxxxxxxxxx
>>Subject: [directmusic] Re: Ciaran - you mentioned...
>>
>>
>>Oh FYI, the point of the C++ Autodownload is to make life easier on the
>>programmer.  It means he doesn't have to load and unload every segment
>>he
>>calls play on.  It's all handled automatically.
>>-Scott Morgan
>>http://Morganstudios.com
>>
>>
>>----- Original Message -----
>>From: "Scott Morgan" <scott@xxxxxxxxxxxxxxxxx>
>>To: <directmusic@xxxxxxxxxxxxx>
>>Sent: Thursday, February 27, 2003 8:31 AM
>>Subject: [directmusic] Re: Ciaran - you mentioned...
>>
>>
>>>
>>> The Autodownload feature Todor is referring to is a C++ method that
>>has
>>> nothing to do with the download checkbox in scripts.  The programmer
>>would
>>> be the person who decides to use AutoDownload, not the composer.
>Just
>>so
>>> you know DMDemo does not use Autodownload.  Typically if you are
>using
>>> scripting there is absolutely no need to use AutoDownload since the
>>script
>>> handles everything either through manual script commands or by
>loading
>>what
>>> it needs at start (only once).
>>>
>>> There are periodic CPU spikes in DMusic playback, but my
>understanding
>>is
>>> that it is the playback engine waking up every so often and writing
>>new
>>data
>>> to the sound buffer.
>>>
>>> -Scott Morgan
>>> http://Morganstudios.com
>>>
>>>
>>> ----- Original Message -----
>>> From: "Ciaran Walsh" <ciaran@xxxxxxxxxxxxxx>
>>> To: <directmusic@xxxxxxxxxxxxx>
>>> Sent: Thursday, February 27, 2003 7:34 AM
>>> Subject: [directmusic] Re: Ciaran - you mentioned...
>>>
>>>
>>> >
>>> > that would definitely explain it - does it really download the
>>instruments
>>> > again every time you play a band? that seems like a really weird
>way
>>for
>>> it
>>> > to work...
>>> >
>>> > I thought the point of AutoDownload was so that all content
>>referenced
>>by
>>> > the script was downloaded when the script loaded.
>>> >
>>> > -----Original Message-----
>>> > From: directmusic-bounce@xxxxxxxxxxxxx
>>> > [mailto:directmusic-bounce@xxxxxxxxxxxxx]On Behalf Of Todor Fay
>>> > Sent: 27 February 2003 15:18
>>> > To: directmusic@xxxxxxxxxxxxx
>>> > Subject: [directmusic] Re: Ciaran - you mentioned...
>>> >
>>> >
>>> >
>>> > Is there any chance you had the AutoDownload command turned on?
>It's
>>a
>>> > feature that would cause each band to automatically cause a
>download
>>of
>>> > its instruments when it played. Playback of a band should normally
>>not
>>> > cause any spike because all it does is send program change events
>to
>>the
>>> > synth which just stores them, so nothing active occurs.
>>> >
>>> > Todor
>>> >
>>> > -----Original Message-----
>>> > From: directmusic-bounce@xxxxxxxxxxxxx
>>> > [mailto:directmusic-bounce@xxxxxxxxxxxxx] On Behalf Of Ciaran Walsh
>>> > Sent: Thursday, February 27, 2003 5:32 AM
>>> > To: directmusic@xxxxxxxxxxxxx
>>> > Subject: [directmusic] Re: Ciaran - you mentioned...
>>> >
>>> >
>>> > The problem we were having was never pinned down 100% to one
>>particular
>>> > thing, but band events certainly seemed to be contributing
>>> > significantly.
>>> > Our performance tests showed big CPU spikes each time a segment was
>>> > triggered with a new band event, and somehow there was a cumulative
>>> > effect
>>> > which had a big impact on the overall frame rate.
>>> >
>>> > When we removed band events from the segments the spikes
>>disappeared.
>>> >
>>> > We defined the band globally by having a segment play right at the
>>start
>>> > containing just a band event and triggering the first Primary
>>Segment.
>>> > As
>>> > long as you don't recreate the audiopath or change any band
>settings
>>you
>>> > don't need to create the band again after that. I guess it's only a
>>> > problem
>>> > if you are re-assigning pchannels as you go along, but I've never
>>needed
>>> > to
>>> > do that.
>>> >
>>> > Hope that helps,
>>> > Ciaran
>>> >
>>> > -----Original Message-----
>>> > From: directmusic-bounce@xxxxxxxxxxxxx
>>> > [mailto:directmusic-bounce@xxxxxxxxxxxxx]On Behalf Of Paul Stroud
>>> > Sent: 27 February 2003 10:59
>>> > To: directmusic@xxxxxxxxxxxxx
>>> > Subject: [directmusic] Ciaran - you mentioned...
>>> >
>>> >
>>> >
>>> > ..that band tracks were giving you and your dev team a few problems
>>-
>>> > causing some glitch?
>>> >
>>> > If you don't mind going over the same subject again; what was the
>>> > problem?
>>> > And how did you sort it?
>>> >
>>> > I seem to remember that you globally declared a band instead of use
>>band
>>> > tracks on each segment.  Is this right?  Did you need to play a
>Band
>>> > track
>>> > at least once?  Is this how you globally declare a band?
>>> >
>>> > Anyone else had problems with this sort of thing?
>>> >
>>> >
>>> >
>>> >
>>> >
>>> >
>>>
>
>------------------------------------------------------------------------
>---
>End of Original Message
>------------------------------------------------------------------------
>---

---------------------------------------------------------------------------
End of Original Message
---------------------------------------------------------------------------



Other related posts: