ScoreHero
Home | Forum | Wiki
Inbox [ Login ]Inbox [ Login ]
SearchSearch MemberlistMemberlist
ProfileProfile Log inLog in
GH6/GH5/BH .NOTE File Format
Goto page 1, 2, 3, 4, 5, 6, 7  Next
 
Post new topic   Reply to topic    ScoreHero Forum Index -> Software
View previous topic :: View next topic  
Author Message
codemann8  





Joined: 10 Apr 2007
Posts: 1048
Location: Oshkosh, WI

PostPosted: Thu Sep 30, 2010 7:18 pm    Post subject: GH6/GH5/BH .NOTE File Format Reply with quote

I've been doing a lot of digging and looking into the new format of note charts in the later Guitar Hero games (GH5/BH/GH6). I do not know everything about it but I have enough to automate a program to read through it.

.NOTE File?
Where does this file come from? In the game disc there are PAK files, which are just compressed files similar to a ZIP file. On x360, these are found in the /compressed/pak/songs/ directory. In this directory there is a PAK file for each song plus a few extras for tutorials and other debugging purposes. Using tma's unpak.pl program, you can extract the files you need. Most of you won't have DBG files to input into unpak.pl so after you run the program it will spit out a bunch of random looking files. If you don't use DBG files, look for files ending in '.0x304205eb', if you do just look for '.note' files, there should be one. Now you have a NOTE file.

If you can't get your hands on a NOTE file, I have an example of Kryptonite from GH5 and Deadfall from GH6. Disclaimer: This is for educational purposes, the intent is not for harm or illegalities.

kryptonite.note
kryptonite.qs.en

deadfall.note
deadfall.qs.en

File Format
You will need to open this up in a HEX Editor to understand this.

Checksums
A checksum is basically a reference to a value. Instead of storing "SultansOfSwing" in the data file, they store 0x0F1E2D3C, a calculated numeric representation of that text. The reason for doing this is to save on space for efficiency and also to maintain better structure (always 4 bytes). The algorithm the game uses to calculate checksums is known, it is:
    chksum = CRC32("value") XOR 0xFFFFFFFF

Header
The first 28 (0x1C) bytes of the file consist of the header:
  • 4 bytes at 0x00 is consistent throughout every NOTE file on a per game basis
  • 4 bytes at 0x04 is the checksum of the song name, ie "SultansOfSwing"
  • 4 bytes at 0x08 is the number of sections in the file
  • 4 bytes at 0x0C is the checksum of the file type, "note"
  • 12 bytes at 0x10 are all 0's

Sections
The NOTE file Sections start at 0x1C. Each section is sequential all the way to the EOF. This meaning, when each section ends the next one begins until the EOF.
Each section consists of the following:
  • Section Variant - 4 byte checksum
  • Quantity - 4 byte integer indicating the number of elements in the data
  • Section Type - 4 byte checksum
  • Size - 4 byte integer indicating the number of bytes each element contains
  • Data - (Quantity x Size) bytes, an array of (Quantity) elements with (Size) bytes per element

*The Section Type indicates the type of section, like NoteChart section and the Section Variant would be like GuitarExpert

Example of how I display Sections:
  • Section Type - 0x00000000 "checksum_value"
    • Section Variant 1 - 0x00000000 "chksum_val"
    • Section Variant 2 - 0x00000000 "checksum_val"

