> ## Documentation Index
> Fetch the complete documentation index at: https://chart-spec.enchor.us/llms.txt
> Use this file to discover all available pages before exploring further.

# ParsedChartFile

A chart file parsed to its tracks, events and tempo map, the input of the duration and hash calculations.

## Extends

* `ReturnType`\<*typeof* `parseChartFile`>

## Properties

| Property | Type | Default value | Inherited from |
| - | - | - | - |
|  `drumType` | [`DrumType`](https://chart-spec.enchor.us/scan-chart/api/index/type-aliases/DrumType) \| `null` | `undefined` | `ReturnType.drumType` |
|  `endEvents` | (\{ `tick`: `number`; } & \{ `msLength`: `number`; `msTime`: `number`; })\[] | `...` | `ReturnType.endEvents` |
|  `metadata` | `Partial`\<\{ `album`: `string`; `album_track`: `number`; `artist`: `string`; `background`: `string`; `charter`: `string`; `charter_audio`: `string`; `charter_bass`: `string`; `charter_bass_6f`: `string`; `charter_drums`: `string`; `charter_elite_drums`: `string`; `charter_guitar`: `string`; `charter_guitar_6f`: `string`; `charter_keys`: `string`; `charter_lower_diff`: `string`; `charter_pro_bass`: `string`; `charter_pro_guitar`: `string`; `charter_pro_keys`: `string`; `charter_rhythm`: `string`; `charter_rhythm_6f`: `string`; `charter_venue`: `string`; `charter_vocals`: `string`; `chord_snap_threshold`: `number`; `clean_vocals`: `boolean`; `cover`: `string`; `covered_by`: `string`; `credit_album_art_designed_by`: `string`; `credit_arranged_by`: `string`; `credit_background`: `string`; `credit_composed_by`: `string`; `credit_courtesy_of`: `string`; `credit_engineered_by`: `string`; `credit_license`: `string`; `credit_mastered_by`: `string`; `credit_mixed_by`: `string`; `credit_other`: `string`; `credit_performed_by`: `string`; `credit_produced_by`: `string`; `credit_published_by`: `string`; `credit_written_by`: `string`; `date_released`: `string`; `delay`: `number`; `diff_band`: `number`; `diff_bass`: `number`; `diff_bass_real`: `number`; `diff_bass_real_22`: `number`; `diff_bassghl`: `number`; `diff_drums`: `number`; `diff_drums_real`: `number`; `diff_elite_drums`: `number`; `diff_guitar`: `number`; `diff_guitar_coop`: `number`; `diff_guitar_coop_ghl`: `number`; `diff_guitar_real`: `number`; `diff_guitar_real_22`: `number`; `diff_guitarghl`: `number`; `diff_keys`: `number`; `diff_keys_ghl`: `number`; `diff_keys_real`: `number`; `diff_rhythm`: `number`; `diff_rhythm_ghl`: `number`; `diff_vocals`: `number`; `diff_vocals_harm`: `number`; `eighthnote_hopo`: `boolean`; `end_events`: `boolean`; `explicit_lyrics`: `boolean`; `five_lane_drums`: `boolean`; `genre`: `string`; `hopo_frequency`: `number`; `icon`: `string`; `link_bandcamp`: `string`; `link_bluesky`: `string`; `link_facebook`: `string`; `link_instagram`: `string`; `link_other`: `string`; `link_spotify`: `string`; `link_twitter`: `string`; `link_youtube`: `string`; `loading_phrase`: `string`; `location`: `string`; `modchart`: `boolean`; `multiplier_note`: `number`; `name`: `string`; `playlist`: `string`; `playlist_track`: `number`; `preview`: [`PreviewTimes`](https://chart-spec.enchor.us/scan-chart/api/index/interfaces/PreviewTimes) \| `null`; `preview_end_time`: `number`; `preview_start_time`: `number`; `pro_drums`: `boolean`; `rating`: `number`; `song_length`: `number`; `sub_genre`: `string`; `sub_playlist`: `string`; `sustain_cutoff_threshold`: `number`; `tags`: `string`; `tuning_offset_cents`: `number`; `venue_hint`: `string`; `video`: `string`; `video_end_time`: `number`; `video_loop`: `boolean`; `video_start_time`: `number`; `vocal_character_hint`: `string`; `vocal_gender`: `string`; `vocal_scroll_speed`: `number` \| `null`; `year`: `string`; }> & \{ `chart_offset?`: `number`; `extraChartSongFields?`: \{ \[`key`: `string`]: `string`; }; `extraIniFields?`: \{ \[`key`: `string`]: `string`; }; } | `rawChartData.metadata` | `ReturnType.metadata` |
|  `parseIssues` | `Omit`\<\{ `description`: `string`; `difficulty`: `"expert"` \| `"hard"` \| `"medium"` \| `"easy"` \| `null`; `instrument`: \| `"guitar"` \| `"guitarcoop"` \| `"rhythm"` \| `"bass"` \| `"drums"` \| `"keys"` \| `"guitarghl"` \| `"guitarcoopghl"` \| `"rhythmghl"` \| `"bassghl"` \| `"keysghl"` \| `null`; `noteIssue`: [`ChartIssueType`](https://chart-spec.enchor.us/scan-chart/api/index/type-aliases/ChartIssueType); }, `"description"`>\[] | `rawChartData.parseIssues` | `ReturnType.parseIssues` |
|  `resolution` | `number` | `rawChartData.chartTicksPerBeat` | `ReturnType.resolution` |
|  `sections` | (\{ `name`: `string`; `tick`: `number`; } & \{ `msLength`: `number`; `msTime`: `number`; })\[] | `...` | `ReturnType.sections` |
|  `tempos` | \{ `beatsPerMinute`: `number`; `msTime`: `number`; `tick`: `number`; }\[] | `timedTempos` | `ReturnType.tempos` |
|  `timeSignatures` | (\{ `denominator`: `number`; `numerator`: `number`; `tick`: `number`; } & \{ `msLength`: `number`; `msTime`: `number`; })\[] | `...` | `ReturnType.timeSignatures` |
|  `trackData` | \{ `animations`: (\{ `length`: `number`; `noteNumber`: `number`; `tick`: `number`; } & \{ `msLength`: `number`; `msTime`: `number`; })\[]; `difficulty`: `"expert"` \| `"hard"` \| `"medium"` \| `"easy"`; `drumFreestyleSections`: (\{ `isCoda`: `boolean`; `length`: `number`; `tick`: `number`; } & \{ `msLength`: `number`; `msTime`: `number`; })\[]; `drumMixes?`: [`DrumMixEvent`](https://chart-spec.enchor.us/scan-chart/api/competitive/interfaces/DrumMixEvent)\[]; `flexLanes`: \{ `isDouble`: `boolean`; `length`: `number`; `msLength`: `number`; `msTime`: `number`; `tick`: `number`; }\[]; `greenDrumPairs?`: \{ `msTime`: `number`; `tick`: `number`; }\[]; `instrument`: \| `"guitar"` \| `"guitarcoop"` \| `"rhythm"` \| `"bass"` \| `"drums"` \| `"keys"` \| `"guitarghl"` \| `"guitarcoopghl"` \| `"rhythmghl"` \| `"bassghl"` \| `"keysghl"`; `noteEventGroups`: ([`UntimedNoteEvent`](https://chart-spec.enchor.us/scan-chart/api/competitive/type-aliases/UntimedNoteEvent) & \{ `msLength`: `number`; `msTime`: `number`; })\[]\[]; `rejectedStarPowerSections`: (\{ `length`: `number`; `tick`: `number`; } & \{ `msLength`: `number`; `msTime`: `number`; })\[]; `soloSections`: \{ `length`: `number`; `msLength`: `number`; `msTime`: `number`; `tick`: `number`; }\[]; `starPowerSections`: \{ `length`: `number`; `msLength`: `number`; `msTime`: `number`; `tick`: `number`; }\[]; `textEvents`: (\{ `text`: `string`; `tick`: `number`; } & \{ `msLength`: `number`; `msTime`: `number`; })\[]; `unrecognizedMidiEvents`: `MidiEvent`\[]; `versusPhrases`: (\{ `isPlayer2`: `boolean`; `length`: `number`; `tick`: `number`; } & \{ `msLength`: `number`; `msTime`: `number`; })\[]; }\[] | `...` | `ReturnType.trackData` |
|  `unrecognized` | \{ `chartSections`: \{ `lines`: `string`\[]; `name`: `string`; }\[]; `eventsTrackMidiEvents`: `MidiEvent`\[]; `eventsTrackTextEvents`: (\{ `text`: `string`; `tick`: `number`; } & \{ `msLength`: `number`; `msTime`: `number`; })\[]; `midiTracks`: \{ `events`: `MidiEvent`\[]; `trackName`: `string`; }\[]; `syncTrackEvents`: \{ `text`: `string`; `tick`: `number`; }\[]; } | `...` | `ReturnType.unrecognized` |
| `unrecognized.chartSections` | \{ `lines`: `string`\[]; `name`: `string`; }\[] | `rawChartData.unrecognizedChartSections` | - |
| `unrecognized.eventsTrackMidiEvents` | `MidiEvent`\[] | `rawChartData.unrecognizedEventsTrackMidiEvents` | - |
| `unrecognized.eventsTrackTextEvents` | (\{ `text`: `string`; `tick`: `number`; } & \{ `msLength`: `number`; `msTime`: `number`; })\[] | `...` | - |
| `unrecognized.midiTracks` | \{ `events`: `MidiEvent`\[]; `trackName`: `string`; }\[] | `rawChartData.unrecognizedMidiTracks` | - |
| `unrecognized.syncTrackEvents` | \{ `text`: `string`; `tick`: `number`; }\[] | `rawChartData.unrecognizedSyncTrackEvents` | - |
|  `vocalTracks` | [`VocalTrack`](https://chart-spec.enchor.us/scan-chart/api/index/interfaces/VocalTrack) | `normalizedVocalTracks` | `ReturnType.vocalTracks` |


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.