+
+
+
+
+ Class ChartFile
+
+
+
+
+
- Namespace
- ChartTools.IO.Chart
+
- Assembly
- ChartTools.dll
+
+
+ Provides methods for reading and writing chart files
+
+
+
+
+
public static class ChartFile
+
+
+
+
+
+
+ - Inheritance
+ -
+
+
ChartFile
+
+
+
+
+
+
+ - Inherited Members
+ -
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Properties
+
+
+
+
+
+
+
+ Default configuration to use for reading when the provided configuration is default
+
+
+
+
+
public static ChartReadingConfiguration DefaultReadConfig { get; set; }
+
+
+
+
+
+
+ Property Value
+
+ - ChartReadingConfiguration
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Default configuration to use for writing when the provided configuration is default
+
+
+
+
+
public static ChartWritingConfiguration DefaultWriteConfig { get; set; }
+
+
+
+
+
+
+ Property Value
+
+ - ChartWritingConfiguration
+
+
+
+
+
+
+
+
+
+
+ Methods
+
+
+
+
+
+
+
+
+
+
+
+
public static Song ReadComponents(string path, ComponentList components, ChartReadingConfiguration? config = null, FormattingRules? formatting = null)
+
+
+ Parameters
+
+ path
string
+
+ components
ComponentList
+
+ config
ChartReadingConfiguration
+
+ formatting
FormattingRules
+
+
+
+ Returns
+
+ - Song
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
public static Task<Song> ReadComponentsAsync(string path, ComponentList components, ChartReadingConfiguration? config = null, FormattingRules? formatting = null, CancellationToken cancellationToken = default)
+
+
+ Parameters
+
+ path
string
+
+ components
ComponentList
+
+ config
ChartReadingConfiguration
+
+ formatting
FormattingRules
+
+ cancellationToken
CancellationToken
+
+
+
+ Returns
+
+ - Task<Song>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
[Obsolete("Use ReadInstruments with a component list.")]
+public static Drums? ReadDrums(string path, DifficultySet difficulties = DifficultySet.All, ChartReadingConfiguration? config = null, FormattingRules? formatting = null)
+
+
+ Parameters
+
+ path
string
+
+ difficulties
DifficultySet
+
+ config
ChartReadingConfiguration
+
+ formatting
FormattingRules
+
+
+
+ Returns
+
+ - Drums
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
[Obsolete("Use ReadInstrumentsAsync with a component list.")]
+public static Task<Drums?> ReadDrumsAsync(string path, DifficultySet difficulties = DifficultySet.All, ChartReadingConfiguration? config = null, FormattingRules? formatting = null, CancellationToken cancellationToken = default)
+
+
+ Parameters
+
+ path
string
+
+ difficulties
DifficultySet
+
+ config
ChartReadingConfiguration
+
+ formatting
FormattingRules
+
+ cancellationToken
CancellationToken
+
+
+
+ Returns
+
+ - Task<Drums>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
[Obsolete("Use ReadDrums with a DifficultySet.")]
+public static Track<DrumsChord> ReadDrumsTrack(string path, Difficulty difficulty, ChartReadingConfiguration? config = null, FormattingRules? formatting = null)
+
+
+ Parameters
+
+ path
string
+
+ difficulty
Difficulty
+
+ config
ChartReadingConfiguration
+
+ formatting
FormattingRules
+
+
+
+ Returns
+
+ - Track<DrumsChord>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
[Obsolete("Use ReadDrumsAsync with a DifficultySet.")]
+public static Task<Track<DrumsChord>> ReadDrumsTrackAsync(string path, Difficulty difficulty, ChartReadingConfiguration? config = null, FormattingRules? formatting = null, CancellationToken cancellationToken = default)
+
+
+ Parameters
+
+ path
string
+
+ difficulty
Difficulty
+
+ config
ChartReadingConfiguration
+
+ formatting
FormattingRules
+
+ cancellationToken
CancellationToken
+
+
+
+ Returns
+
+ - Task<Track<DrumsChord>>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Reads global events from a file.
+
+
+
+
+
public static List<GlobalEvent> ReadGlobalEvents(string path)
+
+
+ Parameters
+
+ path
string
+ Path of the file
+
+
+
+ Returns
+
+ - List<GlobalEvent>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Reads global events from a file asynchronously using multitasking.
+
+
+
+
+
public static Task<List<GlobalEvent>> ReadGlobalEventsAsync(string path, CancellationToken cancellationToken = default)
+
+
+ Parameters
+
+ path
string
+ - Path of the file
+
+ cancellationToken
CancellationToken
+ Token to request cancellation
+
+
+
+ Returns
+
+ - Task<List<GlobalEvent>>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
[Obsolete("Use ReadInstruments with a component list.")]
+public static GHLInstrument? ReadInstrument(string path, GHLInstrumentIdentity instrument, DifficultySet difficulties = DifficultySet.All, ChartReadingConfiguration? config = null, FormattingRules? formatting = null)
+
+
+ Parameters
+
+ path
string
+
+ instrument
GHLInstrumentIdentity
+
+ difficulties
DifficultySet
+
+ config
ChartReadingConfiguration
+
+ formatting
FormattingRules
+
+
+
+ Returns
+
+ - GHLInstrument
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
[Obsolete("Use ReadInstruments with a component list.")]
+public static Instrument? ReadInstrument(string path, InstrumentIdentity instrument, DifficultySet difficulties = DifficultySet.All, ChartReadingConfiguration? config = null, FormattingRules? formatting = null)
+
+
+ Parameters
+
+ path
string
+
+ instrument
InstrumentIdentity
+
+ difficulties
DifficultySet
+
+ config
ChartReadingConfiguration
+
+ formatting
FormattingRules
+
+
+
+ Returns
+
+ - Instrument
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
[Obsolete("Use ReadInstruments with a component list.")]
+public static StandardInstrument? ReadInstrument(string path, StandardInstrumentIdentity instrument, DifficultySet difficulties = DifficultySet.All, ChartReadingConfiguration? config = null, FormattingRules? formatting = null)
+
+
+ Parameters
+
+ path
string
+
+ instrument
StandardInstrumentIdentity
+
+ difficulties
DifficultySet
+
+ config
ChartReadingConfiguration
+
+ formatting
FormattingRules
+
+
+
+ Returns
+
+ - StandardInstrument
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
[Obsolete("Use ReadInstrumentsAsync with a component list.")]
+public static Task<GHLInstrument?> ReadInstrumentAsync(string path, GHLInstrumentIdentity instrument, DifficultySet difficulties = DifficultySet.All, ChartReadingConfiguration? config = null, FormattingRules? formatting = null, CancellationToken cancellationToken = default)
+
+
+ Parameters
+
+ path
string
+
+ instrument
GHLInstrumentIdentity
+
+ difficulties
DifficultySet
+
+ config
ChartReadingConfiguration
+
+ formatting
FormattingRules
+
+ cancellationToken
CancellationToken
+
+
+
+ Returns
+
+ - Task<GHLInstrument>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
[Obsolete("Use ReadInstrumentsAsync with a component list.")]
+public static Task<Instrument?> ReadInstrumentAsync(string path, InstrumentIdentity instrument, DifficultySet difficulties = DifficultySet.All, ChartReadingConfiguration? config = null, FormattingRules? formatting = null, CancellationToken cancellationToken = default)
+
+
+ Parameters
+
+ path
string
+
+ instrument
InstrumentIdentity
+
+ difficulties
DifficultySet
+
+ config
ChartReadingConfiguration
+
+ formatting
FormattingRules
+
+ cancellationToken
CancellationToken
+
+
+
+ Returns
+
+ - Task<Instrument>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
[Obsolete("Use ReadInstrumentsAsync with a component list.")]
+public static Task<StandardInstrument?> ReadInstrumentAsync(string path, StandardInstrumentIdentity instrument, DifficultySet difficulties = DifficultySet.All, ChartReadingConfiguration? config = null, FormattingRules? formatting = null, CancellationToken cancellationToken = default)
+
+
+ Parameters
+
+ path
string
+
+ instrument
StandardInstrumentIdentity
+
+ difficulties
DifficultySet
+
+ config
ChartReadingConfiguration
+
+ formatting
FormattingRules
+
+ cancellationToken
CancellationToken
+
+
+
+ Returns
+
+ - Task<StandardInstrument>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
public static InstrumentSet ReadInstruments(string path, InstrumentComponentList components, ChartReadingConfiguration? config = null, FormattingRules? formatting = null)
+
+
+ Parameters
+
+ path
string
+
+ components
InstrumentComponentList
+
+ config
ChartReadingConfiguration
+
+ formatting
FormattingRules
+
+
+
+ Returns
+
+ - InstrumentSet
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
public static Task<InstrumentSet> ReadInstrumentsAsync(string path, InstrumentComponentList components, ChartReadingConfiguration? config = null, FormattingRules? formatting = null, CancellationToken cancellationToken = default)
+
+
+ Parameters
+
+ path
string
+
+ components
InstrumentComponentList
+
+ config
ChartReadingConfiguration
+
+ formatting
FormattingRules
+
+ cancellationToken
CancellationToken
+
+
+
+ Returns
+
+ - Task<InstrumentSet>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Reads lyrics from a chart file.
+
+
+
+
+
public static IEnumerable<Phrase> ReadLyrics(string path)
+
+
+ Parameters
+
+ path
string
+ Path of the file to read
+
+
+
+ Returns
+
+ - IEnumerable<Phrase>
+ Enumerable of Phrase containing the lyrics from the file
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Reads lyrics from a chart file asynchronously using multitasking.
+
+
+
+
+
public static Task<IEnumerable<Phrase>> ReadLyricsAsync(string path, CancellationToken cancellationToken = default)
+
+
+ Parameters
+
+ path
string
+ - Path of the file to read
+
+ cancellationToken
CancellationToken
+ Token to request cancellation
+
+
+
+ Returns
+
+ - Task<IEnumerable<Phrase>>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Reads metadata from a chart file.
+
+
+
+
+
public static Metadata ReadMetadata(string path)
+
+
+ Parameters
+
+ path
string
+ Path of the file to read
+
+
+
+ Returns
+
+ - Metadata
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Reads all elements of a Song from a file.
+
+
+
+
+
public static Song ReadSong(string path, ChartReadingConfiguration? config = null, FormattingRules? formatting = null)
+
+
+ Parameters
+
+ path
string
+ Path of the file
+
+ config
ChartReadingConfiguration
+
+ formatting
FormattingRules
+ -
+ Rules defined in song.ini that affect how the song data file is read and written
+
+
+
+
+ Returns
+
+ - Song
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
public static Task<Song> ReadSongAsync(string path, ChartReadingConfiguration? config = null, FormattingRules? formatting = null, CancellationToken cancellationToken = default)
+
+
+ Parameters
+
+ path
string
+
+ config
ChartReadingConfiguration
+
+ formatting
FormattingRules
+
+ cancellationToken
CancellationToken
+
+
+
+ Returns
+
+ - Task<Song>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
public static SyncTrack ReadSyncTrack(string path, ChartReadingConfiguration? config = null, FormattingRules? formatting = null)
+
+
+ Parameters
+
+ path
string
+ Path of the file
+
+ config
ChartReadingConfiguration
+
+ formatting
FormattingRules
+
+
+
+ Returns
+
+ - SyncTrack
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Reads a SyncTrack from a file asynchronously using multitasking.
+
+
+
+
+
public static Task<SyncTrack> ReadSyncTrackAsync(string path, ChartReadingConfiguration? config = null, CancellationToken cancellationToken = default)
+
+
+ Parameters
+
+ path
string
+ - Path of the file
+
+ config
ChartReadingConfiguration
+ -
+
+ cancellationToken
CancellationToken
+ Token to request cancellation
+
+
+
+ Returns
+
+ - Task<SyncTrack>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
[Obsolete("Use ReadInstruments with a component list.")]
+public static Track<GHLChord>? ReadTrack(string path, GHLInstrumentIdentity instrument, Difficulty difficulty, ChartReadingConfiguration? config = null, FormattingRules? formatting = null)
+
+
+ Parameters
+
+ path
string
+
+ instrument
GHLInstrumentIdentity
+
+ difficulty
Difficulty
+
+ config
ChartReadingConfiguration
+
+ formatting
FormattingRules
+
+
+
+ Returns
+
+ - Track<GHLChord>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
[Obsolete("Use ReadInstruments with a component list.")]
+public static Track? ReadTrack(string path, InstrumentIdentity instrument, Difficulty difficulty, ChartReadingConfiguration? config = null, FormattingRules? formatting = null)
+
+
+ Parameters
+
+ path
string
+
+ instrument
InstrumentIdentity
+
+ difficulty
Difficulty
+
+ config
ChartReadingConfiguration
+
+ formatting
FormattingRules
+
+
+
+ Returns
+
+ - Track
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
[Obsolete("Use ReadInstruments with a component list.")]
+public static Track<StandardChord>? ReadTrack(string path, StandardInstrumentIdentity instrument, Difficulty difficulty, ChartReadingConfiguration? config = null, FormattingRules? formatting = null)
+
+
+ Parameters
+
+ path
string
+
+ instrument
StandardInstrumentIdentity
+
+ difficulty
Difficulty
+
+ config
ChartReadingConfiguration
+
+ formatting
FormattingRules
+
+
+
+ Returns
+
+ - Track<StandardChord>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
[Obsolete("Use ReadInstrumentsAsync with a component list.")]
+public static Task<Track<GHLChord>?> ReadTrackAsync(string path, GHLInstrumentIdentity instrument, Difficulty difficulty, ChartReadingConfiguration? config, FormattingRules? formatting = null, CancellationToken cancellationToken = default)
+
+
+ Parameters
+
+ path
string
+
+ instrument
GHLInstrumentIdentity
+
+ difficulty
Difficulty
+
+ config
ChartReadingConfiguration
+
+ formatting
FormattingRules
+
+ cancellationToken
CancellationToken
+
+
+
+ Returns
+
+ - Task<Track<GHLChord>>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
[Obsolete("Use ReadInstrumentsAsync with a component list.")]
+public static Task<Track?> ReadTrackAsync(string path, InstrumentIdentity instrument, Difficulty difficulty, ChartReadingConfiguration? config = null, FormattingRules? formatting = null, CancellationToken cancellationToken = default)
+
+
+ Parameters
+
+ path
string
+
+ instrument
InstrumentIdentity
+
+ difficulty
Difficulty
+
+ config
ChartReadingConfiguration
+
+ formatting
FormattingRules
+
+ cancellationToken
CancellationToken
+
+
+
+ Returns
+
+ - Task<Track>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
[Obsolete("Use ReadInstrumentsAsync with a component list.")]
+public static Task<Track<StandardChord>?> ReadTrackAsync(string path, StandardInstrumentIdentity instrument, Difficulty difficulty, ChartReadingConfiguration? config = null, FormattingRules? formatting = null, CancellationToken cancellationToken = default)
+
+
+ Parameters
+
+ path
string
+
+ instrument
StandardInstrumentIdentity
+
+ difficulty
Difficulty
+
+ config
ChartReadingConfiguration
+
+ formatting
FormattingRules
+
+ cancellationToken
CancellationToken
+
+
+
+ Returns
+
+ - Task<Track<StandardChord>>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Reads vocals from the global events in a chart file.
+
+
+
+
+
public static Vocals? ReadVocals(string path)
+
+
+ Parameters
+
+ path
string
+ Path of the file to read
+
+
+
+ Returns
+
+ - Vocals
+ Instance of Instrument<TChord> where TChord is Phrase containing lyric and timing data
+
null if the file contains no drums data
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
public static Task<Vocals?> ReadVocalsAsync(string path, CancellationToken cancellationToken = default)
+
+
+ Parameters
+
+ path
string
+
+ cancellationToken
CancellationToken
+
+
+
+ Returns
+
+ - Task<Vocals>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
public static void ReplaceComponents(string path, Song song, ComponentList components, ChartWritingConfiguration? config = null)
+
+
+ Parameters
+
+ path
string
+
+ song
Song
+
+ components
ComponentList
+
+ config
ChartWritingConfiguration
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
public static Task ReplaceComponentsAsync(string path, Song song, ComponentList components, ChartWritingConfiguration? config = null, CancellationToken cancellationToken = default)
+
+
+ Parameters
+
+ path
string
+
+ song
Song
+
+ components
ComponentList
+
+ config
ChartWritingConfiguration
+
+ cancellationToken
CancellationToken
+
+
+
+ Returns
+
+ - Task
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Replaces the global events in a file.
+
+
+
+
+
public static void ReplaceGlobalEvents(string path, IEnumerable<GlobalEvent> events)
+
+
+ Parameters
+
+ path
string
+ Path of the file to write
+
+ events
IEnumerable<GlobalEvent>
+ Events to use as a replacement
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
public static Task ReplaceGlobalEventsAsync(string path, IEnumerable<GlobalEvent> events, CancellationToken cancellationToken = default)
+
+
+ Parameters
+
+ path
string
+
+ events
IEnumerable<GlobalEvent>
+
+ cancellationToken
CancellationToken
+
+
+
+ Returns
+
+ - Task
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
[Obsolete("Use ReadInstruments with a component list.")]
+public static void ReplaceInstrument(string path, Instrument instrument, DifficultySet diffs = DifficultySet.All, ChartWritingConfiguration? config = null, FormattingRules? formatting = null)
+
+
+ Parameters
+
+ path
string
+
+ instrument
Instrument
+
+ diffs
DifficultySet
+
+ config
ChartWritingConfiguration
+
+ formatting
FormattingRules
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
[Obsolete("Use ReadInstrumentsAsync with a component list.")]
+public static Task ReplaceInstrumentAsync(string path, Instrument instrument, DifficultySet diffs = DifficultySet.All, ChartWritingConfiguration? config = null, FormattingRules? formatting = null, CancellationToken cancellationToken = default)
+
+
+ Parameters
+
+ path
string
+
+ instrument
Instrument
+
+ diffs
DifficultySet
+
+ config
ChartWritingConfiguration
+
+ formatting
FormattingRules
+
+ cancellationToken
CancellationToken
+
+
+
+ Returns
+
+ - Task
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
public static void ReplaceInstruments(string path, InstrumentSet set, InstrumentComponentList components, ChartWritingConfiguration? config = null, FormattingRules? formatting = null)
+
+
+ Parameters
+
+ path
string
+
+ set
InstrumentSet
+
+ components
InstrumentComponentList
+
+ config
ChartWritingConfiguration
+
+ formatting
FormattingRules
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
public static Task ReplaceInstrumentsAsync(string path, InstrumentSet set, InstrumentComponentList components, ChartWritingConfiguration? config = null, FormattingRules? formatting = null, CancellationToken cancellationToken = default)
+
+
+ Parameters
+
+ path
string
+
+ set
InstrumentSet
+
+ components
InstrumentComponentList
+
+ config
ChartWritingConfiguration
+
+ formatting
FormattingRules
+
+ cancellationToken
CancellationToken
+
+
+
+ Returns
+
+ - Task
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Replaces the metadata in a file.
+
+
+
+
+
public static void ReplaceMetadata(string path, Metadata metadata)
+
+
+ Parameters
+
+ path
string
+ Path of the file to read
+
+ metadata
Metadata
+ Metadata to write
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Replaces the sync track in a file.
+
+
+
+
+
public static void ReplaceSyncTrack(string path, SyncTrack syncTrack, ChartWritingConfiguration? config = null)
+
+
+ Parameters
+
+ path
string
+ Path of the file to write
+
+ syncTrack
SyncTrack
+ Sync track to write
+
+ config
ChartWritingConfiguration
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
public static Task ReplaceSyncTrackAsync(string path, SyncTrack syncTrack, ChartWritingConfiguration? config = null, CancellationToken cancellationToken = default)
+
+
+ Parameters
+
+ path
string
+
+ syncTrack
SyncTrack
+
+ config
ChartWritingConfiguration
+
+ cancellationToken
CancellationToken
+
+
+
+ Returns
+
+ - Task
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
[Obsolete("Use ReplaceInstrument with a DifficultySet.")]
+public static void ReplaceTrack(string path, Track track, ChartWritingConfiguration? config = null, FormattingRules? formatting = null)
+
+
+ Parameters
+
+ path
string
+
+ track
Track
+
+ config
ChartWritingConfiguration
+
+ formatting
FormattingRules
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
[Obsolete("Use ReplaceInstrumentAsync with a DifficultySet.")]
+public static Task ReplaceTrackAsync(string path, Track track, ChartWritingConfiguration? config = null, FormattingRules? formatting = null, CancellationToken cancellationToken = default)
+
+
+ Parameters
+
+ path
string
+
+ track
Track
+
+ config
ChartWritingConfiguration
+
+ formatting
FormattingRules
+
+ cancellationToken
CancellationToken
+
+
+
+ Returns
+
+ - Task
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Writes a song to a chart file.
+
+
+
+
+
public static void WriteSong(string path, Song song, ChartWritingConfiguration? config = null)
+
+
+ Parameters
+
+ path
string
+ Path of the file to write
+
+ song
Song
+ Song to write
+
+ config
ChartWritingConfiguration
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
public static Task WriteSongAsync(string path, Song song, ChartWritingConfiguration? config = null, CancellationToken cancellationToken = default)
+
+
+ Parameters
+
+ path
string
+
+ song
Song
+
+ config
ChartWritingConfiguration
+
+ cancellationToken
CancellationToken
+
+
+
+ Returns
+
+ - Task
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+