Here are each Section Type with the Section Variants:
  • Fretbar Section - 0x0D3BCED9 "gh5_fretbar_note"
    • All - 0xF02E6FDA "fretbar"

  • Timesig Section - 0x18460409 "gh5_timesig_note"
    • All - 0x094BCCFA "timesig"

  • Marker (Section Name) Section - 0x2741EDEA "gh5_marker_note"
    • All - 0x92511D84 "guitarmarkers"

  • Band Moments Section - 0x54012FB6 "gh5_band_moment_note"
    • All - 0xBCA9255D "bandmoment"

  • Note Section - 0xB0C1E3B5 "gh5_instrument_note"
    • Guitar Easy - 0x9B3C8C1C "guitareasyinstrument"
    • Guitar Medium - 0x8E0665C1 "guitarmediuminstrument"
    • Guitar Hard - 0xD20139E4 "guitarhardinstrument"
    • Guitar Expert - 0x01FE0E80 "guitarexpertinstrument"
    • Bass Easy - 0xBDA26454 "basseasyinstrument"
    • Bass Medium - 0x1877EC18 "bassmediuminstrument"
    • Bass Hard - 0xF49FD1AC "basshardinstrument"
    • Bass Expert - 0x978F8759 "bassexpertinstrument"
    • Drums Easy - 0x0E0ADF37 "drumseasyinstrument"
    • Drums Medium - 0x0A140DD0 "drumsmediuminstrument"
    • Drums Hard - 0x47376ACF "drumshardinstrument"
    • Drums Expert - 0x85EC6691 "drumsexpertinstrument"

  • Extra Note Section - 0xA1DA8586 "gh6_expert_drum_note"
    • Drums Expert - 0x85EC6691 "drumsexpertinstrument"

  • SP Section - 0x62D2B3E5 "gh5_star_note"
    • Guitar Easy - 0xEA17B930 "guitareasystarpower"
    • Guitar Medium - 0x0AD32D6D "guitarmediumstarpower"
    • Guitar Hard - 0xBEE50CD6 "guitarhardstarpower"
    • Guitar Expert - 0x972693B1 "guitarexpertstarpower"
    • Bass Easy - 0xADCF5D00 "basseasystarpower"
    • Bass Medium - 0x72F27A27 "bassmediumstarpower"
    • Bass Hard - 0xF93DE8E6 "basshardstarpower"
    • Bass Expert - 0xEF07C4FB "bassexpertstarpower"
    • Drums Easy - 0x630E10F8 "drumseasystarpower"
    • Drums Medium - 0xA6FAE27E "drumsmediumstarpower"
    • Drums Hard - 0x37FCA51E "drumshardstarpower"
    • Drums Expert - 0x3B0F5CA2 "drumsexpertstarpower"
    • Vox All - 0xF7901F02 "vocalstarpower"

  • Tap Section - 0xBE5EFB47 "gh5_tapping_note"
    • Guitar Easy - 0x5F98331C "guitareasytapping"
    • Guitar Medium - 0x23D065C7 "guitarmediumtapping"
    • Guitar Hard - 0x64C94EA2 "guitarhardtapping"
    • Guitar Expert - 0xE8E24AB6 "guitarexperttapping"
    • Bass Easy - 0xC4F72F0D "basseasytapping"
    • Bass Medium - 0x640881F7 "bassmediumtapping"
    • Bass Hard - 0xFFA652B3 "basshardtapping"
    • Bass Expert - 0xAF3AAE86 "bassexperttapping"

  • Drumfill Section - 0x8B9A5E30 "gh5_drumfill_note"
    • Drums Easy - 0x25E33100 "easydrumfill"
    • Drums Medium - 0x7A22D687 "mediumdrumfill"
    • Drums Hard - 0x0901FEF6 "harddrumfill"
    • Drums Expert - 0x5DEBA502 "expertdrumfill"

  • Lyrics Section - 0xBE849F90 "gh5_vocal_marker_note"
    • Lyrics - 0x032292A7 "vocalsmarkers"

  • Vox Note Section - 0xD4CC2B84 "gh5_vocal_note"
    • Vox - 0xE8E6ADCB "vocals"

  • Vox Words Section - 0x9930D36D "gh5_vocal_lyric"
    • Vox - 0x1DA27F4E "vocallyrics"

  • Vox Phrase Section - 0x630787DA "gh5_vocal_phrase"
    • All - 0x8433F524 "vocalphrase"

  • Vox Freeform Section - 0x07EE4A5C "gh5_vocal_freeform_note"
    • All - 0xEA4C2823 "vocalfreeform"

