Skip to content

writeChartFile: emit instrument track sections - #71

Open
elicwhite wants to merge 1 commit into
chart-writer-corefrom
chart-writer-tracks
Open

writeChartFile: emit instrument track sections#71
elicwhite wants to merge 1 commit into
chart-writer-corefrom
chart-writer-tracks

Conversation

@elicwhite

Copy link
Copy Markdown
Owner

Completes writeChartFile with per-track section emission:

  • [ExpertSingle], [HardDrums], etc. named from instrument + difficulty.
  • Drum tracks: base notes (N 0..4 or 0..5 for 5-lane), cymbal markers
    (N 66/67/68) only in fourLanePro, accent (N 34..38) and ghost (N 40..44)
    markers matching the emitted note's eventType, one N 109 flam per group,
    double kick as N 32 only.
  • 5-lane round-trip: greenDrum+cymbal emits as N 4 (orange) while plain
    greenDrum stays at N 5; blueDrums coinciding with greenDrum+cymbal emit
    as N 5 to keep the parser's drumType detection on fiveLane.
  • Fret/GHL tracks: notes via the 5-fret and 6-fret maps, tap as N 6,
    forceUnnatural (N 5) when the note's hopo/strum flag disagrees with
    the natural-HOPO state.
  • Star power S 2, activation lanes S 64, flex lanes S 65/66, versus
    phrases S 0/1, solo sections as E 'solo'/'soloend' (tick + length - 1
    for soloend to round-trip).
  • Per-track text events (including disco flip mix markers).
  • Disco-flip state transitions per difficulty from red/yellow drum
    disco/discoNoflip flags → 'mix drums0[d|dnoflip]' text events.
  • Coda events: if no 'coda' in unrecognizedEvents, synthesize from
    drumFreestyleSections where isCoda=true.
  • hasForcedNotes backstop: if hasForcedNotes is set but no forceUnnatural
    emitted, append N 5 0 at a vacant tick in the first fret track to
    preserve the flag on round-trip.

@elicwhite
elicwhite marked this pull request as ready for review April 20, 2026 04:16
@elicwhite
elicwhite force-pushed the chart-writer-tracks branch from d34492e to 6392059 Compare April 20, 2026 04:18
@elicwhite
elicwhite force-pushed the chart-writer-tracks branch from 6392059 to 384bfaf Compare April 20, 2026 04:40
@elicwhite
elicwhite force-pushed the chart-writer-tracks branch from 384bfaf to 6251e3a Compare April 20, 2026 04:45
@elicwhite
elicwhite force-pushed the chart-writer-tracks branch from 6251e3a to c88be8b Compare April 20, 2026 05:09
@elicwhite
elicwhite force-pushed the chart-writer-tracks branch 2 times, most recently from 88f54cf to ae62751 Compare April 20, 2026 05:19
Completes writeChartFile with per-track section emission:

- [ExpertSingle], [HardDrums], etc. named from instrument + difficulty.
- Drum tracks: base notes (N 0..4 or 0..5 for 5-lane), cymbal markers
  (N 66/67/68) only in fourLanePro, accent (N 34..38) and ghost (N 40..44)
  markers matching the emitted note's eventType, one N 109 flam per group,
  double kick as N 32 only.
- 5-lane round-trip: greenDrum+cymbal emits as N 4 (orange) while plain
  greenDrum stays at N 5; blueDrums coinciding with greenDrum+cymbal emit
  as N 5 to keep the parser's drumType detection on fiveLane.
- Fret/GHL tracks: notes via the 5-fret and 6-fret maps, tap as N 6,
  forceUnnatural (N 5) when the note's hopo/strum flag disagrees with
  the natural-HOPO state.
- Star power S 2, activation lanes S 64, flex lanes S 65/66, versus
  phrases S 0/1, solo sections as E 'solo'/'soloend' (tick + length - 1
  for soloend to round-trip).
- Per-track text events (including disco flip mix markers).
- Disco-flip state transitions per difficulty from red/yellow drum
  disco/discoNoflip flags → 'mix <diff> drums0[d|dnoflip]' text events.
- Coda events: if no 'coda' in unrecognizedEvents, synthesize from
  drumFreestyleSections where isCoda=true.
- hasForcedNotes backstop: if hasForcedNotes is set but no forceUnnatural
  emitted, append N 5 0 at a vacant tick in the first fret track to
  preserve the flag on round-trip.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant