using System; namespace SabreTools.Data.Models.Charts { /// /// [song]/[Song] public class SongIni { #region Song/Chart Metadata /// /// Title of the song. /// /// name public string? Name { get; set; } /// /// Artist(s) or band(s) behind the song. /// /// artist public string? Artist { get; set; } /// /// Title of the album the song is featured in. /// /// album public string? Album { get; set; } /// /// Genre of the song. /// /// genre public string? Genre { get; set; } /// /// Sub-genre for the song. /// /// sub_genre public string? SubGenre { get; set; } /// /// Year of the song’s release. /// /// year public string? Year { get; set; } /// /// Community member responsible for charting the song. /// /// charter, frets public string? Charter { get; set; } /// /// Version number for the song. /// /// version public long? Version { get; set; } /// /// Track number of the song within the album it's from. /// /// album_track, track public long? AlbumTrack { get; set; } /// /// Track number of the song within the playlist/setlist it's from. /// /// playlist_track public long? PlaylistTrack { get; set; } /// /// Length of the song's audio in milliseconds. /// /// song_length public long? SongLength { get; set; } /// /// Timestamp in milliseconds where the song preview starts. /// /// preview_start_time public long? PreviewStartTime { get; set; } /// /// Timestamp in milliseconds that the preview should stop at. /// /// preview_end_time public long? PreviewEndTime { get; set; } /// /// Flavor text for this song, usually shown after picking the song or during loading. /// /// loading_phrase public string? LoadingPhrase { get; set; } #endregion #region Song/Chart Metadata (Game-Specific) /// /// (FoFiX) Hex color to use in the song screen for the cassette. /// /// cassettecolor public string? CassetteColor { get; set; } /// /// (FoFiX) Miscellaneous tags for the chart. /// Only known valid value is `cover`. /// /// tags public string? Tags { get; set; } /// /// (PS) Two timestamps in milliseconds for preview start and end time. /// Example: `55000 85000` /// /// preview public long[]? Preview { get; set; } /// /// (CH) Playlist that the song should show up in. /// /// playlist public string? Playlist { get; set; } /// /// (CH) Sub-playlist that the song should show up in. /// /// sub_playlist public string? SubPlaylist { get; set; } /// /// (CH) Indicates if this song is a modchart. /// Meant for sorting purposes only. /// /// modchart public bool? Modchart { get; set; } /// /// (CH) Indicates if the song has lyrics or not. /// Meant for sorting purposes only. /// /// lyrics public bool? Lyrics { get; set; } #endregion #region Track Difficulties /// /// Overall difficulty of the song. /// /// diff_band public long? DiffBand { get; set; } /// /// Difficulty of the Lead Guitar track. /// /// diff_guitar public long? DiffGuitar { get; set; } /// /// Difficulty of the 6-Fret Lead track. /// /// diff_guitarghl public long? DiffGuitarGHL { get; set; } /// /// Difficulty of the Guitar Co-op track. /// /// diff_guitar_coop public long? DiffGuitarCoop { get; set; } /// /// Difficulty of the 6-Fret Guitar Co-op track. /// /// diff_guitar_coop_ghl public long? DiffGuitarCoopGHL { get; set; } /// /// Difficulty of the Pro Guitar track. /// /// diff_guitar_real public long? DiffGuitarReal { get; set; } /// /// Difficulty of the Pro Guitar 22-fret track. /// /// diff_guitar_real_22 public long? DiffGuitarReal22 { get; set; } /// /// Difficulty of the Rhythm Guitar track. /// /// diff_rhythm public long? DiffRhythm { get; set; } /// /// Difficulty of the 6-Fret Rhythm Guitar track. /// /// diff_rhythm_ghl public long? DiffRhythmGHL { get; set; } /// /// Difficulty of the Bass Guitar track. /// /// diff_bass public long? DiffBass { get; set; } /// /// Difficulty of the 6-Fret Bass track. /// /// diff_bassghl public long? DiffBassGHL { get; set; } /// /// Difficulty of the Pro Bass track. /// /// diff_bass_real public long? DiffBassReal { get; set; } /// /// Difficulty of the Pro Bass 22-fret track. /// /// diff_bass_real_22 public long? DiffBassReal22 { get; set; } /// /// Difficulty of the Drums track. /// /// diff_drums public long? DiffDrums { get; set; } /// /// Difficulty of the Pro Drums track. /// /// diff_drums_real public long? DiffDrumsReal { get; set; } /// /// Difficulty of the Drums Real track. /// /// diff_drums_real_ps public long? DiffDrumsRealPS { get; set; } /// /// Difficulty of the Keys track. /// /// diff_keys public long? DiffKeys { get; set; } /// /// Difficulty of the Pro Keys track. /// /// diff_keys_real public long? DiffKeysReal { get; set; } /// /// Difficulty of the Keys Real track. /// /// diff_keys_real_ps public long? DiffKeysRealPS { get; set; } /// /// Difficulty of the Vocals track. /// /// diff_vocals public long? DiffVocals { get; set; } /// /// Difficulty of the Harmonies track. /// /// diff_vocals_harm public long? DiffVocalsHarm { get; set; } /// /// Difficulty of the Dance track. /// /// diff_dance public long? DiffDance { get; set; } #endregion #region Chart Properties /// /// Forces the Drums track to be Pro Drums. /// /// pro_drums, pro_drum (FoFiX) public bool? ProDrums { get; set; } /// /// Forces the Drums track to be 5-lane. /// /// five_lane_drums public bool? FiveLaneDrums { get; set; } /// /// Specifies a voice type for the singer (either "male" or "female"). /// /// vocal_gender public string? VocalGender { get; set; } /// /// Specifies a tuning for 17-fret Pro Guitar. /// /// real_guitar_tuning public string? RealGuitarTuning { get; set; } /// /// Specifies a tuning for 22-fret Pro Guitar. /// /// real_guitar_22_tuning public string? RealGuitar22Tuning { get; set; } /// /// Specifies a tuning for 17-fret Pro Bass. /// /// real_bass_tuning public string? RealBassTuning { get; set; } /// /// Specifies a tuning for 22-fret Pro Bass. /// /// real_bass_22_tuning public string? RealBass22Tuning { get; set; } /// /// Specifies the number of lanes for the right hand in Real Keys. /// /// real_keys_lane_count_right public long? RealKeysLaneCountRight { get; set; } /// /// Specifies the number of lanes for the left hand in Real Keys. /// /// real_keys_lane_count_left public long? RealKeysLaneCountLeft { get; set; } /// /// Delays the chart relative to the audio by the specified number of milliseconds. /// Higher = later notes. Can be negative. /// /// delay [Obsolete("Only used in older versions")] public long? Delay { get; set; } /// /// Overrides the default sustain cutoff threshold with a specified value in ticks. /// /// sustain_cutoff_threshold [Obsolete("Only used in older versions")] public long? SustainCutoffThreshold { get; set; } /// /// Overrides the default HOPO threshold with a specified value in ticks. /// /// hopo_frequency [Obsolete("Only used in older versions")] public long? HopoFrequency { get; set; } /// /// Sets the HOPO threshold to be a 1/8th step. /// /// eighthnote_hopo [Obsolete("Only used in older versions")] public bool? EighthNoteHopo { get; set; } /// /// Overrides the .mid note number for Star Power on 5-Fret Guitar. /// Valid values are 103 and 116. /// /// multiplier_note, star_power_note (PS) [Obsolete("Only used in older versions")] public long? MultiplierNote { get; set; } #endregion #region Chart Properties (Game-Specific) /// /// (PS) Sets 5 to 4 Lane Drums Fallback Note /// /// drum_fallback_blue public bool? DrumFallbackBlue { get; set; } /// /// (FoFiX) Marks a song as a tutorial and hides it from Quickplay. /// /// tutorial public bool? Tutorial { get; set; } /// /// (FoFiX) Marks a song as a boss battle. /// /// boss_battle public bool? BossBattle { get; set; } /// /// (FoFiX) Overrides the natural HOPO threshold using numbers from 0 to 5. /// /// hopofreq [Obsolete("Only used in FoFiX")] public long? HopoFreq { get; set; } /// /// (FoFiX) Sets the "early hit window" size. /// Valid values are "none", "half", or "full". /// /// early_hit_window_size public string? EarlyHitWindowSize { get; set; } /// /// (CH) Sets whether or not end events in the chart will be respected. /// /// end_events public bool? EndEvents { get; set; } /// /// (PS) Enables .mid SysEx events for guitar sliders/tap notes. /// /// sysex_slider public bool? SysExSlider { get; set; } /// /// (PS) Enables .mid SysEx events for Real Drums hi-hat pedal control. /// /// sysex_high_hat_ctrl public bool? SysExHighHatCtrl { get; set; } /// /// (PS) Enables .mid SysEx events for Real Drums rimshot hits. /// /// sysex_rimshot public bool? SysExRimshot { get; set; } /// /// (PS) Enables .mid SysEx events for guitar open notes. /// /// sysex_open_bass public bool? SysExOpenBass { get; set; } /// /// (PS) Enables .mid SysEx events for Pro Guitar/Bass slide directions. /// /// sysex_pro_slide public bool? SysExProSlide { get; set; } /// /// (PS) Sound sample set index for guitar. /// /// guitar_type public long? GuitarType { get; set; } /// /// (PS) Sound sample set index for bass. /// /// bass_type public long? BassType { get; set; } /// /// (PS) Sound sample set index for drums. /// /// kit_type public long? KitType { get; set; } /// /// (PS) Sound sample set index for keys. /// /// keys_type public long? KeysType { get; set; } /// /// (PS) Sound sample set index for dance. /// /// dance_type public long? DanceType { get; set; } #endregion #region Images and Other Resources /// /// Name of an icon image to display for this song. /// Included in either the chart folder or the game the chart was made for, or sourced from this repository of icons. /// /// icon public string? Icon { get; set; } /// /// Name for a background image file. /// /// background public string? Background { get; set; } /// /// Name for a background video file. /// /// video public string? Video { get; set; } /// /// Name for a background video file. /// /// video_loop public bool? VideoLoop { get; set; } /// /// Timestamp in milliseconds where playback of an included video will start. Can be negative. /// This tag controls the time relative to the video, not relative to the chart. Negative values will delay the video, positive values will make the video be at a further point in when the chart starts. /// /// video_start_time public long? VideoStartTime { get; set; } /// /// Timestamp in milliseconds where playback of an included video will end. -1 means no time is specified. /// This is assumed to also be relative to the video, not the chart. /// /// video_end_time public long? VideoEndTime { get; set; } /// /// Name for a cover image file. /// /// cover public string? Cover { get; set; } #endregion #region Images and Other Resources (Game-Specific) /// /// (PS) Name for banner A. /// /// link_name_a public string? LinkNameA { get; set; } /// /// (PS) Name for banner B. /// /// link_name_b public string? LinkNameB { get; set; } /// /// (PS) Link that clicking banner A will open. /// /// banner_link_a public string? BannerLinkA { get; set; } /// /// (PS) Link that clicking banner B will open. /// /// banner_link_b public string? BannerLinkB { get; set; } #endregion #region Miscellaneous (Game-Specific) /// /// (FoFiX) High score data. /// /// scores public string? Scores { get; set; } /// /// (FoFiX) Additional score data. /// /// scores_ext public string? ScoresExt { get; set; } /// /// (FoFiX) Play count. /// /// count public long? Count { get; set; } /// /// (PS) Player's rating of the song /// /// rating public long? Rating { get; set; } /// /// (FoFiX) Career ID for this song. /// /// unlock_id public string? UnlockId { get; set; } /// /// (FoFiX) The career ID that must be completed to unlock this song. /// /// unlock_require public string? UnlockRequire { get; set; } /// /// (FoFiX) Text to display if the song is locked. /// /// unlock_text public string? UnlockText { get; set; } /// /// (FoFiX) Indicates if the song is unlocked. /// /// unlock_completed public long? UnlockCompleted { get; set; } /// /// (Editor on Fire) Sets a velocity number for drums accent notes. /// /// eof_midi_import_drum_accent_velocity public long? EoFMidiImportDrumAccentVelocity { get; set; } /// /// (Editor on Fire) Sets a velocity number for drums ghost notes. /// /// eof_midi_import_drum_ghost_velocity public long? EoFMidiImportDrumGhostVelocity { get; set; } #endregion } }