Data
This is my explanation of how to interpret the data in each section. Each section is an array of a certain number of elements (defined by Quantity, as explained above), I will only walk through what each element from each section means.
  • Fretbar Section - 4 bytes
    • 4 bytes - Time Offset indicating the start of each fret bar

  • Timesig Section - 6 bytes
    • 4 bytes - Time Offset indicating the start of each time signature
    • 1 byte - Top number (numerator), number of beats per measure
    • 1 byte - Bottom number (denominator), rather insignificant but its the type of note displayed, it is almost always if not always 4

  • Marker (Section Name) Section - 8 bytes
    • 4 bytes - Time Offset indicating the start of the section
    • 4 bytes - Checksum of the section name, can be looked up in one of the QS files extracted from the PAK file, or a .0x4ef04440 file

  • Band Moments Section - 8 bytes
    • 4 bytes - Time Offset indicating the start of each band moment
    • 4 bytes - Duration of how long the moment lasts

  • Note Section - 8 bytes
    • 4 bytes - Time Offset indicating the start of each note
    • 2 bytes - Duration of each note, if this duration is less than 1/4 the duration of the beat, it is ignored
    • 2 bytes - Information about specifics of the note (Color/Hopo/Accent)
      • 1 bit - Unused?
      • 1 bit - Hopo Flag - Determines if the note is a Hopo
      • 6 bits - Color Mask - 1 bit for each color (in this order, POBYRG) flagging whether that color exists in that note
      • 3 bits - Unused?
      • 5 bits - Accent Mask - 1 bit for each color, minus the purple (OBYRG) flagging whether each color gem is accented or not, guitar/bass is always defaulted to accented (all 1's)

  • Extra Note Section - 9 bytes (Sometimes this shows up instead of a regular note section, the extra byte is unknown what it contains)
    • 4 bytes - Time Offset indicating the start of each note
    • 2 bytes - Duration of each note, this is never 0
    • 2 bytes - Information about specifics of the note (Color/Hopo/Accent)
      • See last 2 bytes of Note Section
    • 1 byte - Unknown extra byte, usually 0x00

  • SP Section - 6 bytes
    • 4 bytes - Time Offset indicating the start of each SP phrase
    • 2 bytes - Duration of each SP phrase

  • Tap Section - 8 bytes
    • 4 bytes - Time Offset indicating the start of each tap section
    • 4 bytes - Duration of each tap section

  • Drumfill Section - 8 bytes
    • 4 bytes - Time Offset indicating the start of each drum fill section
    • 4 bytes - Duration of each drum fill section

  • Lyrics Section - 260 bytes
    • 4 bytes - Time Offset indicating start of each line of lyrics
    • 256 bytes - 2-byte Unicode Characters showing full lines of lyrics like "closed captioning"

  • Vox Note Section - 7 bytes
    • 4 bytes - Time Offset indicating the start of each vox note
    • 2 bytes - Duration of each vox note
    • 1 byte - Information about the pitch

  • Vox Words Section - 68 bytes
    • 4 bytes - Time Offset indicating start of each lyrics
    • 64 bytes - 2-byte Unicode Characters showing lyrics, usually in syllables

  • Vox Phrase Section - 4 bytes
    • 4 bytes - Time Offset indicating the start of each vox note phrase

  • Vox Freeform Section - 10 bytes
    • 4 bytes - Time Offset indicating the start of each freeform
    • 4 bytes - Duration of each freeform
    • 2 bytes - Unknown

*Time Offset is the number of milliseconds since the beginning of the song
*Duration is the span of time in milliseconds
_________________
Frets and Fireworks GH:A Expert Tourney Winner
AAA-2 Season 5 Overall Points Champ & Playoff Runner-Up!!!
My FCs





Last edited by codemann8 on Thu Mar 01, 2012 4:59 pm; edited 20 times in total
Back to top
View user's profile Wiki User Page Send private message Send e-mail Visit poster's website XBL Gamertag: codemann8 PSN Name: codemann8
ComicBookGuru  





Joined: 16 Dec 2007
Posts: 1678

PostPosted: Thu Sep 30, 2010 11:12 pm    Post subject: Reply with quote

So basically, now there only needs to be a way to put stuff in, or alter it.

Where did you find these in the files? I'm interested in looking at some Wii ones.

EDIT: Derp. I see. I'll look at some in a bit.
_________________
Yep, I learned through Rocksmith!
Back to top
View user's profile Send private message
codemann8  





Joined: 10 Apr 2007
Posts: 1048
Location: Oshkosh, WI

PostPosted: Fri Oct 01, 2010 3:40 am    Post subject: Reply with quote

ComicBookGuru wrote:
So basically, now there only needs to be a way to put stuff in, or alter it.

That would be the idea, although that isn't really my song and dance, I just go for the charts. But I will say that it should be handled the same exact way as GHWT and beyond, it is the same process except that instead of there being any modifications in the QB file, the modifications happen in the NOTE and QS files, and then rePAK'd.

It is unclear whether there will be issues with the file sizes differing after you make modifications. That will be up to someone else to decide.
_________________
Frets and Fireworks GH:A Expert Tourney Winner
AAA-2 Season 5 Overall Points Champ & Playoff Runner-Up!!!
My FCs



Back to top
View user's profile Wiki User Page Send private message Send e-mail Visit poster's website XBL Gamertag: codemann8 PSN Name: codemann8
codemann8  





Joined: 10 Apr 2007
Posts: 1048
Location: Oshkosh, WI

PostPosted: Thu Oct 07, 2010 3:34 am    Post subject: Reply with quote

Okay, I finally got around to updating this...I found all the checksums' values and put them next to the corresponding Section Variant

Interesting enough, I found a different section in place of the standard gh5 drumsexpertinstrument section, which is 8 bytes. The different section is gh6_expert_drum_note, this one is 9 bytes and I have not done any analysis whatsoever on it, but i will
_________________
Frets and Fireworks GH:A Expert Tourney Winner
AAA-2 Season 5 Overall Points Champ & Playoff Runner-Up!!!
My FCs



Back to top
View user's profile Wiki User Page Send private message Send e-mail Visit poster's website XBL Gamertag: codemann8 PSN Name: codemann8
Robbert  





Joined: 21 Mar 2007
Posts: 373
Location: Netherlands

PostPosted: Thu Oct 14, 2010 10:15 am    Post subject: Reply with quote

I took a quick look at Kryptonite. See the part near the top, where you see a byte alternated with a 0x00, with the occasional 0x20 inbetween? Those are the lyrics.

In Kryptonite's case, they start at byte #166, with value 0x57.

However, a whole lot lower are the lyrics again, this time written down differently: the way you sing them. Each piece of a phrase has three bytes before it, the last byte usually being 0x00. Maybe it indicates the pitch? I'll look more later, and give you the offset later.
_________________


Back to top
View user's profile Wiki User Page Send private message XBL Gamertag: UpgradePolecat
Robbert  





Joined: 21 Mar 2007
Posts: 373
Location: Netherlands

PostPosted: Thu Oct 14, 2010 2:01 pm    Post subject: Reply with quote

The actual text of Kryptonite starts at offset 0xA5 and it seems to end at 0x2327. Each sentence seems to be prefixed with a timestamp, which differs slightly from the ones found at a later point.

What appears to be the lyrical content that you actually have to sing starts at 0xCD24.

A piece of text that you have to sing, based on the Kryptonite datafile, seems to be constructed as follows:

Three bytes indicating the timestamp on where the line occurs
Two optional bytes set at 0x003D, which are only present if the line is a continuation of the previous one (see: some- where, ly- ing found at offsets 0xD2FF, 0xD345, 0xD277 and 0xD2BD respectively)
A set of bytes which contain the text, each letter preceded by a byte with the value 0x00.

What I can't seem to find in the quick few minutes I was looking, were the pitches at which each sentence should be sung.
_________________


Back to top
View user's profile Wiki User Page Send private message XBL Gamertag: UpgradePolecat
codemann8  





Joined: 10 Apr 2007
Posts: 1048
Location: Oshkosh, WI

PostPosted: Thu Oct 14, 2010 3:47 pm    Post subject: Reply with quote

Yeah, there are two lyric-type section, a lyrics (marker) section, and a lyric (words) section, the marker section is the full line of words, I'm not sure where this is used in the game, but I like to think of this as a closed-captioning section, its not very useful. Then there's the lyric section which contains the characters that show up on the vocal phrase line during gameplay, this is what will be useful to me and the charts I make.

This is the only function of these sections, the pitches are found in the vox notes section, the 7 byte section, I haven't completed the full meaning of the last byte but I will say that there are correlations of talky notes when the value is 0x1A, and I think when the value is 0x02 it indicates a transition from one pitch to the next. Otherwise, the byte indicates the value of the pitch, I will need to do further analysis to find out what that range of values is.
_________________
Frets and Fireworks GH:A Expert Tourney Winner
AAA-2 Season 5 Overall Points Champ & Playoff Runner-Up!!!
My FCs



Back to top
View user's profile Wiki User Page Send private message Send e-mail Visit poster's website XBL Gamertag: codemann8 PSN Name: codemann8
devanlittle123  





Joined: 18 Feb 2011
Posts: 1

PostPosted: Sun Mar 06, 2011 5:40 pm    Post subject: Reply with quote

hey i need help putting music on gh6 for xbox360 i need the list of things i need to do to put music i want on it
Back to top
View user's profile Send private message
codemann8  





Joined: 10 Apr 2007
Posts: 1048
Location: Oshkosh, WI

PostPosted: Tue Mar 08, 2011 9:57 pm    Post subject: Reply with quote

devanlittle123 wrote:
hey i need help putting music on gh6 for xbox360 i need the list of things i need to do to put music i want on it

You would probably have a better time trying to figure that out in the Customs Forum, they have detailed guides and discussion about current and future customs possibilities. I myself am not aware of any customs available on GH6, but I tend to stay away from that stuff since a lot of my time strictly goes to figuring out how to interpret chart files, not how to make customs.
_________________
Frets and Fireworks GH:A Expert Tourney Winner
AAA-2 Season 5 Overall Points Champ & Playoff Runner-Up!!!
My FCs



Back to top
View user's profile Wiki User Page Send private message Send e-mail Visit poster's website XBL Gamertag: codemann8 PSN Name: codemann8
raynebc  





Joined: 16 Jun 2008
Posts: 992

PostPosted: Sun Feb 19, 2012 5:43 am    Post subject: Reply with quote

I'm working on some GH import logic, but have some questions about the vocals. Since the vox phrases have only a start time stamp, does that mean all lyrics up to the next vox phrase are considered to be in the same vox phrase? Is there a vox word entry for every vox note entry? What is the valid range of pitches, and what's the numbering system they use (ie. which pitch number in GH is equivalent to middle C)?
Back to top
View user's profile Send private message
codemann8  





Joined: 10 Apr 2007
Posts: 1048
Location: Oshkosh, WI

PostPosted: Tue Feb 21, 2012 1:09 am    Post subject: Reply with quote

raynebc wrote:
I'm working on some GH import logic, but have some questions about the vocals. Since the vox phrases have only a start time stamp, does that mean all lyrics up to the next vox phrase are considered to be in the same vox phrase? Is there a vox word entry for every vox note entry? What is the valid range of pitches, and what's the numbering system they use (ie. which pitch number in GH is equivalent to middle C)?

TBH, when I've worked on these files, I've never done too much with the vocals end, just enough to write code out that will parse the file without failing.

But, there are two parts where words/lyrics are involved, there are the sections that include the entire phrase like you would see on the lyrics website, and then there's a section that has a chopped up version which correlate with each syllable (or note), typically. So, an easy way to see what lyrics are in each phrase is to see where the chopped up version ends and match is with the full version, to see where the full one ends. Then you can see what lyrics correlate to what phrase. My guess, is that this full lyrics section is used for when you are playing online with someone, and the vox player is not a local player, you will see the full version instead of the chopped version (for view-ability reasons, like closed captioning), which in that case makes it difficult to use in another fashion because of that ambiguity of knowing what phrase it is in. But, I could be wrong. Sorry, been awhile since I looked at this stuff.

As far as pitch value range, I couldn't tell you, although there is a specific pitch for talky notes which is 0x1A and transitions are 0x02.

A couple posts above I explained the same thing but I still know nothing further. I've never gotten around to actually create charts for vox, mostly due to the decline of social interest in GH and myself getting busy with work the last few years. I wish I could be more of help to you.
_________________
Frets and Fireworks GH:A Expert Tourney Winner
AAA-2 Season 5 Overall Points Champ & Playoff Runner-Up!!!
My FCs



Back to top
View user's profile Wiki User Page Send private message Send e-mail Visit poster's website XBL Gamertag: codemann8 PSN Name: codemann8
raynebc  





Joined: 16 Jun 2008
Posts: 992

PostPosted: Tue Feb 21, 2012 1:39 am    Post subject: Reply with quote

I'll have to poke around and see what I can come up with. Thanks for your information though, it is helpful. What do you mean by "transition" though? Something like when the game wants the singer to shift his/her pitch within the same syllable of lyric?
Back to top
View user's profile Send private message
codemann8  





Joined: 10 Apr 2007
Posts: 1048
Location: Oshkosh, WI

PostPosted: Tue Feb 21, 2012 7:39 pm    Post subject: Reply with quote

raynebc wrote:
I'll have to poke around and see what I can come up with. Thanks for your information though, it is helpful. What do you mean by "transition" though? Something like when the game wants the singer to shift his/her pitch within the same syllable of lyric?

Yeah sort of, it's when a pitch transitions to a different pitch in one fluid motion, as opposed to ending a pitch entirely and starting back up in another pitch with a break in between.

Example
Code:
   __
__/
vs
   __
__

_________________
Frets and Fireworks GH:A Expert Tourney Winner
AAA-2 Season 5 Overall Points Champ & Playoff Runner-Up!!!
My FCs



Back to top
View user's profile Wiki User Page Send private message Send e-mail Visit poster's website XBL Gamertag: codemann8 PSN Name: codemann8
raynebc  





Joined: 16 Jun 2008
Posts: 992

PostPosted: Fri Feb 24, 2012 10:00 pm    Post subject: Reply with quote

I'm examining the note file for "Money For Nothin" and noticed the vox words (lyric text) are different than described here. The size of each entry is 36 bytes and each one has a non Unicode string.
Back to top
View user's profile Send private message
codemann8  





Joined: 10 Apr 2007
Posts: 1048
Location: Oshkosh, WI

PostPosted: Tue Feb 28, 2012 8:45 pm    Post subject: Reply with quote

raynebc wrote:
I'm examining the note file for "Money For Nothin" and noticed the vox words (lyric text) are different than described here. The size of each entry is 36 bytes and each one has a non Unicode string.

Hmm, interesting, is this the only song like this or is does this happen elsewhere?
_________________
Frets and Fireworks GH:A Expert Tourney Winner
AAA-2 Season 5 Overall Points Champ & Playoff Runner-Up!!!
My FCs



Back to top
View user's profile Wiki User Page Send private message Send e-mail Visit poster's website XBL Gamertag: codemann8 PSN Name: codemann8
Display posts from previous:   
Post new topic   Reply to topic    ScoreHero Forum Index -> Software All times are GMT
Goto page 1, 2, 3, 4, 5, 6, 7  Next
Page 1 of 7

 
Jump to:  
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 vote in polls in this forum




Copyright © 2006-2024 ScoreHero, LLC
Terms of Use | Privacy Policy


Powered by phpBB