def build_scale(key, mode='major', octaves=1): ''' Build a scale from a refference note. Parameters ---------- key : Musical key. Can be setted as a parameter while building scale. Key should be written as "C", for C and "C#" for C sharp and "Cb" for C flat. mode : Musica mode. 'major' and 'minor' and 'pentatonic' are accetable parameters. octaves : int number of octaves to be evaluated. Returns ------- scale_notes : sebastian.core.elements Sequence of scale notes. ''' if mode == 'major': scale = notes.major_scale elif mode == 'minor': scale = notes.minor_scale elif mode == 'pentatonic': scale = pentatonic_scale elif mode == 'blues': scale = blues_scale scale_notes = [notes.name(s).lower() + ("'" * octave) for octave in range(octaves) for s in scale(notes.value(key))] return scale_notes
def test_note_names(self): from sebastian.core.notes import major_scale, value, name gsharp_major_names = [name(x) for x in major_scale(value("G#"))] assert gsharp_major_names == ['G#', 'A#', 'B#', 'C#', 'D#', 'E#', 'Fx']
def test_note_value(self): from sebastian.core.notes import value assert value("G#") == 6