Skip to content

ChartWriter

namespace Griff.Modules.Rhythm;
public static class ChartWriter

Writes a rhythm chart from a tune made in Griff, as a charter would by ear: its notes fall on what the player hears (the melody’s notes, and the drums in its gaps), each in the lane its pitch reaches for (higher to the right), a phrase’s last note held through the rest after it, and the first beat of each phrase a two-note chord. Easy keeps to the main beats, a note every one or two; Normal follows the melody’s eighth notes; Hard plays all of it, its sixteenths and the snare under it too. Every chart is fair: a note in a lane comes at least SameLaneGap after the one before it there (so no press can be taken for the wrong one), at most two lanes are pressed at once, and nothing’s played in a lane while it’s held.

public static IReadOnlyList<string> Difficulties { get; }

The difficulties it writes, easiest first.

public static Table Chart(string name, MusicRecipe tune)

The chart of tune at each difficulty, as a table named name: a row a note, with its Beat, Lane, Hold and Difficulty, the notes of each difficulty in order. The first bar is left to get ready, and the last notes are held from the downbeat of the last bar but one.

public static IReadOnlyList<ChartWriter.Note> Notes(MusicRecipe tune, string difficulty)

The notes of tune’s chart at difficulty (Easy, Normal or Hard), earliest first.

public const int Lanes

The lanes a chart is written for.

public const double SameLaneGap

The least time, in seconds, between a note in a lane and the next in it (or a hold’s end and the next note).