Dragon Age: Inquisition Modding Tools

All about modding tools for Dragon Age: Inquisition
It is currently Sat Jun 24, 2017 5:13 am

All times are UTC



Welcome
Welcome to the Dragon Age Modding tools forum

You are currently viewing our boards as a guest, which gives you limited access to view most discussions and access our other features. By joining our free community, you will have access to post topics, communicate privately with other members (PM), respond to polls, upload content, and access many other special features. In addition, registered members also see less advertisements. Registration is fast, simple, and absolutely free, so please, join our community today!


Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 31 posts ]  Go to page Previous  1, 2, 3, 4  Next
Author Message
 Post subject: Re: Audio extraction
PostPosted: Tue Dec 16, 2014 4:35 am 
Offline

Joined: Mon Dec 15, 2014 6:21 am
Posts: 14
Has thanked: 3 time
Have thanks: 2 time
Ehamloptiran wrote:
What do the different streams hold? I was able to hear whole lines, and whole songs from the bards. What would I see or hear different between a single stream and multiple streams?


Basically one chunk contains around 100 lines of dialogue, ealayer extracts only the first line. There's a way to extract all of them, but it requires a lot of manual work (You'll need to open chunk in HEX editor, cut out the first line, convert, then the second, etc.) It takes a lot of time, but it works.


Top
 Profile  
 
 
 Post subject: Re: Audio extraction
PostPosted: Tue Dec 16, 2014 4:58 am 
Offline
Site Admin
User avatar

Joined: Fri Dec 05, 2014 3:43 am
Posts: 629
Has thanked: 14 time
Have thanks: 751 time
Hmm.. I think we might be talking about different types of chunks here. I am looking at the Conversation assets, which map out conversations, for example I am currently looking at da3/designcontent/conversations/ferelden/deeproads/fer_dgn_deep_roads_carta_a (Which is the Conversation) and fer_dgn_deep_roads_carta_a.languageformat_english.voiceover (Which is the Sound asset). The Sound asset has a ChunkID, this when converted plays the line "Sod it, Ive had enough inquisition meddling" and thats it. Now when I look at the conversation, I find that exact line, and no others, so The chunks I am referring to are per asset. And I can here every asset so far.


Top
 Profile  
 
 Post subject: Re: Audio extraction
PostPosted: Tue Dec 16, 2014 5:08 am 
Offline

Joined: Mon Dec 15, 2014 6:21 am
Posts: 14
Has thanked: 3 time
Have thanks: 2 time
Yes, we was doing it differently :) I've just extracted all chunks from en.sb and trying to convert them.


Top
 Profile  
 
 Post subject: Re: Audio extraction
PostPosted: Tue Dec 16, 2014 5:11 am 
Offline
Site Admin
User avatar

Joined: Fri Dec 05, 2014 3:43 am
Posts: 629
Has thanked: 14 time
Have thanks: 751 time
Okay that makes more sense, so I am pulling out the sub chunks that you had to manipulate to get. The good thing is the ealayer3 source code is available, so Im going to move that in, so I dont have to extract, convert, and read back in from the file system.
Ehamloptiran has been thanked by:


Top
 Profile  
 
 Post subject: Re: Audio extraction
PostPosted: Tue Dec 16, 2014 6:54 am 
Offline
Site Admin
User avatar

Joined: Fri Dec 05, 2014 3:43 am
Posts: 629
Has thanked: 14 time
Have thanks: 751 time
Actually I have to apologise here. You and I were in fact looking at the same data. After looking at some bigger conversations, I noticed things werent lining up. Now I have a music preview that plays all streams from the chunk.
Ehamloptiran has been thanked by:


Top
 Profile  
 
 Post subject: Re: Audio extraction
PostPosted: Tue Dec 16, 2014 6:49 pm 
Offline
Site Admin

Joined: Fri Dec 05, 2014 3:26 pm
Posts: 635
Has thanked: 921 time
Have thanks: 314 time
Is that on the main tool eh ? I want to listen to dialog (for Solas ofc) and save some of it

_________________
ar-lath-ma-vhenan


Top
 Profile  
 
 Post subject: Re: Audio extraction
PostPosted: Wed Dec 17, 2014 1:05 am 
Offline
Site Admin
User avatar

Joined: Fri Dec 05, 2014 3:43 am
Posts: 629
Has thanked: 14 time
Have thanks: 751 time
not yet, Like I said, my other tool is my research tool, I am working on converting the code to C# so that I dont have to rely on ealayer3.exe to do the conversion, then I can move it into the main tool
Ehamloptiran has been thanked by:


Top
 Profile  
 
 Post subject: Re: Audio extraction
PostPosted: Thu Dec 18, 2014 7:56 am 
Offline
Site Admin

