235 int slip_counter = 0;
236 static const int max_slips = 4;
237 std::array<float, max_slips> mod_parts = { 1.F, 1.F, 1.F, 1.F };
241 void set_params(
const float& ,
const float& ,
const float& ms)
248 void complete_slip(
const float& ms_now,
const unsigned& notes)
250 if (slip_counter < max_slips) {
251 mod_parts.at(slip_counter) = construct_mod_part();
257 fizz.start(ms_now, notes);
262 static auto start_test(
const unsigned& notes) ->
bool
267 return notes == 3 || notes == 7 || notes == 12 || notes == 14;
270 void operator()(
const float& ms_now,
const unsigned& notes)
284 if (start_test(notes)) {
285 fizz.start(ms_now, notes);
290 if (fizz.the_slip_is_the_boot(notes)) {
291 fizz.grow(ms_now, notes);
293 if (fizz.
slide == 5) {
294 complete_slip(ms_now, notes);
308 [[nodiscard]]
auto construct_mod_part()
const ->
float {
return scaler; }
316 int slip_counter = 0;
317 static const int max_slips = 4;
318 std::array<float, max_slips> mod_parts = { 1.F, 1.F, 1.F, 1.F };
322 void set_params(
const float& ,
const float& ,
const float& ms)
329 void complete_slip(
const float& ms_now,
const unsigned& notes)
331 if (slip_counter < max_slips) {
332 mod_parts.at(slip_counter) = construct_mod_part();
338 fizz.start(ms_now, notes);
343 static auto start_test(
const unsigned& notes) ->
bool
347 return notes == 3 || notes == 12;
350 void operator()(
const float& ms_now,
const unsigned& notes)
355 if (fizz.slippin_till_ya_slips_come_true) {
362 if (!fizz.slippin_till_ya_slips_come_true) {
364 if (start_test(notes)) {
365 fizz.start(ms_now, notes);
370 if (fizz.the_slip_is_the_boot(notes)) {
371 fizz.grow(ms_now, notes);
373 if (fizz.
slide == 5) {
374 complete_slip(ms_now, notes);
388 [[nodiscard]]
auto construct_mod_part()
const ->
float {
return scaler; }