from typing import List


def _to_note_counts(note_value) -> List[int]:
    """Return a list of counts of notes that sum to a note value.

    For example, a note value of 1.75 will be decoposed into a whole
    note, a half note and a quarter note, respectively. The return list
    is of length 12, where the first value corresponds to the count of
    double whole notes and the last value corresponds to the count of
    1024th notes.

    """
    if note_value < 2:
        base2 = bin(int(note_value * 1024))[2:]
        return [0] * (12 - len(base2)) + [int(bit) for bit in base2]
    first_bit, remainder = divmod(note_value, 2)
    base2 = bin(int(remainder * 1024))[2:]
    return (
        [int(first_bit)]
        + [0] * (11 - len(base2))
        + [int(bit) for bit in base2]
    )