Etterna 0.74.4
Loading...
Searching...
No Matches
Enumerations | Functions
NoteDataUtil Namespace Reference

Utility functions that deal with NoteData. More...

Enumerations

enum  TrackMapping {
  left , right , mirror , backwards ,
  shuffle , soft_shuffle , super_shuffle , stomp ,
  swap_up_down , hran_shuffle , NUM_TRACK_MAPPINGS
}
 The types of transformations available for the NoteData. More...
 

Functions

auto GetSmallestNoteTypeForMeasure (const NoteData &nd, int iMeasureIndex) -> NoteType
 
auto GetSmallestNoteTypeInRange (const NoteData &nd, int iStartIndex, int iEndIndex) -> NoteType
 
void LoadFromSMNoteDataString (NoteData &out, const std::string &sSMNoteData)
 
void LoadFromETTNoteDataString (NoteData &out, const std::string &sSMNoteData)
 
void GetSMNoteDataString (const NoteData &in, std::string &notes_out)
 
void GetETTNoteDataString (const NoteData &in, std::string &notes_out)
 
void LoadTransformedSlidingWindow (const NoteData &in, NoteData &out, int iNewNumTracks)
 Autogenerate notes from one type to another.
 
void LoadOverlapped (const NoteData &in, NoteData &out, int iNewNumTracks)
 Autogenerate notes from one type to another.
 
void LoadTransformedLights (const NoteData &in, NoteData &out, int iNewNumTracks)
 
void LoadTransformedLightsFromTwo (const NoteData &marquee, const NoteData &bass, NoteData &out)
 
void InsertHoldTails (NoteData &inout)
 
void CalculateRadarValues (const NoteData &in, RadarValues &out, TimingData *td=nullptr)
 
void RemoveHoldNotes (NoteData &inout, int iStartIndex=0, int iEndIndex=MAX_NOTE_ROW)
 Remove all of the Hold notes.
 
void ChangeRollsToHolds (NoteData &in, int iStartIndex, int iEndIndex)
 
void ChangeHoldsToRolls (NoteData &in, int iStartIndex, int iEndIndex)
 
void RemoveSimultaneousNotes (NoteData &inout, int iMaxSimultaneous, int iStartIndex=0, int iEndIndex=MAX_NOTE_ROW)
 
void RemoveJumps (NoteData &inout, int iStartIndex=0, int iEndIndex=MAX_NOTE_ROW)
 
void RemoveHands (NoteData &inout, int iStartIndex=0, int iEndIndex=MAX_NOTE_ROW)
 
void RemoveQuads (NoteData &inout, int iStartIndex=0, int iEndIndex=MAX_NOTE_ROW)
 
void RemoveSpecificTapNotes (NoteData &inout, TapNoteType tn, int iStartIndex=0, int iEndIndex=MAX_NOTE_ROW)
 Remove all of a specific TapNote Type.
 
void RemoveMines (NoteData &inout, int iStartIndex=0, int iEndIndex=MAX_NOTE_ROW)
 Remove all of the mines from the chart.
 
void RemoveLifts (NoteData &inout, int iStartIndex=0, int iEndIndex=MAX_NOTE_ROW)
 Remove all of the lifts from the chart.
 
void RemoveFakes (NoteData &inout, TimingData const &timing_data, int iStartIndex=0, int iEndIndex=MAX_NOTE_ROW)
 Remove all of the fakes from the chart.
 
void RemoveStretch (NoteData &inout, StepsType st, int iStartIndex=0, int iEndIndex=MAX_NOTE_ROW)
 
void RemoveAllButOneTap (NoteData &inout, int row)
 
void Turn (NoteData &inout, StepsType st, TrackMapping tt, int iStartIndex=0, int iEndIndex=MAX_NOTE_ROW)
 
void Little (NoteData &inout, int iStartIndex=0, int iEndIndex=MAX_NOTE_ROW)
 
void Wide (NoteData &inout, int iStartIndex=0, int iEndIndex=MAX_NOTE_ROW)
 
void Big (NoteData &inout, int iStartIndex=0, int iEndIndex=MAX_NOTE_ROW)
 
void Quick (NoteData &inout, int iStartIndex=0, int iEndIndex=MAX_NOTE_ROW)
 
