Pages: [1] 2 :: one page |
|
Author |
Thread Statistics | Show CCP posts - 0 post(s) |

Anders1
Caldari Tech Nexus Gemini Federation
|
Posted - 2009.04.30 06:54:00 -
[1]
Edited by: Anders1 on 30/04/2009 07:00:00 Edited by: Anders1 on 30/04/2009 06:58:22 Edited by: Anders1 on 30/04/2009 06:58:06 So I was trying to listen to some of the EVE music, as I had done a year ago and it turned out the music was now in .ogg files. However, these files wouldn't play in any media player I tried... so I looked around and found out that these aren't actually Ogg at all. They're Vorbis in a RIFF container.
I extracted the Vorbis data (the chunk called "data" I believe), but there isn't a single app out there that will play a raw(?) Vorbis stream and I've given up trying to copy it into a proper .ogg. So, yeah, what's with the odd format? Anyone got any clue?
Here's the Python script I wrote to extract it, note that it's not any good code, works though... Copy one of the .ogg's from res/music and call it music.riffogg, and it will extract the data from it. There's a chunk called "vorb" that probably holds some vital information but I don't know what it is yet.
import struct
def get_chunk(f): header = f.read(8) id, size = struct.unpack('<4sI', header)
return id, size, f.read(size)
f = open('music.riffogg', 'r')
header = f.read(12)
riff, size, type = struct.unpack('<4sI4s', header)
assert riff == 'RIFF'
print 'RIFF file:' print 'File size: %d' % size print 'File type: "%s"' % type
def get_vorbis(f): while True: id, size, data = get_chunk(f) print id
if id == 'data': out = open('vorb.ogg', 'wb') out.write(data) out.close() print 'wrote vorbis data to vorb.ogg' return data
d = get_vorbis(f)
|

Anders1
Caldari Tech Nexus Gemini Federation
|
Posted - 2009.05.11 22:30:00 -
[2]
I've looked into this a bit more.
- fmt: A WAVE chunk, it seems to be filled with valid data: format: 65535 channels: 2 rate: 48000 bitrate:6000
- vorb (around 40 bytes): No idea. Probably important for something.
- data: the Vorbis stream, you can find vorbis headers in it. starts with 0x01 + vorbis, 0x03 + vorbis, 0x05 + vorbis for the first three ones. problem is how to find out where all the other vorbis packets begin and end...
|

Sleepkevert
Amarr Rionnag Alba Against ALL Authorities
|
Posted - 2009.05.12 08:49:00 -
[3]
Originally by: Anders1
- data: the Vorbis stream, you can find vorbis headers in it. starts with 0x01 + vorbis, 0x03 + vorbis, 0x05 + vorbis for the first three ones. problem is how to find out where all the other vorbis packets begin and end...
There is some file layout definitions up on msdn that might help you a bit in finding that out. _
Add your own line! |

Anders1
Caldari Tech Nexus Gemini Federation
|
Posted - 2009.05.12 12:52:00 -
[4]
Originally by: Sleepkevert
Originally by: Anders1
- data: the Vorbis stream, you can find vorbis headers in it. starts with 0x01 + vorbis, 0x03 + vorbis, 0x05 + vorbis for the first three ones. problem is how to find out where all the other vorbis packets begin and end...
There is some file layout definitions up on msdn that might help you a bit in finding that out.
Yeah, I've got the RIFF bit sorted. There are only 3 chunks (fmt , vorb and data). The problem is figuring out where the Vorbis packet boundaries begin and end in the data chunk.
So far I've got the third Vorbis packet sorted, I think. 8 bytes before the \x05vorbis string there's a 32-bit int which seems to be the length of that block (the codebook). But I have no idea about the rest of the file right now...
|

Hinaj Katsu
|
Posted - 2009.05.16 09:53:00 -
[5]
Did you made any progress? |

Anders1
Caldari Tech Nexus Gemini Federation
|
Posted - 2009.05.17 03:36:00 -
[6]
Originally by: Hinaj Katsu Did you made any progress?
I haven't really worked on it more, so no. But I hope to get it working at some point :)
|

Anders1
Caldari Tech Nexus Gemini Federation
|
Posted - 2009.05.18 07:40:00 -
[7]
Edited by: Anders1 on 18/05/2009 07:40:37 I've figured out a bit more about the "vorb" chunk:
struct eve_vorb_chunk { uint32_t unknown1; /* could be number of samples * as this divided by the rate (48000) * seems to give reasonable lengths, * like 5 minutes etc. */
uint32_t unknown2; /* the rest I haven't figured out yet */ uint32_t unknown3; uint32_t unknown4; uint32_t unknown5; uint32_t unknown6; uint32_t unknown7; uint32_t unknown8; uint32_t unknown9; uint32_t unknown10; uint32_t unknown11; } typedef eve_vorb_chunk_t;
which results in:
field offset size value hex unknown1 0 32 bits 15802618 00f120fa unknown2 4 32 bits 15738 00003d7a unknown3 8 32 bits 0 00000000 unknown4 12 32 bits 3893 00000f35 unknown5 16 32 bits 633 00000279 unknown6 20 32 bits 2203653 0021a005 unknown7 24 32 bits 0 00000000 unknown8 28 32 bits 3893 00000f35 unknown9 32 32 bits 356 00000164 unknown10 36 32 bits 15392 00003c20 unknown11 40 32 bits 15760 00003d90
|

Milerna Tyl
|
Posted - 2009.05.21 11:42:00 -
[8]
do you mind that the audio chunk is probably crypted &| packed? :) |

Alexeph Stoekai
Stoekai Corp
|
Posted - 2009.05.21 15:28:00 -
[9]
I will pledge 50m ISK as a reward to the first person to crack these files.
Perhaps it's a bit meagre, but it might serve as an incentive.  -----
|

Catari Taga
Centre Of Attention Rough Necks
|
Posted - 2009.05.22 12:20:00 -
[10]
Originally by: Anders1 For some reason all the EVE music is no longer in mp3, but now in Ogg. Nothing will play these files, which seemed odd, so I looked into it. Turns out these
It was always in Ogg vorbis format, but a pure ogg format. Anyway I just wanted to link you to this thread, might have some helpful info like the link to the sdk for the audio engine.
|
|

Anders1
Caldari Awiora
|
Posted - 2009.05.23 05:49:00 -
[11]
Originally by: Catari Taga
Originally by: Anders1 For some reason all the EVE music is no longer in mp3, but now in Ogg. Nothing will play these files, which seemed odd, so I looked into it. Turns out these
It was always in Ogg vorbis format, but a pure ogg format. Anyway I just wanted to link you to this thread, might have some helpful info like the link to the sdk for the audio engine.
Thanks :)
|

Anders1
Caldari Awiora Gemini Federation
|
Posted - 2009.05.25 23:29:00 -
[12]
I got the latest WWise SDK etc, but when I encode using their Vorbis it seems like a new format. My program can't get the three first Vorbis headers etc (in fact, the string "vorbis" doesn't even show up at all).
|

