locked
XACT Audio / Minor Rant RRS feed

  • General discussion

  • <minor-rant>

    Can you please, *please* consider supporting a more low level way to play sounds than XACT.

    The Microsoft Cross Platform Audio Creation Tool (XACT) is a pain to use.  I mean seriously how many devs do you have budget for to maintain this so called "IDE"?  It might be okay for professional game studios but I don't think it's that simple for the XNA GS crowd.  Then again having looked in the XACT forum it doesn't look like a lot of professional studios are using it either.  So then you have to ask why are we having it forced on us since this audio content creation tool has so far fallen on deaf ears ;).  Perhaps it's a secret plot to get the XACT folk to make it better in future perhaps? (hmm bite my tongue)

    As an example, to add a new sound to my game I have to follow a (what seems like at least) 7 step process that involves an external tool, copying a bunch of files around and all sorts of other hoohar if I want to audition the sounds.

    I realize XACT is a strategic foundation pillar of the XNA platform and all that but can't you just please allow a way to play a bit of WAV data (or even better OGG/WMA) from a Stream - cawww that's crazy talk - imagine that!

    In my case the reason I'm really bothered about XACT is that to start with I was hoping to build an app that could play sounds randomly from the disk, that were not authored in XACT but rather dropped there by a user.  If I wanted to stick with windows I know I can add a bunch-o-code that will do it.  However then my app won't have a cat in hells chance of running on the 360.  You could respond that there is no way to get these random files onto the 360 anyway so it isn't an issue.  Of course you'd be right but then we are promised in future that some form of networking will be available which hopefully might make it possible to pick some sounds up from other machines on the LAN.

    Finally I might want to do some software synthesis and this is totally out of the question as far as I can see using XACT.

    Anyway, sorry for the rant but for me playing sounds dynamically is important.  XACT is a nice idea and does have some benefits, but it's a sledgehammer for some jobs and other jobs that used to be simple are now just not possible.

    If there is some way to do the things I want using the classes available then yes I'm an idiot and I apologize.

    </minor-rant>

     

    Monday, September 4, 2006 6:57 AM

