Aller au contenu

Photo

Audio File Formats


  • Veuillez vous connecter pour répondre
10 réponses à ce sujet

#1
Sunjammer

Sunjammer
  • Members
  • 925 messages
So I took my first tentative steps in to the shady world of audio this weekend. In order to extend the end of the Single Player I had cloned epi100cr_guard_1 and his epi_guard conversation into my add-in. Unfortunately that meant that each line in the conversation was assigned a new StringID which in turn meant that it was no longer associated with the original VO. "Not a problem" I thought to myself. "Simply find the originals, copy them and rename them with the new String IDs."

Did I mention these were my first tentative steps?

Okay so I was in for a bit of a rude awakening and quickly discovered that is wasn't that straight forward. Fortunately I have since managed to arm my guard with the original VO and matching lip-sync but it was something of an ordeal, only achieved through by trial-and-error. What I would like to do is simplify that task either by finding or developing a one-stop-shop application.

As I understand things (and please correct me if/where I am wrong) we can use appropriately named WAV files for new VO. If they are placed in the correct location (..\\AddIns\\{uid}\\module\\override\\toolsetexport\\) the toolset will scoop them up and build them into the FSB when we select Generate VO Local. We can then generate the lip-sync using the actual samples and everything works beautifully.

However where we want to use existing VO, as I did, we have to extract them from the FSB, rename them and rebuild a new FSB. Initially I followed Charsen's tutorial however when I reviewed the final results in game I had the correct samples but terrible lip-sync. After a bit of testing I concluded (perhaps wrongly) that because the audio is already wrapped up in the FSB there are no samples for the FaceFX to work with so it uses the computer generated stuff.

So the next logical step was to drop a copy the extracted and renamed WAV files into the correct location and have them used to generate the lip-sync. Unfortunately when I tried that the toolset got very upset complaining about a missing 'fmt ' block and such like.

Originally I had been trying FSBExtractor (aka DAExtractor) and I recalled from the thread that some people had been complaining about the files being corrupt (I don't think they are but I'll come onto that). So I tried fsbext which produced identical files but with an MP3 extention. I skipped those and moved on MusicPlayerEx with FSB & Java (catchy name) which turned out to be both a blessing and a curse.

It was a blessing because the files it produced were (it seems) proper WAV files with RIFF header and I could even see a 'fmt ' block! Sure enough once I'd renamed them and dropped them into the appropriate directory they were scooped up and built into a shiny new FSB and were used to produce perfect lip-sync. It was a blessing because the export arbitarily renames the files so the only way to match them is to play them. I only had 6 lines to fix but even that was a pain.

As a result of all this I believe the WAVs are converted to MP3s by FMOD when it creates the FSB and only MusicPlayerEx is converting them back during extraction. The WAVs produced by FSBExtracter aren't corrupt they're just not WAVs! Of course I say that as somoene who 24 hours ago knew nothing about any of this so forgive me if I'm completely wrong.

So I guess what I'm asking is:
  • I simply assumed that we can't use FMOD to extract the original WAVs but has anyone confirmed this?
  • Is there an alternative workflow/process for reusing BioWare's VO which ensures accurate lip sync?
  • What are the formats involved? Are my assumptions about the WAV > FMOD > MP3 correct?
  • What do you use for extracting and converting audio files?
  • What features would you like to see in a one-stop-shop application?

Modifié par Sunjammer, 19 septembre 2010 - 11:25 .


#2
mikemike37

mikemike37
  • Members
  • 669 messages
Forgive me if you've already found this... more information on what FMOD does and its file formats (and how you can change what it does/uses with command line inputs) can be found in the FMOD documentation - i think its in the same folder as FMOD. have a hunt.



As for the other stuff, haven't done any audio work myself, I'll point Cuv here though - he would likely be interested in any one-stop-shop application which is being discussed.




#3
Cuvieronius

Cuvieronius
  • Members
  • 91 messages
Hey Sunjammer

Mike pointed me here and I am indeed interested. Lets see if I can be of any help in answering questions first.


1. FMOD won't extract anything. It will look for the files it has programmed. But it is a pretty versatile program as I am finding out. It also has a high learning curve, but easier to grasp the intitial concepts earlier so I keep going back to find out more.

