algorithms/asa.py
def _get_offset_front_id_after_onset_sample_idx(onset_sample_idx, offset_fronts):
    """
    Returns the offset_front_id which corresponds to the offset front which occurs
    first entirely after the given onset sample_idx.
    """
    # get all the offset_front_ids
    offset_front_ids = [i for i in np.unique(offset_fronts) if i != 0]

    best_id_so_far = -1
    closest_offset_sample_idx = sys.maxsize
    for offset_front_id in offset_front_ids:
        # get all that offset front's indexes
        offset_front_idxs = _get_front_idxs_from_id(offset_fronts, offset_front_id)

        # get the sample indexes
        offset_front_sample_idxs = [s for _f, s in offset_front_idxs]

        # if each sample index is greater than onset_sample_idx, keep this offset front if it is the best one so far
        min_sample_idx = min(offset_front_sample_idxs)
        if min_sample_idx > onset_sample_idx and min_sample_idx < closest_offset_sample_idx:
            closest_offset_sample_idx = min_sample_idx
            best_id_so_far = offset_front_id

    assert best_id_so_far > 1 or best_id_so_far == -1
    return best_id_so_far
def _get_offset_front_id_after_onset_sample_idx(onset_sample_idx, offset_fronts):
    # get all the offset_front_ids
    offset_front_ids = [i for i in np.unique(offset_fronts) if i != 0]

    best_id_so_far = -1
    closest_offset_sample_idx = sys.maxsize
    for offset_front_id in offset_front_ids:
        # get all that offset front's indexes
        offset_front_idxs = _get_front_idxs_from_id(offset_fronts, offset_front_id)

        # get the sample indexes
        offset_front_sample_idxs = [s for _f, s in offset_front_idxs]

        # if each sample index is greater than onset_sample_idx, keep this offset front if it is the best one so far
        min_sample_idx = min(offset_front_sample_idxs)
        if min_sample_idx > onset_sample_idx and min_sample_idx < closest_offset_sample_idx:
            closest_offset_sample_idx = min_sample_idx
            best_id_so_far = offset_front_id

    assert best_id_so_far > 1 or best_id_so_far == -1
    return best_id_so_far
def _get_offset_front_id_after_onset_sample_idx ( onset_sample_idx , offset_fronts ) : # get all the offset_front_ids offset_front_ids = [ i for i in np . unique ( offset_fronts ) if i != 0 ] best_id_so_far = - 1 closest_offset_sample_idx = sys . maxsize for offset_front_id in offset_front_ids : # get all that offset front's indexes offset_front_idxs = _get_front_idxs_from_id ( offset_fronts , offset_front_id ) # get the sample indexes offset_front_sample_idxs = [ s for _f , s in offset_front_idxs ] # if each sample index is greater than onset_sample_idx, keep this offset front if it is the best one so far min_sample_idx = min ( offset_front_sample_idxs ) if min_sample_idx > onset_sample_idx and min_sample_idx < closest_offset_sample_idx : closest_offset_sample_idx = min_sample_idx best_id_so_far = offset_front_id assert best_id_so_far > 1 or best_id_so_far == - 1 return best_id_so_far
Returns the offset_front_id which corresponds to the offset front which occurs
    first entirely after the given onset sample_idx.
Returns the offset_front_id which corresponds to the offset front which occurs first entirely after the given onset sample_idx .