14 double units,
double& major,
double& minor,
double &minorMinor,
24 if (units < .025 * (60 /
mBpm) * (4 / lower))
29 minor = 60 / (
mBpm * (lower * 2));
31 minorMinor = 60 / (
mBpm * (lower * 8));
33 else if (units < .05 * (60 /
mBpm) * (4 / lower))
38 minor = 60 / (
mBpm * (lower));
40 minorMinor = 60 / (
mBpm * (lower * 4));
42 else if (units < .1 * (60 /
mBpm) * (4 / lower))
47 minor = 60 / (
mBpm * (lower / 2));
49 minorMinor = 60 / (
mBpm * (lower * 2));
51 else if (units < .4 * (60 /
mBpm) * (4 / lower))
56 minor = 60 / (
mBpm * (lower / 2));
58 minorMinor = 60 / (
mBpm * (lower));
60 else if (units < .8 * (60 /
mBpm) * (4 / lower))
65 minor = 60 / (
mBpm * (lower / 4));
67 minorMinor = 60 / (
mBpm * (lower));
69 else if (units < 4 * (60 /
mBpm) * (4 / lower))
74 minorMinor = 60 / (
mBpm * (lower / 4));
76 else if (units < 8 * (60 /
mBpm) * (4 / lower))
81 minor = 60 / (
mBpm * (lower / 16));
83 minorMinor = 60 / (
mBpm * (lower / 8));
86 int factor = pow(2, std::floor(log2(std::ceil(units) * (
mBpm / 60) * (
mTimeSigLower / 4))) - 2);
88 minorMinor = 60 / (
mBpm * (lower / (8 * factor)));
95 wxString& s,
double d,
double units,
double minor,
int mDigits,
TickType tickType
105 int beat =
round(beatApprox);
109 if (units < .4 * (60 /
mBpm)* (4 / lower))
112 s.Printf(
wxT(
"%d"), (
int)
round(val + 1));
115 s.Printf(
wxT(
"%d.%d"), (
int)floor(val + 1), (
int)beat);
118 else if (units < .8 * (60 /
mBpm) * (4 / lower))
121 s.Printf(
wxT(
"%d"), (
int)
round(val + 1));
124 s.Printf(
wxT(
"%d.%d"), (
int)floor(val + 1), (
int)beat);
129 s.Printf(
wxT(
"%d"), (
int)
round(val + 1));
fastfloat_really_inline void round(adjusted_mantissa &am, callback cb) noexcept