void BMRize (NoteData &inout, int iStartIndex=0, int iEndIndex=MAX_NOTE_ROW)
 
void Skippy (NoteData &inout, int iStartIndex=0, int iEndIndex=MAX_NOTE_ROW)
 
void InsertIntelligentTaps (NoteData &in, int iWindowSizeRows, int iInsertOffsetRows, int iWindowStrideRows, bool bSkippy, int iStartIndex=0, int iEndIndex=MAX_NOTE_ROW)
 
void AddMines (NoteData &inout, int iStartIndex=0, int iEndIndex=MAX_NOTE_ROW)
 
void Echo (NoteData &inout, int iStartIndex=0, int iEndIndex=MAX_NOTE_ROW)
 
void Stomp (NoteData &inout, StepsType st, int iStartIndex=0, int iEndIndex=MAX_NOTE_ROW)
 
void JackJS (NoteData &inout, StepsType st, TimingData const &timing_data, int iStartIndex=0, int iEndIndex=MAX_NOTE_ROW)
 
void AnchorJS (NoteData &inout, StepsType st, TimingData const &timing_data, int iStartIndex=0, int iEndIndex=MAX_NOTE_ROW)
 
void IcyWorld (NoteData &inout, StepsType st, TimingData const &timing_data, int iStartIndex=0, int iEndIndex=MAX_NOTE_ROW)
 
void Planted (NoteData &inout, int iStartIndex=0, int iEndIndex=MAX_NOTE_ROW)
 
void Floored (NoteData &inout, int iStartIndex=0, int iEndIndex=MAX_NOTE_ROW)
 
void Twister (NoteData &inout, int iStartIndex=0, int iEndIndex=MAX_NOTE_ROW)
 
void ConvertTapsToHolds (NoteData &inout, int iSimultaneousHolds, int iStartIndex=0, int iEndIndex=MAX_NOTE_ROW)
 
void ConvertAdditionsToRegular (NoteData &inout)
 Convert all taps added via transforms into original style tap notes.
 
void Backwards (NoteData &inout)
 
void SwapSides (NoteData &inout)
 
void CopyLeftToRight (NoteData &inout)
 
void CopyRightToLeft (NoteData &inout)
 
void ClearLeft (NoteData &inout)
 
void ClearRight (NoteData &inout)
 
void CollapseToOne (NoteData &inout)
 
void CollapseLeft (NoteData &inout)
 
void ShiftTracks (NoteData &inout, int iShiftBy)
 
void ShiftLeft (NoteData &inout)
 
void ShiftRight (NoteData &inout)
 
void SwapUpDown (NoteData &inout, StepsType st)
 
void ArbitraryRemap (NoteData &inout, int *mapping)
 
void SnapToNearestNoteType (NoteData &inout, NoteType nt1, NoteType nt2, int iStartIndex, int iEndIndex)
 
void SnapToNearestNoteType (NoteData &inout, NoteType nt, int iStartIndex, int iEndIndex)
 
auto RowPassesValidMask (NoteData &inout, int row, const bool bValidMask[]) -> bool
 
void TransformNoteData (NoteData &nd, TimingData const &timing_data, const PlayerOptions &po, StepsType st, int iStartIndex=0, int iEndIndex=MAX_NOTE_ROW)
 
void Scale (NoteData &nd, float fScale)
 
void ScaleRegion (NoteData &nd, float fScale, int iStartIndex=0, int iEndIndex=MAX_NOTE_ROW)
 
void InsertRows (NoteData &nd, int iStartIndex, int iRowsToShift)
 
void DeleteRows (NoteData &nd, int iStartIndex, int iRowsToShift)
 
void RemoveAllButRange (NoteData &nd, int iStartIndex, int iEndIndex)
 
void RemoveAllTapsOfType (NoteData &ndInOut, TapNoteType typeToRemove)
 
void RemoveAllTapsExceptForType (NoteData &ndInOut, TapNoteType typeToKeep)
 
auto GetMaxNonEmptyTrack (const NoteData &in) -> int
 
auto AnyTapsAndHoldsInTrackRange (const NoteData &in, int iTrack, int iStart, int iEnd) -> bool
 
