コード例 #1
0
    def render_inlays(self, frets=12, verbose=1):

        if not verbose:
            return

        dots = (3, 5, 7, 9, 12, 15, 17, 19, 21, 24, 27, 29, 31, 33, 36)

        inlay_row = Row(
            FString(
                '',
                size=self.string_n_size + _NOTE_WIDTH + _FRET_WIDTH,
                align='l',
                # pad='*',
            ), )

        f = 1
        while frets:
            inlay_row.append(
                FString(
                    '' if verbose == 1 and f not in dots else INLAYS[f - 1],
                    size=_NOTE_WIDTH + _FRET_WIDTH,
                    align='r'
                    if verbose == 2 else 'c',  # high verbose needs more space
                    fg='cyan',
                    fx=['faint' if f not in dots else ''],
                ))
            f += 1
            frets -= 1

        echo(inlay_row)
コード例 #2
0
 def render_binding(self, side, frets=12):
     ''' https://en.wikipedia.org/wiki/Box-drawing_character
     '''
     normal = {'upper': '═', 'lower': '═'}
     twelve = {'upper': '╦', 'lower': '╩'}
     joints = {'upper': '╤', 'lower': '╧'}
     capo = {'upper': '╔', 'lower': '╚'}
     final = {'upper': '╕', 'lower': '╛'}
     fine = {'upper': '╗', 'lower': '╝'}
     total_fret_width = _NOTE_WIDTH + _FRET_WIDTH
     render = ' ' * (_NOTE_WIDTH + self.string_n_size)
     render += capo[side]
     for f in range(1, frets * total_fret_width + 1):
         # final fret
         if f == frets * total_fret_width:
             if f % (total_fret_width * 12) == 0:
                 render += fine[side]
             else:
                 render += final[side]
         # 12th, 24th
         elif f % (total_fret_width * 12) == 0:
             render += twelve[side]
         # fret bar joints
         elif f % total_fret_width == 0:
             render += joints[side]
         # normal bind
         else:
             render += normal[side]
     echo(render)
コード例 #3
0
def print_mode(mode):
    clr = 'blue'
    mode = '{} {}'.format(
        str(mode.root)[:-1],
        mode.name(),
    )
    echo(mode, clr)
コード例 #4
0
ファイル: tests.py プロジェクト: yosephoche/kord
 def testInvalidRoots(self):
     echo('\nInvalid {}s'.format(self.major_key.__name__), 'underline')
     for note in self.major_key.invalid_root_notes():
         echo(
             '{}{} invalid {}'.format(note.chr, note.repr_alt,
                                      self.major_key.__name__), 'red',
             'faint')
コード例 #5
0
ファイル: instruments.py プロジェクト: yosephoche/kord
 def render_string(self, s, mode, frets=12, verbose=1):
     string_n = FString(s,
                        fg='cyan',
                        fx=['faint' if verbose < 1 else ''],
                        size=self.STRING_NUMBER_SIZE)
     string = self.strings[s - 1]
     string.mode = mode
     string.frets = frets
     string.verbose = verbose
     echo(string_n + string)
コード例 #6
0
 def render_string(self, s, mode, frets=12, verbose=1, show_degrees=False):
     string_n = FString(
         s,
         fg='cyan',
         fx=['faint' if verbose < 1 else ''],
         size=self.string_n_size,
     )
     string = self.strings[s - 1]
     string.mode = mode
     string.frets = frets
     string.verbose = verbose
     string.show_degrees = show_degrees
     echo(string_n + string)
コード例 #7
0
ファイル: tests.py プロジェクト: yosephoche/kord
    def testValidRoots(self):

        for Scale in [self.major_key, self.minor_key]:

            echo('\nValid {}s'.format(Scale.__name__), 'underline')

            for note in Scale.valid_root_notes():

                line = Row()
                key = Scale(*note)
                for d in key.spell(note_count=len(key.intervals) + 16,
                                   yield_all=False):
                    line.append(
                        FString(
                            d,
                            size=5,
                            fg='blue' if not (d.oct % 2) else 'white',
                        ))
                line.echo()
コード例 #8
0
def search_ug(query):

    echo('Searching Pages: ', mode='raw')
    results = []
    for p in range(1, 11):

        # DO NOT FOLLOW RE-DIRECTS...
        data = get_page_data(query, page=p)
        if not data:
            break

        data = data['store']['page']['data']

        if not len(data['results']):
            break

        echo('{}, '.format(p), mode='raw')
        results.extend(data['results'])

    echo('done!')
    return results
コード例 #9
0
ファイル: tests.py プロジェクト: yosephoche/kord
def dbg(t='Waiting...', c='magenta'):
    echo(f'** {t} **', c)
    input()
コード例 #10
0
def retro(*args, **kwargs):
    return echo(*args, **kwargs, mode='retro')
コード例 #11
0
def dbg(t='Waiting...', c='magenta'):
    echo('** {} **'.format(t), c)
    input()
コード例 #12
0
def print_instrument(instrument, tuning):
    clr = 'yellow'
    echo(instrument.title(), clr, 'underline', mode='raw')
    echo(': ', clr, mode='raw')
    echo('{} tuning'.format(tuning), clr)