Sleepkevert
Amarr Rionnag Alba Against ALL Authorities
|
Posted - 2009.06.02 10:12:00 -
[13]
Sooooo, I did a lot of reading this weekend and I toyed around with the new files.
It looks like the fmt is just fake placeholder data to get it to be valid (hence the 0xFFFF dev codec header). I have no idea what the vorb actually contains but I'll be taking a second look at that this afternoon to determine if there is anything in there that will give the sample rate.
The data contained in the data bit is (from what I'v been able to determine) a raw vorbis stream. Now, with some fiddeling about and determening the audio packet boundries as specified in the vorbis documentation 4.3 Audio packet decode and synthesis. You'll probably be able to re-pack the vorbis stream into an OggS container.
The only problem I want to figure out before I start coding the damn thing is how to get the PCM audio samples of the stream, since you need that to set the granule position of the OggS headers. How to re-code the vorbis stream into OggS containers is all described in A Embedding Vorbis into an Ogg stream of the manual if you haven't find that already. _
Add your own line! |

Sleepkevert
Amarr Rionnag Alba Against ALL Authorities
|
Posted - 2009.06.04 11:17:00 -
[14]
Edited by: Sleepkevert on 04/06/2009 11:17:01 From what I'v been reading yesterday / today, it looks like the granule position is only really used for acurate file length determination, and possibly stuff like searchbars and the like. you can still probably play the files without the granule position (or possibly a faked, number calculated from the total number of samples to at least display song length correctly).
I'v got a basic OggS packet packer going (in c# ) As well as a simple RIFF extractor and a start for a vorbis decoder. Code is ugly as hell but it does what it's intended to do. I now face the callenge to go and determine audio packet boundries. Which should be fun figuring out from the setup header and block size... not to mention the setup header size in the first place. But it's all pretty well documented luckily. I'll see if I can spent a couple more hours on it tonight. _
Add your own line! |

Rubbit
|
Posted - 2009.06.07 23:54:00 -
[15]
With Audiokinetics Wwise you can create encoded .BNK files (kinda compiled version) the problem is to decode it then decode "15849750"-"1071976681" files using it.
|

Anders1
Caldari Awiora Gemini Federation
|
Posted - 2009.06.11 05:12:00 -
[16]
Originally by: Sleepkevert Sooooo, I did a lot of reading this weekend and I toyed around with the new files.
It looks like the fmt is just fake placeholder data to get it to be valid (hence the 0xFFFF dev codec header). I have no idea what the vorb actually contains but I'll be taking a second look at that this afternoon to determine if there is anything in there that will give the sample rate.
The data contained in the data bit is (from what I'v been able to determine) a raw vorbis stream. Now, with some fiddeling about and determening the audio packet boundries as specified in the vorbis documentation 4.3 Audio packet decode and synthesis. You'll probably be able to re-pack the vorbis stream into an OggS container.
The only problem I want to figure out before I start coding the damn thing is how to get the PCM audio samples of the stream, since you need that to set the granule position of the OggS headers. How to re-code the vorbis stream into OggS containers is all described in A Embedding Vorbis into an Ogg stream of the manual if you haven't find that already.
Yeah I've already got all that figured out.
Originally by: Sleepkevert Edited by: Sleepkevert on 04/06/2009 11:17:01 From what I'v been reading yesterday / today, it looks like the granule position is only really used for acurate file length determination, and possibly stuff like searchbars and the like. you can still probably play the files without the granule position (or possibly a faked, number calculated from the total number of samples to at least display song length correctly).
I'v got a basic OggS packet packer going (in c# ) As well as a simple RIFF extractor and a start for a vorbis decoder. Code is ugly as hell but it does what it's intended to do. I now face the callenge to go and determine audio packet boundries. Which should be fun figuring out from the setup header and block size... not to mention the setup header size in the first place. But it's all pretty well documented luckily. I'll see if I can spent a couple more hours on it tonight.
Yeah. That's what I don't know either, the audio packet boundaries. The new format in later WWise versions completely remove any references to "vorbis" too, so the first three packets are much harder to get to.. but that's not really a problem for now. But it will be when CCP updates..
What you need to figure out is the format WWise uses. Hints would be some kind of "seek table", at least for the granule pos stuff, but they're optional. Doubt they're in the music files. You can mail me in game if you wanna chat later, easier than using the forum as I don't always check ;) |

Sleepkevert
Amarr Rionnag Alba Against ALL Authorities
|
Posted - 2009.06.16 08:44:00 -
[17]
I have kinda given up on doing this. Decoding the first two headers is simple enough, but to actually determine the end of the setup header, you have to decode that fully, which is a pita due to bit level specifictions. Messing around with bytes I can do, but grabbing random bits without regards to where those bits are stored in the byte is a frigging pita.
So, without writing a full fledged vorbis decoder it isn't going to be possible to simply re-write it into an OggS container stream. Nicking bits from libvorbis or some other library that already does a lot of the work might be worth it though, they should already have most of the decoding implemented but I don't have the time or patience to look into that at the moment.  _
Add your own line! |

Elaron
Jericho Fraction The Star Fraction
|
Posted - 2009.06.16 18:02:00 -
[18]
Originally by: Anders1 For some reason all the EVE music is no longer in mp3, but now in Ogg. Nothing will play these files, which seemed odd, so I looked into it.
This news story gives the change some perspective, in my opinion. |

Alexeph Stoekai
Stoekai Corp
|
Posted - 2009.06.18 14:05:00 -
[19]
Originally by: Elaron
Originally by: Anders1 For some reason all the EVE music is no longer in mp3, but now in Ogg. Nothing will play these files, which seemed odd, so I looked into it.
This news story gives the change some perspective, in my opinion.
I don't see it. Care to point out what's so enlightening? |

Cory Sopapilla
Minmatar
|
Posted - 2009.06.18 14:52:00 -
[20]
Originally by: Alexeph Stoekai
Originally by: Elaron
Originally by: Anders1 For some reason all the EVE music is no longer in mp3, but now in Ogg. Nothing will play these files, which seemed odd, so I looked into it.
This news story gives the change some perspective, in my opinion.
I don't see it. Care to point out what's so enlightening?
That they're selling it for $$ of course. Click the link. Looking for EVE Online, Vol. 1 (Original Soundtrack) by RealX? Download iTunes and discover what makes it the world's most popular digital media player. Turn your CD collection into a digital music collection. Buy songs for 99ó each. |
|

Hinaj Katsu
Gallente
|
Posted - 2009.06.19 12:48:00 -
[21]
I guess (won't install itunes) it's the same old soundtrack they're selling for years? It contains only a fraction of the tracks used in eve.
|

VheroKai
Vhero' Multipurpose Corp
|
Posted - 2009.06.27 03:03:00 -
[22]
Edited by: VheroKai on 27/06/2009 03:03:37 If you want old (proper) OGG tracks (94 tracks from before the damned change) - here you go... --sig--
Originally by: Bunyip The LOLqual is a capital-sized joke
|

Anders1
Caldari Awiora Gemini Federation
|
Posted - 2009.07.08 01:26:00 -
[23]
Update: would just like to say that I've managed to actually convert EVE music to something you can listen to, but it doesn't sound quite right yet. But it's a major breakthrough!!!
|

Hinaj Katsu
Gallente
|
Posted - 2009.07.13 14:17:00 -
[24]
Thank you very much for the work you've done. |

Anders1
Caldari Awiora Gemini Federation
|
Posted - 2009.07.14 19:19:00 -
[25]
Originally by: Hinaj Katsu Thank you very much for the work you've done.
Thanks, I take it that it worked for you :)
|

Alexeph Stoekai
Stoekai Corp
|
Posted - 2009.07.16 22:57:00 -
[26]
As soon as I can log in (having a corrupted OS, woo!), I shall transfer the ISK pledged.
Excellent work.  -----
|

Anders1
Awiora Gemini Federation
|
Posted - 2009.08.03 20:57:00 -
[27]
I removed the music files from my server, instead use: http://files.getdropbox.com/u/773354/EVEMusic-20090803.torrent. Also has an updated wwiseconv.py.
|

Eugene Spencer
Rodents of Unusual Size
|
Posted - 2009.08.05 11:59:00 -
[28]
Edited by: Eugene Spencer on 05/08/2009 11:58:46 Fantastic! This is great stuff :)
It downloaded super quick. The only issue is the link you provided gives a "malware detected" error in Google Chrome - "Warning: Visiting this site may harm your computer!".
I've uploaded the torrent to my site, so people hopefully won't freak it like I did haha.
http://files.gumpcom.com/EVEMusic-20090803.torrent
|

Anders1
Awiora Gemini Federation
|
Posted - 2009.08.05 21:18:00 -
[29]
Originally by: Eugene Spencer Edited by: Eugene Spencer on 05/08/2009 11:58:46 Fantastic! This is great stuff :)
It downloaded super quick. The only issue is the link you provided gives a "malware detected" error in Google Chrome - "Warning: Visiting this site may harm your computer!".
I've uploaded the torrent to my site, so people hopefully won't freak it like I did haha.
http://files.gumpcom.com/EVEMusic-20090803.torrent
Yeah, Dropbox has been flagged by Google for some reason. I'll update the torrent link in the first post. Thanks for mirroring it.
|

Rootax
Gallente Aeon Cores Corporation
|
Posted - 2009.08.16 16:38:00 -
[30]
Edited by: Rootax on 16/08/2009 16:38:40 Thx you for this !
Few seeders tough... Anyway it's downloading :)
I'll seed like forever after it's finished.
|
|
|
|
|
Pages: [1] 2 :: one page |
First page | Previous page | Next page | Last page |