auto GetNextEditorPosition (const NoteData &in, int &rowInOut) -> bool
 
auto GetPrevEditorPosition (const NoteData &in, int &rowInOut) -> bool
 
auto GetTotalHoldTicks (NoteData *nd, const TimingData *td) -> unsigned int
 Count the number of hold ticks that will fire, assuming that tickholds are on.
 

Detailed Description

Utility functions that deal with NoteData.

Things should go in here if they can be (cleanly and efficiently) implemented using only NoteData's primitives; this improves abstraction and makes it much easier to change NoteData internally in the future.

Enumeration Type Documentation

◆ TrackMapping

The types of transformations available for the NoteData.

Enumerator
left 

The NoteData is arranged as if the player was facing to the left.

right 

Arranged as if the player was facing the right.

mirror 

The NoteData is arranged as if facing a straight mirror.

backwards 

The NoteData is arranged as if the player was facing backwards. This is NOT always the same as mirror.

Function Documentation

◆ ConvertAdditionsToRegular()

void NoteDataUtil::ConvertAdditionsToRegular ( NoteData inout)

Convert all taps added via transforms into original style tap notes.

Parameters
inoutthe NoteData to convert.

◆ GetTotalHoldTicks()

unsigned int NoteDataUtil::GetTotalHoldTicks ( NoteData nd,
const TimingData td 
) -> unsigned int

Count the number of hold ticks that will fire, assuming that tickholds are on.

Parameters
tdThe TimingData from the relevant Steps.

◆ LoadOverlapped()

void NoteDataUtil::LoadOverlapped ( const NoteData in,
NoteData out,
int  iNewNumTracks 
)

Autogenerate notes from one type to another.

NOTE: This code assumes that there are more columns in the original type.

Parameters
inThe original NoteData.
outthe new NoteData.
iNewNumTracksthe number of tracks/columns of the new NoteData.

◆ LoadTransformedSlidingWindow()

void NoteDataUtil::LoadTransformedSlidingWindow ( const NoteData in,
NoteData out,
int  iNewNumTracks 
)

Autogenerate notes from one type to another.

TODO: Look into a more intelligent way of doing so.

Parameters
inThe original NoteData.
outthe new NoteData.
iNewNumTracksthe number of tracks/columns of the new NoteData.

◆ RemoveFakes()

void NoteDataUtil::RemoveFakes ( NoteData inout,
TimingData const &  timing_data,
int  iStartIndex = 0,
int  iEndIndex = MAX_NOTE_ROW 
)

Remove all of the fakes from the chart.

Parameters
inoutthe Notedata to be transformed.
iStartIndexthe starting point for transforming.
iEndIndexthe ending point for transforming.

◆ RemoveHoldNotes()

void NoteDataUtil::RemoveHoldNotes ( NoteData inout,
int  iStartIndex = 0,
int  iEndIndex = MAX_NOTE_ROW 
)

Remove all of the Hold notes.

Parameters
inoutthe Notedata to be transformed.
iStartIndexthe starting point for transforming.
iEndIndexthe ending point for transforming.

◆ RemoveLifts()

void NoteDataUtil::RemoveLifts ( NoteData inout,
int  iStartIndex = 0,
int  iEndIndex = MAX_NOTE_ROW 
)

Remove all of the lifts from the chart.

Parameters
inoutthe Notedata to be transformed.
iStartIndexthe starting point for transforming.
iEndIndexthe ending point for transforming.

◆ RemoveMines()

void NoteDataUtil::RemoveMines ( NoteData inout,
int  iStartIndex = 0,
int  iEndIndex = MAX_NOTE_ROW 
)

Remove all of the mines from the chart.

Parameters
inoutthe Notedata to be transformed.
iStartIndexthe starting point for transforming.
iEndIndexthe ending point for transforming.

◆ RemoveSpecificTapNotes()

void NoteDataUtil::RemoveSpecificTapNotes ( NoteData inout,
TapNoteType  tn,
int  iStartIndex = 0,
int  iEndIndex = MAX_NOTE_ROW 
)

Remove all of a specific TapNote Type.

Parameters
inoutthe Notedata to be transformed.
tnthe TapNote Type to remove.
iStartIndexthe starting point for transforming.
iEndIndexthe ending point for transforming.