Пример #1
0
 def test_simple_four_four_even(self):
     '''1|1 -> 8|8 -> 4|4 + 4|4
     '''
     duration = Duration(1, 1)
     new_durations = bifurcate_duration(duration, even='allowed')
     test = [Duration(2, 4), Duration(2, 4)]
     self.assertEqual(new_durations, test)
Пример #2
0
 def test_simple_four_four_default(self):
     ''' 1|1 -> 8|8 -> 5|8 + 3|8
     '''
     duration = Duration(1, 1)
     new_durations = bifurcate_duration(duration)
     test = [Duration(5, 8), Duration(3, 8)]
     self.assertEqual(new_durations, test)
Пример #3
0
 def get_music_array(notelist):
     music_play, music_sheet = [], []
     for row in notelist:
         if row[1] > 1:
             if row[0] != 'r':
                 tmp = row[0][0:2]
                 if tmp[1] != '#' and tmp[1] != 'b':
                     tmp = tmp[0]
                 dur0 = row[1]
                 if dur0 in [2, 3, 4]:
                     dur = 5  #Demisemiquaver
                 elif dur0 in [5, 6, 7]:
                     dur = 4  #Semiquaver
                 elif dur0 in [8, 9, 10]:
                     dur = 3  #Quaver
                 elif dur0 in [11, 12, 13]:
                     dur = 2  #Crotchet
                 elif dur0 in [14, 15, 16]:
                     dur = 1  #Minim
                 else:
                     dur = 0  #Semibreve
                 music_play.append(
                     [notes_ann.index(tmp),
                      int(row[0][-1]), dur])
                 music_sheet.append(
                     [notes_ann.index(tmp),
                      int(row[0][-1]), dur, 0])
             else:
                 dur0 = row[1]
                 if dur0 < 20:
                     dur = 6 - round(dur0 / 3)
                     if dur < 3:
                         music_sheet.append(['r', '', dur, 0])
                 else:
                     dur = round(row[1] / 18)
                     if dur > 4:
                         dur = 4
                     dur = Duration(dur, 1)
                     music_sheet.append(['r', '', dur, 1])
     return music_play, music_sheet
Пример #4
0
# -*- coding: utf-8 -*-
r''' Tempi for each stage in segment.
'''

from abjad import Duration, MetronomeMark
from .time_signatures import time_signatures

tempi = (
    (MetronomeMark(Duration(1, 8), 108), MetronomeMark(Duration(1, 8), 162)),
    (
        MetronomeMark(Duration(1, 8), 136),
        MetronomeMark(Duration(1, 8), 108),
        MetronomeMark(Duration(1, 8), 162),
    ),
    (
        MetronomeMark(Duration(1, 8), 136),
        MetronomeMark(Duration(1, 8), 94),
        MetronomeMark(Duration(1, 8), 162),
        MetronomeMark(Duration(1, 8), 144),
    ),
    (
        MetronomeMark(Duration(1, 8), 108),
        MetronomeMark(Duration(1, 8), 136),
        MetronomeMark(Duration(1, 8), 162),
    ),
    (
        MetronomeMark(Duration(1, 8), 136),
        MetronomeMark(Duration(1, 8), 108),
    ),
)
assert (len(tempi) == len(time_signatures))
Пример #5
0
Файл: test.py Проект: gsy/gmajor
        _note = note[0]
        _pitch = note.find("pitch")
        _duration = note.find("duration")
        _duration_type = note.find("type").text
        dots = note.findall("dot")
        _dot_count = len(dots) if dots is not None else 0

        if _note.tag == "chord":
            _pitch = note.find("pitch")
            current = construct_pitch(_pitch, _duration_type, _dot_count)
            chord = [pre_note, current]
            _parsed_duration = parse_duration(_duration_type, _dot_count)
            if has_tuplet:
                tuplet_elements.pop()
                tuplet_elements.append(Chord(chord,
                                             Duration(_parsed_duration)))
            else:
                notes.pop()
                notes.append(Chord(chord, Duration(_parsed_duration)))

        elif _note.tag == "pitch":
            _modification = note.find("time-modification")
            if _modification is not None:
                if has_tuplet is False:
                    has_tuplet = True
                    actual_notes = int(_modification.find("actual-notes").text)
                    normal_notes = int(_modification.find("normal-notes").text)
            else:
                if has_tuplet:
                    notes.append(
                        abjad.Tuplet((normal_notes, actual_notes),
Пример #6
0
 def test_return_type(self):
     duration = Duration(1, 2)
     new_durations = bifurcate_duration(duration)
     self.assertIsInstance(new_durations, (list, Duration))
Пример #7
0
 def test_seven_eight_default(self):
     duration = Duration(7, 8)
     new_durations = bifurcate_duration(duration)
     test = [Duration(2, 4), Duration(3, 8)]
     self.assertEqual(new_durations, test)
Пример #8
0
 def test_five_four_default(self):
     duration = Duration(5, 4)
     new_durations = bifurcate_duration(duration)
     test = [Duration(3, 4), Duration(2, 4)]
     self.assertEqual(new_durations, test)
Пример #9
0
# -*- coding: utf-8 -*-
#! /usr/bin/env python

if __name__ == '__main__':
    import sys
    from abjad import Duration
    from abjad import show
    from abjad.demos.ferneyhough import make_lilypond_file

    args = sys.argv[1:]
    if len(args) != 3:
        print('USAGE: [tuplet_duration, row_count, column_count]:')
        print('\ti.e.: /main.py 1/4 11 6')
        sys.exit(0)

    tuplet_duration = Duration(args[0])
    row_count = int(args[1])
    column_count = int(args[2])

    assert 0 < tuplet_duration
    assert 0 < row_count
    assert 0 < column_count

    lilypond_file = make_lilypond_file(tuplet_duration, row_count,
                                       column_count)
    show(lilypond_file)
Пример #10
0
# -*- encoding: utf-8 -*-
from abjad import Duration
from abjad import show
from SegmentMaker import SegmentMaker

durations = [Duration(4, 4)] * 4
segment_maker = SegmentMaker(durations)

if __name__ == '__main__':
    show(segment_maker)