Module monodikit.analysis.utility

Expand source code
class Utility:
    @staticmethod
    def compute_intervals(neume_components, start_asterisk = False, filter_division_change = False):
        note_to_num = {'C': 1, 'D': 2, 'E': 3, 'F': 4, 'G': 5, 'A': 6, 'B': 7}
        if start_asterisk:
            intervals = ["*"]
        else:
            intervals = []
        count_div_changes = 0
        for i in range(1, len(neume_components)):
            if filter_division_change and neume_components[i-1].index[0:-4] != neume_components[i].index[0:-4]:
                count_div_changes += 1
                continue
            prev_note_val = (neume_components[i - 1].octave * 7) + note_to_num[neume_components[i - 1].base]
            curr_note_val = (neume_components[i].octave * 7) + note_to_num[neume_components[i].base]
            interval = curr_note_val - prev_note_val
            if interval >= 0:
                intervals.append(interval)
            else:
                intervals.append(interval)
        return intervals

    @staticmethod
    def volpiano_view(volpiano_code, delimiter=",", size="20pt"):
        return f'<span style="font-family: volpiano; font-size: {size};">{delimiter.join(volpiano_code)}</span>'

Classes

class Utility
Expand source code
class Utility:
    @staticmethod
    def compute_intervals(neume_components, start_asterisk = False, filter_division_change = False):
        note_to_num = {'C': 1, 'D': 2, 'E': 3, 'F': 4, 'G': 5, 'A': 6, 'B': 7}
        if start_asterisk:
            intervals = ["*"]
        else:
            intervals = []
        count_div_changes = 0
        for i in range(1, len(neume_components)):
            if filter_division_change and neume_components[i-1].index[0:-4] != neume_components[i].index[0:-4]:
                count_div_changes += 1
                continue
            prev_note_val = (neume_components[i - 1].octave * 7) + note_to_num[neume_components[i - 1].base]
            curr_note_val = (neume_components[i].octave * 7) + note_to_num[neume_components[i].base]
            interval = curr_note_val - prev_note_val
            if interval >= 0:
                intervals.append(interval)
            else:
                intervals.append(interval)
        return intervals

    @staticmethod
    def volpiano_view(volpiano_code, delimiter=",", size="20pt"):
        return f'<span style="font-family: volpiano; font-size: {size};">{delimiter.join(volpiano_code)}</span>'

Static methods

def compute_intervals(neume_components, start_asterisk=False, filter_division_change=False)
Expand source code
@staticmethod
def compute_intervals(neume_components, start_asterisk = False, filter_division_change = False):
    note_to_num = {'C': 1, 'D': 2, 'E': 3, 'F': 4, 'G': 5, 'A': 6, 'B': 7}
    if start_asterisk:
        intervals = ["*"]
    else:
        intervals = []
    count_div_changes = 0
    for i in range(1, len(neume_components)):
        if filter_division_change and neume_components[i-1].index[0:-4] != neume_components[i].index[0:-4]:
            count_div_changes += 1
            continue
        prev_note_val = (neume_components[i - 1].octave * 7) + note_to_num[neume_components[i - 1].base]
        curr_note_val = (neume_components[i].octave * 7) + note_to_num[neume_components[i].base]
        interval = curr_note_val - prev_note_val
        if interval >= 0:
            intervals.append(interval)
        else:
            intervals.append(interval)
    return intervals
def volpiano_view(volpiano_code, delimiter=',', size='20pt')
Expand source code
@staticmethod
def volpiano_view(volpiano_code, delimiter=",", size="20pt"):
    return f'<span style="font-family: volpiano; font-size: {size};">{delimiter.join(volpiano_code)}</span>'