Etterna 0.74.4
|
Individual anchors, 2 objects per hand on 4k. More...
#include <GenericSequencing.h>
Public Member Functions | |
virtual void | full_reset () |
virtual void | check_status () |
based on the anchoring status, do an action | |
virtual void | set_status ()=0 |
virtual void | operator() (const col_type ct, const float &now)=0 |
sequence updating given the column type and time of current row | |
virtual float | get_ms ()=0 |
returns an adjusted MS average value, not converted to nps | |
Public Attributes | |
col_type | _ct = col_init |
anch_status | _status = anch_init |
int | _len = 1 |
float | _sc_ms = ms_init |
same-column ms: time between now and previous tap | |
float | _max_ms = ms_init |
float | _len_cap_ms = ms_init |
float | _last = s_init |
row_time of last note on this col | |
float | _start = s_init |
Individual anchors, 2 objects per hand on 4k.
|
inlinepure virtual |
returns an adjusted MS average value, not converted to nps
Implemented in Jack_Sequencing, and Anchor_Sequencing.
|
inlinepure virtual |
sequence updating given the column type and time of current row
Implemented in Jack_Sequencing, and Anchor_Sequencing.
|
inlinepure virtual |
Set the status of this anchor. Break the anchor if the next note is too much slower than the lowest one in the sequence. Remember, if we reset, the start of the new anchor was the last row_time, and the new max_ms should be the current ms value.
Implemented in Jack_Sequencing, and Anchor_Sequencing.
int Finger_Sequencing::_len = 1 |
note: aside from the first note, _len is always at least 2. outside of note 1 we are always in a 2 note anchor of some description. given 50, 500, 50, (4 notes), we have 2 notes, 1 and 2, 50 ms apart, and we are in an anchor. the 500 ms then breaks it due to being too much slower and starts a new anchor with notes 2 and 3, a 500 ms anchor. then the same thing happens again on reaching note 4, where the 50 breaks the 500 anchor due to being too fast, and again starts a new sequence with 3-4, this may seem like needless quibbling but if we are using anchor sequencing as the base for jack difficulty we want to ensure that cutoff points are reasonable, and that any point may be queried for a jack difficulty regardless of whether or not a human would consider it to be a jack
float Finger_Sequencing::_len_cap_ms = ms_init |
rather than a buffer cap maybe a len cap will be more scalable, track the difficulty at the cap and when queried beyond it, just return this value
float Finger_Sequencing::_max_ms = ms_init |
highest ms value found in the anchor. if we exceed this + buffer, break the anchor sequence