Source code for pychord.utils

from typing import List

from .constants import NOTE_VAL_DICT, SCALE_VAL_DICT


[docs]def note_to_val(note: str) -> int: """ Get index value of a note >>> note_to_val("C") 0 >>> note_to_val("B") 11 """ if note not in NOTE_VAL_DICT: raise ValueError(f"Unknown note {note}") return NOTE_VAL_DICT[note]
[docs]def val_to_note(val: int, scale: str = "C") -> str: """ Return note by index in a scale >>> val_to_note(0) "C" >>> val_to_note(11, "D") "D#" """ val %= 12 return SCALE_VAL_DICT[scale][val]
[docs]def transpose_note(note: str, transpose: int, scale: str = "C") -> str: """ Transpose a note >>> transpose_note("C", 1) "Db" >>> transpose_note("D", 4, "A") "F#" """ val = note_to_val(note) val += transpose return val_to_note(val, scale)
[docs]def display_appended(appended: List[str]) -> str: # TODO: Implement this return ""
[docs]def display_on(on_note: str) -> str: if on_note: return f"/{on_note}" return ""