2. So long as you don't change the stringID, I see no reason why the original lip sync shouldn't be perfect. The problem comes when you add new or alter vo and FaceFX. In that case, it's really just a simple matter of manually editing the FaceFX in the toolset, posting to local, then retrieving and placing the altered fxe and fxm in the correct folder for your module. Don't know if there is a need for a tutorial on FaceFX editing or not??? I could make one when I have the time.

As for an alternative to Charsen's tutorial? Not really, there are a few things that I do differently... but it is essentially how to do it. I still have some questions regarding adding to an existing core soundbank as he does. I don't do it that way, but looks like it works.

3. Pretty much. Wav or MP2 is what FMOD needs to build a sound file. For VO, the format needs to be specific: WAV 16 bit PCM 24000hz mono. FMOD will compress it to MP3 in most of the projects... although some compress to PCM wav and ADPCM wav, there may be other compressions. It will tell you on the FDP what the compression type is. The best way to find out for sure what compression is supposed to be used for a particular sound file, is to grab the core and single player FDP's that Bioware kindly provided recently... open the one you need and check. Assuming that those are the final FDP's, they should be, but you never know for sure until you need it.

4. For extraction I just use the FSBExt... not sure which one it is. Doesn't matter. After I extract the sounds, then I use Goldwave to batch convert them to WAV and whatever specs I need.

Sunjammer wrote...

[*]What features would you like to see in a one-stop-shop application?



Oooh! An application eh?

I would like to see one that will automatically extract and convert to Wav. Need two choices there though... one for VO (mono, 16bit 24khz), one for Music/Other (keep any stereo settings). Also, it would be nice if you could somehow interface with the toolset and assign the sounds the proper stringID without having to manually do that... and have it add the "__m" at the end for VO. For Music, there is no such restriction.

As for building the FDP on the fly, we already have that. Made a Media Extractor that grabs the sounds we need, converts them, and then builds the FDP's by remote and places them into the proper folder. It works from a modified BG2 WeiDU program. Mike helped with the bat files..heh, and got a little guidance from my old friends at Spellhold Studios.net. You are welcome to it, to see how to call FMOD by remote and build your projects 'almost' invisible. You still get the FMOD build window come up, but you dont have to do anything and it closes when finished.

Anyway, hope some of that helped. I tend to be long-winded. Lemme know if I can help out.

Cuv

#4
mikemike37

mikemike37
  • Members
  • 669 messages
(to elaborate, our bat really only tells FMOD to process the FDP - see command line interface in FMOD documentation)

#5
DahliaLynn

DahliaLynn
  • Members
  • 1 387 messages

Cuvieronius wrote...
one for VO (mono, 16bit 24khz), one for Music/Other (keep any stereo settings).
Cuv

Tiny little question for cuv:
why would you use 24khz as opposed to 44 khz for a mono VO track?

Modifié par DahliaLynn, 20 septembre 2010 - 02:52 .


#6
mikemike37

mikemike37
  • Members
  • 669 messages
possibly because thats what it says to use on the builder wiki?



http://social.biowar....php/Voice-Over

#7
DahliaLynn

DahliaLynn
  • Members
  • 1 387 messages
Ahh, I understand, it's a toolset requirement. Thanks :)

#8
Sunjammer

Sunjammer
  • Members
  • 925 messages

Cuvieronius wrote...

4. For extraction I just use the FSBExt... not sure which one it is. Doesn't matter. After I extract the sounds, then I use Goldwave to batch convert them to WAV and whatever specs I need.

I was using that too: I wrote a little front end so that I could play with the various arguments. Currently it simply lists the FSBs in a directory, lists the WAVs (er, I mean MP3s) in an FSB and then lets you export the samples.  I guess the next step would be to hook up Goldwave or Audacity in to the same front end. And then possibily using one (or more) of the FMOD dlls to provide whatever information/functionality would be useful.

I assume hooking up to the toolset can be achieved by hooking into the database. With the right queries we can get pretty much any information we want about a module, its conversations and their strings.

