Example #1
0
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
Example #2
0
 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']
Example #3
0
 def test_note_value(self):
     from sebastian.core.notes import value
     assert value("G#") == 6
Example #4
0
 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']
Example #5
0
 def test_note_value(self):
     from sebastian.core.notes import value
     assert value("G#") == 6