All replies

  • I agree.

    Where does DirectMusic fit into XNA? Is it even supported at all?

    Tuesday, September 5, 2006 7:40 AM
  • I work with a guy who was on the directx team for years. According to him, the whole directx/directshow/directmusic/winmm opus has been raped over and over again by teams within microsoft competing and in-fighting over who gets to do the sexy projects :) (funny if you ask me). He said there used to be things in the works for mp3 and different video formats and all kinds of coolness; apparently some of that stuff was working and never shipped. I've never worked there, but I guess the competitive culture and, apparently, the top-heavy management, has caused various things to get hijacked and looted by whomever has the most clout.

    With the advent of the vista spiffy interface (aeroglass or whatever) team, the XNA team, the DX X team, the managed this and that and whatever else team, its no wonder things are confused. Like the managed directx api - what the bleep is going on with that? Tom Miller moved to XNA and it stopped dead.

    Anyway, I'm not trying to ingnite a flame war or insult the Microsofties (my aplologies guys, but there's no such thing as a big agile company) who are surely trolling this board - just a peephole's worth of insight into a huge machine.

    Tuesday, September 5, 2006 7:59 AM
  •  Khass wrote:
    With the advent of the vista spiffy interface (aeroglass or whatever) team, the XNA team, the DX X team, the managed this and that and whatever else team, its no wonder things are confused. Like the managed directx api - what the bleep is going on with that? Tom Miller moved to XNA and it stopped dead.

    XNA IS Managed DirectX.  Managed DirectX is no longer.  The 2.0 beta will be removed from DirectX 9 completely, once XNA goes release.  This is documented all over the place.
    Tuesday, September 5, 2006 1:22 PM
  • I thought Direct Sound was pretty easy to use and it didn't take much work to build a class that supported a lot of direct sound features in a way similar to xna.  Direct Sound was also useful for nongame stuff like creating wave files from data quickly and easily.
    Tuesday, September 5, 2006 1:52 PM
  •  Dodger_ wrote:
    Khass wrote:
    With the advent of the vista spiffy interface (aeroglass or whatever) team, the XNA team, the DX X team, the managed this and that and whatever else team, its no wonder things are confused. Like the managed directx api - what the bleep is going on with that? Tom Miller moved to XNA and it stopped dead.

    XNA IS Managed DirectX. Managed DirectX is no longer. The 2.0 beta will be removed from DirectX 9 completely, once XNA goes release. This is documented all over the place.


    Yeah, I know. I meant whats going on for DirectX 10. No one seems to know (obviously whatever new functionality will go into XNA, but how different will it be from DX 10 is the question).
    Tuesday, September 5, 2006 5:25 PM
  • I was under the impression (though I now think I'm probably wrong), that the Content Pipeline would have done this. If it converts loads of different model/mesh/texture formats, why isn't sound included? Surely we should be able to dump a load of WAVs into our project, and the content pipeline would convert them?

    That might not give the ability to play WAV at runtime, but it's certainly better than having to use XACT! (I just used it for the first time, to discover the June one doesn't work with XNA, even though it contains loads of Xbox 360 stuff!!). :-(

    Tuesday, September 5, 2006 5:32 PM
  • I definitely second this, but in a bit more general way.  What I'd really like to see is the ability to access files on the 360 and/or over a network.  Maybe having it limited to just the music folder and the program's folder (and sub-folders) on the 360's drive itself, but some access would be nice.

    I'm wanting to let the user select from their music library for the music in my game, but with the current system I haven't seen any way of doing this.  Of course they can just select their music through the dashboard, but my game uses the beat of the music to trigger events in the game.

    Also, does anyone know if there's a way to get the raw sound data if the user has selected a song to override the default music with?  Or is there not that level of communication between the dashboard and our programs?
    Tuesday, September 5, 2006 9:21 PM
  • We're investigating ways to make it easier to author and consume audio content with XNA.  This most likely won't change for v1.0 (although we will make it a bit easier) but is something we're looking at for future releases.
    Tuesday, September 5, 2006 10:37 PM
  • I don't see how something as major as this, helps by being pushed to a future release.
    Friday, September 15, 2006 6:09 PM
  • moving to XACT forum
    Friday, September 15, 2006 6:14 PM
  • Hi folks,

    Wow, good spirited discussion - and glad to see this kind of passion around audio! Let me try to address some of these elements:

    1) Yes, there should definitely be an easier way to "just play a wave file". As Mitch mentioned, that's in the works - though for the initial release of XNA Studio Express, XACT is the only method for doing this. For game-supplied assets, this isn't too tough in XACT – drag/drop the wave(s) from Explorer into a wave bank, drag/drop the wave into the cue frame of a sound bank (which automatically creates a cue that you can trigger that just plays the wave as a simple sound). And as a benefit, adding variation (pitch, volume, wave) is pretty trivial with no code. For user-supplied or customizable assets, that's certainly more of a challenge and something I'd follow up with the XNA framework folks about addressing.

    2) If there are specific parts of XACT that you feel are difficult to use or take more steps to complete than you'd like, please send us feedback (easiest way is via the “Connect” bug/feedback process online) and let us know. The more specific, the better. I know I've personally specifically come up with lists of common tasks that I perform that I wish took less steps, had keyboard shortcuts, were more intuitive, etc. -- the more validation we get on these (or feedback on areas that I and other XACT users might not catch), the easier it is to prioritize them against the wide variety of other audio-related work items. I’d particularly be interested in seeing your current pipeline process. As one note here, the XACT project file (.xap) can be added to a C# game project, where it will automatically be built for the appropriate platform every time you hit F5.

    3) As to custom software synthesis, I’d certainly be interested in getting more information on this – do you mean DSP effect processing (such as reverb, which is actually already available in XACT), or actual real-time synthesis (FM, granular, etc.)?

    4) Regarding allowing the user to play their own music during the game, that continues to be supported on Xbox 360 whether or not you’re utilizing the XNA Framework – it’s a feature of the Xbox 360 that the user can pop up the guide and start playing their own music. So long as your own game’s music is appropriately tagged (e.g. is assigned to the ‘music’ category in XACT), the user’s music will automatically mute your music when they start playing their own.

    Hope this helps, and thank you guys again for your continued participation in the online forums.

    Cheers,

    Scott

    Wednesday, September 20, 2006 8:23 PM
  • To answer part of your question.

    Currently, we don't expose any way of playing the user's music via any managed API's.  On (non-managed) Windows, you can see the mp3's and WMA's, etc. 

    As far as Xbox 360, no, there is no way in XNA to get access to the raw sound data for the music a user has selected, so you won't be able to beat match to dashboard-initiated music.

     

    -Brian

    Wednesday, September 20, 2006 9:18 PM
  •  CaptainSmudge wrote:

    <minor-rant>

    Then again having looked in the XACT forum it doesn't look like a lot of professional studios are using it either.  So then you have to ask why are we having it forced on us since this audio content creation tool has so far fallen on deaf ears ;).  If there is some way to do the things I want using the classes available then yes I'm an idiot and I apologize.

    </minor-rant> 

    Actually, a surprisingly high percentage of Xbox and Xbox 360 titles use or have used XACT. It's not for every studio or situation to be sure, but as a fast and relatively easy way to create complex audio content and let the sound designer have control of the overall sound of a game, it appears to be showing its worth.  In general, game development is trying (across the board, not just for audio), to move to content driven solutions.  Requiring a programmer to do everything doesn't scale to large projects, particulalry when it's often the artist/sound designer with the eyes/ears.  Giving the content people tools to provide rich content is part of that. 

    That all said, as we deploy tools like XACT more broadly to groups such as XNA customers, there are features that would be desireable for that group as well.   And forums like this as well as XNA Connect are a great way to let us know you think is missing/needed.

    -Brian

    Wednesday, September 20, 2006 9:28 PM
  •  Brian MS wrote:

    t's not for every studio or situation to be sure, but as a fast and relatively easy way to create complex audio content and let the sound designer have control of the overall sound of a game, it appears to be showing its worth.  In general, game development is trying (across the board, not just for audio), to move to content driven solutions.  Requiring a programmer to do everything doesn't scale to large projects, particulalry when it's often the artist/sound designer with the eyes/ears.  Giving the content people tools to provide rich content is part of that.


    XACT don't make things much easier now. I would like to omit building .xap project and getting banks content from code (sound designers should be responsible for building .xap). I need only to determine which bank should be loaded (I get that information from scripts). XACT UI creates useless text output. It gives cue name and its sound bank name (without file names and wave banks names!). How can I determine which files should be loaded? XACT aggravates level desinger's work. How to choose sound for a sound emitter or event in level editor? Level designer should be allowed to choose sound banks and cues to play but it's  impossible to get cue names from sound bank and cue list generated by XACT UI won't help him much. How You see game development process with XACT?
    There is lack of fundamental features in XACT. Given features like multi track sounds, variations etc are easy to code for programmers. If You want to give only high-level access to programmers You need to make api flexible and analyze real-life use cases.

    I belive that XACT will become powerful and comfortable audio solution but now it loses with other apis like openal, ds3d.
    Thursday, September 21, 2006 9:29 AM