Obviously there's no point in reinventing the wheel so for full scale sound projects people would still have to use FMOD. What I'm aim in for is more of a swiss army knife for Dragon Age Audio that could perhaps handle all the annoying tasks that seek to frustrate and confuse us. So the other next step would be to start to collate these sort of tasks.
  • New VO for a new conversation:  Viewing a converation, being able to play a sample, assign a sample to a line in the conversation and in doing so have that sample renamed correctly and copied to an appropriately named subfolder in ...\\{uid}\\module\\override\\toolsetexport\\.
  • New VO for an existing conversation: as above?
  • Duplicating existing VO from an existing conversation: extracting existing VO from an FSB, optionally converting to WAV, automatic renaming (assuming the order is maintained (which it appears to be)) and copied to an appropriately named subfolder in ...\\{uid}\\module\\override\\toolsetexport\\. Alternatively rebuilding the FSB (or building a new FSB) with the unconverted samples might be an option (if we can get the lipsync information from somewhere else).
I haven't turned my attention to sounds/music yet so perhaps you could give me an idea of the common/tedious/frustrating tasks.

Modifié par Sunjammer, 20 septembre 2010 - 05:52 .


#9
Cuvieronius

Cuvieronius
  • Members
  • 91 messages
I like the sound of that. Would sure make things easier it a link to the database could be achieved.



Still learning the Sounds/Music. Working on another FDP with a more defined folder structure, and figuring out the parameters so they work as I need them. Will let you know on that.

#10
DahliaLynn

DahliaLynn
  • Members
  • 1 387 messages
With regards to music, I believe FMOD is most likely a necessary application when speaking of music *in game* i.e. triggers, when to play what, looping, and how long. It looks like a very intuitive and versatile app.

My own personal experience has to do with inserting "one shot" music (also can only be set in FMOD as opposed to looping for exmpl) - into the cutscene editor along with required parameters. One of the problems I encountered was the fact that parameters could not be edited within the cutscene editor itself, even though they are visible in the curve editor when selecting the music bar event on the timeline. Also, said parameters are not clearly defined anywhere on wiki.

The parameters I have found are for example:

#duck:music,1000,0,4000,-60
which can only be attached to a music/audio file through FMOD then exported into the toolset. The meaning of each parameter here is also a blur.

I have looked this up, and found little information aside from "duck" being some sort of compressor command which tells the game how much of the previous/ambient music should be muted when overlapped by the new. -60 possibly being 100% overlap and 4000 being volume?

My initial intention was to combine two pieces of the same music and edit them crossfade-wise in the editor.
Since I could not manipulate sound in any way within the editor itself , I resorted to editing the music in an external application, exporting to wav, then importing to FMOD, setting required parameters then "building" and exporting to toolset for access it in the editor on an as-is basis.

If my timing was off for any reason, or the volume was low, or anything wasn't right, I would have to go back, re-edit, and do the entire process again, which is a big pain.

If indeed it is impossible to manipulate music/audio within the editor itself, then what I would prefer, is that after I had edited the music in an external app, to have some sort of mini program which would easily "convert" the wav file into toolset readable format, along with editable attributes such as looping, one shot, volume, in game compression (dominance), etc. instead of jumping through all kinds of windows and settings within FMOD, where the FMOD interface is really very foreign in comparision to audio applications in general.

Modifié par DahliaLynn, 21 septembre 2010 - 11:05 .


#11
BloodsongVengeance

BloodsongVengeance
  • Members
  • 590 messages
heyas;

  sunjammer, any headway on this project?  any headway on figuring out how sounds and sound files are used by the conversation editor?  because i am having LOADS of trouble!



   this is a tutorial i put together based on charsens, but to pull VO from existing dialogue and put it into a new dialogue/module.  most of it is voodoo that some people are telling me i don't need to do, but heck if i can get it to work any other way.

http://docs.google.c...6k5g5_5g5dkrgdv


  this post (which seems to have scared people off) is what i'm currently banging my head on now.  any insight you may have on these and other VO questions would be deeply appreciated.  i didnt try putting the fsb/fev/wavs into the toolset export directory, though; which is what i will try tonight.

http://social.biowar...6/index/4936501