Found reviewing #656.
GridResolution.isTupletIn remains public and remains the attractively-named predicate, and after #618 it is wrong for exactly one pair by design: it reports the counted beat as a duplet in compound time, because that is what the quantizer's tuplet penalty is charged on (#130). The next caller asking "is this a tuplet" will reach for it and inherit the penalty's deliberate wrong answer instead of bracketedIn's right one. Renaming it to what it answers — the penalty's question — has one main-source call site (Quantizer) plus tests, and would make the choice stop existing rather than stay documented.
Found reviewing #656.
GridResolution.isTupletInremains public and remains the attractively-named predicate, and after #618 it is wrong for exactly one pair by design: it reports the counted beat as a duplet in compound time, because that is what the quantizer's tuplet penalty is charged on (#130). The next caller asking "is this a tuplet" will reach for it and inherit the penalty's deliberate wrong answer instead ofbracketedIn's right one. Renaming it to what it answers — the penalty's question — has one main-source call site (Quantizer) plus tests, and would make the choice stop existing rather than stay documented.