Joined: Fri Dec 05, 2014 12:05 pm
Posts: 179
Has thanked: 35 time
Have thanks: 212 time
can anyone link such a extracted chunk file? I bet there are size information, so you can split them, otherwise theres maybe an offsets for each clip in the chunk in other resources

greetz WV

_________________
Always backup your files!


Top
 Profile  
 
 Post subject: Re: Audio extraction
PostPosted: Thu Dec 18, 2014 8:17 am 
Offline

Joined: Mon Dec 15, 2014 6:21 am
Posts: 14
Has thanked: 3 time
Have thanks: 2 time
WarrantyVoider wrote:
can anyone link such a extracted chunk file? I bet there are size information, so you can split them, otherwise theres maybe an offsets for each clip in the chunk in other resources

greetz WV


Here it is:

I don't know if it helps, but in HEX editor each new line starts with 44 00 04.


Attachments:
6b4cc7fc6d26971e33f485a63067af9e.zip [410.79 KiB]
Downloaded 43 times
Top
 Profile  
 
 Post subject: Re: Audio extraction
PostPosted: Thu Dec 18, 2014 8:34 am 
Offline
Site Admin
User avatar

Joined: Fri Dec 05, 2014 3:43 am
Posts: 629
Has thanked: 14 time
Have thanks: 751 time
You search for the following pattern: 0x0c000048 and 0x80bb0016. This indicates the start of a new stream. As the actual offsets are in the EBX that points to the sound resource, so unless you know which EBX to look at you cannot obtain the offsets directly.

If you want I can incorporate the code I have into DA_Tools that relys on ealayer3.exe? As I haven't had time to rewrite the source.

Example of offsets:

Spoiler:
<Segments Offset="0x00000A38">
<member Offset="0x00000C7C">
<SoundWaveVariationSegment Offset="0x00000C7C">
<SamplesOffset Offset="0x00000C7C">00000000</SamplesOffset>
<SeekTableOffset Offset="0x00000C80">FFFFFFFF</SeekTableOffset>
<SegmentLength Offset="0x00000C84">2.724</SegmentLength>
</SoundWaveVariationSegment>
</member>
<member Offset="0x00000C88">
<SoundWaveVariationSegment Offset="0x00000C88">
<SamplesOffset Offset="0x00000C88">00008288</SamplesOffset>
<SeekTableOffset Offset="0x00000C8C">FFFFFFFF</SeekTableOffset>
<SegmentLength Offset="0x00000C90">2.131</SegmentLength>
</SoundWaveVariationSegment>
</member>
<member Offset="0x00000C94">
<SoundWaveVariationSegment Offset="0x00000C94">
<SamplesOffset Offset="0x00000C94">0000EE3C</SamplesOffset>
<SeekTableOffset Offset="0x00000C98">FFFFFFFF</SeekTableOffset>
<SegmentLength Offset="0x00000C9C">2.840</SegmentLength>
</SoundWaveVariationSegment>
</member>
<member Offset="0x00000CA0">
<SoundWaveVariationSegment Offset="0x00000CA0">
<SamplesOffset Offset="0x00000CA0">000173F0</SamplesOffset>
<SeekTableOffset Offset="0x00000CA4">FFFFFFFF</SeekTableOffset>
<SegmentLength Offset="0x00000CA8">1.986</SegmentLength>
</SoundWaveVariationSegment>
</member>
<member Offset="0x00000CAC">
<SoundWaveVariationSegment Offset="0x00000CAC">
<SamplesOffset Offset="0x00000CAC">0001D550</SamplesOffset>
<SeekTableOffset Offset="0x00000CB0">FFFFFFFF</SeekTableOffset>
<SegmentLength Offset="0x00000CB4">3.190</SegmentLength>
</SoundWaveVariationSegment>
</member>
<member Offset="0x00000CB8">
<SoundWaveVariationSegment Offset="0x00000CB8">
<SamplesOffset Offset="0x00000CB8">00026A60</SamplesOffset>
<SeekTableOffset Offset="0x00000CBC">FFFFFFFF</SeekTableOffset>
<SegmentLength Offset="0x00000CC0">2.462</SegmentLength>
</SoundWaveVariationSegment>
</member>
<member Offset="0x00000CC4">
<SoundWaveVariationSegment Offset="0x00000CC4">
<SamplesOffset Offset="0x00000CC4">0002E1C8</SamplesOffset>
<SeekTableOffset Offset="0x00000CC8">FFFFFFFF</SeekTableOffset>
<SegmentLength Offset="0x00000CCC">1.726</SegmentLength>
</SoundWaveVariationSegment>
</member>
<member Offset="0x00000CD0">
<SoundWaveVariationSegment Offset="0x00000CD0">
<SamplesOffset Offset="0x00000CD0">00033B14</SamplesOffset>
<SeekTableOffset Offset="0x00000CD4">FFFFFFFF</SeekTableOffset>
<SegmentLength Offset="0x00000CD8">3.001</SegmentLength>
</SoundWaveVariationSegment>
</member>
<member Offset="0x00000CDC">
<SoundWaveVariationSegment Offset="0x00000CDC">
<SamplesOffset Offset="0x00000CDC">0003C66C</SamplesOffset>
<SeekTableOffset Offset="0x00000CE0">FFFFFFFF</SeekTableOffset>
<SegmentLength Offset="0x00000CE4">2.585</SegmentLength>
</SoundWaveVariationSegment>
</member>
<member Offset="0x00000CE8">
<SoundWaveVariationSegment Offset="0x00000CE8">
<SamplesOffset Offset="0x00000CE8">00044298</SamplesOffset>
<SeekTableOffset Offset="0x00000CEC">FFFFFFFF</SeekTableOffset>
<SegmentLength Offset="0x00000CF0">2.248</SegmentLength>
</SoundWaveVariationSegment>
</member>
<member Offset="0x00000CF4">
<SoundWaveVariationSegment Offset="0x00000CF4">
<SamplesOffset Offset="0x00000CF4">0004B0A0</SamplesOffset>
<SeekTableOffset Offset="0x00000CF8">FFFFFFFF</SeekTableOffset>
<SegmentLength Offset="0x00000CFC">1.726</SegmentLength>
</SoundWaveVariationSegment>
</member>
<member Offset="0x00000D00">
<SoundWaveVariationSegment Offset="0x00000D00">
<SamplesOffset Offset="0x00000D00">000509EC</SamplesOffset>
<SeekTableOffset Offset="0x00000D04">FFFFFFFF</SeekTableOffset>
<SegmentLength Offset="0x00000D08">3.001</SegmentLength>
</SoundWaveVariationSegment>
</member>
<member Offset="0x00000D0C">
<SoundWaveVariationSegment Offset="0x00000D0C">
<SamplesOffset Offset="0x00000D0C">00059544</SamplesOffset>
<SeekTableOffset Offset="0x00000D10">FFFFFFFF</SeekTableOffset>
<SegmentLength Offset="0x00000D14">2.611</SegmentLength>
</SoundWaveVariationSegment>
</member>
<member Offset="0x00000D18">
<SoundWaveVariationSegment Offset="0x00000D18">
<SamplesOffset Offset="0x00000D18">000616C0</SamplesOffset>
<SeekTableOffset Offset="0x00000D1C">FFFFFFFF</SeekTableOffset>
<SegmentLength Offset="0x00000D20">2.724</SegmentLength>
</SoundWaveVariationSegment>
</member>
<member Offset="0x00000D24">
<SoundWaveVariationSegment Offset="0x00000D24">
<SamplesOffset Offset="0x00000D24">00069948</SamplesOffset>
<SeekTableOffset Offset="0x00000D28">FFFFFFFF</SeekTableOffset>
<SegmentLength Offset="0x00000D2C">2.131</SegmentLength>
</SoundWaveVariationSegment>
</member>
<member Offset="0x00000D30">
<SoundWaveVariationSegment Offset="0x00000D30">
<SamplesOffset Offset="0x00000D30">000704FC</SamplesOffset>
<SeekTableOffset Offset="0x00000D34">FFFFFFFF</SeekTableOffset>
<SegmentLength Offset="0x00000D38">2.840</SegmentLength>
</SoundWaveVariationSegment>
</member>
<member Offset="0x00000D3C">
<SoundWaveVariationSegment Offset="0x00000D3C">
<SamplesOffset Offset="0x00000D3C">00078AB0</SamplesOffset>
<SeekTableOffset Offset="0x00000D40">FFFFFFFF</SeekTableOffset>
<SegmentLength Offset="0x00000D44">1.986</SegmentLength>
</SoundWaveVariationSegment>
</member>
<member Offset="0x00000D48">
<SoundWaveVariationSegment Offset="0x00000D48">
<SamplesOffset Offset="0x00000D48">0007EC10</SamplesOffset>
<SeekTableOffset Offset="0x00000D4C">FFFFFFFF</SeekTableOffset>
<SegmentLength Offset="0x00000D50">3.180</SegmentLength>
</SoundWaveVariationSegment>
</member>
</Segments>
Ehamloptiran has been thanked by:


Top
 Profile  
 
Display posts from previous:  Sort by  
Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 31 posts ]  Go to page Previous  1, 2, 3, 4  Next

All times are UTC


Who is online

Users browsing this forum: No registered users and 0 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
suspicion-preferred